Commit 94589120 by Daniel Berlin Committed by Daniel Berlin

re PR tree-optimization/20926 (ICE: tree check, in recent builds)


2005-04-11  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/20926

	* tree-ssa-alias.c (add_type_alias): Handle subvars.

From-SVN: r97982
parent 19f1ebc7
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> 2005-04-11 Devang Patel <dpatel@apple.com>
* config/rs6000.c (rs6000_emit_vector_select): Fix vector select * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
......
...@@ -2704,6 +2704,7 @@ add_type_alias (tree ptr, tree var) ...@@ -2704,6 +2704,7 @@ add_type_alias (tree ptr, tree var)
varray_type aliases; varray_type aliases;
tree tag; tree tag;
var_ann_t ann = var_ann (ptr); var_ann_t ann = var_ann (ptr);
subvar_t svars;
if (ann->type_mem_tag == NULL_TREE) if (ann->type_mem_tag == NULL_TREE)
{ {
...@@ -2748,7 +2749,18 @@ found_tag: ...@@ -2748,7 +2749,18 @@ found_tag:
for PTR's type tag. */ for PTR's type tag. */
gcc_assert (var_ann (var)->type_mem_tag == NOT_A_TAG); gcc_assert (var_ann (var)->type_mem_tag == NOT_A_TAG);
tag = ann->type_mem_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. */ /* TAG and its set of aliases need to be marked for renaming. */
mark_sym_for_renaming (tag); mark_sym_for_renaming (tag);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment