OSDN Git Service

2008-01-23 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Jan 2008 14:20:07 +0000 (14:20 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Jan 2008 14:20:07 +0000 (14:20 +0000)
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

gcc/ChangeLog
gcc/cgraphunit.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr31529-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr31529-2.c [new file with mode: 0644]

index 44e291e..e9038f7 100644 (file)
@@ -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.
index 5d81f56..07b597f 100644 (file)
@@ -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;
 
index 743125e..2608146 100644 (file)
@@ -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 (file)
index 0000000..20703ed
--- /dev/null
@@ -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 (file)
index 0000000..40d8ef8
--- /dev/null
@@ -0,0 +1,6 @@
+/* { dg-do compile } */
+
+extern __inline
+getline ()
+{
+}