On Mon, 2009-08-17 at 16:16 -0400, Jason Merrill wrote: > On 08/15/2009 10:12 AM, Jerry Quinn wrote: > > Bootstrap comparison failure! > >[...] > > (write_nested_name): Add a fake anonymous namespace scope if > > true. > > What I assume is going on here is that use of anonymous namespaces can > break bitwise comparison, because get_file_function_name uses a random > number if it doesn't know a non-weak symbol to use in the name. > > One thing that would help would be to defer all mangling, or at least > all mangling that depends on the anonymous namespace name, until end of > file so that first_global_object_name is usually set. > > I'm not sure why GCC sources would need to mangle function-local > structs, though.
I'm not sure if the following is relevant, but I found it in cp/mangle.c: /* Since we now use strcmp to compare typeinfos on all targets because of the RTLD_LOCAL problem, we need to munge the typeinfo name used for local classes of static functions to fix g++.dg/abi/local1.C. We do that by pretending that the function is in an anonymous namespace. */ static bool needs_fake_anon (const_tree decl) Jery