summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2008-01-23 14:20:07 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2008-01-23 14:20:07 +0000
commit46beef9ad81b266b165bc5919ed5771dc915545e (patch)
tree188835a26fc77a666b006fb511cef0cdf8e38c51
parent426829035bc889abf3153c7a9a229557db4250da (diff)
downloadgcc-46beef9ad81b266b165bc5919ed5771dc915545e.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131758 138bc75d-0d04-0410-961f-82ee72b054a4
-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 44e291e5e66..e9038f7ff9f 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 5d81f5682d6..07b597f7bca 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 743125e7606..2608146190f 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 00000000000..20703ed2538
--- /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 00000000000..40d8ef86830
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr31529-2.c
@@ -0,0 +1,6 @@
+/* { dg-do compile } */
+
+extern __inline
+getline ()
+{
+}