+2010-11-03 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/46286
+ * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
+ re-allocated vector data.
+
2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
PR target/46285
{
case MEM_REF:
{
- struct constraint_expr *c;
+ struct constraint_expr cs;
varinfo_t vi, curr;
tree off = double_int_to_tree (sizetype, mem_ref_offset (t));
get_constraint_for_ptr_offset (TREE_OPERAND (t, 0), off, results);
/* If we are not taking the address then make sure to process
all subvariables we might access. */
- c = VEC_last (ce_s, *results);
+ cs = *VEC_last (ce_s, *results);
if (address_p
- || c->type != SCALAR)
+ || cs.type != SCALAR)
return;
- vi = get_varinfo (c->var);
+ vi = get_varinfo (cs.var);
curr = vi->next;
if (!vi->is_full_var
&& curr)
{
if (curr->offset - vi->offset < size)
{
- struct constraint_expr cs = *c;
cs.var = curr->id;
VEC_safe_push (ce_s, heap, *results, &cs);
}