aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>1999-05-24 00:58:56 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>1999-05-24 00:58:56 +0000
commite97b5c125c43f264674253b0abe97499bf817c7d (patch)
treec5235803f5ac7b955052205e365e785a157b4c33
parent8bcc97de27e9a426f70456fc2c9746f1831e33bd (diff)
downloadgcc-e97b5c125c43f264674253b0abe97499bf817c7d.zip
gcc-e97b5c125c43f264674253b0abe97499bf817c7d.tar.gz
gcc-e97b5c125c43f264674253b0abe97499bf817c7d.tar.bz2
stmt.c (expand_end_bindings): Ignore any elements of VARS that are not VAR_DECLs.
* stmt.c (expand_end_bindings): Ignore any elements of VARS that are not VAR_DECLs. From-SVN: r27118
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/stmt.c17
2 files changed, 14 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ac3e2d7..2e1f1a6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Mon May 24 01:02:12 1999 Mark Mitchell <mark@codesourcery.com>
+
+ * stmt.c (expand_end_bindings): Ignore any elements of VARS that
+ are not VAR_DECLs.
+
Sun May 23 20:31:16 1999 Jeffrey A Law (law@cygnus.com)
* loop.c (strength_reduce): Grow reg_single_usage as needed.
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 9c8a716..7a7d5670f 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -3351,8 +3351,11 @@ expand_nl_goto_receivers (thisblock)
}
/* Generate RTL code to terminate a binding contour.
- VARS is the chain of VAR_DECL nodes
- for the variables bound in this contour.
+
+ VARS is the chain of VAR_DECL nodes for the variables bound in this
+ contour. There may actually be other nodes in this chain, but any
+ nodes other than VAR_DECLS are ignored.
+
MARK_ENDS is nonzero if we should put a note at the beginning
and end of this binding contour.
@@ -3389,7 +3392,8 @@ expand_end_bindings (vars, mark_ends, dont_jump_in)
if (warn_unused)
for (decl = vars; decl; decl = TREE_CHAIN (decl))
- if (! TREE_USED (decl) && TREE_CODE (decl) == VAR_DECL
+ if (TREE_CODE (decl) == VAR_DECL
+ && ! TREE_USED (decl)
&& ! DECL_IN_SYSTEM_HEADER (decl)
&& DECL_NAME (decl) && ! DECL_ARTIFICIAL (decl))
warning_with_decl (decl, "unused variable `%s'");
@@ -3495,11 +3499,8 @@ expand_end_bindings (vars, mark_ends, dont_jump_in)
if (obey_regdecls)
for (decl = vars; decl; decl = TREE_CHAIN (decl))
- {
- rtx rtl = DECL_RTL (decl);
- if (TREE_CODE (decl) == VAR_DECL && rtl != 0)
- use_variable (rtl);
- }
+ if (TREE_CODE (decl) == VAR_DECL && DECL_RTL (decl))
+ use_variable (DECL_RTL (decl));
/* Restore the temporary level of TARGET_EXPRs. */
target_temp_slot_level = thisblock->data.block.target_temp_slot_level;