From e97b5c125c43f264674253b0abe97499bf817c7d Mon Sep 17 00:00:00 2001
From: Mark Mitchell <mark@codesourcery.com>
Date: Mon, 24 May 1999 00:58:56 +0000
Subject: [PATCH] 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
---
 gcc/ChangeLog |  5 +++++
 gcc/stmt.c    | 17 +++++++++--------
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ac3e2d79f383..2e1f1a685f6b 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 9c8a716fbc1f..7a7d5670fe00 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;
-- 
GitLab