Hello,
I would like to ping this. Currently we have a problem with Ada ICE because we
consider a global variable produced by ada to have type in C++ anonymous
namespace and we get false ODR merging wraning compiling clang because we
consider instances of templates with parameter in anonymous namespace
non-anonymous. I do not think I can make type_in_anonymous_namespace_p to
work reliably at LTO time without frontend change.

This is not really hard thing to do - we only need to decide on a 
representation.
I think at LTO time it is useful to have two things
  - be able to say what type comply C++ ODR rule, because we special case these
    for ODR warnings
  - be able to say at LTO time what types are anonymous, that is they are not
    compatible with any type from other unit.

Either a special flag TYPE_ODR_P set by C++ FE on all types that comply ODR rule
or making TYPE_PUBLIC (TYPE_STUB_DECL (t)) to reliably identify that type is
anonymous (or an equivalent) would fix the two issues.

Honza

Reply via email to