tree-ssa-structalias.c (get_constraint_for_1): Generate constraints for CONSTRUCTOR.

2010-04-30  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (get_constraint_for_1): Generate
	constraints for CONSTRUCTOR.

From-SVN: r158936
This commit is contained in:
Richard Guenther 2010-04-30 13:37:02 +00:00 committed by Richard Biener
parent b6050cb77f
commit 47d8a9035d
2 changed files with 25 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2010-04-30 Richard Guenther <rguenther@suse.de>
* tree-ssa-structalias.c (get_constraint_for_1): Generate
constraints for CONSTRUCTOR.
2010-04-30 Richard Guenther <rguenther@suse.de>
PR lto/43946

View File

@ -3351,6 +3351,26 @@ get_constraint_for_1 (tree t, VEC (ce_s, heap) **results, bool address_p)
get_constraint_for_ssa_var (t, results, address_p);
return;
}
case CONSTRUCTOR:
{
unsigned int i;
tree val;
VEC (ce_s, heap) *tmp = NULL;
FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (t), i, val)
{
struct constraint_expr *rhsp;
unsigned j;
get_constraint_for_1 (val, &tmp, address_p);
for (j = 0; VEC_iterate (ce_s, tmp, j, rhsp); ++j)
VEC_safe_push (ce_s, heap, *results, rhsp);
VEC_truncate (ce_s, tmp, 0);
}
VEC_free (ce_s, heap, tmp);
/* We do not know whether the constructor was complete,
so technically we have to add &NOTHING or &ANYTHING
like we do for an empty constructor as well. */
return;
}
default:;
}
break;