diff options
author | Andreas Krebbel <krebbel1@de.ibm.com> | 2008-05-14 06:51:30 +0000 |
---|---|---|
committer | Andreas Krebbel <krebbel@gcc.gnu.org> | 2008-05-14 06:51:30 +0000 |
commit | 0beb3d66eabd1090b50ac68e1741756db72f595a (patch) | |
tree | 597e17d3d1554d1d0027a78187f8a8a94a929e53 /gcc | |
parent | 741300d0edd95a93b91222ad80d1f5887d16af90 (diff) | |
download | gcc-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/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cse.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/eh/080514-1.C | 16 |
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 @@ -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); +} |