diff options
author | Mark Mitchell <mark@codesourcery.com> | 2000-09-23 17:09:39 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2000-09-23 17:09:39 +0000 |
commit | 19e223db83b86b7262db77c9ea67e7d6d32a0d73 (patch) | |
tree | 95f1fa9690fd278ef5602931fc5a32ddfca8d2bd /gcc/java/java-tree.h | |
parent | a3b434a23543ba4fe8ac546382475e145b8be83f (diff) | |
download | gcc-19e223db83b86b7262db77c9ea67e7d6d32a0d73.zip gcc-19e223db83b86b7262db77c9ea67e7d6d32a0d73.tar.gz gcc-19e223db83b86b7262db77c9ea67e7d6d32a0d73.tar.bz2 |
Make-lang.in (JAVA_SRCS): Include java-tree.h.
* Make-lang.in (JAVA_SRCS): Include java-tree.h.
* Makefile.in (parse.o): Depend on ggc.h.
(class.o): Likewise.
(constants.o): Likewise.
(decl.o): Likewise.
(expr.o): Likewise.
(jcf-parse.o): Likewise.
(jcf-write.o): Likewise.
(mangle.o): Likewise.
* class.c: Include ggc.h.
(build_static_field_ref): Register GC roots.
(layout_class): Likewise.
(init_class_processing): Likewise.
* constants.c: Include ggc.h.
(current_constant_pool_data_ref): Remove.
(tag_nodes): Move it to ...
(get_tag_node): ... here. Register GC roots.
* decl.c: Include ggc.h. Remove many global tree definitions.
(throw_node): Define.
(java_global_trees): Likewise.
(predef_filenames): Make the size a constant.
(init_decl_processing): Adjust accordingly.
(init_decl_processing): Call init_jcf_parse. Register GC roots.
* expr.c: Include ggc.h.
(init_expr_processing): Register GC roots.
(build_invokeinterface): Likewise.
* java-tree.h: Replace extern tree declarations with macros.
(java_global_trees): New variable.
(java_tree_index): New enumeration.
(init_jcf_parse): Declare.
* jcf-parse.c: Include ggc.h.
(current_class): Remove declaration.
(main_class): Likewise.
(all_class_list): Likewise.
(predefined_filename_p): Adjust for constant size of
predef_filenames.
(init_jcf_parse): New function.
* jcf-write.c: Include ggc.h.
(generate_classfile): Register GC roots.
(append_synthetic_attribute): Likewise.
(append_innerclass_attribute_entry): Likewise.
* lang.c: Include ggc.h.
(lang_print_error): Register GC roots.
* parse.h (struct parser_ctxt): Rename fields to avoid conflicts
with macros.
* parse.y: Include ggc.h.
(wfl_operator): Remove.
(goal): Register GC roots.
(java_pop_parser_context): Adjust for new field names.
(java_parser_context_save_global): Likewse.
(java_parser_context_restore_global): Likewise.
(java_parser_context_suspend): Likewise.
(java_parser_context_resume): Likewise.
(verify_constructor_circularity): Register GC roots.
(lookup_cl): Likewise.
(java_reorder_fields): Likewise.
(build_current_this): Likewise.
(class_in_current_package): Likewise.
(argument_types_convertible): Likewise.
(patch_cast): Rename wfl_op parameter to avoid macro conflicts.
From-SVN: r36581
Diffstat (limited to 'gcc/java/java-tree.h')
-rw-r--r-- | gcc/java/java-tree.h | 500 |
1 files changed, 381 insertions, 119 deletions
diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h index 18cdf7a..0b75387 100644 --- a/gcc/java/java-tree.h +++ b/gcc/java/java-tree.h @@ -121,13 +121,16 @@ struct JCF; extern int compiling_from_source; /* The class defined by the actual (main) file we are compiling. */ -extern tree main_class; +#define main_class \ + java_global_trees[JTI_MAIN_CLASS] /* The class we are currently processing. */ -extern tree current_class; +#define current_class \ + java_global_trees[JTI_CURRENT_CLASS] /* List of all class DECLs seen so far. */ -extern tree all_class_list; +#define all_class_list \ + java_global_trees[JTI_ALL_CLASS_LIST] /* Nonzero if we should make is_compiled_class always return 1 for appropriate classes that we're referencing. */ @@ -205,139 +208,397 @@ typedef struct CPool constant_pool; #define COMPONENT_REF_SIGNATURE(CPOOL, IDX) \ NAME_AND_TYPE_SIGNATURE (CPOOL, COMPONENT_REF_NAME_AND_TYPE(CPOOL, IDX)) +enum java_tree_index +{ + JTI_PROMOTED_BYTE_TYPE_NODE, + JTI_PROMOTED_SHORT_TYPE_NODE, + JTI_PROMOTED_CHAR_TYPE_NODE, + JTI_PROMOTED_BOOLEAN_TYPE_NODE, + + JTI_BYTE_TYPE_NODE, + JTI_SHORT_TYPE_NODE, + JTI_INT_TYPE_NODE, + JTI_LONG_TYPE_NODE, + + JTI_UNSIGNED_BYTE_TYPE_NODE, + JTI_UNSIGNED_SHORT_TYPE_NODE, + JTI_UNSIGNED_INT_TYPE_NODE, + JTI_UNSIGNED_LONG_TYPE_NODE, + + JTI_BOOLEAN_TYPE_NODE, + + JTI_OBJECT_TYPE_NODE, + JTI_UNQUALIFIED_OBJECT_ID_NODE, + JTI_OBJECT_PTR_TYPE_NODE, + JTI_STRING_TYPE_NODE, + JTI_STRING_PTR_TYPE_NODE, + JTI_THROWABLE_TYPE_NODE, + JTI_RUNTIME_EXCEPTION_TYPE_NODE, + JTI_ERROR_EXCEPTION_TYPE_NODE, + JTI_RAWDATA_PTR_TYPE_NODE, + + JTI_BYTE_ARRAY_TYPE_NODE, + JTI_SHORT_ARRAY_TYPE_NODE, + JTI_INT_ARRAY_TYPE_NODE, + JTI_LONG_ARRAY_TYPE_NODE, + JTI_BOOLEAN_ARRAY_TYPE_NODE, + JTI_CHAR_ARRAY_TYPE_NODE, + JTI_DOUBLE_ARRAY_TYPE_NODE, + JTI_FLOAT_ARRAY_TYPE_NODE, + JTI_ARRAY_ARRAY_TYPE_NODE, + JTI_OBJECT_ARRAY_TYPE_NODE, + JTI_STRING_ARRAY_TYPE_NODE, + JTI_BOOLEAN_ARRAY_VTABLE, + JTI_BYTE_ARRAY_VTABLE, + JTI_CHAR_ARRAY_VTABLE, + JTI_SHORT_ARRAY_VTABLE, + JTI_INT_ARRAY_VTABLE, + JTI_LONG_ARRAY_VTABLE, + JTI_FLOAT_ARRAY_VTABLE, + JTI_DOUBLE_ARRAY_VTABLE, + JTI_TYPE_IDENTIFIER_NODE, + JTI_INIT_IDENTIFIER_NODE, + JTI_CLINIT_IDENTIFIER_NODE, + JTI_FINIT_IDENTIFIER_NODE, + JTI_FINIT_LEG_IDENTIFIER_NODE, + JTI_VOID_SIGNATURE_NODE, + JTI_LENGTH_IDENTIFIER_NODE, + JTI_THIS_IDENTIFIER_NODE, + JTI_SUPER_IDENTIFIER_NODE, + JTI_CONTINUE_IDENTIFIER_NODE, + JTI_ACCESS0_IDENTIFIER_NODE, + JTI_ONE_ELT_ARRAY_DOMAIN_TYPE, + + JTI_RETURN_ADDRESS_TYPE_NODE, + + JTI_BOOLEAN_TRUE_NODE, + JTI_BOOLEAN_FALSE_NODE, + + JTI_LONG_ZERO_NODE, + JTI_FLOAT_ZERO_NODE, + JTI_DOUBLE_ZERO_NODE, + JTI_INTEGER_NEGATIVE_ONE_NODE, + JTI_INTEGER_TWO_NODE, + JTI_INTEGER_FOUR_NODE, + JTI_EMPTY_STMT_NODE, + + JTI_METHODTABLE_TYPE, + JTI_METHODTABLE_PTR_TYPE, + + JTI_UTF8CONST_TYPE, + JTI_UTF8CONST_PTR_TYPE, + + JTI_CLASS_TYPE_NODE, + JTI_CLASS_PTR_TYPE, + JTI_FIELD_TYPE_NODE, + JTI_CONSTANTS_TYPE_NODE, + JTI_DTABLE_TYPE, + JTI_DTABLE_PTR_TYPE, + JTI_FIELD_PTR_TYPE_NODE, + JTI_FIELD_INFO_UNION_NODE, + JTI_EXCEPTION_TYPE, + JTI_EXCEPTION_PTR_TYPE, + JTI_LINENUMBERENTRY_TYPE, + JTI_LINENUMBERS_TYPE, + JTI_METHOD_TYPE_NODE, + JTI_METHOD_PTR_TYPE_NODE, + + JTI_END_PARAMS_NODE, + + JTI_ALLOC_OBJECT_NODE, + JTI_SOFT_INSTANCEOF_NODE, + JTI_SOFT_CHECKCAST_NODE, + JTI_SOFT_INITCLASS_NODE, + JTI_SOFT_NEWARRAY_NODE, + JTI_SOFT_ANEWARRAY_NODE, + JTI_SOFT_MULTIANEWARRAY_NODE, + JTI_SOFT_BADARRAYINDEX_NODE, + JTI_SOFT_NULLPOINTER_NODE, + JTI_SOFT_CHECKARRAYSTORE_NODE, + JTI_SOFT_MONITORENTER_NODE, + JTI_SOFT_MONITOREXIT_NODE, + JTI_SOFT_LOOKUPINTERFACEMETHOD_NODE, + JTI_SOFT_LOOKUPJNIMETHOD_NODE, + JTI_SOFT_GETJNIENVNEWFRAME_NODE, + JTI_SOFT_JNIPOPSYSTEMFRAME_NODE, + JTI_SOFT_FMOD_NODE, + JTI_SOFT_EXCEPTIONINFO_CALL_NODE, + JTI_SOFT_IDIV_NODE, + JTI_SOFT_IREM_NODE, + JTI_SOFT_LDIV_NODE, + JTI_SOFT_LREM_NODE, + + JTI_ACCESS_FLAGS_TYPE_NODE, + + JTI_CLASS_DTABLE_DECL, + + JTI_NATIVECODE_PTR_ARRAY_TYPE_NODE, + + JTI_WFL_OPERATOR, + JTI_CURRENT_CONSTANT_POOL_DATA_REF, + + JTI_MAIN_CLASS, + JTI_CURRENT_CLASS, + JTI_ALL_CLASS_LIST, + + JTI_MAX +}; + +extern tree java_global_trees[JTI_MAX]; + /* "Promoted types" that are used for primitive types smaller than int. We could use int_type_node, but then we would lose type information (such as needed for debugging). */ -extern tree promoted_byte_type_node; -extern tree promoted_short_type_node; -extern tree promoted_char_type_node; -extern tree promoted_boolean_type_node; - -extern tree byte_type_node; -extern tree short_type_node; -extern tree int_type_node; -extern tree long_type_node; - -extern tree unsigned_byte_type_node; -extern tree unsigned_short_type_node; -extern tree unsigned_int_type_node; -extern tree unsigned_long_type_node; - -extern tree boolean_type_node; - -extern tree object_type_node; -extern tree unqualified_object_id_node; -extern tree object_ptr_type_node; -extern tree string_type_node; -extern tree string_ptr_type_node; -extern tree throwable_type_node; -extern tree runtime_exception_type_node; -extern tree error_exception_type_node; -extern tree rawdata_ptr_type_node; - -extern tree *predef_filenames; -extern int predef_filenames_size; - -extern tree byte_array_type_node; -extern tree short_array_type_node; -extern tree int_array_type_node; -extern tree long_array_type_node; -extern tree boolean_array_type_node; -extern tree char_array_type_node; -extern tree double_array_type_node; -extern tree float_array_type_node; -extern tree array_array_type_node; -extern tree object_array_type_node; -extern tree string_array_type_node; -extern tree boolean_array_vtable; -extern tree byte_array_vtable; -extern tree char_array_vtable; -extern tree short_array_vtable; -extern tree int_array_vtable; -extern tree long_array_vtable; -extern tree float_array_vtable; -extern tree double_array_vtable; -extern tree TYPE_identifier_node; /* "TYPE" */ -extern tree init_identifier_node; /* "<init>" */ -extern tree clinit_identifier_node; /* "<clinit>" */ -extern tree finit_identifier_node; /* "finit$" */ -extern tree finit_leg_identifier_node; /* "$finit$" */ -extern tree void_signature_node; /* "()V" */ -extern tree length_identifier_node; /* "length" */ -extern tree this_identifier_node; /* "this" */ -extern tree super_identifier_node; /* "super" */ -extern tree continue_identifier_node; /* "continue" */ -extern tree access0_identifier_node; /* "access$0" */ -extern tree one_elt_array_domain_type; +#define promoted_byte_type_node \ + java_global_trees[JTI_PROMOTED_BYTE_TYPE_NODE] +#define promoted_short_type_node \ + java_global_trees[JTI_PROMOTED_SHORT_TYPE_NODE] +#define promoted_char_type_node \ + java_global_trees[JTI_PROMOTED_CHAR_TYPE_NODE] +#define promoted_boolean_type_node \ + java_global_trees[JTI_PROMOTED_BOOLEAN_TYPE_NODE] + +#define byte_type_node \ + java_global_trees[JTI_BYTE_TYPE_NODE] +#define short_type_node \ + java_global_trees[JTI_SHORT_TYPE_NODE] +#define int_type_node \ + java_global_trees[JTI_INT_TYPE_NODE] +#define long_type_node \ + java_global_trees[JTI_LONG_TYPE_NODE] + +#define unsigned_byte_type_node \ + java_global_trees[JTI_UNSIGNED_BYTE_TYPE_NODE] +#define unsigned_short_type_node \ + java_global_trees[JTI_UNSIGNED_SHORT_TYPE_NODE] +#define unsigned_int_type_node \ + java_global_trees[JTI_UNSIGNED_INT_TYPE_NODE] +#define unsigned_long_type_node \ + java_global_trees[JTI_UNSIGNED_LONG_TYPE_NODE] + +#define boolean_type_node \ + java_global_trees[JTI_BOOLEAN_TYPE_NODE] + +#define object_type_node \ + java_global_trees[JTI_OBJECT_TYPE_NODE] +#define unqualified_object_id_node \ + java_global_trees[JTI_UNQUALIFIED_OBJECT_ID_NODE] +#define object_ptr_type_node \ + java_global_trees[JTI_OBJECT_PTR_TYPE_NODE] +#define string_type_node \ + java_global_trees[JTI_STRING_TYPE_NODE] +#define string_ptr_type_node \ + java_global_trees[JTI_STRING_PTR_TYPE_NODE] +#define throwable_type_node \ + java_global_trees[JTI_THROWABLE_TYPE_NODE] +#define runtime_exception_type_node \ + java_global_trees[JTI_RUNTIME_EXCEPTION_TYPE_NODE] +#define error_exception_type_node \ + java_global_trees[JTI_ERROR_EXCEPTION_TYPE_NODE] +#define rawdata_ptr_type_node \ + java_global_trees[JTI_RAWDATA_PTR_TYPE_NODE] + +#define byte_array_type_node \ + java_global_trees[JTI_BYTE_ARRAY_TYPE_NODE] +#define short_array_type_node \ + java_global_trees[JTI_SHORT_ARRAY_TYPE_NODE] +#define int_array_type_node \ + java_global_trees[JTI_INT_ARRAY_TYPE_NODE] +#define long_array_type_node \ + java_global_trees[JTI_LONG_ARRAY_TYPE_NODE] +#define boolean_array_type_node \ + java_global_trees[JTI_BOOLEAN_ARRAY_TYPE_NODE] +#define char_array_type_node \ + java_global_trees[JTI_CHAR_ARRAY_TYPE_NODE] +#define double_array_type_node \ + java_global_trees[JTI_DOUBLE_ARRAY_TYPE_NODE] +#define float_array_type_node \ + java_global_trees[JTI_FLOAT_ARRAY_TYPE_NODE] +#define array_array_type_node \ + java_global_trees[JTI_ARRAY_ARRAY_TYPE_NODE] +#define object_array_type_node \ + java_global_trees[JTI_OBJECT_ARRAY_TYPE_NODE] +#define string_array_type_node \ + java_global_trees[JTI_STRING_ARRAY_TYPE_NODE] +#define boolean_array_vtable \ + java_global_trees[JTI_BOOLEAN_ARRAY_VTABLE] +#define byte_array_vtable \ + java_global_trees[JTI_BYTE_ARRAY_VTABLE] +#define char_array_vtable \ + java_global_trees[JTI_CHAR_ARRAY_VTABLE] +#define short_array_vtable \ + java_global_trees[JTI_SHORT_ARRAY_VTABLE] +#define int_array_vtable \ + java_global_trees[JTI_INT_ARRAY_VTABLE] +#define long_array_vtable \ + java_global_trees[JTI_LONG_ARRAY_VTABLE] +#define float_array_vtable \ + java_global_trees[JTI_FLOAT_ARRAY_VTABLE] +#define double_array_vtable \ + java_global_trees[JTI_DOUBLE_ARRAY_VTABLE] +#define TYPE_identifier_node \ + java_global_trees[JTI_TYPE_IDENTIFIER_NODE] /* "TYPE" */ +#define init_identifier_node \ + java_global_trees[JTI_INIT_IDENTIFIER_NODE] /* "<init>" */ +#define clinit_identifier_node \ + java_global_trees[JTI_CLINIT_IDENTIFIER_NODE] /* "<clinit>" */ +#define finit_identifier_node \ + java_global_trees[JTI_FINIT_IDENTIFIER_NODE] /* "finit$" */ +#define finit_leg_identifier_node \ + java_global_trees[JTI_FINIT_LEG_IDENTIFIER_NODE] /* "$finit$" */ +#define void_signature_node \ + java_global_trees[JTI_VOID_SIGNATURE_NODE] /* "()V" */ +#define length_identifier_node \ + java_global_trees[JTI_LENGTH_IDENTIFIER_NODE] /* "length" */ +#define this_identifier_node \ + java_global_trees[JTI_THIS_IDENTIFIER_NODE] /* "this" */ +#define super_identifier_node \ + java_global_trees[JTI_SUPER_IDENTIFIER_NODE] /* "super" */ +#define continue_identifier_node \ + java_global_trees[JTI_CONTINUE_IDENTIFIER_NODE] /* "continue" */ +#define access0_identifier_node \ + java_global_trees[JTI_ACCESS0_IDENTIFIER_NODE] /* "access$0" */ +#define one_elt_array_domain_type \ + java_global_trees[JTI_ONE_ELT_ARRAY_DOMAIN_TYPE] /* The type of the return address of a subroutine. */ -extern tree return_address_type_node; +#define return_address_type_node \ + java_global_trees[JTI_RETURN_ADDRESS_TYPE_NODE] /* Nodes for boolean constants TRUE and FALSE. */ -extern tree boolean_true_node, boolean_false_node; +#define boolean_true_node \ + java_global_trees[JTI_BOOLEAN_TRUE_NODE] +#define boolean_false_node \ + java_global_trees[JTI_BOOLEAN_FALSE_NODE] /* Integer constants not declared in tree.h. */ -extern tree long_zero_node; -extern tree float_zero_node; -extern tree double_zero_node; -extern tree integer_negative_one_node; -extern tree integer_two_node; -extern tree integer_four_node; -extern tree empty_stmt_node; +#define long_zero_node \ + java_global_trees[JTI_LONG_ZERO_NODE] +#define float_zero_node \ + java_global_trees[JTI_FLOAT_ZERO_NODE] +#define double_zero_node \ + java_global_trees[JTI_DOUBLE_ZERO_NODE] +#define integer_negative_one_node \ + java_global_trees[JTI_INTEGER_NEGATIVE_ONE_NODE] +#define integer_two_node \ + java_global_trees[JTI_INTEGER_TWO_NODE] +#define integer_four_node \ + java_global_trees[JTI_INTEGER_FOUR_NODE] +#define empty_stmt_node \ + java_global_trees[JTI_EMPTY_STMT_NODE] /* The type for struct methodtable. */ -extern tree methodtable_type; -extern tree methodtable_ptr_type; - -extern tree utf8const_type; -extern tree utf8const_ptr_type; - -extern tree class_type_node; -extern tree class_ptr_type; -extern tree field_type_node; -extern tree constants_type_node; -extern tree dtable_type, dtable_ptr_type; -extern tree field_ptr_type_node; -extern tree field_info_union_node; -extern tree method_type_node; -extern tree method_ptr_type_node; -#define nativecode_ptr_type_node ptr_type_node - -extern tree end_params_node; +#define methodtable_type \ + java_global_trees[JTI_METHODTABLE_TYPE] +#define methodtable_ptr_type \ + java_global_trees[JTI_METHODTABLE_PTR_TYPE] + +#define utf8const_type \ + java_global_trees[JTI_UTF8CONST_TYPE] +#define utf8const_ptr_type \ + java_global_trees[JTI_UTF8CONST_PTR_TYPE] + +#define class_type_node \ + java_global_trees[JTI_CLASS_TYPE_NODE] +#define class_ptr_type \ + java_global_trees[JTI_CLASS_PTR_TYPE] +#define field_type_node \ + java_global_trees[JTI_FIELD_TYPE_NODE] +#define constants_type_node \ + java_global_trees[JTI_CONSTANTS_TYPE_NODE] +#define dtable_type \ + java_global_trees[JTI_DTABLE_TYPE] +#define dtable_ptr_type \ + java_global_trees[JTI_DTABLE_PTR_TYPE] +#define field_ptr_type_node \ + java_global_trees[JTI_FIELD_PTR_TYPE_NODE] +#define field_info_union_node \ + java_global_trees[JTI_FIELD_INFO_UNION_NODE] +#define jexception_type \ + java_global_trees[JTI_EXCEPTION_TYPE] +#define jexception_ptr_type \ + java_global_trees[JTI_EXCEPTION_PTR_TYPE] +#define lineNumberEntry_type \ + java_global_trees[JTI_LINENUMBERENTRY_TYPE] +#define lineNumbers_type \ + java_global_trees[JTI_LINENUMBERS_TYPE] +#define method_type_node \ + java_global_trees[JTI_METHOD_TYPE_NODE] +#define method_ptr_type_node \ + java_global_trees[JTI_METHOD_PTR_TYPE_NODE] + +#define end_params_node \ + java_global_trees[JTI_END_PARAMS_NODE] /* References to internal libjava functions we use. */ -extern tree alloc_object_node; -extern tree soft_instanceof_node; -extern tree soft_checkcast_node; -extern tree soft_initclass_node; -extern tree soft_newarray_node; -extern tree soft_anewarray_node; -extern tree soft_multianewarray_node; -extern tree soft_badarrayindex_node; -extern tree soft_nullpointer_node; +#define alloc_object_node \ + java_global_trees[JTI_ALLOC_OBJECT_NODE] +#define soft_instanceof_node \ + java_global_trees[JTI_SOFT_INSTANCEOF_NODE] +#define soft_checkcast_node \ + java_global_trees[JTI_SOFT_CHECKCAST_NODE] +#define soft_initclass_node \ + java_global_trees[JTI_SOFT_INITCLASS_NODE] +#define soft_newarray_node \ + java_global_trees[JTI_SOFT_NEWARRAY_NODE] +#define soft_anewarray_node \ + java_global_trees[JTI_SOFT_ANEWARRAY_NODE] +#define soft_multianewarray_node \ + java_global_trees[JTI_SOFT_MULTIANEWARRAY_NODE] +#define soft_badarrayindex_node \ + java_global_trees[JTI_SOFT_BADARRAYINDEX_NODE] +#define soft_nullpointer_node \ + java_global_trees[JTI_SOFT_NULLPOINTER_NODE] extern tree throw_node[]; -extern tree soft_checkarraystore_node; -extern tree soft_monitorenter_node; -extern tree soft_monitorexit_node; -extern tree soft_lookupinterfacemethod_node; -extern tree soft_lookupjnimethod_node; -extern tree soft_getjnienvnewframe_node; -extern tree soft_jnipopsystemframe_node; -extern tree soft_fmod_node; -extern tree soft_exceptioninfo_call_node; -extern tree soft_idiv_node; -extern tree soft_irem_node; -extern tree soft_ldiv_node; -extern tree soft_lrem_node; - -extern tree access_flags_type_node; - -extern tree class_dtable_decl; +#define soft_checkarraystore_node \ + java_global_trees[JTI_SOFT_CHECKARRAYSTORE_NODE] +#define soft_monitorenter_node \ + java_global_trees[JTI_SOFT_MONITORENTER_NODE] +#define soft_monitorexit_node \ + java_global_trees[JTI_SOFT_MONITOREXIT_NODE] +#define soft_lookupinterfacemethod_node \ + java_global_trees[JTI_SOFT_LOOKUPINTERFACEMETHOD_NODE] +#define soft_lookupjnimethod_node \ + java_global_trees[JTI_SOFT_LOOKUPJNIMETHOD_NODE] +#define soft_getjnienvnewframe_node \ + java_global_trees[JTI_SOFT_GETJNIENVNEWFRAME_NODE] +#define soft_jnipopsystemframe_node \ + java_global_trees[JTI_SOFT_JNIPOPSYSTEMFRAME_NODE] +#define soft_fmod_node \ + java_global_trees[JTI_SOFT_FMOD_NODE] +#define soft_exceptioninfo_call_node \ + java_global_trees[JTI_SOFT_EXCEPTIONINFO_CALL_NODE] +#define soft_idiv_node \ + java_global_trees[JTI_SOFT_IDIV_NODE] +#define soft_irem_node \ + java_global_trees[JTI_SOFT_IREM_NODE] +#define soft_ldiv_node \ + java_global_trees[JTI_SOFT_LDIV_NODE] +#define soft_lrem_node \ + java_global_trees[JTI_SOFT_LREM_NODE] + +#define access_flags_type_node \ + java_global_trees[JTI_ACCESS_FLAGS_TYPE_NODE] + +#define class_dtable_decl \ + java_global_trees[JTI_CLASS_DTABLE_DECL] + +#define nativecode_ptr_array_type_node \ + java_global_trees[JTI_NATIVECODE_PTR_ARRAY_TYPE_NODE] + +#define PREDEF_FILENAMES_SIZE 7 +extern tree predef_filenames[PREDEF_FILENAMES_SIZE]; + +#define nativecode_ptr_type_node ptr_type_node /* They need to be reset before processing each class */ extern struct CPool *outgoing_cpool; -extern tree current_constant_pool_data_ref; +/* If non-NULL, an ADDR_EXPR referencing a VAR_DECL containing + the constant data array for the current class. */ +#define current_constant_pool_data_ref \ + java_global_trees[JTI_CURRENT_CONSTANT_POOL_DATA_REF] -extern tree wfl_operator; +#define wfl_operator \ + java_global_trees[JTI_WFL_OPERATOR] extern char *cyclic_inheritance_report; @@ -798,6 +1059,7 @@ extern unsigned long java_hash_hash_tree_node PARAMS ((hash_table_key)); extern boolean java_hash_compare_tree_node PARAMS ((hash_table_key, hash_table_key)); extern void java_check_methods PARAMS ((tree)); +extern void init_jcf_parse PARAMS((void)); /* We use ARGS_SIZE_RTX to indicate that gcc/expr.h has been included to declare `enum expand_modifier'. */ |