https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63888
--- Comment #17 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to Kostya Serebryany from comment #16) > Frankly, I realize that I don't understand the subtleties of this problem. > :( > > First, if this is C++ we clearly have a bug (ODR violation) and we are done. So it is an ODR violation in C++, but you won't report it (remember, the binary is not instrumented), just it will misbehave (can mark valid memory of other vars in the binary as poisoned, e.g.). > Then, if this is C w/o any extra flags we will not instrument these globals. Not true, the vars are initialized, thus are not common. Or the var in the binary could be common, and the var in the shared library not, etc. And I've actually verified both clang and gcc instrument it. Registering something assuming padding has been added (and aligned) when you don't have a control on it is just wrong, and the local alias is an very easy way to avoid it.