diff options
author | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-06-30 11:06:32 +0000 |
---|---|---|
committer | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-06-30 11:06:32 +0000 |
commit | b06d19340e790498e452b6d88bf42c7d22423c46 (patch) | |
tree | 254a6221a6779b6a5a93660e46afe66cbb083644 /gcc/tree-ssa-live.c | |
parent | e4c5b85dab25577a418cb174cdb6e9518f30ed79 (diff) | |
download | gcc-b06d19340e790498e452b6d88bf42c7d22423c46.tar.gz |
PR testsuite/21967
* tree-ssa-live.c (mark_all_vars_used_1): Ignore variables in
TMR_ORIGINAL.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101462 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-live.c')
-rw-r--r-- | gcc/tree-ssa-live.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c index cbd36f1e1aa..180916d0694 100644 --- a/gcc/tree-ssa-live.c +++ b/gcc/tree-ssa-live.c @@ -286,6 +286,7 @@ change_partition_var (var_map map, tree var, int part) map->partition_to_var[map->compact_to_partition[part]] = var; } +static inline void mark_all_vars_used (tree *); /* Helper function for mark_all_vars_used, called via walk_tree. */ @@ -295,6 +296,17 @@ mark_all_vars_used_1 (tree *tp, int *walk_subtrees, { tree t = *tp; + /* Ignore TREE_ORIGINAL for TARGET_MEM_REFS, as well as other + fields that do not contain vars. */ + if (TREE_CODE (t) == TARGET_MEM_REF) + { + mark_all_vars_used (&TMR_SYMBOL (t)); + mark_all_vars_used (&TMR_BASE (t)); + mark_all_vars_used (&TMR_INDEX (t)); + *walk_subtrees = 0; + return NULL; + } + /* Only need to mark VAR_DECLS; parameters and return results are not eliminated as unused. */ if (TREE_CODE (t) == VAR_DECL) |