https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63888

--- Comment #18 from Kostya Serebryany <kcc at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #17)
> (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.

I am disoriented. 
Can you please give a full repro (with command lines, etc) where 
we'll now produce a false positive (in clang or in gcc)?

Reply via email to