diff options
author | matz <matz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-06-30 16:34:22 +0000 |
---|---|---|
committer | matz <matz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-06-30 16:34:22 +0000 |
commit | 78a0527a697b05508d333f35080c1a0b36f3fe35 (patch) | |
tree | 2852023f84692231142ea669a9e5ceed97a70395 /gcc/tree-vrp.c | |
parent | 715d27f548b92947692f686ba6b5d1f51968be00 (diff) | |
download | gcc-78a0527a697b05508d333f35080c1a0b36f3fe35.tar.gz |
PR bootstrap/44699
* tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
* gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
a gimple reg, attach the original VDEF to the last store in the
sequence.
testsuite/
PR bootstrap/44699
* gcc.dg/pr44699.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161614 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r-- | gcc/tree-vrp.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index 590fa74efc8..3da2dc84e9d 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -7315,6 +7315,7 @@ vrp_finalize (void) size_t i; prop_value_t *single_val_range; bool do_value_subst_p; + unsigned num = num_ssa_names; if (dump_file) { @@ -7326,10 +7327,10 @@ vrp_finalize (void) /* We may have ended with ranges that have exactly one value. Those values can be substituted as any other const propagated value using substitute_and_fold. */ - single_val_range = XCNEWVEC (prop_value_t, num_ssa_names); + single_val_range = XCNEWVEC (prop_value_t, num); do_value_subst_p = false; - for (i = 0; i < num_ssa_names; i++) + for (i = 0; i < num; i++) if (vr_value[i] && vr_value[i]->type == VR_RANGE && vr_value[i]->min == vr_value[i]->max @@ -7357,7 +7358,7 @@ vrp_finalize (void) identify_jump_threads (); /* Free allocated memory. */ - for (i = 0; i < num_ssa_names; i++) + for (i = 0; i < num; i++) if (vr_value[i]) { BITMAP_FREE (vr_value[i]->equiv); |