diff options
author | Daniel Berlin <dberlin@dberlin.org> | 2005-07-19 03:36:15 +0000 |
---|---|---|
committer | Daniel Berlin <dberlin@gcc.gnu.org> | 2005-07-19 03:36:15 +0000 |
commit | b9d3348810a657d5b64e23cb6f098bd7d479191b (patch) | |
tree | 880e6bcccb700c5d4ffc320ff94104a03e895fc9 /gcc/tree-flow-inline.h | |
parent | 9fa264571da0247ed1b0d0d0e64897f7b3731c50 (diff) | |
download | gcc-b9d3348810a657d5b64e23cb6f098bd7d479191b.zip gcc-b9d3348810a657d5b64e23cb6f098bd7d479191b.tar.gz gcc-b9d3348810a657d5b64e23cb6f098bd7d479191b.tar.bz2 |
re PR tree-optimization/22483 (ICE : tree check: expected ssa_name, have var_decl in is_old_name, at tree-into-ssa.c:466)
2005-07-18 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22483
* tree-complex.c (create_components): Use
safe_referenced_var_iterator and FOR_EACH_REFERENCED_VAR_SAFE.
* tree-flow-inline.h (fill_referenced_var_vec): New function.
* tree-flow.h (safe_referenced_var_iterator): New structure.
(FOR_EACH_REFERENCED_VAR_SAFE): New macro.
* tree-ssa-alias.c (setup_pointers_and_addressables): Use
safe_referenced_var iterator.
(add_type_alias): Ditto.
From-SVN: r102150
Diffstat (limited to 'gcc/tree-flow-inline.h')
-rw-r--r-- | gcc/tree-flow-inline.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/gcc/tree-flow-inline.h b/gcc/tree-flow-inline.h index 4874c77..30d13ab 100644 --- a/gcc/tree-flow-inline.h +++ b/gcc/tree-flow-inline.h @@ -105,7 +105,19 @@ next_referenced_var (referenced_var_iterator *iter) return NULL; return itm->to; } - + +/* Fill up VEC with the variables in the referenced vars hashtable. */ + +static inline void +fill_referenced_var_vec (VEC (tree, heap) **vec) +{ + referenced_var_iterator rvi; + tree var; + *vec = NULL; + FOR_EACH_REFERENCED_VAR (var, rvi) + VEC_safe_push (tree, heap, *vec, var); +} + /* Return the variable annotation for T, which must be a _DECL node. Return NULL if the variable annotation doesn't already exist. */ static inline var_ann_t |