diff options
author | Jan Hubicka <jh@suse.cz> | 2013-06-04 04:33:46 +0200 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2013-06-03 22:33:46 -0400 |
commit | cb0f665d1410a7a5f017e27f3aa453ab280e2553 (patch) | |
tree | ac29d4d7545860c03a19aaf4646fbc24a28a6634 | |
parent | 3d5d3d4335b778c6351125614a86802b902b14ae (diff) | |
download | gcc-cb0f665d1410a7a5f017e27f3aa453ab280e2553.zip gcc-cb0f665d1410a7a5f017e27f3aa453ab280e2553.tar.gz gcc-cb0f665d1410a7a5f017e27f3aa453ab280e2553.tar.bz2 |
re PR middle-end/57500 (Segfault in ipa_record_reference)
2013-06-04 Jan Hubicka <jh@suse.cz>
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cgraphunit.c | 7 |
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 034299c..f3ef8a0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-06-04 Jan Hubicka <jh@suse.cz> + + 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 <rdsandiford@googlemail.com> * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*) diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index 6143e8f..9a4d0df 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; } |