diff options
author | Zdenek Dvorak <dvorakz@suse.cz> | 2006-10-24 02:12:16 +0200 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2006-10-24 00:12:16 +0000 |
commit | ae5360407bc31e22ac1c79c7a20ef1e225377203 (patch) | |
tree | 0f094604ce261f01a2cff72be5821a4342da1e37 /gcc/tree-ssa-structalias.c | |
parent | 4d5fc916770f9cb56c3b4b8c81fcc09191e71a52 (diff) | |
download | gcc-ae5360407bc31e22ac1c79c7a20ef1e225377203.zip gcc-ae5360407bc31e22ac1c79c7a20ef1e225377203.tar.gz gcc-ae5360407bc31e22ac1c79c7a20ef1e225377203.tar.bz2 |
re PR tree-optimization/14784 ([Tree-ssa] alias analysis deficiency)
PR tree-optimization/14784
* tree-flow.h (struct var_ann_d): Add is_heapvar bit.
* tree-ssa-structalias.c (get_constraint_for,
intra_create_variable_infos): Set is_heapvar.
* tree-ssa-operands.c (access_can_touch_variable): Do not handle
non-heapvar pointer variables specially.
* gcc.dg/alias-10.c: New test.
From-SVN: r117986
Diffstat (limited to 'gcc/tree-ssa-structalias.c')
-rw-r--r-- | gcc/tree-ssa-structalias.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index 1c4a46e..98ab99b 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -2640,6 +2640,7 @@ get_constraint_for (tree t, VEC (ce_s, heap) **results) { heapvar = create_tmp_var_raw (ptr_type_node, "HEAP"); DECL_EXTERNAL (heapvar) = 1; + get_var_ann (heapvar)->is_heapvar = 1; if (referenced_vars) add_referenced_var (heapvar); heapvar_insert (t, heapvar); @@ -4281,6 +4282,7 @@ intra_create_variable_infos (void) { heapvar = create_tmp_var_raw (TREE_TYPE (TREE_TYPE (t)), "PARM_NOALIAS"); + get_var_ann (heapvar)->is_heapvar = 1; DECL_EXTERNAL (heapvar) = 1; if (referenced_vars) add_referenced_var (heapvar); |