aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/java-tree.h
diff options
context:
space:
mode:
authorAndrew Haley <aph@redhat.com>2003-11-17 17:39:05 +0000
committerAndrew Haley <aph@gcc.gnu.org>2003-11-17 17:39:05 +0000
commit6bbb4ad35e1eaf97bfd53675f39157e07af2999f (patch)
tree96d693db1f60c111e9a3672d73aabfa2c5980216 /gcc/java/java-tree.h
parent2a53208d3c33530bbb30121080fea21e5b2c8bf7 (diff)
downloadgcc-6bbb4ad35e1eaf97bfd53675f39157e07af2999f.zip
gcc-6bbb4ad35e1eaf97bfd53675f39157e07af2999f.tar.gz
gcc-6bbb4ad35e1eaf97bfd53675f39157e07af2999f.tar.bz2
java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New.
2003-09-12 Andrew Haley <aph@redhat.com> * 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
Diffstat (limited to 'gcc/java/java-tree.h')
-rw-r--r--gcc/java/java-tree.h4
1 files changed, 4 insertions, 0 deletions
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. */