Commit Graph

567 Commits

Author SHA1 Message Date
Per Bothner
e333a61815 parse.y (resolve_qualified_expression_name): In case of inaccessible class don't use not_accessible_field_error...
* parse.y (resolve_qualified_expression_name):  In case of inaccessible
	class don't use not_accessible_field_error, which can get confused.

From-SVN: r77525
2004-02-08 23:41:55 -08:00
Kazu Hirata
136e64db5e utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES with targetm.calls.promote_prototypes.
ada/
	* ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
	with targetm.calls.promote_prototypes.

	gcc/
	* config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
	TARGET_PROMOTE_PROTOTYPES.

	cp/
	* call.c (type_passed_as): Replace PROMOTE_PROTOTYPES with
	targetm.calls.promote_prototypes.

	java/
	* Make-lang.in (java/decl.o, java/expr.o, java/parse.o):
	Depend on target.h.
	* decl.c: Include target.h.
	(start_java_method): Replace PROMOTE_PROTOTYPES with
	targetm.calls.promote_prototypes.
	* expr.c: Include target.h.
	(pop_arguments): Replace PROMOTE_PROTOTYPES with
	targetm.calls.promote_prototypes.
	* parse.y: Include target.h.
	(start_complete_expand_method): Replace PROMOTE_PROTOTYPES
	with targetm.calls.promote_prototypes.

From-SVN: r77345
2004-02-05 22:07:33 +00:00
Andrew Haley
ea095e9aab parse.y (check_interface_throws_clauses): Make sure class_decl has been loaded.
2004-01-27  Andrew Haley  <aph@redhat.com>

        java/13273
        * parse.y (check_interface_throws_clauses): Make sure class_decl
        has been loaded.

From-SVN: r76732
2004-01-27 17:30:06 +00:00
Jeff Sturm
5238574fae re PR java/13733 (The result of an assignment operator is the LHS after assignment, not the RHS)
PR java/13733
* parse.y (patch_assignment): Don't modify lhs_type for
reference assignments.

From-SVN: r76382
2004-01-22 23:45:10 +00:00
Andrew Haley
85194ee94a re PR java/12755 (Binary Compatibility: Resolving static methods and classes is not thread safe)
2004-01-09  Andrew Haley  <aph@redhat.com>

	PR java/12755:
	* parse.y (java_fix_constructors):  Set output_class.
	(java_reorder_fields): Likewise.
	(java_layout_classes): Likewise.
	(java_expand_classes): Generate indirect dispatch tables.
	(java_expand_classes): Set output_class.
	(java_finish_classes): Likewise.
	* lang.c (java_init): Turn on always_initialize_class_p if we're
	using indirect dis[atch.
	(java_decl_ok_for_sibcall): Use output_class, not current_class.
	(java_get_callee_fndecl): Use class local atable.
	* jcf-parse.c
	(always_initialize_class_p): Decl moved to java-tree.h.
	(HANDLE_CLASS_INFO): Set output_class.
	(read_class): Likewise.
	(parse_class_file): Call gen_indirect_dispatch_tables.
	(parse_zip_file_entries): Set output_class.
	(java_parse_file): Set output_class.  Don't emit symbol tables.
	* java-tree.h (output_class): New.
	Remove global declarations for otable, atable, and ctable.
	(always_initialize_class_p): moved here from decl.c.
	(DECL_OWNER): New.
	(TYPE_ATABLE_METHODS, TYPE_ATABLE_SYMS_DECL, TYPE_ATABLE_DECL,
	TYPE_OTABLE_METHODS, TYPE_OTABLE_SYMS_DECL, TYPE_OTABLE_DECL,
	TYPE_CTABLE_DECL, TYPE_CATCH_CLASSES): New.
	(struct lang_type): Add otable_methods, otable_decl,
	otable_syms_decl, atable_methods, atable_decl, atable_syms_decl,
	ctable_decl, catch_classes, type_to_runtime_map.
	* expr.c (build_field_ref): Make otable, atable, and ctable class
	local rather than global.
	(build_known_method_ref): Likewise.
	(build_invokeinterface): Likewise.
	(java_expand_expr): Pass runtime type (rather than actual type) to
	expand_start_catch.
	* except.c (prepare_eh_table_type): Create TYPE_TO_RUNTIME_MAP for
	this class.  Look up each class in that map to delete duplicates.
	(expand_end_java_handler): Pass runtime type (rather than actual
	type) to expand_start_catch.
	* decl.c: (always_initialize_class_p): Decl moved to java-tree.h.
	(do_nothing): New.
	(java_init_decl_processing): Rearrange things.  Remove global
	declarations of otable, atable, and ctable.
	(java_init_decl_processing): Make lang_eh_runtime_type do_nothing.
	(java_expand_body): Set output_class.
	* constants.c (build_constant_data_ref): Use output_class, not
	current_class.
	(alloc_name_constant): Likewise.
	* class.c (gen_indirect_dispatch_tables): New.
	(build_class_ref): Generate hard reference to superclass, even if
	using indirect dispatch.
	(build_static_field_ref): Use class local atable.
	(make_class_data): Generate hard reference to superclass, even if
	using indirect dispatch.
	Generate symbolic references to interfaces when using indirect
	dispatch.
	(make_class_data): Emit otable, atable, and ctable.
	Make otable, atable, and ctable class local rather than global.
	(emit_catch_table): Make otable, atable, and ctable class local
	rather than global.

From-SVN: r75590
2004-01-09 17:08:44 +00:00
Andrew Pinski
19a4e5b7e2 parse.y (catch_clause_parameter): Fix typo.
2003-12-25  Andrew Pinski  <pinskia@physics.uc.edu>

        * parse.y (catch_clause_parameter): Fix typo.

From-SVN: r75025
2003-12-25 13:01:17 -08:00
Andrew Pinski
df9fe6e576 re PR java/13404 (ICE when Missing identifier on catch clause)
2003-12-25  Andrew Pinski  <pinskia@physics.uc.edu>

        PR java/13404
        * parse.y: (catch_clause_parameter): Return early if $3, aka
        formal_parameter, is null.

From-SVN: r75020
2003-12-25 08:08:25 -08:00
Kazu Hirata
3a976c72d6 class.c: Remove uses of "register" specifier in declarations of arguments and local...
* class.c: Remove uses of "register" specifier in
	declarations of arguments and local variables.
	* decl.c: Likewise.
	* expr.c: Likewise.
	* gjavah.c: Likewise.
	* jcf-dump.c: Likewise.
	* jcf-io.c: Likewise.
	* jcf-parse.c: Likewise.
	* jcf-write.c: Likewise.
	* keyword.h: Likewise.
	* parse.y: Likewise.
	* typeck.c: Likewise.
	* verify.c: Likewise.

From-SVN: r74882
2003-12-20 15:38:28 +00:00
Ralph Loader
c6a25d3a3d re PR java/12374 (Segfault on "".x)
PR java/12374:
	* parse.y (qualify_ambiguous_name): Remove lots of broken
	field access processing - there's no need to do that here,
	because we have resolve_field_access.  Remove
	RESOLVE_EXPRESSION_NAME_P as it isn't used anywhere else.
	* java-tree.h: Remove RESOLVE_EXPRESSION_NAME_P as it isn't
	used.

From-SVN: r74217
2003-12-03 07:04:19 +00:00
Jeff Sturm
50abb28b64 re PR java/13237 (ICE on Math.sqrt(2.0))
Fix PR java/13237
* parse.y (java_complete_lhs): Save location prior to patching
CALL_EXPR.

From-SVN: r74101
2003-12-01 14:19:41 +00:00
Jeff Sturm
75182467b0 re PR java/13183 ([unit-at-a-time] incorrect multidimensional array initializer with -O2)
Fix PR java/13183.
* constants.c (cpool_for_class): New function.
(outgoing_cpool): Remove global variable.
(alloc_name_constant): Use cpool_for_class.
(build_constants_constructor): Likewise.
* decl.c (java_expand_body): Set current_class.
* java-tree.h (outgoing_cpool) Remove declaration.
(init_outgoing_cpool): Likewise.
* jcf-parse.c (init_outgoing_cpool): Remove function.
(parse_class_file): Don't call init_outgoing_cpool.
* parse.y (java_complete_expand_methods): Don't call
init_outgoing_cpool.  Don't save outgoing_cpool.
(java_expand_classes): Don't restore outgoing_cpool.
(java_finish_classes): Likewise.

From-SVN: r73926
2003-11-25 17:32:54 +00:00
Jeff Sturm
b8ca854ad1 re PR java/12857 (Illegal method modifier when loading a generated .class)
Fix PR java/12857.

decl.c (java_init_decl_processing): Don't initialize
class_not_found_type_node, no_class_def_found_type_node.

java-tree.h (JTI_CLASS_NOT_FOUND_TYPE_NODE,
JTI_NO_CLASS_DEF_FOUND_TYPE_NODE): Remove from java_tree_index.
(class_not_found_type_node, no_class_def_found_type_node):
Don't define.

parse.y (build_dot_class_method_invocation): Add this_class
argument.  Qualify method invocations to a different class.
(create_new_parser_context): Initialize saved_data_ctx to 0.
(java_parser_context_save_global): Initialize saved_data_ctx to 1.
(build_dot_class_method): Don't load classes.  Register
incomplete types.
(build_incomplete_class_ref): Special cases for interfaces
and inner classes.  Move build_dot_class_method call to here...
(patch_incomplete_class_ref): ...from here.  Pass current_class
to build_dot_class_method_invocation.
(build_assertion): Pass class_type to
build_dot_class_method_invocation.
(encapsulate_with_try_catch): Handle EXPR_WITH_FILE_LOCATION node.

From-SVN: r73691
2003-11-18 03:57:08 +00:00
Jeff Sturm
a78e4fa764 re PR java/12739 (gcj emits dead bytecode)
Fix PR java/12739.
* java-tree.h (BLOCK_EMPTY_P): Define.
* parse.y (java_complete_lhs): Check for empty blocks
in TRY_FINALLY_EXPR case.

From-SVN: r73690
2003-11-18 03:42:30 +00:00
Andrew Haley
0adaa7e4a5 re PR java/11045 (int cast bug)
2003-11-12  Andrew Haley  <aph@redhat.com>

        PR java/11045
        * parse.y (fold_constant_for_init): Check that we really do have a
        constant.

From-SVN: r73497
2003-11-12 17:00:53 +00:00
Andrew Haley
7304c6cfe9 re PR java/11533 (Inlining drops static initialization of inner class)
2003-11-12  Andrew Haley  <aph@redhat.com>

        PR java/11533
        * lang.c (merge_init_test_initialization): Clear DECL_INITIAL for
        init_test_decls being inlined.

        PR java/12890:
        * parse.y (do_resolve_class): Check return value from
        breakdown_qualified().

From-SVN: r73494
2003-11-12 15:24:42 +00:00
Tom Tromey
5b84be7383 re PR java/12915 (Broken String concatenation)
PR java/12915:
	* parse.y (merge_string_cste): Handle case where we have a
	pointer that happens to be zero, not null_pointer_node.

From-SVN: r73461
2003-11-11 20:20:07 +00:00
Jeff Sturm
9bcdf7352c re PR java/12866 (gcj checks `throws' clause on artificial method)
Fixes PR java/12866.
* parse.y (resolve_qualified_expression_name): Move test
for outer field access methods from here...
(check_thrown_exceptions) ...to here.

From-SVN: r73210
2003-11-03 03:58:50 +00:00
Kazu Hirata
ed2f11fa59 jcf-write.c: Follow spelling conventions.
* jcf-write.c: Follow spelling conventions.
	* parse.y: Likewise.

From-SVN: r72812
2003-10-22 18:06:38 +00:00
Kazu Hirata
67264b4fe2 ChangeLog: Fix typos.
* ChangeLog: Fix typos.
	* expr.c: Fix comment typos.
	* jcf-write.c: Likewise.
	* lang.c: Likewise.
	* lex.c: Likewise.
	* mangle.c: Likewise.
	* parse-scan.y: Likewise.
	* parse.y: Likewise.

From-SVN: r72809
2003-10-22 18:00:06 +00:00
Jason Merrill
1456deafd7 stmt.c (resolve_asm_operand_names): Call check_unique_operand_names here.
* stmt.c (resolve_asm_operand_names): Call check_unique_operand_names
        here.
        (expand_asm_operands): Not here.
        (parse_input_constraint): No longer static.
        * tree.h: Declare it.

        * coverage.c (build_ctr_info_value): Use build_decl to make a
        VAR_DECL.
        (create_coverage): Likewise.
java/
        * parse.y (patch_assignment): Use make_node to create a BLOCK.
        * parse.h (BUILD_PTR_FROM_NAME): Use make_node to create a
        POINTER_TYPE.
cp/
        * tree.c (build_cplus_new): Use build_decl to create a VAR_DECL.
        (build_target_expr_with_type): Likewise.

        * pt.c (instantiate_class_template): Sanity check that our
        enclosing class has been instantiated.

From-SVN: r72255
2003-10-09 01:44:57 -04:00
Richard Henderson
436fac170a c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not file and line separately.
* c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not
        file and line separately.

f/
        * com.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not
        file and line separately.
java/
        * check-init.c (check_init): Save and restore input_location
        instead of file and line separately.
        * decl.c (java_expand_body): Likewise.
        * jcf-write.c (generate_bytecode_insns): Likewise.
        * parse.y (safe_layout_class): Likewise.
        * jcf-parse.c (read_class, parse_class_file): Likewise.
        (java_parse_file): Use %H for warning locator.

From-SVN: r71886
2003-09-28 15:18:33 -07:00
Jeff Sturm
9220b1baed decl.c (java_optimize_inline, [...]): Remove.
* decl.c (java_optimize_inline, dump_function): Remove.
* java-tree.h (java_optimize_inline): Remove declaration.
* jcf-parse.c (java_parse_file): Assume flag_unit_at_a_time is set.
* parse.y (source_end_java_method, java_expand_classes):
Likewise.  Remove dead code.

From-SVN: r71882
2003-09-28 13:23:12 +00:00
Roger Sayle
c67e6e1492 toplev.c (flag_evaluation_order): New global variable.
* toplev.c (flag_evaluation_order): New global variable.
	* flags.h (flag_evaluation_order): Prototype here.
	* expr.c (expand_operands): If we need to preserve observable
	evaluation order, protect exp1 from clobbering exp0's result.

	* java/lang.c (java_init_options): Set flag_evaluation_order.
	* java/expr.c (force_evaluation_order): Don't attempt to force
	evaluation order of binary operations using save_expr.
	* java/parse.y (java_complete_lhs): No longer need to call
	force_evaluation_order when constructing binary operators.

From-SVN: r71873
2003-09-28 04:56:35 +00:00
Alexandre Petit-Bianco
cd11bdcc47 re PR java/1333 (private field access modifier not implemented correctly)
2003-09-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
	    Bryce McKinlay  <bryce@mckinlay.net.nz>

	PR java/1333:
	* parse.y (not_accessible_field_error): New function.
	(resolve_expression_name): Check field access permissions.
	(resolve_qualified_expression_name): Use
	not_accessible_field_error.
	(resolve_qualified_expression_name): Likewise.

Co-Authored-By: Bryce McKinlay <bryce@mckinlay.net.nz>

From-SVN: r71862
2003-09-27 20:17:21 +00:00
Richard Henderson
f31686a322 Revert DECL_SOURCE_LOCATION -> TREE_LOCUS change.
From-SVN: r71641
2003-09-21 22:09:32 -07:00
Richard Henderson
7e2af53a14 tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const.
* tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const.
	(TREE_FILENAME, TREE_LINENO): Likewise.
	(set_tree_locus, copy_tree_locus, set_tree_file_line): New.
	(TREE_LOCUS_SET_P): New.
	* c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c,
	diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c,
	print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c,
	tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c,
	config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Update to match.

ada/
	* trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
	change to const.

cp/
	* class.c, cp-tree.h, decl.c, decl2.c, error.c, init.c,
	method.c, optimize.c, pt.c, semantics.c, tree.c: Update for
	DECL_SOURCE_LOCATION rename and change to const.

f/
	* com.c, ste.c: Update for DECL_SOURCE_LOCATION rename and
	change to const.

java/
	* class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
	resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.

treelang/
	* treetree.c: Update for DECL_SOURCE_LOCATION rename and
	change to const.

From-SVN: r71636
2003-09-21 16:39:40 -07:00
Richard Henderson
6b00c969c4 cgraphunit.c (cgraph_finalize_function): Add nested arg.
* cgraphunit.c (cgraph_finalize_function): Add nested arg.
        Tweek tests for function already generated.
        (cgraph_expand_function): Don't double announce in !unit-at-a-time.
        * cgraph.h (cgraph_finalize_function): Update for extra arg.
        * c-decl.c (finish_function): Likewise.

        * semantics.c (expand_or_defer_fn): Update for new
        cgraph_finalize_function argument.

        * parse.y (source_end_java_method): Update for new
        cgraph_finalize_function argument.

From-SVN: r71298
2003-09-11 00:14:12 -07:00
Richard Henderson
39adabaf32 cgraphunit.c (cgraph_finalize_function): Remove unused argument.
* cgraphunit.c (cgraph_finalize_function): Remove unused argument.
        * cgraph.h (cgraph_finalize_function): Update.
        * c-decl.c (finish_function): Update.
cp/
        * semantics.c (expand_or_defer_fn): Update call to
        cgraph_finalize_function.
java/
        * parse.y (source_end_java_method): Update call to
        cgraph_finalize_function.

From-SVN: r71263
2003-09-09 20:06:32 -07:00
Jeff Sturm
916b57ceda decl.c (java_expand_body): New function.
* decl.c (java_expand_body): New function.
* expr.c (build_class_init): Set DECL_IGNORED_P.
* java-tree.h (start_complete_expand_method,
java_expand_body): Declare.
* jcf-parse.c (cgraph.h): Include.
(java_parse_file): Handle flag_unit_at_a_time.
* lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING,
LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
(java_estimate_num_insns): Use walk_tree_without_duplicates.
(java_start_inlining): New function.
* parse.h (java_finish_classes): Declare.
* parse.y: Include cgraph.h.
(block): Don't special-case empty block production.
(craft_constructor): Set DECL_INLINE.
(source_end_java_method): Handle flag_unit_at_a_time.
Replace inline code with call to java_expand_body.
(start_complete_expand_method): Remove static modifier.
(java_expand_method_bodies): Patch function tree for
class initialization and/or synchronization as needed.
Don't begin RTL expansion yet.
(java_expand_classes): Check flag_unit_at_a_time before
calling finish_class.
(java_finish_classes): New function.
(java_complete_lhs): Ensure COMPOUND_EXPR has non-NULL type.
(patch_assignment): Set DECL_CONTEXT on temporary variable.
(emit_test_initialization): Set DECL_IGNORED_P.

From-SVN: r71024
2003-09-03 13:44:43 +00:00
Tom Tromey
aecf41099b parse.y (java_check_regular_methods): Typo fixes.
* parse.y (java_check_regular_methods): Typo fixes.  Call
	check_interface_throws_clauses.  Use
	check_concrete_throws_clauses.
	(check_interface_throws_clauses): New function.
	(check_concrete_throws_clauses): New function.
	(hack_is_accessible_p): New function.
	(find_most_specific_methods_list): Added FIXME.
	* typeck.c (lookup_do): Use `flags' argument to decide what to
	do.  Reimplemented.
	(lookup_argument_method_generic): New function.
	(lookup_argument_method2): Removed.
	* jcf.h (ACC_INVISIBLE): New define.
	* jcf-write.c (generate_classfile): Skip invisible methods.
	* class.c (add_miranda_methods): New function.
	(layout_class_methods): Use it.
	(get_access_flags_from_decl): Use ACC_INVISIBLE.
	* java-tree.h (METHOD_INVISIBLE): New define.
	(lang_decl_func) [invisible]: New field.
	(lookup_argument_method_generic): Declare.
	(SEARCH_INTERFACE): New define.
	(SEARCH_SUPER): Likewise.
	(SEARCH_ONLY_INTERFACE): Likewise.
	(SEARCH_VISIBLE): Likewise.
	(lookup_argument_method2): Removed declaration.

From-SVN: r70388
2003-08-12 20:34:51 +00:00
Tom Tromey
90281aecd9 re PR java/11600 (CloneNotSupportedException not checked on super.clone())
Fix for PR java/11600:
	* parse.y (java_complete_lhs): See whether we're calling a method
	on an array.
	(check_thrown_exceptions): Added `is_array_call' argument;
	fixed `clone' checking; updated all callers.

From-SVN: r70180
2003-08-05 18:47:22 +00:00
Jan Hubicka
084c177908 java-tree.h (DECL_NUM_STMTS): Rename to...
* java-tree.h (DECL_NUM_STMTS): Rename to...
	(DECL_ESTIMATED_INSNS): ... this.
	* lang.c (java_estimate_num_insns, java_estimate_num_insns_1):
	New static functions.
	(LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Define.
	* parser.y (add_stmt_to_compound): Do not account statements.

	* cp-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New.
	* decl.c (duplicate_decls): Use DECL_ESTIMATED_INSNS.
	(start_function): Use DECL_ESTIMATED_INSNS.
	* optimize.c (maybe_clone_body): Use DECL_ESTIMATED_INSNS.

	* decl2.c (maybe_emit_vtables): Fix marking vtables as needed in
	unit-at-a-time

	* c-common.c (c_estimate_num_insns_1): New static function.
	(c_estimate_num_insns): New global function.
	* c-common.h (DECL_NUM_STMTS): Rename to...
	(DECL_ESTIMATED_INSNS): ... this.
	(c_estimate_num_insns): Declare.
	* c-decl.c (duplicate_decls): Use DECL_ESTIMATED_INSNS.
	* c-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New.
	* c-semantics.c (add_stmt): Do not account statements.
	* langhooks-def.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS):
	New.
	* langhooks.h (lang_hooks_for_tree_inlining): Add
	estimate_num_insns
	* params.def (max-inline-insns-auto, max-inline-insns-auto): set
	to 100.
	(max-inline-insns): set to 300.
	(min-inline-insns): set to 10.
	* tree-inline.c (struct inline_data): Rename inlined_stmts to
	inlined-insns.
	(INSNS_PER_STMT): Kill.
	(inlinable_function_p): Compute and store body size.
	(expand_call_inline): Likewise.
	(optimize_inline_calls): Likewise.

From-SVN: r69113
2003-07-09 00:31:20 +00:00
Nathan Sidwell
1f9cc6db1b tree.h (expand_function_end): Remove all parameters.
* tree.h (expand_function_end): Remove all parameters.
	* function.c (expand_function_end): Remove all parameters.
	Use input_location. Never expand_end_bindings.
	* c-decl.c (c_expand_body_1): Adjust expand_function_end call.
	* coverage.c (create_coverage): Likewise.

	* ada/utils.c (end_subprog_body): Adjust expand_function_end
	call.

	* cp/semantics.c (genrtl_finish_function): Adjust
	expand_function_end call.

	* f/com.c (finish_function): Adjust expand_function_end call.

	* java/class.c (push_class): Use a location_t to save place.
	(emit_register_classes): Set input_location. Adjust
	expand_function_end call.
	* java/resource.c (write_resource_constructor): Likewise.
	* java/decl.c (end_java_method): Adjust expand_function_end call.
	* java/parse.y (source_end_java_method): Likewise.

	* treelang/treetree.c (tree_code_create_function_wrapup): Adjust
	expand_function_end call.

From-SVN: r68255
2003-06-20 09:08:23 +00:00
Nathan Sidwell
36f04556d6 tree-inline.c (expand_call_inline): DECL_SOURCE_LINE_FIRST is removed.
* tree-inline.c (expand_call_inline): DECL_SOURCE_LINE_FIRST is
	removed.
	* java/java-tree.h (DECL_FUNCTION_LAST_LINE): New.
	(struct lang_decl_func): Add last_line field.
	* java/parse.h (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
	DECL_SOURCE_LINE_LAST): Remove.
	* java/parse.y (missing_return_error,
	finish_method_declaration, lookup_cl, start_artificial_method_body,
	source_end_java_method, start_complete_expand_method): Adjust.

From-SVN: r67661
2003-06-09 12:57:15 +00:00
Anthony Green
f32c53c215 ��> 2003-06-07�� Anthony Green�� <green@redhat.com> ��>...
��> 2003-06-07�� Anthony Green�� <green@redhat.com>
��>
��>������������* parse.y (patch_cast): Fix conversions from floating-point to
��>������������integral types.

From-SVN: r67631
2003-06-08 18:10:54 +00:00
Kaveh R. Ghazi
90ff44cfd6 cfgloopanal.c (test_for_iteration): Use string concatentation on HOST_WIDE_INT_PRINT_* format specifier to collapse...
gcc:
	* cfgloopanal.c (test_for_iteration): Use string concatentation on
	HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
	function calls into one.
	* dbxout.c (dbxout_symbol): Likewise.
	* defaults.h (ASM_OUTPUT_SIZE_DIRECTIVE): Likewise.
	* dwarf2asm.c (dw2_asm_output_data_uleb128,
	dw2_asm_output_data_sleb128): Likewise.
	* genrecog.c (debug_decision_2): Likewise.
	* loop.c (emit_prefetch_instructions): Likewise.
	* print-rtl.c (print_rtx): Likewise.
	* print-tree.c (print_node_brief, print_node): Likewise.
	* ra-debug.c (dump_igraph, dump_graph_cost,
	dump_static_insn_cost): Likewise.
	* ra-rewrite.c (dump_cost): Likewise.
	* sdbout.c (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
	* sreal.c (dump_sreal): Likewise.
	* unroll.c (unroll_loop, precondition_loop_p): Likewise.
	* varasm.c (assemble_vtable_entry): Likewise.

cp:
	* ptree.c (cxx_print_type, cxx_print_xnode): Use string
	concatentation on HOST_WIDE_INT_PRINT_* format specifier to
	collapse multiple function calls into one.
	* tree.c (debug_binfo): Likewise.

java:
	* parse.y (print_int_node): Use string concatentation on
	HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
	function calls into one.

From-SVN: r66900
2003-05-17 01:40:45 +00:00
Richard Henderson
3bec3c0c9c class.c (layout_class_method): Set DECL_EXTERNAL.
* class.c (layout_class_method): Set DECL_EXTERNAL.
        * decl.c (java_mark_decl_local, java_mark_class_local): New.
        * java-tree.h (java_mark_class_local): Declare.
        * jcf-parse.c (parse_class_file): Use it.
        * parse.y (java_expand_classes): Likewise.

From-SVN: r66768
2003-05-13 10:41:17 -07:00
Tom Tromey
fcc8cecb81 re PR java/10459 (ICE with certain expressions as 3rd clause of for loop)
PR java/10459:
	* parse.y (finish_for_loop): Do nothing if update expression is a
	EXPR_WFL_NODE wrapping nothing.
	(java_complete_lhs) <COMPOUND_EXPR>: Likewise.

From-SVN: r66411
2003-05-03 00:35:06 +00:00
Nathan Sidwell
d479d37f5e input.h (lineno): Rename to ...
* input.h (lineno): Rename to ...
	(input_line): ... here.
	* tree.h (lineno): Rename to ...
	(input_line): ... here.
	* scan.h (lineno): Rename to ...
	(input_line): ... here.
	* toplev.c (lineno): Rename to ...
	(input_line): ... here.
	(push_srcloc, pop_srcloc):  Rename lineno to input_line.
	* c-common.c (c_expand_start_cond, fname_decl): Likewise.
	* c-decl.c (poplevel, pop_label_level, lookup_label, lookup_tag,
	store_parm_decls, c_expand_body_1): Likewise.
	* c-errors.c (pedwarn_c99): Likewise.
	* c-format.c (status_warning): Likewise.
	* c-lex.c (fe_file_change, cb_def_pragma, c_lex): Likewise.
	* c-opts.c (c_common_post_options, c_common_parse_file): Likewise.
	* c-parse.in (save_filename, maybe_type_qual, ifc): Likwise.
	* c-semantics.c (finish_stmt_tree, build_stmt, emit_local_var,
	gentrtl_goto_stmt, genrtl_expr_stmt_value, genrtl_decl_stmt,
	genrtl_if_stmt, genrtl_while_stmt, genrtl_do_stmt,
	genrtl_return_stmt, genrtl_for_stmt, build_break_stmt,
	build_continue_stmt, genrtl_switch_stmt, genrtl_asm_stmt,
	prep_stmt, find_reachable_label, expand_unreachable_stmt): Likewise.
	* coverage.c (create_coverage): Likewise.
	* diagnostic.c (pedwarn, sorry, error, fatal_error,
	internal_error, warning, diagnostic_report_current_module,
	inform): Likewise.
	* expr.c (expand_expr): Likewise.
	* integrate.c (expand_inline_function,
	output_inline_function): Likewise.
	* rtl-error.c (file_and_line_for_asm): Likewise.
	* tree-inline.c (find_alloca_call, find_builtin_longjmp_call,
	walk_tree): Likewise.
	* tree.c (make_node): Likewise.
	* ada, cp, f, java, objc, treelang: Likewise.

	ada
	* trans.c (build_unit_elab, set_lineno): Rename lineno to
	input_line.
	* utils.c (pushdecl, create_label_decl, begin_subprog_body,
	end_subprog_body): Likewise.
	* utils2.c (build_call_raise): Likewise.

	cp
	* class.c (finish_struct): Rename lineno to input_line.
	* decl.c (push_binding_level, pop_binding_level,
	suspend_binding_level, resume_binding_level, make_label_decl,
	use_label, start_function): Likewise.
	* decl2.c (warn_if_unknown_interface,
	start_static_initialization_or_destruction,
	generate_ctor_or_dtor_function, finish_file): Likewise.
	* error.c (cp_line_of, print_instantiation_full_context,
	print_instantiation_context): Likewise.
	* except.c (check_handlers_1, check_handlers): Likewise.
	* init.c (create_temporary_var): Likewise.
	* method.c (use_thunk, synthesize_method): Likewise.
	* parser.c (cp_lexer_set_source_position_from_token,
	cp_lexer_get_preprocessor_token): Likewise.
	* pt.c (push_tinst_level, pop_tinst_level,
	tsubst_friend_function, instantiate_class_template, tsubst_decl,
	tsubst, tsubst_expr, instantiate_decl): Likewise.
	* semantics.c (genrtl_try_block, finish_label_stmt,
	begin_class_definition, expand_body,
	genrtl_finish_function): Likewise.
	* tree.c (build_min_nt, build_min): Likewise.

	f
	* ansify.c (die_unless): Rename lineno to input_line.
	* com.c (ffecom_subscript_check_, ffecom_do_entry_,
	ffecom_gen_sfuncdef_, ffecom_start_progunit_,
	ffecom_sym_transform_, ffecom_sym_transform_assign_,
	bison_rule_pushlevel_, bison_rule_compstmt_, finish_function,
	store_parm_decls): Likewise.
	* intrin.c (ffeintrin_fulfill_generic): Likewise.
	* lex.c (ffelex_hash_, ffelex_include_, ffelex_next_line_,
	ffelex_file_fixed, ffelex_file_free): Likewise.
	* std.c (ffestd_exec_end): Likewise.
	* ste.c (ffeste_emit_line_note_, ffeste_start_block_,
	ffeste_start_stmt_): Likewise.
	* ste.h (ffeste_filelinenum, ffeste_set_line): Likewise.

	java
	* lex.h (lineno): Rename to ...
	(input_line): ... here
	* parse-scan.y (lineno): Rename to ...
	(input_line): ... here.
	(reset_report): Rename lineno to input_line.
	* check-init.c (check_init): Likewise.
	* class.c (push_class): Likewise.
	* decl.c (complete_start_java_method, end_java_method): Likewise.
	* expr.c (expand_byte_code): Likewise.
	* jcf-parse.c (give_name_to_class, parse_class_file): Likewise.
	* jcf-write.c (generate_bytecode_insns): Likewise.
	* lex.c (java_init_lex, java_allocate_new_line,
	do_java_lex): Likewise.
	* parse.h (YYNOT_TWICE): Likewise.
	* parse.y (empty_statement, expression_statement,
	java_pop_parser_context, java_parser_context_save_global,
	yyerror, register_fields, method_header, safe_layout_class,
	find_in_imports_on_demand, create_artificial_method,
	source_end_java_method, start_complete_expand_method,
	build_thisn_assign, java_complete_lhs,
	maybe_absorb_scoping_block): Likewise.

	objc
	* objc-act.c (objc_init): Rename lineno to input_line.
	(build_module_descriptor, build_selector_translation_table,
	build_protocol_template, build_method_prototype_list_template,
	build_category_template, build_selector_table,
	build_class_template, build_super_template, build_ivar_template,
	build_ivar_list_template, build_method_list_template,
	build_method_template, add_instance_variable): Likewise.

	treelang
	* tree1.c (treelang_init): Rename lineno to input_line.

From-SVN: r66333
2003-05-01 16:13:36 +00:00
Zack Weinberg
dcf92453c8 tree.c (build_constructor): New function.
* tree.c (build_constructor): New function.
	* tree.h: Prototype it.

	* c-typeck.c (build_c_cast, pop_init_level)
	* profile.c (build_function_info_value, build_gcov_info_value)
	(create_profiler):
	Use build_constructor.

	* builtins.c (expand_builtin_args_info): Remove #if 0 blocks.

	* objc/objc-act.c (build_constructor):
	Rename objc_build_constructor. Use build_constructor.
	(build_objc_string_object, objc_add_static_instance)
	(init_def_list, init_objc_symtab, init_module_descriptor)
	(generate_static_references, build_selector_translation_table)
	(build_descriptor_table_initializer, generate_descriptor_table)
	(build_protocol_initializer, build_ivar_list_initializer)
	(generate_ivars_list, build_dispatch_table_initializer)
	(generate_dispatch_table, generate_protocol_list)
	(build_category_initializer, build_shared_structure_initializer):
	Update to match.

ada:
	* gigi.h, utils2.c (build_constructor):
	Rename gnat_build_constructor. Use build_constructor.
	* decl.c (gnat_to_gnu_entity)
	* trans.c (tree_transform, pos_to_constructor, extract_values)
	* ada/utils.c (build_template, convert_to_fat_pointer, convert)
	(unchecked_convert)
	* ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
	(fill_vms_descriptor):
	Update to match.

cp:
	* class.c (initialize_array)
	* decl.c (reshape_init)
	* decl2.c (build_expr_from_tree)
	* init.c (build_zero_init)
	* pt.c (tsubst_copy, tsubst_copy_and_build)
	* rtti.c (tinfo_base_init, generic_initializer, ptr_initializer)
	(ptm_initializer, class_initializer, get_pseudo_ti_init)
	* semantics.c (finish_compound_literal)
	* typeck.c (build_ptrmemfunc1)
	* typeck2.c (store_init_value, process_init_constructor)
	(build_functional_cast): Use build_constructor.

f:
	* com.c (ffecom_build_complex_constant_, ffecom_expr_)
	(ffecom_init_zero_, ffecom_transform_namelist_, ffecom_vardesc_)
	(ffecom_vardesc_array_, ffecom_vardesc_dims_, ffecom_2)
	* ste.c (ffeste_io_ialist_, ffeste_io_cilist_, ffeste_io_cllist_)
	(ffeste_io_icilist_, ffeste_io_inlist_, ffeste_io_olist_):
	Use build_constructor.

java:
	* class.c (make_field_value, make_method_value, get_dispatch_table)
	(make_class_data, emit_offset_symbol_table)
	* constants.c (build_constants_constructor)
	* java-tree.h (START_RECORD_CONSTRUCTOR)
	* parse.y (maybe_build_array_element_wfl):
	Use build_constructor.

From-SVN: r65539
2003-04-13 01:45:35 +00:00
Eric Blake
04a0be3624 re PR java/10253 (String concatenation with int zero, as in ""+0, results in the empty string.)
2003-04-10  Eric Blake  <ebb9@email.byu.edu>

	PR java/10253:
	* parse.y (string_convert_int_cst): Always use at least one digit
	in string conversion. Remove ASCII dependence.
	(merge_string_cste): Fix merging of 3-byte UTF-8 characters.

From-SVN: r65443
2003-04-10 23:41:32 +00:00
Tom Tromey
dcb0eee2a2 * parse.y (create_interface): Call CHECK_DEPRECATED.
From-SVN: r64852
2003-03-25 17:00:47 +00:00
Tom Tromey
2f29e5e867 parse.y (resolve_inner_class): Error if qualifier is a primitive type.
* parse.y (resolve_inner_class): Error if qualifier is a primitive
	type.

From-SVN: r64314
2003-03-13 18:35:01 +00:00
Tom Tromey
8b8e6c64af parse.y (resolve_field_access): Initialize class if field is found in another static field.
* parse.y (resolve_field_access): Initialize class if field is
	found in another static field.
	* expr.c (build_class_init): Don't optimize out initialization of
	implemented interface.

From-SVN: r64185
2003-03-11 20:37:02 +00:00
Tom Tromey
1152232731 parse.y (jdep_resolve_class): Only check deprecation if we found a decl.
* parse.y (jdep_resolve_class): Only check deprecation if we found
	a decl.

From-SVN: r63626
2003-03-01 21:46:17 +00:00
Tom Tromey
0ea05c0da3 re PR java/9695 (Inner class bug prevent GNU Classpath from compiling)
PR java/9695:
	* class.c (maybe_layout_super_class): Always pass a WFL to
	do_resolve_class.
	* parse.y (do_resolve_class): Updated comment to explain
	parameters.

From-SVN: r63584
2003-02-28 20:53:47 +00:00
Tom Tromey
f94ae54025 lang-options.h: Added -Wdeprecated.
* lang-options.h: Added -Wdeprecated.
	* gcj.texi (Warnings): Document -Wdeprecated.
	* java-tree.h (flag_deprecated): Declare.
	* lang.c (lang_W_options): Added deprecated.
	(flag_deprecated): New global.
	* chartables.h: Rebuilt.
	* gen-table.pl (process_one): Look at whitespace.
	(print_tables): Define LETTER_SPACE, LETTER_MASK.
	* parse.h (CLEAR_DEPRECATED): New macro.
	(CHECK_DEPRECATED_NO_RESET): New macro.
	* jcf-parse.c (handle_deprecated): New function.
	(HANDLE_DEPRECATED_ATTRIBUTE): New define.
	* jcf-reader.c (get_attribute): Handle Deprecated attribute.
	* parse.y (resolve_type_during_patch): Check deprecation.
	(jdep_resolve_class): Likewise.
	(process_imports): Likewise.
	(resolve_expression_name): Likewise.
	(check_deprecation): Strip arrays from decl.  Check
	flag_deprecated.
	(patch_method_invocation): Also check the particular constructor
	for deprecation.
	(register_fields): Use CHECK_DEPRECATED_NO_RESET in loop.
	* jcf-write.c (append_deprecated_attribute): New function.
	(generate_classfile): Generate deprecated attribute when
	appropriate.
	* lex.c (java_parse_doc_section): Return type now void.  Rewrote.
	(java_lex) [case '*']: Simplify logic.
	(java_start_char_p): Use LETTER_MASK.
	(java_part_char_p): Likewise.
	(java_space_char_p): New function.

From-SVN: r63350
2003-02-24 02:14:49 +00:00
Andrew Haley
2d7b3505f7 parse.y (java_expand_classes): Scan the whole class list looking for access methods that haven't yet been expanded.
2003-01-31  Andrew Haley  <aph@redhat.com>

        * parse.y (java_expand_classes): Scan the whole class list looking
        for access methods that haven't yet been expanded.

From-SVN: r62329
2003-02-03 17:44:55 +00:00
Tom Tromey
c78f2b91f5 parse.y (patch_assignment): Only transform the rhs of an assignment when compiling to native.
* parse.y (patch_assignment): Only transform the rhs of an
	assignment when compiling to native.

From-SVN: r62104
2003-01-29 18:48:41 +00:00
Tom Tromey
6a807d35fc parse.y (java_check_regular_methods): Check for construct after checking types in throws clause.
* parse.y (java_check_regular_methods): Check for construct after
	checking types in throws clause.

From-SVN: r61956
2003-01-28 06:18:31 +00:00
Tom Tromey
9179646e87 parse.y (method_header): Native method can't be strictfp.
* parse.y (method_header): Native method can't be strictfp.
	No method can be transient or volatile.

From-SVN: r61559
2003-01-21 18:51:41 +00:00
Andrew Haley
50cbc6057f [multiple changes]
2003-01-14  Andrew Haley  <aph@redhat.com>

        * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
        varargs function -- correct.

        * parse.y (patch_assignment): Copy the rhs of an assignment into a
        temporary if the RHS is a reference.

2003-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        * Make-lang.in (keyword.h): Pass "-L ANSI-C" to gperf.
        * keyword.h: Regenerated.

        * All Files: Convert to ISO C style function definitions.

From-SVN: r61281
2003-01-14 13:31:11 +00:00
Kaveh R. Ghazi
0a2f0c5497 * All Files: Convert to ISO C style function definitions.
From-SVN: r61218
2003-01-12 02:14:56 +00:00
Nathanael Nerode
43a4a12b15 * parse.y (check_pkg_class_access): ANSIfy definition.
From-SVN: r61164
2003-01-10 19:23:30 +00:00
Kaveh Ghazi
7048110fe1 decl.c, [...]: Don't cast return value of xmalloc et al.
* decl.c, parse-scan.y, parse.y: Don't cast return value of
	xmalloc et al.

From-SVN: r61138
2003-01-10 03:13:50 +00:00
Kaveh R. Ghazi
77d3109be2 * class.c, gjavah.c, parse.y, verify.c: Don't use PTR.
From-SVN: r61137
2003-01-10 03:04:41 +00:00
Geoffrey Keating
17211ab553 Merge from pch-branch.
From-SVN: r61136
2003-01-10 02:22:34 +00:00
Kaveh R. Ghazi
d2097937c5 * All Files: Remove PARAMS macro.
From-SVN: r61133
2003-01-09 23:16:56 +00:00
Kaveh R. Ghazi
b3339cf7a7 jv-scan.c, parse.y: Remove VPARAMS, VA_OPEN, VA_FIXEDARG and VA_CLOSE.
* jv-scan.c, parse.y: Remove VPARAMS, VA_OPEN, VA_FIXEDARG and
	VA_CLOSE.

From-SVN: r61129
2003-01-09 22:53:28 +00:00
Steven Bosscher
f309ff0a12 Make-lang.in, [...]: Replace "GNU CC" with "GCC" in the copyright header.
* Make-lang.in, boehm.c, buffer.c,
	  buffer.h, builtins.c, class.c,
	  config-lang.in, constants.c,
	  convert.h, decl.c, except.c,
	  expr.c, java-except.h,
	  java-tree.h, javaop.def,
	  jcf-parse.c, jcf-write.c,
	  jv-scan.c, jvgenmain.c,
	  jvspec.c, keyword.gperf,
	  keyword.h, lang-options.h,
	  lang-specs.h, lang.c, lex.c,
	  lex.h, mangle.c, mangle_name.c,
	  parse-scan.y, parse.h, parse.y,
	  typeck.c, verify.c, xref.c,
	  xref.h: Replace "GNU CC" with
	  "GCC" in the copyright header.

	* check-init.c, gjavah.c, javaop.h,
	  jcf-depend.c, jcf-dump.c, jcf-io.c,
	  jcf-path.c, jcf-reader.c, jcf.h,
	  zextract.c, zipfile.h: These files are
	  "part of GCC". Also say "GCC" not "GNU CC".

From-SVN: r60747
2003-01-01 15:10:03 +00:00
Jeff Sturm
d3ab697ba4 class.c (build_static_field_ref): Check FIELD_FINAL.
* class.c (build_static_field_ref): Check FIELD_FINAL.

* constants.c (alloc_class_constant): Use TYPE_CPOOL_DATA_REF
instead of current_constant_pool_data_ref.
* java-tree.h (current_constant_pool_data_ref): Undefine.
(JTI_CURRENT_CONSTANT_POOL_DATA_REF): Remove.
* jcf-parse.c (init_outgoing_cpool): Don't initialize
current_constant_pool_data_ref.

* except.c (prepare_eh_table_type ): Use DECL_NAME of class type,
not build_internal_class_name.

* parse.y (patch_incomplete_class_ref): Always emit `class$' method.
Use it when class ref isn't certain to be compiled.

From-SVN: r60448
2002-12-23 19:42:09 +00:00
Andrew Haley
71d082af2f re PR libgcj/8945 (StringTokenizer)
2002-12-18  Andrew Haley  <aph@redhat.com>

	* parse.y (patch_invoke): Force evaluation order when `check' is
	set.  For PR libgcj/8945.

From-SVN: r60290
2002-12-19 06:43:12 +00:00
Zack Weinberg
4977bab6ed Merge basic-improvements-branch to trunk
From-SVN: r60174
2002-12-16 18:23:00 +00:00
Ranjit Mathew
0cc1565af0 parse.y (source_end_java_method): Remove custom encoding of line numbers for a function decl before passing it to...
2002-12-05  Ranjit Mathew <rmathew@hotmail.com>
        Andrew Haley <aph@redhat.com>

        * parse.y (source_end_java_method): Remove custom encoding of line
        numbers for a function decl before passing it to the back end.

Co-Authored-By: Andrew Haley <aph@redhat.com>

From-SVN: r59892
2002-12-06 20:10:33 +00:00
Tom Tromey
6b55b27fb9 For PR java/8740:
* parse.y (do_resolve_class): Handle qualified name via
	recursion.

From-SVN: r59728
2002-12-02 19:04:14 +00:00
Tom Tromey
dd06be9e8d re PR java/8676 (ICE in generate_bytecode_conditional at jcf-write.c:1359)
* parse.y (patch_binop): Cast right hand side of shift expression
	to `int'.  Fixes PR java/8676.

From-SVN: r59390
2002-11-22 21:49:06 +00:00
Tom Tromey
5602b49d69 re PR java/7912 (invalid verification error for arrays)
Fix for PR java/7912:
	* expr.c (can_widen_reference_to): Allow cast of array to
	Cloneable or Serializable.
	* java-tree.h (java_lang_cloneable_identifier_node): Declare.
	(java_io_serializable_identifier_node): Likewise.
	* parse.y (java_lang_cloneable, java_io_serializable): Removed.
	(valid_ref_assignconv_cast_p): Use new identifier nodes.
	* lex.c (java_init_lex): Don't initialize java_lang_cloneable and
	java_io_serializable.
	* decl.c (java_init_decl_processing): Initialize
	java_lang_cloneable_identifier_node and
	java_io_serializable_identifier_node.
	(java_lang_cloneable_identifier_node): New global.
	(java_io_serializable_identifier_node): Likewise.

From-SVN: r59227
2002-11-18 18:13:36 +00:00
Andrew Haley
c1ddb5c8ac parse.y (patch_invoke): Call force_evaluation_order on a static arg list.
2002-10-15  Andrew Haley  <aph@redhat.com>

	* parse.y (patch_invoke): Call force_evaluation_order on a static
	arg list.
	(resolve_qualified_expression_name): Call force_evaluation_order
	on a arg list that is part of a Qualified Expression Name.

	* lang.c (dump_compound_expr): New.
	(java_dump_tree): New.

From-SVN: r58369
2002-10-21 18:26:34 +00:00
Kaveh R. Ghazi
c6449a1dbc * parse.y (merge_string_cste): Add parentheses around & within |.
From-SVN: r57991
2002-10-09 20:54:37 +00:00
Tom Tromey
8f6d2e96a0 re PR java/8003 (gcj segfaults on simple java line of code)
* parse.y (variable_declarator_id): Simplify error path for
	array declarator error.  For PR java/8003.

From-SVN: r57934
2002-10-08 18:05:54 +00:00
Andrew Haley
ce5bb29309 parse.y (attach_init_test_initialization_flags): Check for error_mark_node.
2002-10-08  Andrew Haley  <aph@redhat.com>

	* parse.y (attach_init_test_initialization_flags): Check for
	error_mark_node.

From-SVN: r57928
2002-10-08 15:02:30 +00:00
Anthony Green
6a921942a1 Fix string concatenation bug.
From-SVN: r57912
2002-10-08 07:10:49 +00:00
Kazu Hirata
ee142fe7a8 ChangeLog: Follow spelling conventions.
* ChangeLog: Follow spelling conventions.
	* class.c: Likewise.
	* decl.c: Likewise.
	* expr.c: Likewise.
	* gjavah.c: Likewise.
	* java-tree.h: Likewise.
	* jcf-dump.c: Likewise.
	* jcf-parse.c: Likewise.
	* jvspec.c: Likewise.
	* lang.c: Likewise.
	* mangle.c: Likewise.
	* parse.y: Likewise.

From-SVN: r57378
2002-09-21 02:19:44 +00:00
Per Bothner
6e471ea7b8 parse.y (fold_constant_for_init): If a VAR_DECL, convert numerical constant to the type of the field.
2002-09-11  Per Bothner  <per@bothner.com>

	* parse.y (fold_constant_for_init):  If a VAR_DECL, convert numerical
	constant to the type of the field.
	(java_complete_tree):  Remove now-redundant code.

	* parse.y (fold_constant_for_init):  'null' is not a constant expr.

From-SVN: r57036
2002-09-11 19:53:14 +00:00
Ranjit Mathew
f724acb8aa parse.y (DIR_SEPARATOR): Don't define.
2002-09-09  Ranjit Mathew  <rmathew@hotmail.com>

	* parse.y (DIR_SEPARATOR): Don't define.
	(check_class_interface_creation): Use IS_DIR_SEPARATOR.

From-SVN: r56973
2002-09-09 17:56:37 +00:00
Tom Tromey
83dd5faeab parse.y (try_builtin_assignconv): Allow narrowing primitive conversion if RHS_TYPE is byte, short, or char.
* parse.y (try_builtin_assignconv): Allow narrowing primitive
	conversion if RHS_TYPE is byte, short, or char.

From-SVN: r56589
2002-08-26 23:30:02 +00:00
Andrew Haley
7149627b8e Make-lang.in (java-tree-inline.o): New.
2002-07-30  Andrew Haley  <aph@cambridge.redhat.com>

        * Make-lang.in (java-tree-inline.o): New.
        (JAVA_OBJS): Add java-tree-inline.o.
        * parse.y (source_end_java_method): Call java_optimize_inline.
        (java_expand_method_bodies): Save method's tree in
        DECL_SAVED_TREE.
        (add_stmt_to_compound): Keep track of the number of statments.
        * lang.c (java_init): Enable flag_inline_trees.
        (java_post_options): If flag_inline_functions is on, enable
        flag_inline_trees instread.
        (decl_constant_value): New.
        (java_tree_inlining_walk_subtrees): New.
        * java-tree.h (DECL_NUM_STMTS): New macro.
        (java_optimize_inline): Declare.
        * expr.c (java_expand_expr): Allow a BLOCK to return a value.
        Handle a LABEL_EXPR.
        * decl.c (build_result_decl): If we already have a DECL_RESULT
        don't make another.
        (dump_function): New.
        (java_optimize_inline): New.
        (dump_function): New.

From-SVN: r56377
2002-08-16 10:32:30 +00:00
Jesse Rosenstock
ee1884cb9b For PR java/7483:
2002-08-13  Jesse Rosenstock  <jmr@fulcrummicro.com>

	For PR java/7483:
	* parse.y (build_assertion): Invert return from
	desiredAssertionStatus.

From-SVN: r56264
2002-08-13 22:29:23 +00:00
Tom Tromey
68a830fe3a For PR libgcj/7073:
* parse.y (patch_incomplete_class_ref): Handle VOID_TYPE
	specially.

From-SVN: r55167
2002-07-02 02:56:11 +00:00
Kaveh R. Ghazi
33780b4597 parse.y (check_modifiers, [...]): Avoid incorrect hardcoded constant 10.
* parse.y (check_modifiers, declare_local_variables): Avoid
	incorrect hardcoded constant 10.

From-SVN: r55017
2002-06-27 01:53:42 +00:00
Kaveh R. Ghazi
57ddd19c61 lex.c (java_init_lex): Avoid incorrect hardcoded constant 11.
* lex.c (java_init_lex): Avoid incorrect hardcoded constant 11.
	* parse.y (mark_parser_ctxt): Likewise.

From-SVN: r55016
2002-06-27 01:03:24 +00:00
Akim Demaille
6d61f1bd1c parse.y (class_declaration, [...]): Make sure all their rules have an action...
2002-06-13  Akim Demaille  <akim@epita.fr>

	* parse.y (class_declaration, interface_declaration): Make sure
	all their rules have an action, in order to avoid meaningless `$$
	= $1' and their type clashes.

From-SVN: r54592
2002-06-13 16:46:01 +00:00
Tom Tromey
c6226a7e2a jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC.
* jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC.
	* parse-scan.y (statement_without_trailing_substatement): Added
	assert_statement.
	(assert_statement): New rule.
	* java-tree.h (struct lang_type) [assertions]: New field.
	(TYPE_USES_ASSERTIONS): New macro.
	(CLASS_USES_ASSERTIONS): Likewise.
	(FIELD_SYNTHETIC): New define.
	* lex.c (java_lval;): Added ASSERT_TK.
	* parse.y (ASSERT_TK): Added.
	(statement_without_trailing_substatement): Added assert_statement.
	(assert_statement): New rule.
	(build_assertion): New function.
	(maybe_generate_pre_expand_clinit): Create and initialize
	$assertionsDisabled.
	(lookup_package_type): Removed decl.
	* keyword.h: Rebuilt.
	* keyword.gperf (assert): New token.

From-SVN: r54516
2002-06-11 17:31:11 +00:00
Akim Demaille
e35b68b01a 2002-06-10 Akim Demaille <akim@epita.fr>
* parse.y (interface_type_list, class_member_declaration)
	(unary_expression_not_plus_minus): Remove duplicate %type.
	Whitespace changes.

From-SVN: r54510
2002-06-11 15:32:44 +00:00
Tom Tromey
950ac1d321 re PR java/6865 (gcj: segmentation fault on incorrect input)
* parse.y (method_header): Give error message in all cases.
	Fixes PR java/6865.

From-SVN: r54504
2002-06-11 14:43:54 +00:00
Zack Weinberg
c02ebb1834 java-tree.h, [...]: Remove all #if JAVA_USE_HANDLES blocks...
* java-tree.h, class.c, expr.c, jcf-parse.c, parse.y,
	typeck.c, verify.c: Remove all #if JAVA_USE_HANDLES blocks,
	all mention of CLASS_TO_HANDLE_TYPE or HANDLE_TO_CLASS_TYPE,
	and all now-pointless local variables.  Rename other local
	variables to reflect their not being handles.

	* java-tree.h, jcf-dump.c, jcf-io.c: Remove all
	#if JCF_USE_STDIO blocks.

	* parse.y: Add missing semicolon at end of rule.

From-SVN: r54261
2002-06-04 20:32:08 +00:00
Geoffrey Keating
e2500fedef Merge from pch-branch up to tag pch-commit-20020603.
From-SVN: r54232
2002-06-04 07:11:05 +00:00
Tom Tromey
c442c00222 re PR java/5913 (Core dump for String constant instanceof)
Fix for PR java/5913:
	* parse.y (patch_binop): Call patch_string on op1.

From-SVN: r54174
2002-06-02 16:38:05 +00:00
Tom Tromey
48711f4da9 Fix for PR java/1343, PR java/6336:
* parse.y (make_nested_class_name): Remove extraneous `else'; fix
	formatting.  Changed return type.
	(anonymous_class_counter): Moved to top of file.
	(maybe_make_nested_class_name): Append number to class name for
	function-local classes.

From-SVN: r54173
2002-06-02 16:33:01 +00:00
Zack Weinberg
11ad4784f3 tree.h: Forward-declare struct realvaluetype.
* tree.h: Forward-declare struct realvaluetype.
	(struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
	contain it.
	(TREE_REAL_CST_PTR): New accessor.
	(TREE_REAL_CST): Update.
	* real.h: Include machmode.h.
	(realvaluetype): Make it struct realvaluetype, not a typedef.
	(build_real): Prototype here.

	* tree.c: Include real.h.
	(build_real): Allocate the REAL_VALUE_TYPE as a separate
	object in GC memory, set TREE_REAL_CST_PTR to point to it.
	(build_real_from_int_cst): Use build_real.
	* ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
	REAL_CST.

	* builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
	fold-const.c, print-tree.c, real.c, cp/mangle.c, cp/tree.c,
	f/bld.c, f/com.c, f/expr.c, f/target.c, java/decl.c,
	java/jcf-parse.c, java/parse.y, java/typeck.c: Include real.h.
	* Makefile.in, cp/Make-lang.in, f/Make-lang.in,
	java/Make-lang.in: Update dependency lists.

From-SVN: r53959
2002-05-28 17:33:14 +00:00
Mark Mitchell
a15135c91a configure.in (AC_CHECK_FUNCS): Add checks for scandir and alphasort.
* configure.in (AC_CHECK_FUNCS): Add checks for scandir and
	alphasort.
	* config.in: Regenerated.
	* configure: Regenerated.

From-SVN: r53633
2002-05-19 16:25:51 +00:00
Andreas Jaeger
2c7e9098fb * parse.y (finish_for_loop): Fix if statement.
From-SVN: r53263
2002-05-07 20:42:50 +02:00
Tom Tromey
486e8c0cd3 re PR java/5941 (incorrect "Unreachable statement" error)
Fix for PR java/5941:
	* parse.y (finish_for_loop): Set SUPPRESS_UNREACHABLE_ERROR for
	loop update expression.
	(java_complete_lhs): Use SUPPRESS_UNREACHABLE_ERROR.
	* java-tree.h (SUPPRESS_UNREACHABLE_ERROR): New macro.

From-SVN: r53247
2002-05-07 03:32:01 +00:00
Mark Wielaard
30b50f906e For PR java/6519:
* parse.y (build_string_concatenation): Return just op1 only when op2
	is null and op1 is a STRING_CST, otherwise always construct a
	StringBuffer.

From-SVN: r53158
2002-05-04 13:26:13 +00:00
Tom Tromey
0a32c5ea4a For PR java/6382:
* parse.y (string_convert_int_cst): New function.
	(merge_string_cste): Use it.

From-SVN: r52835
2002-04-27 20:31:42 +00:00
Tom Tromey
9127b2da1b For PR java/6425:
* parse.y (qualify_ambiguous_name) [case CALL_EXPR]: Always choose
	EXPR_WFL_QUALIFICATION of qual_wfl.

From-SVN: r52751
2002-04-25 01:09:47 +00:00
Bryce McKinlay
10aa83c7df re PR java/6085 (gcj SEGVs on complicated inner class structures)
Fix for PR java/6085:
        * parse.y (patch_method_invocation): Always use build_access_to_thisn
        to get enclosing "this" argument for inner-class constructor
        invocation. Pass correct arguments to build_access_to_thisn.

From-SVN: r52318
2002-04-15 10:25:29 +01:00
Bryce McKinlay
0b055ea1d8 parse.y (resolve_qualified_expression_name): Clear "from_super" flag after using it to patch CALL_EXPR.
* parse.y (resolve_qualified_expression_name): Clear "from_super" flag
	after using it to patch CALL_EXPR.

From-SVN: r52015
2002-04-08 07:41:36 +01:00
Neil Booth
ceef8ce4b4 c-common.c (unsigned_conversion_warning, [...]): Use new hooks.
* c-common.c (unsigned_conversion_warning, convert_and_check,
	unsigned_type, signed_type, shorten_compare,
	c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
	(unsigned_type, signed_type, signed_or_unsigned_type): Rename.
	* c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
	New.
	* c-decl.c (grokdeclarator): Update.
	* c-format.c (check_format_types): Update.
	* c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
	* c-typeck.c (build_binary_op, convert_for_assignment): Update.
	* convert.c (convert_to_integer): Use new hooks.
	* expmed.c (make_tree): Use new hooks.
	* expr.c (store_expr): Use new hooks.
	* fold-const.c (operand_equal_for_comparison_p, build_range_check,
	all_ones_mask_p, unextend, fold): Use new hooks.
	* langhooks.h (struct lang_hooks_for_types): New hooks.
	* tree.h (signed_or_unsigned_type, signed_type,
	unsigned_type): Remove.
ada:
	* gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
	Rename.
	* misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
	* trans.c (tree_transform, convert_with_check): Update.
	* utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
	Rename.
cp:
	* cp-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
	* decl.c (grokdeclarator): Update.
	* mangle.c (write_integer_cst): Update.
	* typeck.c (build_binary_op): Update.
f:
	* com.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
	(unsigned_type, signed_type, signed_or_unsigned_type): Rename.
java:
	* expr.c (build_java_binop): Update.
	* java-tree.h (java_signed_type, java_unsigned_type,
	java_signed_or_unsigned_type): Update.
	* lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
	* parse.y (patch_binop): Update.
	* typeck.c (signed_or_unsigned_type, unsigned_type,
	signed_type): Update.
objc:
	* objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.

From-SVN: r51684
2002-04-01 08:46:10 +00:00
Martin Kahlert
5bebbee733 parse.y (do_resolve_class): Fix infinite recursion.
2002-03-29  Martin Kahlert  <martin.kahlert@infineon.com>

	* parse.y (do_resolve_class): Fix infinite recursion.

(http://gcc.gnu.org/ml/java/2002-03/msg00654.html)

From-SVN: r51578
2002-03-29 14:27:29 -08:00
Tom Tromey
bce54832de parse.y (check_inner_circular_reference): Ignore incomplete types.
2002-03-29  Tom Tromey  <tromey@redhat.com>

	* parse.y (check_inner_circular_reference): Ignore incomplete
	types.

(http://gcc.gnu.org/ml/gcc-patches/2002-03/msg01987.html)

From-SVN: r51573
2002-03-29 13:58:49 -08:00
Bryce McKinlay
c187b20ed1 parse.y (resolve_package): Initialize "decl".
2002-03-28  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* parse.y (resolve_package): Initialize "decl".
	(lookup_package_type): Remove unused function.

From-SVN: r51500
2002-03-28 07:41:40 +00:00
Bryce McKinlay
2f418289ef re PR java/5993 (crashes on Hello World)
Fix for PR java/5993:
	* parse.y (resolve_package): Return the decl if resolution was
	successful. Don't special case "java.lang" and "java.lang.reflect"
	packages. Set type_name to the merged identifier.
	(resolved_qualified_expression_name): Print error using "name" if
	resolve_package returns NULL_TREE.

From-SVN: r51497
2002-03-28 04:28:22 +00:00
Bryce McKinlay
058330951d re PR java/5850 (resolving inherited member variables with same name works poorly)
Fix for PR java/5850:
        * parse.y (lookup_field_wrapper): Call itself recursively for enclosing
        context if field was not found in the current scope.
        * expr.c (lookup_field): Don't look in enclosing contexts.

From-SVN: r51438
2002-03-27 08:27:27 +00:00
Tom Tromey
c8c21a8cd0 re PR java/5942 (tree check failure when compiling Classpath with strictfp StrictMath class)
Fix for PR java/5942:
	* parse.y (init_src_parse): Added sanity check.
	* parse.h (struct parser_ctxt) [modifier_ctx]: Array has 12
	elements, not 11.

From-SVN: r51398
2002-03-26 18:59:04 +00:00
Mark Wielaard
caaabaa1f2 re PR java/5368 (gcj-3.0.3 segfaults with 20 line program)
Fix for PR java/5368:
	* parse.y (resolve_qualified_expression_name): Use decl not field_decl
	when printing error message.

From-SVN: r51327
2002-03-25 19:23:37 +00:00
Tom Tromey
a577854518 parse.y (build_access_to_thisn): Stop when FROM is not an inner class.
* parse.y (build_access_to_thisn): Stop when FROM is not an inner
	class.

From-SVN: r51138
2002-03-21 19:00:24 +00:00
Bryce McKinlay
6befbee5ff parse.y (parser_check_super_interface): Fix error message grammar/order.
* parse.y (parser_check_super_interface): Fix error message
	grammar/order.

From-SVN: r50955
2002-03-18 10:41:01 +00:00
Bryce McKinlay
568d1435c5 re PR java/5935 (problem with anonymous inner classes)
* parse.y (craft_constructor): Return the constructor decl.
	(java_expand_classes): Update comments.
	(lookup_method_invoke): Call fix_constructors immediately for
	anonymous class. Fixes PR java/5935.

From-SVN: r50891
2002-03-16 20:57:10 +00:00
Tom Tromey
f792bce511 re PR java/5848 (gcj "crashes" on syntax with complex cast)
* parse.y (qualify_ambiguous_name): Handle case where QUAL_WFL is
	a call_expr wrapped in a convert.  Fixes PR java/5848.

From-SVN: r50659
2002-03-12 18:01:23 +00:00
Bryce McKinlay
884523df8d parse.y (patch_assignment): Wrap the right-hand-side with a save_expr to prevent it getting evaluated twice...
* parse.y (patch_assignment): Wrap the right-hand-side with a save_expr
	to prevent it getting evaluated twice in the store checking case.
	* expr.c (build_java_arraystore_check): Unwrap SAVE_EXPR's when
	examining OBJECT.

From-SVN: r50570
2002-03-11 11:15:10 +00:00
Per Bothner
edcc88c132 parse.y (java_complete_lhs): Check if patch_assignment returned an error-mark.
* parse.y (java_complete_lhs):  Check if patch_assignment
	returned an error-mark.

	* parse.y (try_builtin_assignconv):  Don't special-case zero.

From-SVN: r50499
2002-03-09 08:31:52 -08:00
Kaveh R. Ghazi
ca7558fcc6 attribs.c (init_attributes, [...]): Use ARRAY_SIZE in lieu of explicit sizeof/sizeof.
* attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
	lieu of explicit sizeof/sizeof.
	* i386.c (override_options, ix86_init_mmx_sse_builtins,
	ix86_expand_builtin): Likewise.
	* mips.c (mips_add_gc_roots): Likewise.
	* mmix.c (mmix_output_condition): Likewise.
	* rs6000.c (rs6000_override_options, altivec_expand_builtin,
	altivec_init_builtins): Likewise.
	* sparc.c (mark_ultrasparc_pipeline_state): Likewise.
	* cppexp.c (Nsuff, parse_number): Likewise.
	* cppinit.c (builtin_array_end): Likewise.
	* gcc.c (n_default_compilers, process_command): Likewise.
	* genpreds.c (output_predicate_decls): Likewise.
	* ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
	* lcm.c (N_ENTITIES): Likewise.
	* stor-layout.c (set_sizetype): Likewise.

ada:
	* utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
	lieu of explicit sizeof/sizeof.

cp:
	* decl.c (cxx_init_decl_processing): Use ARRAY_SIZE in lieu of
	explicit sizeof/sizeof.
	* decl2.c (cxx_decode_option): Likewise.
	* lex.c (init_reswords, REDUCE_LENGTH, TOKEN_LENGTH): Likewise.

java:
	* class.c (init_class_processing): Use ARRAY_SIZE in lieu of
	explicit sizeof/sizeof.
	* decl.c (java_init_decl_processing): Likewise.
	* jcf-parse.c (init_jcf_parse): Likewise.
	* parse.y (init_src_parse): Likewise.

From-SVN: r50255
2002-03-03 14:07:39 +00:00
Alexandre Petit-Bianco
4f647d52ec Fix for PR java/5758, java/5632:
2002-02-28  Alexandre Petit-Bianco  <apbianco@redhat.com>

	Fix for PR java/5758, java/5632:
	* jcf-parse.c (load_class): Renamed local variable, consider `.' an
	inner-class separator too.
	* parse.y (do_resolve_class): New local `decl_result.'
	Progressively build a name for what can have been loaded.

From-SVN: r50228
2002-03-02 09:58:05 -08:00
Bryce McKinlay
022dcc4605 expr.c (java_array_data_offset): Removed function.
* expr.c (java_array_data_offset): Removed function.
	(JAVA_ARRAY_LENGTH_OFFSET): Removed macro.
	(build_java_array_length_access): Obtain "length" value using a
	COMPONENT_REF, instead of INDIRECT_REF and arithmetic.
	(build_java_arrayaccess): Correct comment. Access "data" using a
	COMPONENT_REF, and return an ARRAY_REF instead of an INDIRECT_REF.
	(build_java_arraystore_check): New function.
	(expand_java_arraystore): Use build_java_arraystore_check.
	* parse.y (patch_assignment): Simplify code to insert a store check
	when lvalue is an ARRAY_REF. Use build_java_arraystore_check.
	* check-init.c (check_init): Update to reflect that an array length
	access is now a COMPONENT_REF.
	* gcj.texi (Code Generation): Improve documentation of
	-fno-bounds-check. Add documentation for -fno-store-check.
	* java-tree.h (flag_store_check): Declare.
	(build_java_arraystore_check): Declare.
	* lang.c (flag_store_check): Initialize to 1.
	(lang_f_options): Add store-check option.
	* jvspec.c: Don't pass store-check option to jvgenmain.
	* lang-options.h: Add help string for -fno-store-check.

From-SVN: r50129
2002-02-28 11:40:29 +00:00
Per Bothner
453c182f82 parse.y (patch_method_invocation): Set CAN_COMPLETE_NORMALLY on call to finit$ (otherwise generate_bytecode_insns...
* parse.y (patch_method_invocation): Set CAN_COMPLETE_NORMALLY on call
	to finit$ (otherwise generate_bytecode_insns drops it). However, we
	don't need to set it on the COMPOUND_EXPR - the caller does that.

From-SVN: r49966
2002-02-22 05:57:43 -08:00
Per Bothner
9fe2cc0556 builtins.c (check_for_builtin): New function.
* builtins.c (check_for_builtin):  New function.
	(build_call_or_builtin):  Remove.
	* java-tree.h:  Update accordingly.
	* expr.c (expand_invoke):  Use build + check_for_builtin instead
	of build_call_or_builtin.
	* parse.y (patch_invoke):  Likewise.  This avoids needlessly creating
	a new CALL_EXPR node, which means we don't lose the CALL_USING_SUPER
	flag (which had caused jcf-write to incorrectly emit invokevirtual).

From-SVN: r49909
2002-02-20 11:53:49 -08:00
Tom Tromey
6b6294f118 java-tree.h (TYPE_STRICTFP): New macro.
* java-tree.h (TYPE_STRICTFP): New macro.
	(struct lang_type) [strictfp]: New field.
	(CLASS_STRICTFP): New macro.
	(METHOD_STRICTFP): New macro.
	(struct lang_decl) [strictfp]: New field.
	* parse.y (method_header): Disallow strictfp constructor or
	abstract method.
	(STRICT_TK): Move before MODIFIER_TK.
	* parse.h (CLASS_MODIFIERS): Added ACC_STRICT.
	(METHOD_MODIFIERS): Likewise.
	(INTERFACE_MODIFIERS): Likewise.
	* jcf-write.c (get_access_flags): Likewise.
	* class.c (set_class_decl_access_flags): Recognize ACC_STRICT.
	(add_method_1): Likewise.
	(get_access_flags_from_decl): Likewise.
	* jcf-dump.c (print_access_flags): Print in standard order.  Also,
	recognize strictfp flag.
	* jcf.h (ACC_STRICT): New define.

From-SVN: r49834
2002-02-18 04:55:07 +00:00
Bryce McKinlay
14b7105512 * parse.y (java_expand_classes): Fix typo in static field loop.
From-SVN: r49468
2002-02-04 02:38:16 +00:00
Richard Henderson
f0c75752a1 class.c (add_field): Mark static fields external.
* class.c (add_field): Mark static fields external.
        (build_class_ref): Remove redundant set.
        * parse.y (java_expand_classes): Mark static fields of classes
        to be compiled as local.
        * jcf-parse.c (parse_class_file): Likewise.

From-SVN: r49458
2002-02-02 22:23:37 -08:00
Tom Tromey
adc8cb5dea expr.c (build_jni_stub): Ensure storage for `meth' is generated.
* expr.c (build_jni_stub): Ensure storage for `meth' is
	generated.
	* parse.y (java_complete_expand_methods): Set
	current_function_decl before building JNI stub.

From-SVN: r49286
2002-01-28 16:52:27 +00:00
Tom Tromey
45a2b4f74e reverted accidental checkin
From-SVN: r49272
2002-01-27 22:30:30 +00:00
Andreas Tobler
1d8478d79a builtins.c (sqrt_builtin): Use BUILT_IN_SQRT, not BUILT_IN_SQRTF.
2002-01-26 Andreas Tobler <a.tobler@schweiz.ch>

	* gcc/java/builtins.c (sqrt_builtin): Use BUILT_IN_SQRT, not
	BUILT_IN_SQRTF.

From-SVN: r49271
2002-01-27 22:28:42 +00:00
Tom Tromey
fec763fcfd decl.c (java_init_decl_processing): Use add_predefined_file.
* decl.c (java_init_decl_processing): Use add_predefined_file.
	Predefine RawData.java.
	(predef_filenames): Removed.
	(java_init_decl_processing): Don't register predef_filenames.
	* jcf-parse.c (add_predefined_file): New function.
	(predefined_filename_p): Rewrote.
	(predefined_filename_p): No longer static.
	* decl.c (java_init_decl_processing): Call initialize_builtins.
	* Make-lang.in (JAVA_OBJS): Added builtins.o.
	(java/builtins.o): New target.
	* builtins.c: New file.
	* parse.y (patch_invoke): Use build_call_or_builtin.
	* java-tree.h (build_call_or_builtin): Declare.
	(initialize_builtins): Declare.
	(java_set_exception_lang_code): Removed unused declaration.
	(PREDEF_FILENAMES_SIZE): Removed.
	(java_tree_index): Added JTI_PREDEF_FILENAMES.
	(predef_filenames): New define.
	(add_predefined_file): Declare.
	(predefined_filename_p): Declare.
	* expr.c (expand_invoke): Use build_call_or_builtin.

From-SVN: r49091
2002-01-22 20:23:46 +00:00
Kaveh R. Ghazi
cc586d706a * parse.y (patch_switch_statement): Fix format specifier.
From-SVN: r49084
2002-01-22 19:04:09 +00:00
Kaveh R. Ghazi
5e65297bbb gcc.c (default_compilers): Const-ify.
* gcc.c (default_compilers): Const-ify.
	* mips-tdump.c (stab_names): Likewise.
	* mips-tfile.c (map_coff_types, map_coff_storage,
	map_coff_sym_type, map_coff_derived_type, stabs_symbol,
	pseudo_ops_t, pseudo_ops): Likewise.
	* protoize.c (default_include): Likewise

f:
	* com.c (clear_binding_level): Const-ify.
	(ffecom_arglist_expr_): Likewise.
	* info.c (ffeinfo_types_): Don't needlessly zero init.
	* lex.c (ffelex_hash_kludge): Const-ify.

java:
	* parse.y (src_parse_roots): Don't needlessly zero init.

libiberty:
	* cp-demangle.c (long_options): Const-ify.
	* cplus-dem.c (long_options): Likewise.

From-SVN: r48485
2002-01-02 23:18:59 +00:00
Tom Tromey
12cfb4fc72 parse.y (dump_java_tree): New function.
* parse.y (dump_java_tree): New function.
	(source_end_java_method): Call it.
	(end_class_declaration): Likewise.
	* lang.c (java_decode_option): Call dump_switch_p.

From-SVN: r48439
2002-01-01 01:42:15 +00:00
Kaveh R. Ghazi
c083a819b2 collect2.c (is_ctor_dtor): Const-ify.
* collect2.c (is_ctor_dtor): Const-ify.
	* m88k-protos.c (output_file_start): Likewise.
	* m88k.c (m88k_lang_independent_options, output_options,
	output_file_start): Likewise.
	* fix-header.c (files_to_ignore, std_include_entry, include_entry,
	std_include_table, main): Likewise.
	* protoize.c (longopts): Likewise.
	* regclass.c (int_reg_class_contents): Likewise.
	* toplev.c (dump_file, f_options, W_options): Make static.
	(lang_independent_options, f_options, W_options): Const-ify.
	* tree-dump.c (dump_file_info): Likewise.
	* unroll.c (_factor): Make static.

java:
	* chartables.h: Const-ify.
	* gjavah.c (options): Likewise.
	* jcf-dump.c (options): Likewise.
	* jv-scan.c (options): Likewise.
	* lex.c (java_start_char_p, java_part_char_p): Likewise.
	* parse.y (binop_lookup): Likewise.

From-SVN: r48322
2001-12-27 03:35:21 +00:00
Tom Tromey
e97b32d909 reverted erroneous checking -- sorry about that
From-SVN: r48250
2001-12-21 19:18:52 +00:00
Tom Tromey
82712f8b74 For PR java/4509:
* parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
	CAN_COMPLETE_NORMALLY for the node.
	* jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
	generate code for second branch if first branch can't complete
	normally.
	(generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
	the loop head if the loop body can't complete normally.

From-SVN: r48249
2001-12-21 19:15:36 +00:00
Tom Tromey
84a944b3ca For PR java/4509:
* parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
	CAN_COMPLETE_NORMALLY for the node.
	* jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
	generate code for second branch if first branch can't complete
	normally.
	(generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
	the loop head if the loop body can't complete normally.

From-SVN: r48233
2001-12-21 05:28:27 +00:00
Tom Tromey
f2af50dbcf re PR java/5057 (gcj -C erroneously omits <clinit>)
Fixes PR java/5057:
	* parse.y (analyze_clinit_body): Added this_class parameter.
	Check for more cases where we must keep <clinit>.
	(maybe_yank_clinit): Cleaned up flow control.

From-SVN: r48231
2001-12-21 04:37:24 +00:00
Bryce McKinlay
de4984af13 mangle.c (mangle_member_name): Don't special-case for NO_DOLLAR_IN_LABEL.
* mangle.c (mangle_member_name): Don't special-case for
	NO_DOLLAR_IN_LABEL.
	* mangle_name.c (unicode_mangling_length): Likewise.
	(append_unicode_mangled_name): Likewise.
	* parse.y (make_nested_class_name): Remove dead NO_DOLLAR_IN_LABEL
	code.

From-SVN: r48220
2001-12-20 22:48:52 +00:00
Tom Tromey
56b8325e5b re PR java/3417 (Downcast on integral types.)
Fix for PR java/3417:
	* parse.y (patch_assignment): Added special processing for
	`return'.
	(patch_return): Don't convert booleans to integers, and don't
	special-case `null'.

From-SVN: r48208
2001-12-20 17:45:41 +00:00
Tom Tromey
e97562f5ce parse.y (link_nested_class_to_enclosing): Removed useless statement.
* parse.y (link_nested_class_to_enclosing): Removed useless
	statement.

From-SVN: r48118
2001-12-17 19:14:07 +00:00
Joseph Myers
a83f01f040 ChangeLog, [...]: Fix spelling errors.
* ChangeLog, Make-lang.in, class.c, expr.c, gcj.texi, java-tree.h,
	jcf-parse.c, jcf-write.c, lex.c, parse.h, parse.y, verify.c: Fix
	spelling errors.

From-SVN: r48075
2001-12-16 16:23:50 +00:00
Hans Boehm
eec875422f class.c (get_dispatch_table): Fix java vtable layout for TARGET_VTABLE_USES_DESCRIPTORS.
* class.c (get_dispatch_table): Fix java vtable layout
	for TARGET_VTABLE_USES_DESCRIPTORS.
	* decl.c (java_init_decl_processing): Initialize
	alloc_no_finalizer_node, finalize_identifier_node.
	* expr.c (class_has_finalize_method): New function.
	(expand_java_NEW): Generate calls for finalizer-free allocation.
	(build_invokevirtual): Fix java vtable layout for
	TARGET_VTABLE_USES_DESCRIPTORS.
	* java-tree.h (enum java_tree_index): New entries:
	JTI_ALLOC_NO_FINALIZER_NODE, JTI_FINALIZE_IDENTIFIER_NODE.
	(alloc_no_finalizer_node, finalize_deintifier_node): New macros.
	(class_has_finalize_method): declare.
	(HAS_FINALIZER_P): New macro.
	* parse.y (patch_invoke): Generate calls for finalizer-free
	allocation.

From-SVN: r48004
2001-12-14 19:01:02 +00:00
Per Bothner
5412ef6bba Restore support for static class initialization optimization.
From-SVN: r47735
2001-12-06 15:12:55 -08:00
Per Bothner
4f88ccda2d check-init.c: Handle definite unassignment to finals in addition to definite assignment.
* check-init.c:   Handle definite unassignment to finals in addition
	to definite assignment.		[see ChangeLog]

From-SVN: r47619
2001-12-04 11:30:13 -08:00
Per Bothner
87d4ad0804 parse.y (patch_binop): Minor constant folding.
* parse.y (patch_binop):  Minor constant folding.

	* parse.y (build_current_thisn):  Shorter 'buffer'.

From-SVN: r47588
2001-12-03 17:24:59 -08:00
Neil Booth
c725bd79e7 c-decl.c (grokdeclarator): Use ISO word.
* c-decl.c (grokdeclarator): Use ISO word.
	* cppinit.c: Remove leading capital from diagnostic messages, as
	per GNU coding standards.
	* diagnostic.c: Similarly.
	* emit-rtl.c: Similarly.
	* final.c: Similarly.
	* gcc.c: Similarly.
	* tradcpp.c: Similarly.
	* config/arm/arm.c: Similarly.
	* config/arm/arm.h: Similarly.
	* config/avr/avr.c: Similarly.
	* config/avr/avr.h: Similarly.
	* config/c4x/c4x.c: Similarly.
	* config/cris/cris.c: Similarly.
	* config/cris/cris.h: Similarly.
	* config/d30v/d30v.c: Similarly.
	* config/dsp16xx/dsp16xx.c: Similarly.
	* config/dsp16xx/dsp16xx.h: Similarly.
	* config/h8300/h8300.c: Similarly.
	* config/i386/i386.c: Similarly.
	* config/i386/xm-djgpp.h: Similarly.
	* config/i960/i960.h: Similarly.
	* config/m32r/m32r.c: Similarly.
	* config/m68hc11/m68hc11.c: Similarly.
	* config/m88k/m88k.c: Similarly.
	* config/m88k/m88k.h: Similarly.
	* config/mcore/mcore.c: Similarly.
	* config/mcore/mcore.h: Similarly.
	* config/mips/mips.c: Similarly.
	* config/mmix/mmix.c: Similarly.
	* config/pa/pa.c: Similarly.
	* config/rs6000/rs6000.c: Similarly.
	* config/rs6000/sysv4.h: Similarly.
	* config/s390/s390.c: Similarly.
	* config/sparc/sparc.c: Similarly.
	* config/v850/v850-c.c: Similarly.
	* config/v850/v850.c: Similarly.
ch:
	* actions.c: Remove leading capital from diagnostic messages, as
	per GNU coding standards.
	* decl.c: Similarly.
	* expr.c: Similarly.
	* inout.c: Similarly.
	* lang.c: Similarly.
	* loop.c: Similarly.
	* nloop.c: Similarly.
	* parse.c: Similarly.
	* satisfy.c: Similarly.
	* tasking.c: Similarly.
	* tree.c: Similarly.
	* typeck.c: Similarly.
cp:
	* typeck2.c: Remove leading capital from diagnostic messages, as
	per GNU coding standards.
f:
	* com.c: Remove leading capital from diagnostic messages, as
	per GNU coding standards.
	* g77spec.c: Similarly.
	* lex.c: Similarly.
java:
	* expr.c: Remove leading capital from diagnostic messages, as
	per GNU coding standards.
	* jcf-io.c: Similarly.
	* jcf-parse.c: Similarly.
	* jv-scan.c: Similarly.
	* jvspec.c: Similarly.
	* mangle.c: Similarly.

From-SVN: r47558
2001-12-03 19:15:19 +00:00
Tang Ching-Hui
b736dee607 re PR java/3096 (GCJ does not increment)
2001-12-02  Tang Ching-Hui  <nicholas@cs.nthu.edu.tw>
	    Alexandre Petit-Bianco  <apbianco@redhat.com>

	* expr.c: call save_expr on array for correct evaluation order,
	modified comment, fixed indentation.
	* parse.y: (patch_assignment): Correctly extract the array base
	from the tree generate by build_java_arrayaccess, added comments.
	(patch_array_ref): Remove SAVE_EXPR on ARRAY_REF.
	Fixes PR java/3096, PR java/3803, PR java/3965.

Co-Authored-By: Alexandre Petit-Bianco <apbianco@redhat.com>

From-SVN: r47525
2001-12-02 10:44:54 +00:00
Tom Tromey
1fa73144cb parse.y (trap_overflow_corner_case): New rule.
* parse.y (trap_overflow_corner_case): New rule.
	(unary_expression): Use it.
	* lex.c (java_init_lex): Don't set minus_seen.
	(yylex): Don't use minus_seen.  Communicate overflow to parser for
	it to handle.
	(error_if_numeric_overflow): New function.
	* parse.h (minus_seen): Removed field.
	(JAVA_RADIX10_FLAG): New define.

From-SVN: r46846
2001-11-08 15:38:10 +00:00
Tom Tromey
5a21a051b7 Patch for PR java/1414:
* parse.y (case_label_list): New global.
	(goal): Register case_label_list with GC.
	(java_complete_lhs): Save new case on case_label_list.
	(patch_switch_statement): Check for duplicate case labels.

From-SVN: r46845
2001-11-08 15:33:40 +00:00
Alexandre Petit-Bianco
5573cb3918 parse.y (patch_assignment): Removed unused third argument.
2001-11-07  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* parse.y (patch_assignment): Removed unused third argument.
	(java_complete_lhs): Removed unused third argument to patch_assignment.

( http://gcc.gnu.org/ml/gcc-patches/2001-11/msg00469.html )

From-SVN: r46834
2001-11-07 12:50:00 -08:00
Bryce McKinlay
961b8e7028 expr.c (expand_java_field_op): Don't special-case references to java.lang.PRIMTYPE.TYPE.
* expr.c (expand_java_field_op): Don't special-case references to
	java.lang.PRIMTYPE.TYPE.
	(build_primtype_type_ref): Removed.
	* java-tree.h (build_primtype_type_ref): Remove prototype.
	* parse.y (maybe_build_primttype_type_ref): Removed.
	(complete_function_arguments): Don't special-case references to
	java.lang.PRIMTYPE.TYPE.
	(patch_assignment): Likewise.
	(array_constructor_check_entry): Likewise.

From-SVN: r46522
2001-10-26 02:53:56 +01:00
Alexandre Petit-Bianco
98f705b937 mangle.c (static tree compression_table): Fixed leading comment.
2001-10-24  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* mangle.c (static tree compression_table): Fixed leading comment.
	* parse.h (struct parser_ctxt): Fixed field comment.
	* parse.y (check_pkg_class_access): New prototype, fixed leading
	comment, new parameter used to emit error only if passed as true.
	(parse_check_super): Pass extra argument to check_pkg_class_access.
	(do_resolve_class): Likewise.
	(process_imports): Likewise.
	(read_import_dir): Fixed indentation.
	(find_in_imports_on_demand): New local class_type_name. Local
	node_to_use deleted. while loop changed into for loop. Report
	multiple definition only for accessible classes. Improved error
	message.
	(start_complete_expand_method): Local `ptr' removed. DECL_ARGUMENTS
	assigned to parameter list, fixed indentation. while loop changed
	into for loop, restore TREE_CHAIN on local `tem' before the next
	iteration.

( http://gcc.gnu.org/ml/gcc-patches/2001-10/msg01323.html )

From-SVN: r46498
2001-10-25 14:37:44 -07:00
Per Bothner
89b894e19b parse.y (patch_synchronized_statement): Use a TRY_FINALLY_EXPR rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair.
* parse.y (patch_synchronized_statement):  Use a TRY_FINALLY_EXPR
	rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair.
	The former is simpler, and jcf-write.c handles it better.
	(java_complete_lhs):  No longer need to handle CLEANUP_POINT_EXPR
	or WITH_CLEANUP_EXPR.
	* jcf-write.c:  Revert Alex's change from 2000-10-18.  It is no
	longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine.

From-SVN: r46209
2001-10-11 16:50:49 -07:00
Per Bothner
be98560f31 parse.y (patch_if_else_statement): If the condition is constant, optimize away the test.
* parse.y (patch_if_else_statement):  If the condition is constant,
	optimize away the test.

From-SVN: r46207
2001-10-11 16:34:03 -07:00
Alexandre Petit-Bianco
3fb5c0ebcf [multiple changes]
2001-10-09  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* parse.y (patch_cast): Call patch_string on the first operand of
	the incoming node, update it if necessary. Fixes java/4510.

2001-10-05  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* parse.y (register_incomplete_type): Set JDEP_SUPER to be given
	a NULL enclosing context if appropriate. Fixes java/4466.

2001-09-17  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* parse.y (patch_method_invocation): Inner class creation context
	check not enforced within constructors. Fixes PR java/1873.

( http://gcc.gnu.org/ml/gcc-patches/2001-10/msg00397.html )

From-SVN: r46133
2001-10-09 15:55:35 -07:00