diff options
author | Richard Sandiford <richard@codesourcery.com> | 2006-04-25 21:34:48 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2006-04-25 21:34:48 +0000 |
commit | c0c5d392eba482f455615a4b9b74bb50c46a39ca (patch) | |
tree | 88d5cda8d344900920984288dbed68fef548c553 /gcc | |
parent | 60e1758f60c2be0682dcbac7ea270b90e78ec526 (diff) | |
download | gcc-c0c5d392eba482f455615a4b9b74bb50c46a39ca.zip gcc-c0c5d392eba482f455615a4b9b74bb50c46a39ca.tar.gz gcc-c0c5d392eba482f455615a4b9b74bb50c46a39ca.tar.bz2 |
re PR rtl-optimization/26725 (ICE in check_reg_live, at haifa-sched.c:4645 with -O2 on ia64)
gcc/
PR rtl-optimization/26725
* cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
block's BB_DIRTY flag.
gcc/testsuite/
* gcc.c-torture/compile/pr26725.c: New test.
From-SVN: r113257
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cfgrtl.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/pr26725.c | 15 |
4 files changed, 27 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e6b524e..9c6499e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-04-25 Richard Sandiford <richard@codesourcery.com> + + PR rtl-optimization/26725 + * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source + block's BB_DIRTY flag. + 2006-04-25 Geoffrey Keating <geoffk@apple.com> * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index b4875d2..54f355e 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -1170,6 +1170,7 @@ rtl_redirect_edge_and_branch_force (edge e, basic_block target) /* In case the edge redirection failed, try to force it to be non-fallthru and redirect newly created simplejump. */ + e->src->flags |= BB_DIRTY; return force_nonfallthru_and_redirect (e, target); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6db2d34..4f4944e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-04-25 Richard Sandiford <richard@codesourcery.com> + + PR rtl-optimization/26725 + * gcc.c-torture/compile/pr26725.c: New test. + 2006-04-25 Richard Guenther <rguenther@suse.de> * gcc.dg/tree-prof/val-prof-2.c: Check for n + ffff rather diff --git a/gcc/testsuite/gcc.c-torture/compile/pr26725.c b/gcc/testsuite/gcc.c-torture/compile/pr26725.c new file mode 100644 index 0000000..934042a --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr26725.c @@ -0,0 +1,15 @@ +struct { unsigned int num; } *numptr; +void notice (int); +void doit (unsigned int *); + +void +rewrite_finalize_block (int x) +{ + unsigned int *tmp; + while (tmp = (numptr ? &numptr->num : 0), (tmp ? *tmp : 0) > 0) + { + tmp = (numptr ? &numptr->num : 0); + (void) (*tmp ? 0 : notice (x)); + doit (tmp); + } +} |