diff options
author | Alexandre Petit-Bianco <apbianco@cygnus.com> | 1998-11-19 01:54:44 +0000 |
---|---|---|
committer | Alexandre Petit-Bianco <apbianco@gcc.gnu.org> | 1998-11-18 17:54:44 -0800 |
commit | c877974e79791c251316548175df8749ed657df9 (patch) | |
tree | 865a2a98275258f86565ef8f672d4b7845d11d54 /gcc/java/java-tree.h | |
parent | 423165659be7520d02a498334fab715718b4fab8 (diff) | |
download | gcc-c877974e79791c251316548175df8749ed657df9.zip gcc-c877974e79791c251316548175df8749ed657df9.tar.gz gcc-c877974e79791c251316548175df8749ed657df9.tar.bz2 |
class.c (unmangle_classname): Set QUALIFIED_P when appropriate.
Wed Nov 18 23:54:53 1998 Alexandre Petit-Bianco <apbianco@cygnus.com>
* class.c (unmangle_classname): Set QUALIFIED_P when appropriate.
(layout_class): Cope with methods featuring WFL in decl names.
* decl.c (unqualified_object_id_node): New global variable,
initialized.
(build_decl_no_layout): Removed.
* expr.c (build_primtype_type_ref): Handle Double.
(java_lang_expand_expr): Fixed indentations.
* java-tree.h (CLASS_METHOD_CHECKED_P): Flag deleted.
(flag_wall, flag_redundant, flag_not_overriding,
flag_static_local_jdk1_1, unqualified_object_id_node): Global
variable declarations.
(build_decl_no_layout): Removed prototype.
(java_get_real_method_name): Added prototype.
(IS_UNCHECKED_EXPRESSION_P): Renamed IS_UNCHECKED_EXCEPTION_P.
(java_parse_abort_on_error): Macro now just returns.
* jcf-parse.c (jcf_parse_source): Check fclose returned
value. Call emit_register_classes if java_report_errors returns
zero.
* lanc.c (flag_wall, flag_redundant, flag_not_overriding,
flag_static_local_jdk1_1): New integer flags.
(lang_decode_option): New flags set here.
* parse.h (GET_REAL_TYPE, GET_METHOD_NAME): New macros.
(OBSOLETE_MODIFIER_WARNING): Issue error message conditionally to
the flag_redundant variable.
(SET_TYPE_FOR_RESOLUTION): Consider Object being java.lang.Object
when parsing java.lang.Object class.
(BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Added terminal
NULL_TREE to build.
(resolve_qualified_expression_name): Fixed indentation.
(patch_array_ref): Changed prototype.
(not_initialized_as_it_should_p): Prototype removed.
(java_report_errors): Added function prototype.
* parse.y (formal_parameter:): Changed error message for not yet
supported final parameters.
(class_type_list:): Set both PURPOSE and VALUE of created
TREE_LIST to be class_type.
(primary_no_new_array:): Handle class literals on primitive types.
(parse_warning_context): Reinstalled correct force_error and
do_warning flags setups.
(java_report_errors): Changed prototype. Return java_error_count
value.
(variable_redefinition_error): Consider treating variable type as
a fake pointer.
(create_interface): Warn about redundant abstract modifier if
flag_redundant is set. Changed error message.
(lookup_field_wrapper): Save/restore globals before/after looking
up field.
(duplicate_declaration_error_p): Consider treating declaration
type as a fake pointer.
(register_fields): Extract real type from dependency node. Check
for duplicate field declaration after type adjustment. Use
DECL_INITIAL to store static final initialized values.
(method_header): Extract real function type from dependency node.
(check_abstract_method_header): Use GET_METHOD_NAME.
(obtain_incomplete_type): Layout fake pointer type.
(safe_layout_class): Don't try to check for methods before layout.
(java_complete_class): Don't check for correct throws clause
elements inheritance here.
(resolve_and_layout): Broadened name parameter meaning.
(reset_method_name): Use GET_METHOD_NAME.
(java_get_real_method_name): New function.
(java_check_regular_methods): Don't check methods in
java.lang.Object. Verify lineage of throws clause elements. Use
flag_no_overriding in warning report.
(check_throws_clauses): Don't check if class was from
bytecode. Use IS_UNCHECKED_EXCEPTION_P macro.
(java_check_methods): Don't set CLASS_METHOD_CHECKED_P flag.
(declare_local_variables): Use flag_static_local_jdk1_1 to report
warning on unsupported final local variables. Use build_decl
instead of build_decl_no_layout. Get real local variable type from
dependency node.
(source_start_java_method): Get real parameter type from
dependency node. Call build_decl instead of build_decl_no_layout.
(java_layout_classes): Reverse tree and layout type and class as
required. Mark class as loaded when done.
(resolve_field_access): Fixed indentation. Restricted condition
leading to static field access code generation. Set field_type
decl's TREE_TYPE if QUAL_DECL_TYPE not available.
(resolve_qualified_expression_name): Initialize type_found to
null. Handle static field resolved during qualification. Fixed
layout on non primitive field decl types.
(not_accessible_p): Fixed typo in comment.
(patch_method_invocation): Resolve and layout class to search from
type.
(lookup_method_invoke): Keep integer constant 0 as is. Resolve and
layout non primitive type, if necessary. Make method node only to
report errors.
(find_applicable_accessible_methods_list): Consider WFL'ed method
decl names. Fixed indentation.
(argument_types_convertible): Resolve and layout target type if
necessary.
(java_complete_tree): Fixed indentation problems. Rewrote
CALL_EXPR thrown exceptions check. Re-installed further processing
of the assignment in certain cases.
(patch_assignment): Call maybe_build_primttype_type_ref to perform
inlining on class literals.
(valid_builtin_assignconv_identity_widening_p): Cope with constant
0 literal.
(valid_method_invocation_conversion_p): Likewise.
(patch_string): Temporary disable forbidden use of `this' in
explicit constructor invocations when doing string concatenation
within their scope.
(patch_unaryop): Added comment. Reinstalled code to disable
further check on assignment operation with cast expression RHS.
(patch_switch_statement): Fixed indentation.
(build_try_statement): Call build_decl instead of
build_decl_no_layout.
(patch_synchronized_statement): Likewise.
(patch_throw_statement): Use IS_UNCHECKED_EXCEPTION_P instead of
IS_UNCHECKED_EXPRESSION_P.
(check_thrown_exceptions_do): Changed leading comment. Resolve and
layout argument exception type.
(purge_unchecked_exceptions): Use IS_UNCHECKED_EXCEPTION_P instead
of IS_UNCHECKED_EXPRESSION_P.
Fixed problems found when compiling a mixture of .class and .java
files in the same package. Some support for the compilation of libjava.
From-SVN: r23704
Diffstat (limited to 'gcc/java/java-tree.h')
-rw-r--r-- | gcc/java/java-tree.h | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h index de9e1a3..72bc026 100644 --- a/gcc/java/java-tree.h +++ b/gcc/java/java-tree.h @@ -58,7 +58,6 @@ struct JCF; 6: CAN_COMPLETE_NORMALLY (in statement nodes). Usage of TYPE_LANG_FLAG_?: - 0: CLASS_METHOD_CHECKED_P (in RECORD_TYPE) 1: TYPE_ARRAY_P (in RECORD_TYPE). 2: CLASS_LOADED_P (in RECORD_TYPE). 3: CLASS_FROM_SOURCE_P (in RECORD_TYPE). @@ -125,6 +124,12 @@ extern int flag_assume_compiled; extern int flag_emit_class_files; +/* Turned to 1 if -Wall was encountered. See lang.c for their meanings. */ +extern int flag_wall; +extern int flag_redundant; +extern int flag_not_overriding; +extern int flag_static_local_jdk1_1; + /* The Java .class file that provides main_class; the main input file. */ extern struct JCF main_jcf[1], *current_jcf; @@ -182,6 +187,7 @@ extern tree float_type_node; extern tree double_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 throwable_type_node; @@ -518,7 +524,6 @@ extern tree build_field_ref PROTO ((tree, tree, tree)); extern void pushdecl_force_head PROTO ((tree)); extern tree build_java_binop PROTO ((enum tree_code, tree, tree, tree)); extern tree binary_numeric_promotion PROTO ((tree, tree, tree *, tree *)); -extern tree build_decl_no_layout PROTO ((enum tree_code, tree, tree)); extern tree build_java_arrayaccess PROTO ((tree, tree, tree)); extern tree build_newarray PROTO ((int, tree)); extern tree build_anewarray PROTO ((tree, tree)); @@ -548,6 +553,7 @@ extern void write_classfile PROTO ((tree)); extern char *print_int_node PROTO ((tree)); extern void parse_error_context VPROTO ((tree cl, char *msg, ...)); extern tree build_primtype_type_ref PROTO ((char *)); +extern tree java_get_real_method_name PROTO ((tree)); /* Access flags etc for a method (a FUNCTION_DECL): */ @@ -679,9 +685,6 @@ extern tree *type_map; /* FIXME this use of TREE_TYPE conflicts with something or other. */ #define TYPE_ARRAY_ELEMENT(ATYPE) TREE_TYPE(ATYPE) -/* True if methods in class TYPE have been checked. */ -#define CLASS_METHOD_CHECKED_P(TYPE) TYPE_LANG_FLAG_0 (TYPE) - /* True if class TYPE has been loaded. */ #define CLASS_LOADED_P(TYPE) TYPE_LANG_FLAG_2 (TYPE) @@ -819,8 +822,8 @@ extern tree *type_map; /* Using a CATCH_EXPR node */ #define CATCH_EXPR_GET_EXPR(NODE, V) (V ? LABELED_BLOCK_BODY (NODE) : (NODE)) -/* Non zero if TYPE is an unchecked expression */ -#define IS_UNCHECKED_EXPRESSION_P(TYPE) \ +/* Non zero if TYPE is an unchecked exception */ +#define IS_UNCHECKED_EXCEPTION_P(TYPE) \ (inherits_from_p ((TYPE), runtime_exception_type_node) \ || inherits_from_p ((TYPE), error_exception_type_node)) @@ -830,8 +833,5 @@ extern tree *type_map; { \ extern int java_error_count; \ if (java_error_count) \ - { \ - java_report_errors (); \ - return; \ - } \ + return; \ } |