diff options
author | Jan Hubicka <jh@suse.cz> | 2013-09-06 01:04:11 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2013-09-05 23:04:11 +0000 |
commit | d352b2459fa6e4d5bc320af9912769ff3416a3d5 (patch) | |
tree | 061647d592f6fd386e79ab868303b34b7d53e742 /gcc/cgraphunit.c | |
parent | 17796c434dc09e45dabc2b2e7c1123fffa91d9bd (diff) | |
download | gcc-d352b2459fa6e4d5bc320af9912769ff3416a3d5.zip gcc-d352b2459fa6e4d5bc320af9912769ff3416a3d5.tar.gz gcc-d352b2459fa6e4d5bc320af9912769ff3416a3d5.tar.bz2 |
re PR c++/58201 (Undefined reference to `B::B(void const**)')
PR middle-end/58201
* cgraphunit.c (analyze_functions): Clear AUX fields
after processing; initialize assembler name has.
* g++.dg/torture/pr58201_0.C: New testcase.
* g++.dg/torture/pr58201_1.C: New testcase.
* g++.dg/torture/pr58201.h: New testcase.
From-SVN: r202298
Diffstat (limited to 'gcc/cgraphunit.c')
-rw-r--r-- | gcc/cgraphunit.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index db3db4b..125fb3b 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -1064,6 +1064,8 @@ analyze_functions (void) } node->symbol.aux = NULL; } + for (;node; node = node->symbol.next) + node->symbol.aux = NULL; first_analyzed = cgraph_first_function (); first_analyzed_var = varpool_first_variable (); if (cgraph_dump_file) @@ -1074,6 +1076,11 @@ analyze_functions (void) bitmap_obstack_release (NULL); pointer_set_destroy (reachable_call_targets); ggc_collect (); + /* Initialize assembler name hash, in particular we want to trigger C++ + mangling and same body alias creation before we free DECL_ARGUMENTS + used by it. */ + if (!seen_error ()) + symtab_initialize_asm_name_hash (); } /* Translate the ugly representation of aliases as alias pairs into nice |