This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: enable-build-with-cxx bootstrap compare broken by r149964
- From: Jerry Quinn <jlquinn at optonline dot net>
- To: Jason Merrill <jason at redhat dot com>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, Pedro Lamarão <pedro dot lamarao at ccppbrasil dot org>
- Date: Mon, 17 Aug 2009 22:40:51 -0400
- Subject: Re: enable-build-with-cxx bootstrap compare broken by r149964
- References: <1250345548.19163.155.camel@cerberus.qb5.org> <4A89BA99.1000900@redhat.com>
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