From 6bbb4ad35e1eaf97bfd53675f39157e07af2999f Mon Sep 17 00:00:00 2001 From: Andrew Haley Date: Mon, 17 Nov 2003 17:39:05 +0000 Subject: java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New. 2003-09-12 Andrew Haley * java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New. (struct lang_decl_var:freed): New variable. * decl.c (poplevel): Mark local vars that have gone out of scope. (push_jvm_slot): Don't use the RTL of a var that has gone out of scope. From-SVN: r73675 --- gcc/java/java-tree.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gcc/java/java-tree.h') diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h index 7b5a397..8c58bb7 100644 --- a/gcc/java/java-tree.h +++ b/gcc/java/java-tree.h @@ -947,6 +947,9 @@ union lang_tree_node /* True if NODE is a class initialization flag. */ #define LOCAL_CLASS_INITIALIZATION_FLAG_P(NODE) \ (DECL_LANG_SPECIFIC (NODE) && LOCAL_CLASS_INITIALIZATION_FLAG(NODE)) +/* True if NODE is a variable that is out of scope. */ +#define LOCAL_VAR_OUT_OF_SCOPE_P(NODE) \ + (DECL_LANG_SPECIFIC(NODE)->u.v.freed) /* Create a DECL_LANG_SPECIFIC if necessary. */ #define MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC(T) \ if (DECL_LANG_SPECIFIC (T) == NULL) \ @@ -1031,6 +1034,7 @@ struct lang_decl_var GTY(()) tree wfl; /* Original wfl */ unsigned int final_iud : 1; /* Final initialized upon declaration */ unsigned int cif : 1; /* True: decl is a class initialization flag */ + unsigned int freed; /* Decl is no longer in scope. */ }; /* This is what 'lang_decl' really points to. */ -- cgit v1.1