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