diff options
author | Tom Tromey <tromey@redhat.com> | 2007-08-17 15:19:39 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2007-08-17 15:19:39 +0000 |
commit | 3d4e2766256df1da1986d4819ed1d184a7b1856b (patch) | |
tree | b4740b1c9b8809e0eb41a3c75d252ad2c54600a1 /gcc/java/verify-glue.c | |
parent | 4bf6c438d2117f8473b36b84eb8bd44487631efa (diff) | |
download | gcc-3d4e2766256df1da1986d4819ed1d184a7b1856b.zip gcc-3d4e2766256df1da1986d4819ed1d184a7b1856b.tar.gz gcc-3d4e2766256df1da1986d4819ed1d184a7b1856b.tar.bz2 |
tree.h (struct tree_label_decl): Removed old "java" fields.
gcc:
* tree.h (struct tree_label_decl): Removed old "java" fields.
gcc/java:
* java-tree.h (LABEL_TYPE_STATE): Removed.
(load_type_state): Removed.
(LABEL_PC): Removed.
(LABEL_VERIFIED): Removed.
(type_states): Declare.
* expr.c (type_states): New global.
(load_type_state): Now static. Use type_states. Changed
argument.
(lookup_label): Don't set LABEL_PC.
(expand_byte_code): Don't use LABEL_VERIFIED.
(note_instructions): Initialize type_states.
* verify-glue.c (vfy_note_stack_depth): Rewrote.
(vfy_note_stack_type): Use type_states.
(vfy_note_local_type): Likewise.
From-SVN: r127587
Diffstat (limited to 'gcc/java/verify-glue.c')
-rw-r--r-- | gcc/java/verify-glue.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/gcc/java/verify-glue.c b/gcc/java/verify-glue.c index 7b16e16..3dfe608 100644 --- a/gcc/java/verify-glue.c +++ b/gcc/java/verify-glue.c @@ -393,37 +393,41 @@ vfy_get_primitive_type (int type) void vfy_note_stack_depth (vfy_method *method, int pc, int depth) { - tree label = lookup_label (pc); - LABEL_TYPE_STATE (label) = make_tree_vec (method->max_locals + depth); + tree val = make_tree_vec (method->max_locals + depth); + VEC_replace (tree, type_states, pc, val); + /* Called for side effects. */ + lookup_label (pc); } void vfy_note_stack_type (vfy_method *method, int pc, int slot, vfy_jclass type) { - tree label, vec; + tree vec; slot += method->max_locals; if (type == object_type_node) type = object_ptr_type_node; - label = lookup_label (pc); - vec = LABEL_TYPE_STATE (label); + vec = VEC_index (tree, type_states, pc); TREE_VEC_ELT (vec, slot) = type; + /* Called for side effects. */ + lookup_label (pc); } void vfy_note_local_type (vfy_method *method ATTRIBUTE_UNUSED, int pc, int slot, vfy_jclass type) { - tree label, vec; + tree vec; if (type == object_type_node) type = object_ptr_type_node; - label = lookup_label (pc); - vec = LABEL_TYPE_STATE (label); + vec = VEC_index (tree, type_states, pc); TREE_VEC_ELT (vec, slot) = type; + /* Called for side effects. */ + lookup_label (pc); } void |