aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/java-tree.h
diff options
context:
space:
mode:
authorAndrew Haley <aph@redhat.com>2004-07-21 16:03:43 +0000
committerAndrew Haley <aph@gcc.gnu.org>2004-07-21 16:03:43 +0000
commit00150bf9f31d6a0ec576ead73a315f26b1c31749 (patch)
tree1785e3e0f34d4daf27613e8a698fd2c59ee721f3 /gcc/java/java-tree.h
parent5d16533a079388246d53311790a4a4b2a16aa6c6 (diff)
downloadgcc-00150bf9f31d6a0ec576ead73a315f26b1c31749.zip
gcc-00150bf9f31d6a0ec576ead73a315f26b1c31749.tar.gz
gcc-00150bf9f31d6a0ec576ead73a315f26b1c31749.tar.bz2
verify.c (verify_jvm_instructions): Comment change only.
2004-07-20 Andrew Haley <aph@redhat.com> * verify.c (verify_jvm_instructions): Comment change only. * typeck.c (build_java_array_type): Add size field to array name. * java-tree.h (LOCAL_SLOT_P): New. (update_aliases): Add PC argument. (pushdecl_function_level): New function. * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL, MODIFY_EXPR, and SAVE_EXPR. (java_gimplify_modify_expr): New function. * expr.c (push_type_0): Call find_stack_slot() to create temporary. (expand_iinc): Pass PC to update_aliases(). (STORE_INTERNAL): Likewise. (process_jvm_instruction): Likewise. * decl.c (base_decl_map): New variable. (uniq): New variable. (update_aliases): Rewrite with more thorough checking. (debug_variable_p): New function. (push_jvm_slot): Don't initialize local variable. Don't pushdecl. (check_local_named_variable): Delete whole function. (initialize_local_variable): New function. (check_local_unnamed_variable): Add checks and comments. (find_local_variable): Rewrite. (java_replace_reference): New function. (function_binding_level): New variable. (pushdecl_function_level): New function. (maybe_pushlevels): Set DECL_LOCAL_END_PC. (maybe_pushlevels): Call pushdecl() on each of the new decls. (start_java_method): Reset uniq. Create base_decl_map. Set function_binding_level. (end_java_method): Null unused fields to save memory. From-SVN: r85009
Diffstat (limited to 'gcc/java/java-tree.h')
-rw-r--r--gcc/java/java-tree.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h
index 5f33ec5..44a2ed9 100644
--- a/gcc/java/java-tree.h
+++ b/gcc/java/java-tree.h
@@ -925,6 +925,8 @@ union lang_tree_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)
+#define LOCAL_SLOT_P(NODE) \
+ (DECL_LANG_SPECIFIC (NODE)->u.v.local_slot)
/* Create a DECL_LANG_SPECIFIC if necessary. */
#define MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC(T) \
if (DECL_LANG_SPECIFIC (T) == NULL) \
@@ -1010,7 +1012,8 @@ struct lang_decl_var GTY(())
tree owner;
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. */
+ unsigned int freed : 1; /* Decl is no longer in scope. */
+ unsigned int local_slot : 1; /* Decl is a temporary in the stack frame. */
};
/* This is what 'lang_decl' really points to. */
@@ -1176,7 +1179,7 @@ extern void set_java_signature (tree, tree);
extern tree build_static_field_ref (tree);
extern tree build_address_of (tree);
extern tree find_local_variable (int index, tree type, int pc);
-extern void update_aliases (tree decl, int index);
+extern void update_aliases (tree decl, int index, int pc);
extern tree find_stack_slot (int index, tree type);
extern tree build_prim_array_type (tree, HOST_WIDE_INT);
extern tree build_java_array_type (tree, HOST_WIDE_INT);
@@ -1254,6 +1257,8 @@ extern void java_layout_seen_class_methods (void);
extern void check_for_initialization (tree, tree);
extern tree pushdecl_top_level (tree);
+extern tree pushdecl_function_level (tree);
+extern tree java_replace_reference (tree, bool);
extern int alloc_class_constant (tree);
extern void init_expr_processing (void);
extern void push_super_field (tree, tree);