https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63888
--- Comment #29 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Perhaps you can emit another symbol covering the original size plus padding in that case on targets where linker can do something so problematic. So you'd end up having e.g. symbol varfoo addr=0x1234500 size=32 __asan_var.varfoo addr=0x1234500 size=64 (replace . with whatever char can be used in object format's identifiers and if at all possible is not allowed in C/C++ identifiers). Or would Mach-O still attempt to tear it appart? That would sound like a bug to me.