+2005-04-11 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/20926
+
+ * tree-ssa-alias.c (add_type_alias): Handle subvars.
+
2005-04-11 Devang Patel <dpatel@apple.com>
* config/rs6000.c (rs6000_emit_vector_select): Fix vector select
varray_type aliases;
tree tag;
var_ann_t ann = var_ann (ptr);
+ subvar_t svars;
if (ann->type_mem_tag == NULL_TREE)
{
for PTR's type tag. */
gcc_assert (var_ann (var)->type_mem_tag == NOT_A_TAG);
tag = ann->type_mem_tag;
- add_may_alias (tag, var);
+
+ /* If VAR has subvars, add the subvars to the tag instead of the
+ actual var. */
+ if (var_can_have_subvars (var)
+ && (svars = get_subvars_for_var (var)))
+ {
+ subvar_t sv;
+ for (sv = svars; sv; sv = sv->next)
+ add_may_alias (tag, sv->var);
+ }
+ else
+ add_may_alias (tag, var);
/* TAG and its set of aliases need to be marked for renaming. */
mark_sym_for_renaming (tag);