re PR middle-end/57500 (Segfault in ipa_record_reference)
authorJan Hubicka <jh@suse.cz>
Tue, 4 Jun 2013 02:33:46 +0000 (04:33 +0200)
committerDavid Edelsohn <dje@gcc.gnu.org>
Tue, 4 Jun 2013 02:33:46 +0000 (22:33 -0400)
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

gcc/ChangeLog
gcc/cgraphunit.c

index 034299cb1fbe622d88632b3266fe57a846460c06..f3ef8a074bb72cb5af691d7a3305e99d6fac67a2 100644 (file)
@@ -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*)
index 6143e8f3bbb5b7775ed449cda3b7f9f493fbdbaa..9a4d0dfc5d623b0a101900d40ec852fbb4ea9bbb 100644 (file)
@@ -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;
 }