https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67183
--- Comment #3 from Jay <jay.krell at cornell dot edu> --- https://github.com/modula3/cm3/commit/14d5e667e19abaab679b52bc8fd35a4e38073330 is a simple patch against 4.7 that establishes a partial ordering, separating the indirect functions from the indirect data, and appears to workaround the llvm-as bug. It still outputs in hash order mostly. Something similar/trivial against trunk should do.