aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2008-01-23 14:20:07 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2008-01-23 14:20:07 +0000
commitb86b3ea354db58a3cc83b396a093c4e498eb8f95 (patch)
tree188835a26fc77a666b006fb511cef0cdf8e38c51 /gcc
parent8b1eb9ae805f273c92551a56c6615cb5e0c0e7e4 (diff)
downloadgcc-b86b3ea354db58a3cc83b396a093c4e498eb8f95.zip
gcc-b86b3ea354db58a3cc83b396a093c4e498eb8f95.tar.gz
gcc-b86b3ea354db58a3cc83b396a093c4e498eb8f95.tar.bz2
re PR middle-end/31529 (ICE in cgraph_expand_function with IMA)
2008-01-23 Richard Guenther <rguenther@suse.de> PR middle-end/31529 * cgraphunit.c (cgraph_reset_node): Always mark the node not reachable if it is not queued already. * gcc.dg/pr31529-1.c: New testcase. * gcc.dg/pr31529-2.c: Likewise. From-SVN: r131758
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cgraphunit.c5
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.dg/pr31529-1.c7
-rw-r--r--gcc/testsuite/gcc.dg/pr31529-2.c6
5 files changed, 28 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 44e291e..e9038f7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2008-01-23 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/31529
+ * cgraphunit.c (cgraph_reset_node): Always mark the node
+ not reachable if it is not queued already.
+
2008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 5d81f56..07b597f 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -574,8 +574,9 @@ cgraph_reset_node (struct cgraph_node *node)
cgraph_node_remove_callees (node);
/* We may need to re-queue the node for assembling in case
- we already proceeded it and ignored as not needed. */
- if (node->reachable && !flag_unit_at_a_time)
+ we already proceeded it and ignored as not needed or got
+ a re-declaration in IMA mode. */
+ if (node->reachable)
{
struct cgraph_node *n;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 743125e..2608146 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2008-01-23 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/31529
+ * gcc.dg/pr31529-1.c: New testcase.
+ * gcc.dg/pr31529-2.c: Likewise.
+
2008-01-23 Jakub Jelinek <jakub@redhat.com>
PR c++/34829
diff --git a/gcc/testsuite/gcc.dg/pr31529-1.c b/gcc/testsuite/gcc.dg/pr31529-1.c
new file mode 100644
index 0000000..20703ed
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr31529-1.c
@@ -0,0 +1,7 @@
+/* { dg-do compile } */
+/* { dg-options "-combine" } */
+/* { dg-additional-sources "pr31529-2.c" } */
+
+getline ()
+{
+}
diff --git a/gcc/testsuite/gcc.dg/pr31529-2.c b/gcc/testsuite/gcc.dg/pr31529-2.c
new file mode 100644
index 0000000..40d8ef8
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr31529-2.c
@@ -0,0 +1,6 @@
+/* { dg-do compile } */
+
+extern __inline
+getline ()
+{
+}