From cb0f665d1410a7a5f017e27f3aa453ab280e2553 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Tue, 4 Jun 2013 04:33:46 +0200 Subject: [PATCH] re PR middle-end/57500 (Segfault in ipa_record_reference) 2013-06-04 Jan Hubicka PR middle-end/57500 * cgraphunit.c (cgraph_process_same_body_aliases): Create non-VAR_DECL node if it does not exist yet. From-SVN: r199634 --- gcc/ChangeLog | 6 ++++++ gcc/cgraphunit.c | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 034299cb1fb..f3ef8a074bb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-06-04 Jan Hubicka + + PR middle-end/57500 + * cgraphunit.c (cgraph_process_same_body_aliases): Create + non-VAR_DECL node if it does not exist yet. + 2013-06-03 Richard Sandiford * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*) diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index 6143e8f3bbb..9a4d0dfc5d6 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -656,8 +656,11 @@ cgraph_process_same_body_aliases (void) symtab_node node; FOR_EACH_SYMBOL (node) if (node->symbol.cpp_implicit_alias && !node->symbol.analyzed) - symtab_resolve_alias (node, - symtab_get_node (node->symbol.alias_target)); + symtab_resolve_alias + (node, + TREE_CODE (node->symbol.alias_target) == VAR_DECL + ? (symtab_node)varpool_node_for_decl (node->symbol.alias_target) + : (symtab_node)cgraph_get_create_node (node->symbol.alias_target)); cpp_implicit_aliases_done = true; } -- 2.30.2