Some Mach-O specific passes own a MachOFile member that is used to allocate the generated atoms. This is a fragile pattern as the generated atoms and references lifespan are tied to the pass lifespan and freed when the pass instance is destroyed.
While it is not an issue today as the PassManager is not destroy before we write the linked file, there is no guarantee it will always work.
Now that the File base class provide an allocator, we can use the processed file's allocator to generate new atoms.
Note: I have commit rights, so if that patch is good, I'll be glad to commit it myself ;-)