From: Jakub Jelinek Date: Mon, 10 Mar 2014 14:55:20 +0000 (+0100) Subject: re PR ipa/60457 (ICE in cgraph_get_node) X-Git-Tag: releases/gcc-4.9.0~511 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=31dad8091a44abef7ac099835ea2a241f1dc4057;p=thirdparty%2Fgcc.git re PR ipa/60457 (ICE in cgraph_get_node) PR ipa/60457 * ipa.c (symtab_remove_unreachable_nodes): Don't call cgraph_get_create_node on VAR_DECLs. * g++.dg/ipa/pr60457.C: New test. From-SVN: r208454 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 25f0f44f4ba8..e1d866666d14 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-03-10 Jakub Jelinek + + PR ipa/60457 + * ipa.c (symtab_remove_unreachable_nodes): Don't call + cgraph_get_create_node on VAR_DECLs. + 2014-03-10 Richard Biener PR middle-end/60474 diff --git a/gcc/ipa.c b/gcc/ipa.c index da9755425c56..572dba182685 100644 --- a/gcc/ipa.c +++ b/gcc/ipa.c @@ -354,7 +354,8 @@ symtab_remove_unreachable_nodes (bool before_inlining_p, FILE *file) node->aux = (void *)2; else { - if (DECL_ABSTRACT_ORIGIN (node->decl)) + if (TREE_CODE (node->decl) == FUNCTION_DECL + && DECL_ABSTRACT_ORIGIN (node->decl)) { struct cgraph_node *origin_node = cgraph_get_create_node (DECL_ABSTRACT_ORIGIN (node->decl)); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0fc685160c5d..41b687591a00 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-03-10 Jakub Jelinek + + PR ipa/60457 + * g++.dg/ipa/pr60457.C: New test. + 2014-03-10 Richard Biener PR middle-end/60474 diff --git a/gcc/testsuite/g++.dg/ipa/pr60457.C b/gcc/testsuite/g++.dg/ipa/pr60457.C new file mode 100644 index 000000000000..9e4cea7c9514 --- /dev/null +++ b/gcc/testsuite/g++.dg/ipa/pr60457.C @@ -0,0 +1,17 @@ +// PR ipa/60457 +// { dg-do compile } + +template +struct A +{ +}; + +struct B : A +{ + B (); +}; + +B::B () +{ + const int c[] = { 1, 1 }; +}