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
This commit is contained in:
Andreas Krebbel 2008-05-14 06:51:30 +00:00 committed by Andreas Krebbel
parent 741300d0ed
commit 0beb3d66ea
4 changed files with 25 additions and 1 deletions

View file

@ -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

View file

@ -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;

View file

@ -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

View file

@ -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);
}