aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/expr.c
diff options
context:
space:
mode:
authorAlexandre Petit-Bianco <apbianco@cygnus.com>1998-11-19 01:54:44 +0000
committerAlexandre Petit-Bianco <apbianco@gcc.gnu.org>1998-11-18 17:54:44 -0800
commitc877974e79791c251316548175df8749ed657df9 (patch)
tree865a2a98275258f86565ef8f672d4b7845d11d54 /gcc/java/expr.c
parent423165659be7520d02a498334fab715718b4fab8 (diff)
downloadgcc-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/expr.c')
-rw-r--r--gcc/java/expr.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index 9bd1ca7..fd81d2c 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -1674,6 +1674,8 @@ build_primtype_type_ref (self_name)
typ = long_type_node;
else if (strncmp(class_name, "Float", 5) == 0)
typ = float_type_node;
+ else if (strncmp(class_name, "Double", 6) == 0)
+ typ = double_type_node;
else if (strncmp(class_name, "Boolean", 7) == 0)
typ = boolean_type_node;
else if (strncmp(class_name, "Char", 4) == 0)
@@ -1761,7 +1763,8 @@ java_lang_expand_expr (exp, target, tmode, modifier)
{
tree duplicate;
if (pushcase (TREE_OPERAND (exp, 0), case_identity,
- build_decl (LABEL_DECL, NULL_TREE, NULL_TREE), &duplicate) == 2)
+ build_decl (LABEL_DECL, NULL_TREE, NULL_TREE),
+ &duplicate) == 2)
{
EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (exp);
parse_error_context
@@ -1772,7 +1775,8 @@ java_lang_expand_expr (exp, target, tmode, modifier)
}
case DEFAULT_EXPR:
- pushcase (NULL_TREE, 0, build_decl (LABEL_DECL, NULL_TREE, NULL_TREE), NULL);
+ pushcase (NULL_TREE, 0,
+ build_decl (LABEL_DECL, NULL_TREE, NULL_TREE), NULL);
return const0_rtx;
case SWITCH_EXPR: