Spotted by https://reviews.llvm.org/D74755#1998673
it looks like OrderedSegments in the function is only used to set the physical address to the virtual address when there are no physical addresses set amongst these sections.
I believe this behavior was copied from https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=6ffd79000b45e77b3625143932ffbf781b6aecab (2008-05)
The commit was made for very old linkers.
This special rule does not seem useful and remove it can allow us to
delete a large chunk of code.
I'm not sure this sentence is right - I assume you mean p_paddr, not p_paddr.