aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.c
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2010-06-30 16:34:22 +0000
committerMichael Matz <matz@gcc.gnu.org>2010-06-30 16:34:22 +0000
commit8a1561bcd07c8e630f1e7492c364a664dd6f3d69 (patch)
tree2852023f84692231142ea669a9e5ceed97a70395 /gcc/tree-vrp.c
parent6b180c51344c45d4b0b4a792de68b634f4a354cd (diff)
downloadgcc-8a1561bcd07c8e630f1e7492c364a664dd6f3d69.zip
gcc-8a1561bcd07c8e630f1e7492c364a664dd6f3d69.tar.gz
gcc-8a1561bcd07c8e630f1e7492c364a664dd6f3d69.tar.bz2
re PR bootstrap/44699 (Bootstrap failure for x86_64-apple-darwin10: ICE while compiling genmodes.c)
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. From-SVN: r161614
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r--gcc/tree-vrp.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 590fa74..3da2dc8 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);