aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2011-02-18 11:42:48 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2011-02-18 11:42:48 +0100
commitabfea58d53f78e426da355c0618a868056e30592 (patch)
tree0da94db984ee09ac7a3462146c30bca3f5352b87 /gcc
parent6e2062b00f9270676ded3f8bfe16273843f449d6 (diff)
downloadgcc-abfea58d53f78e426da355c0618a868056e30592.zip
gcc-abfea58d53f78e426da355c0618a868056e30592.tar.gz
gcc-abfea58d53f78e426da355c0618a868056e30592.tar.bz2
re PR debug/47780 (-fcompare-debug failure with -O -fgcse -fgcse-las -fstack-protector-all)
PR debug/47780 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to avoid invalid rtx sharing. * gcc.target/i386/pr47780.c: New test. From-SVN: r170270
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cfgexpand.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/i386/pr47780.c14
4 files changed, 26 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f447081..41c09ff 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-02-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/47780
+ * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
+ avoid invalid rtx sharing.
+
2011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
* doc/cpp.texi (Obsolete Features): Add background on the
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 897d0f9..ee51ba9 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -3104,7 +3104,7 @@ expand_debug_expr (tree exp)
gcc_assert (part >= 0 && (unsigned)part < SA.map->num_partitions);
- op0 = SA.partition_to_pseudo[part];
+ op0 = copy_rtx (SA.partition_to_pseudo[part]);
}
goto adjust_mode;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 998cfc2..40e2553 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2011-02-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/47780
+ * gcc.target/i386/pr47780.c: New test.
+
2011-02-18 Janus Weil <janus@gcc.gnu.org>
PR fortran/47767
diff --git a/gcc/testsuite/gcc.target/i386/pr47780.c b/gcc/testsuite/gcc.target/i386/pr47780.c
new file mode 100644
index 0000000..89fe409
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr47780.c
@@ -0,0 +1,14 @@
+/* PR debug/47780 */
+/* { dg-do compile } */
+/* { dg-options "-O -fgcse -fgcse-las -fstack-protector-all -fno-tree-ccp -fno-tree-dominator-opts -fcompare-debug -Wno-psabi" } */
+
+typedef int V2SF __attribute__ ((vector_size (128)));
+
+V2SF
+foo (int x, V2SF a)
+{
+ V2SF b = a + (V2SF) {};
+ while (x--)
+ a += b;
+ return a;
+}