aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel1@de.ibm.com>2008-05-14 06:51:30 +0000
committerAndreas Krebbel <krebbel@gcc.gnu.org>2008-05-14 06:51:30 +0000
commit0beb3d66eabd1090b50ac68e1741756db72f595a (patch)
tree597e17d3d1554d1d0027a78187f8a8a94a929e53 /gcc
parent741300d0edd95a93b91222ad80d1f5887d16af90 (diff)
downloadgcc-0beb3d66eabd1090b50ac68e1741756db72f595a.zip
gcc-0beb3d66eabd1090b50ac68e1741756db72f595a.tar.gz
gcc-0beb3d66eabd1090b50ac68e1741756db72f595a.tar.bz2
cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
2008-05-14 Andreas Krebbel <krebbel1@de.ibm.com> * cse.c (cse_cc_succs): Invoke delete_insn_and_edges. 2008-05-14 Andreas Krebbel <krebbel1@de.ibm.com> * g++.dg/eh/080513-1.C: New testcase. From-SVN: r135281
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/cse.c2
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/g++.dg/eh/080514-1.C16
4 files changed, 25 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 17a4613..d5b6672 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
+
2008-05-13 Uros Bizjak <ubizjak@gmail.com>
PR target/36222
diff --git a/gcc/cse.c b/gcc/cse.c
index 23b6134..a5efcd7 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -6861,7 +6861,7 @@ cse_cc_succs (basic_block bb, rtx cc_reg, rtx cc_src, bool can_change_mode)
newreg);
}
- delete_insn (insns[i]);
+ delete_insn_and_edges (insns[i]);
}
return mode;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 699c416..ff7b73d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * g++.dg/eh/080513-1.C: New testcase.
+
2008-05-13 Uros Bizjak <ubizjak@gmail.com>
PR target/36222
diff --git a/gcc/testsuite/g++.dg/eh/080514-1.C b/gcc/testsuite/g++.dg/eh/080514-1.C
new file mode 100644
index 0000000..dafa325
--- /dev/null
+++ b/gcc/testsuite/g++.dg/eh/080514-1.C
@@ -0,0 +1,16 @@
+// This used to fail on s390 due to cse removing an insn with a
+// REG_EH_REGION without deleting the EH edge.
+// { dg-do compile }
+// { dg-options "-O2 -fnon-call-exceptions" }
+
+void
+run (int m, double d)
+{
+ int stack[m];
+ int *sp = stack;
+
+ if (d == 1.0)
+ *(sp++) = (0);
+ else if (d < 1.0)
+ *(sp++) = (-1);
+}