From: Mark Mitchell Date: Mon, 24 May 1999 00:58:56 +0000 (+0000) Subject: stmt.c (expand_end_bindings): Ignore any elements of VARS that are not VAR_DECLs. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e97b5c125c43f264674253b0abe97499bf817c7d;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ac3e2d79f38..2e1f1a685f6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Mon May 24 01:02:12 1999 Mark Mitchell + + * 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 9c8a716fbc1..7a7d5670fe0 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;