From 40b554a31c972d13cf17499ea52d907962800440 Mon Sep 17 00:00:00 2001 From: Steven Bosscher Date: Wed, 27 Oct 2004 17:14:19 +0000 Subject: 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 --- gcc/tree-phinodes.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'gcc/tree-phinodes.c') diff --git a/gcc/tree-phinodes.c b/gcc/tree-phinodes.c index 6dc5c7692de..64fab712a4d 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 -- cgit v1.2.1