diff options
author | Jan Hubicka <jh@suse.cz> | 2004-09-18 09:31:30 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2004-09-18 07:31:30 +0000 |
commit | 8b547e44f727908791650e822f7de16ef79e02ca (patch) | |
tree | fe05dda72592a1cc1bfa37384e18d975a9caf42f /gcc/tree-ssa.c | |
parent | b8771ace10537344957eaf0351793239ba5b2ee3 (diff) | |
download | gcc-8b547e44f727908791650e822f7de16ef79e02ca.zip gcc-8b547e44f727908791650e822f7de16ef79e02ca.tar.gz gcc-8b547e44f727908791650e822f7de16ef79e02ca.tar.bz2 |
tree-into-ssa.c (rewrite_ssa_into_ssa): Expect ssa_name to return NULL.
* tree-into-ssa.c (rewrite_ssa_into_ssa): Expect ssa_name to return
NULL.
* tree-ssa-alias.c (init_alias_info): Likewise.
* tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
(verify_ssa): Likewise.
* tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
From-SVN: r87698
Diffstat (limited to 'gcc/tree-ssa.c')
-rw-r--r-- | gcc/tree-ssa.c | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index 21dc59a..2c5cf5a 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -419,6 +419,8 @@ verify_flow_sensitive_alias_info (void) struct ptr_info_def *pi; ptr = ssa_name (i); + if (!ptr) + continue; ann = var_ann (SSA_NAME_VAR (ptr)); pi = SSA_NAME_PTR_INFO (ptr); @@ -466,25 +468,26 @@ verify_flow_sensitive_alias_info (void) size_t j; for (j = i + 1; j < num_ssa_names; j++) - { - tree ptr2 = ssa_name (j); - struct ptr_info_def *pi2 = SSA_NAME_PTR_INFO (ptr2); - - if (!TREE_VISITED (ptr2) || !POINTER_TYPE_P (TREE_TYPE (ptr2))) - continue; - - if (pi2 - && pi2->name_mem_tag - && pi2->pt_vars - && bitmap_first_set_bit (pi2->pt_vars) >= 0 - && pi->name_mem_tag != pi2->name_mem_tag - && bitmap_equal_p (pi->pt_vars, pi2->pt_vars)) - { - error ("Two pointers with different name tags and identical points-to sets"); - debug_variable (ptr2); - goto err; - } - } + if (ssa_name (j)) + { + tree ptr2 = ssa_name (j); + struct ptr_info_def *pi2 = SSA_NAME_PTR_INFO (ptr2); + + if (!TREE_VISITED (ptr2) || !POINTER_TYPE_P (TREE_TYPE (ptr2))) + continue; + + if (pi2 + && pi2->name_mem_tag + && pi2->pt_vars + && bitmap_first_set_bit (pi2->pt_vars) >= 0 + && pi->name_mem_tag != pi2->name_mem_tag + && bitmap_equal_p (pi->pt_vars, pi2->pt_vars)) + { + error ("Two pointers with different name tags and identical points-to sets"); + debug_variable (ptr2); + goto err; + } + } } } @@ -524,7 +527,8 @@ verify_ssa (void) /* Keep track of SSA names present in the IL. */ for (i = 1; i < num_ssa_names; i++) - TREE_VISITED (ssa_name (i)) = 0; + if (ssa_name (i)) + TREE_VISITED (ssa_name (i)) = 0; calculate_dominance_info (CDI_DOMINATORS); |