diff options
author | Jakub Jelinek <jakub@redhat.com> | 2014-03-10 15:55:20 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2014-03-10 15:55:20 +0100 |
commit | 31dad8091a44abef7ac099835ea2a241f1dc4057 (patch) | |
tree | dc8454832a471227919dd25481241733c3ff4485 | |
parent | 3c1c08d6d76dab762ff34d79e39c1daedfd9904e (diff) | |
download | gcc-31dad8091a44abef7ac099835ea2a241f1dc4057.zip gcc-31dad8091a44abef7ac099835ea2a241f1dc4057.tar.gz gcc-31dad8091a44abef7ac099835ea2a241f1dc4057.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ipa.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/ipa/pr60457.C | 17 |
4 files changed, 30 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 25f0f44..e1d8666 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-03-10 Jakub Jelinek <jakub@redhat.com> + + PR ipa/60457 + * ipa.c (symtab_remove_unreachable_nodes): Don't call + cgraph_get_create_node on VAR_DECLs. + 2014-03-10 Richard Biener <rguenther@suse.de> PR middle-end/60474 @@ -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 0fc6851..41b6875 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-03-10 Jakub Jelinek <jakub@redhat.com> + + PR ipa/60457 + * g++.dg/ipa/pr60457.C: New test. + 2014-03-10 Richard Biener <rguenther@suse.de> 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 0000000..9e4cea7 --- /dev/null +++ b/gcc/testsuite/g++.dg/ipa/pr60457.C @@ -0,0 +1,17 @@ +// PR ipa/60457 +// { dg-do compile } + +template <class T> +struct A +{ +}; + +struct B : A <B> +{ + B (); +}; + +B::B () +{ + const int c[] = { 1, 1 }; +} |