https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63888
--- Comment #23 from Eric Christopher <echristo at gmail dot com> --- So, I think Jakub's solution is strictly better here as it allows intermixing of asan and non-asan code. It'll involve a bit of work in llvm's middle end to keep track of symbol type to make sure to emit padding as we hit the backend, but as long as we make sure to have full symbols for each variable it should be fine on platforms like OS X where we have linkers that split sections based on type of section and symbols in the section. It's an endless string of corner cases, but as long as we're careful it'll probably work.