diff options
author | Steven Bosscher <steven@gcc.gnu.org> | 2004-10-27 17:14:19 +0000 |
---|---|---|
committer | Steven Bosscher <steven@gcc.gnu.org> | 2004-10-27 17:14:19 +0000 |
commit | 40b554a31c972d13cf17499ea52d907962800440 (patch) | |
tree | 8f16e715609b1c7279583d2bb6a5fecbd287aad9 /gcc | |
parent | a559b61bf71da102462ffe4b4af443cd22b8eb67 (diff) | |
download | gcc-40b554a31c972d13cf17499ea52d907962800440.zip gcc-40b554a31c972d13cf17499ea52d907962800440.tar.gz gcc-40b554a31c972d13cf17499ea52d907962800440.tar.bz2 |
tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs without any PHI arguments left.
* tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs
without any PHI arguments left. Make sure the argument that
we're supposed to remove exists at all.
From-SVN: r89689
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/tree-phinodes.c | 7 |
2 files changed, 9 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 68fc944..db8f25f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-10-27 Steven Bosscher <stevenb@suse.de> + + * tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs + without any PHI arguments left. Make sure the argument that + we're supposed to remove exists at all. + 2004-10-27 Paul Brook <paul@codesourcery.com> * configure.ac: Don't test for [build] __cxa_atexit when building a @@ -161,7 +167,7 @@ 2004-10-26 Fariborz Jahanian <fjahanian@apple.com> - * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting + * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting into rotlsi3. 2004-10-26 Kazu Hirata <kazu@cs.umass.edu> diff --git a/gcc/tree-phinodes.c b/gcc/tree-phinodes.c index 6dc5c76..64fab71 100644 --- a/gcc/tree-phinodes.c +++ b/gcc/tree-phinodes.c @@ -407,6 +407,8 @@ remove_phi_arg_num (tree phi, int i) { int num_elem = PHI_NUM_ARGS (phi); + gcc_assert (i < num_elem); + /* If we are not at the last element, switch the last element with the element we want to delete. */ if (i != num_elem - 1) @@ -421,11 +423,6 @@ remove_phi_arg_num (tree phi, int i) PHI_ARG_EDGE (phi, num_elem - 1) = NULL; PHI_ARG_NONZERO (phi, num_elem - 1) = false; PHI_NUM_ARGS (phi)--; - - /* If we removed the last PHI argument, then go ahead and - remove the PHI node. */ - if (PHI_NUM_ARGS (phi) == 0) - remove_phi_node (phi, NULL, bb_for_stmt (phi)); } /* Remove PHI node PHI from basic block BB. If PREV is non-NULL, it is |