diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-09-05 23:04:11 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-09-05 23:04:11 +0000 |
commit | d5b66e83e4f0e07333df2f475d80e5a5a0645881 (patch) | |
tree | 061647d592f6fd386e79ab868303b34b7d53e742 /gcc/cgraphunit.c | |
parent | bbbc7fc7102421fc2e66ef3535a719a9536fde79 (diff) | |
download | gcc-d5b66e83e4f0e07333df2f475d80e5a5a0645881.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202298 138bc75d-0d04-0410-961f-82ee72b054a4
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 db3db4bdef7..125fb3b587e 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 |