summaryrefslogtreecommitdiff
path: root/gcc/cgraphunit.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2013-09-05 23:04:11 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2013-09-05 23:04:11 +0000
commitd5b66e83e4f0e07333df2f475d80e5a5a0645881 (patch)
tree061647d592f6fd386e79ab868303b34b7d53e742 /gcc/cgraphunit.c
parentbbbc7fc7102421fc2e66ef3535a719a9536fde79 (diff)
downloadgcc-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.c7
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