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

--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Kostya Serebryany from comment #6)
> (In reply to Yury Gribov from comment #5)
> > Perhaps ODR check should check that names of global variables match before
> > issuing warning?
> 
> The variables are generated by the compiler, right? 
> (These are switch tables)
> 
> Do we want to instrument them at all? 

Generally, we do want to instrument even artificial variables, and on many of
them buffer overflow is possible.

> I.e. is a buffer overflow on these variables possible? 
> 
> If we don't instrument them we won't report an ODR violation. 
> 
> >> GCC with -fmerge-all-constants also merges many read-only constants, even 
> >> addressable ones, when they have the same content.
> 
> Then I guess we may have other false positives. 
> We may want to disable -fmerge-all-constants under asan

You haven't responded about the language thing, there is no such thing as ODR
in C or Fortran, so you shouldn't report it.
There are 31 (or 63) bits left in __has_dynamic_init field, can't one bit be
used for whether ODR should be reported or not?

Reply via email to