Commit Graph

19954 Commits

Author SHA1 Message Date
Tom Tromey 36696297f1 * gcc.c (option_map): Recognize --output-class-directory.
From-SVN: r23886
1998-11-25 22:46:28 +00:00
Michael Hayes e96b4d7a44 loop.h (precondition_loop_p): Added new mode argument.
* loop.h (precondition_loop_p): Added new mode argument.
	* unroll.c (precondition_loop_p): Likewise.
	(approx_final_value): Function deleted and subsumed
 	into loop_iterations.
	(loop_find_equiv_value): New function.
	(loop_iterations): Use loop_find_equiv_value to find increments
	too large to be immediate constants.  Also use it to find terms
	common to initial and final iteration values that can be removed.

From-SVN: r23885
1998-11-25 21:32:27 +00:00
Michael Hayes 302670f3f0 loop.h (struct loop_info): Define new structure.
* loop.h (struct loop_info): Define new structure.
	(precondition_loop_p): Added prototype.
	(unroll_loop): Added new argument loop_info to prototype.
	(final_biv_value, final_giv_value): Added new argument n_iterations
	to prototype.
	* loop.c (strength_reduce): Declare new structure loop_iteration_info
	and new pointer loop_info.
	(loop_n_iterations): Replace global variable by element in
	loop_info structure.
	(check_final_value): New argument n_iterations.
	(insert_bct): New argument loop_info.
	(loop_unroll_factor): Replace global array by element in
	loop_info structure.
	(loop_optimize): Remove code to allocate and initialise
	loop_unroll_factor_array.
	* unroll.c (precondition_loop_p):  No longer static since
	used by branch on count optimization.
	(precondition_loop_p, unroll_loop): New argument loop_info.
	(final_biv_value, final_giv_value, find_splittable_regs): New
	argument n_iterations.
	(loop_iteration_var, loop_initial_value, loop_increment,
	loop_final_value, loop_comparison_code, loop_unroll_factor):
	Replaced global variables by loop_info structure.
	(loop_unroll_factor): Replace global array by element in
	loop_info structure.

From-SVN: r23884
1998-11-25 21:19:21 +00:00
Michael Hayes a70603680e loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn when loop reversed.
* loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn
	when loop reversed.
	* unroll.c (precondition_loop_p): Return loop_initial_value
	for initial_value instead of loop_iteration_var.

From-SVN: r23881
1998-11-25 20:51:09 +00:00
Michael Hayes 959e0a7606 c4x.md: Fix minor formatting problems.
* config/c4x/c4x.md: Fix minor formatting problems.  Update docs.
	(*b, *b_rev, *b_noov, *b_noov_rev, *db,
	decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch
	to output the instruction sequences.
	(rpts): Delete.
	(rptb_top): Provide alternatives to use any register or memory
	for loop counter.
	(rptb_end):  Emit use of operands rather than assigning them
	explicitly to the RS and RE registers.

From-SVN: r23880
1998-11-25 20:21:49 +00:00
Michael Hayes 4271f0030d c4x.c: (c4x_override_options): For compatibility with old target options clear...
* config/c4x/c4x.c: (c4x_override_options): For compatibility
	with old target options clear flag_branch_on_count_reg if
	-mno-rptb specified and set flag_argument_alias is -mno-aliases
	specified.
	(c4x_output_cbranch): Handle a sequence of insns rather than a
 	single insn.
	(c4x_rptb_insert): Do not emit a RPTB insn if the RC register
	has not been allocated as the loop counter.
	(c4x_address_conflict): Do not allow two volatile memory references.
	(valid_parallel_operands_4, valid_parallel_operands_5,
 	valid_parallel_operands_6): Reject pattern if the register destination
	of the first set is used as part of an address in the second set.

From-SVN: r23879
1998-11-25 19:59:39 +00:00
Michael Hayes 0fe69abaa1 c4x.c (c4x_modified_between_p, [...]): Delete.
* config/c4x/c4x.c (c4x_modified_between_p, c4x_mem_set_p,
 	c4x_mem_set_p, c4x_mem_modified_between_p, c4x_insn_moveable_p,
	c4x_parallel_pack, c4x_parallel_find, c4x_update_info_reg,
	c4x_update_info_regs, c4x_copy_insn_after, c4x_copy_insns_after,
	c4x_merge_notes, c4x_parallel_process,
	c4x_combine_parallel_independent, c4x_combine_parallel_dependent,
	c4x_combine_parallel): Delete.

From-SVN: r23878
1998-11-25 19:45:42 +00:00
Alexandre Oliva 51a6311276 lookup5.C: New test.
* g++.old-deja/g++.other/lookup5.C: New test.  Not sure the
	problem is actually related with name lookup, but so what? :-)

From-SVN: r23877
1998-11-25 18:29:12 +00:00
Michael Hayes 2e3e9ead11 c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG.
* config/c4x/c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG.
	(TARGET_SMALL_REG_CLASS): Set to 0 so that SMALL_REGISTER_CLASSES
	is no longer enabled if PARALLEL_MPY_FLAG set.
	(HARD_REGNO_CALL_CLOBBERED): Add parentheses to remove ambiguity.
	(REG_CLASS_CONTENTS): Add braces around initializers.
	(HAVE_MULTIPLE_PACK): Define.
	(ASM_OUTPUT_BYTE_FLOAT): Use %lf format specifier with
	REAL_VALUE_TO_DECIMAL.
	(ASM_OUTPUT_SHORT_FLOAT): Use %lf format specifier with
	REAL_VALUE_TO_DECIMAL.
	(ar0_reg_operand): Add prototype.
	(ar0_mem_operand): Likewise.
	(ar1_reg_operand): Likewise.
	(ar1_mem_operand): Likewise.
	(ar2_reg_operand): Likewise.
	(ar2_mem_operand): Likewise.
	(ar3_reg_operand): Likewise.
	(ar3_mem_operand): Likewise.
	(ar4_reg_operand): Likewise.
	(ar4_mem_operand): Likewise.
	(ar5_reg_operand): Likewise.
	(ar5_mem_operand): Likewise.
	(ar6_reg_operand): Likewise.
	(ar6_mem_operand): Likewise.
	(ar7_reg_operand): Likewise.
	(ar7_mem_operand): Likewise.
	(ir0_reg_operand): Likewise.
	(ir0_mem_operand): Likewise.
	(ir1_reg_operand): Likewise.
	(ir1_mem_operand): Likewise.
	(group1_reg_operand): Likewise.
	(group1_mem_operand): Likewise.
	(ir1_reg_operand): Likewise.
	(arx_reg_operand): Likewise.
	(not_rc_reg): Likewise.
	(not_modify_reg): Likewise.
	(c4x_group1_reg_operand): Remove prototype.
	(c4x_group1_mem_operand): Likewise.
	(c4x_arx_reg_operand): Likewise.

From-SVN: r23876
1998-11-25 18:10:29 +00:00
Alexandre Oliva 3c9a0d0fed * g++.old-deja/g++.pt/friend37.C: New test.
From-SVN: r23875
1998-11-25 18:07:33 +00:00
Stephen L Moshier a46f03ea15 emit-rtl.c (gen_lowpart_common): Remove earlier change.
* emit-rtl.c (gen_lowpart_common): Remove earlier change.
        * real.c (make_nan): Make SIGN arg actually specify the sign bit.

From-SVN: r23874
1998-11-25 11:06:07 -07:00
Mike Stump c85c32322e * Makefile.in (splay-tree.o): Add config.h dependency.
From-SVN: r23873
1998-11-25 11:02:19 -07:00
Michael Hayes f3ed04e72a c4x.md (addqi3): Emit addqi3_noclobber pattern during reload.
* config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern
	during reload.

From-SVN: r23872
1998-11-25 17:14:35 +00:00
Per Bothner de4c7b029c java-tree.h (end_params_node): Declare global.
* java-tree.h (end_params_node):  Declare global.
	* decl.c (end_params_node):  New global.
	(init_decl_processing, start_java_method):  Use end_params_node for
	end of list of parameter types.  Follows correct gcc conventions.
	* expr.c (pop_argument_types, pop_arguments):  Likewise.
	* lang.c (put_decl_node):  Likewise.
	* typeck.c (various places):  Likewise.
	* class.y (various places):  Likewise.
	* parse.y (various places):  Likewise.
	* parse.y (java_complete_tree):  Move CAN_COMPLETE_NORMALLY.
	(build_jump_to_finally):  Add missing CAN_COMPLETE_NORMALLY.
	* class.c:  Add #include flags.h, remove no-longer needed declaration.
	* class.c (layout_class_method):  Remove commented-out code, re-format.
	Don't add vtable entry (or index) for private methods.
	* expr.c (expand_invoke):  A private method is implicitly final.
	* class.c (make_class_data):  If inlining or optimizing,
	skip private methods.
	* class.c (finish_class):  New function.  Calls existing methods,
	but alls emits deferred inline functions.
	* jcf-parse.c (parse_class_file):  Call finish_class.
	* parse.y (java_complete_expand_methods):  Likewise.
	* expr.c (build_java_binop):  Explicit default, to silence -Wall.

From-SVN: r23871
1998-11-25 09:10:57 -08:00
Per Bothner 0bd2e6dbbf java-tree.h (end_params_node): Declare global.
�
	* java-tree.h (end_params_node):  Declare global.
	* decl.c (end_params_node):  New global.
	(init_decl_processing, start_java_method):  Use end_params_node for
	end of list of parameter types.  Follows correct gcc conventions.
	* expr.c (pop_argument_types, pop_arguments):  Likewise.
	* lang.c (put_decl_node):  Likewise.
	* typeck.c (various places):  Likewise.
	* class.y (various places):  Likewise.
	* parse.y (various places):  Likewise.
	* parse.y (java_complete_tree):  Move CAN_COMPLETE_NORMALLY.
	(build_jump_to_finally):  Add missing CAN_COMPLETE_NORMALLY.
	* class.c:  Add #include flags.h, remove no-longer needed declaration.
	* class.c (layout_class_method):  Remove commented-out code, re-format.
	Don't add vtable entry (or index) for private methods.
	* expr.c (expand_invoke):  A private method is implicitly final.
	* class.c (make_class_data):  If inlining or optimizing,
	skip private methods.
	* class.c (finish_class):  New function.  Calls existing methods,
	but alls emits deferred inline functions.
	* jcf-parse.c (parse_class_file):  Call finish_class.
	* parse.y (java_complete_expand_methods):  Likewise.
	* expr.c (build_java_binop):  Explicit default, to silence -Wall.

From-SVN: r23870
1998-11-25 09:10:49 -08:00
Per Bothner 75d01ad77d java-tree.h (end_params_node): Declare global.
d
	* java-tree.h (end_params_node):  Declare global.
	* decl.c (end_params_node):  New global.
	(init_decl_processing, start_java_method):  Use end_params_node for
	end of list of parameter types.  Follows correct gcc conventions.
	* expr.c (pop_argument_types, pop_arguments):  Likewise.
	* lang.c (put_decl_node):  Likewise.
	* typeck.c (various places):  Likewise.
	* class.y (various places):  Likewise.
	* parse.y (various places):  Likewise.
	* parse.y (java_complete_tree):  Move CAN_COMPLETE_NORMALLY.
	(build_jump_to_finally):  Add missing CAN_COMPLETE_NORMALLY.
	* class.c:  Add #include flags.h, remove no-longer needed declaration.
	* class.c (layout_class_method):  Remove commented-out code, re-format.
	Don't add vtable entry (or index) for private methods.
	* expr.c (expand_invoke):  A private method is implicitly final.
	* class.c (make_class_data):  If inlining or optimizing,
	skip private methods.
	* class.c (finish_class):  New function.  Calls existing methods,
	but alls emits deferred inline functions.
	* jcf-parse.c (parse_class_file):  Call finish_class.
	* parse.y (java_complete_expand_methods):  Likewise.
	* expr.c (build_java_binop):  Explicit default, to silence -Wall.

From-SVN: r23869
1998-11-25 09:10:46 -08:00
Per Bothner df8940cf1b java-tree.h (end_params_node): Declare global.
* java-tree.h (end_params_node):  Declare global.
	* decl.c (end_params_node):  New global.
	(init_decl_processing, start_java_method):  Use end_params_node for
	end of list of parameter types.  Follows correct gcc conventions.
	* expr.c (pop_argument_types, pop_arguments):  Likewise.
	* lang.c (put_decl_node):  Likewise.
	* typeck.c (various places):  Likewise.
	* class.y (various places):  Likewise.
	* parse.y (various places):  Likewise.
	* parse.y (java_complete_tree):  Move CAN_COMPLETE_NORMALLY.
	(build_jump_to_finally):  Add missing CAN_COMPLETE_NORMALLY.
	* class.c:  Add #include flags.h, remove no-longer needed declaration.
	* class.c (layout_class_method):  Remove commented-out code, re-format.
	Don't add vtable entry (or index) for private methods.
	* expr.c (expand_invoke):  A private method is implicitly final.
	* class.c (make_class_data):  If inlining or optimizing,
	skip private methods.
	* class.c (finish_class):  New function.  Calls existing methods,
	but alls emits deferred inline functions.
	* jcf-parse.c (parse_class_file):  Call finish_class.
	* parse.y (java_complete_expand_methods):  Likewise.
	* expr.c (build_java_binop):  Explicit default, to silence -Wall.

From-SVN: r23868
1998-11-25 09:10:45 -08:00
Brendan Kehoe 30ef624be4 fix typo
From-SVN: r23867
1998-11-25 10:18:46 -05:00
J"orn Rennecke 0e1bd73788 lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1 unless FMOVD_WORKS is defined.
* config/sh/lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1
	unless FMOVD_WORKS is defined.

From-SVN: r23866
1998-11-25 14:09:56 +00:00
Alexandre Oliva 0a95561803 test_summary (-p, [...]): add these before the summary
* test_summary (-p, prepend_logs): add these before the summary
	(Compiler, Platform): print these just before configflags

From-SVN: r23864
1998-11-25 12:59:24 +00:00
J"orn Rennecke 910bc42d0d regclass.c (init_reg_sets): Move code that calculates tables dependent on reg_class_contents from here...
* regclass.c (init_reg_sets): Move code that calculates tables
	dependent on reg_class_contents from here...
	(init_reg_sets_1): To here.

From-SVN: r23858
1998-11-25 12:15:14 +00:00
Zack Weinberg 0b3d776a42 cpplib.h: Delete struct import_file.
Wed Nov 25 14:54:46 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
        * cpplib.h: Delete struct import_file.  Add ihash element to
        struct cpp_buffer.  Delete dont_repeat_files and
        import_hash_table elements from cpp_reader; change
        all_include_files to a hash table.  Delete all foobar_include
        / last_foobar_include elements from struct cpp_options; put
        back four such: quote_include, bracket_include,
        system_include, after_include.  Redo struct file_name_list
        completely.  Add new structure type include_hash.  Add
        prototypes for merge_include_chains and include_hash.  Change
        prototypes for finclude, find_include_file, and
        append_include_chain to match changes below.
        * cppfiles.c (simplify_pathname, include_hash,
        remap_filename, merge_include_chains): New functions.
        (add_import, lookup_import, open_include_file): Removed.
        (INO_T_EQ): Define this (copied from cccp.c).
        (hack_vms_include_specification): Remove all calls and #if 0
        out the definition.  It was being called incorrectly and at
        the wrong times.  Until a VMSie can look at this, it's better
        to not pretend to support it.
        (append_include_chain): Change calling convention; now takes
        only one directory at a time, and sets up the data structure
        itself.
        (redundant_include_p): Rewritten - this is now used for all
        include redundancy, whether by #ifndef, #import, or #pragma
        once.  Looks up things in the include hash table.
        (file_cleanup): Decrement pfile->system_include_depth here if
        it's >0.
        (find_include_file): Calling convention changed; now passes
        around a struct include_hash instead of 3 separate parameters.
        Guts ripped out and replaced with new include_hash mechanism.
        (finclude): Calling convention changed as for
        find_include_file.  Error exits pulled out-of-line.  Reformat.
        (safe_read): Return a long, not an int.
        (deps_output): Don't recurse.
        * cpplib.c (is_system_include): Deleted.
        (path_include): Fix up call to append_include_chain.
        (do_include): Fix up calls to find_include_file and finclude.
        Clean up dependency output a bit.  Shorten obnoxiously lengthy
        #import warning message.  Don't decrement
        pfile->system_include_depth here.
        (do_pragma): Understand the include_hash structure.  Reformat.
        (do_endif): Correct handling of control macros.  Understand
        the include_hash.
        (cpp_start_read): Fix up calls to finclude.  Call
        merge_include_chains.
        (cpp_handle_option): Fix up calls to append_include_chain.
        Understand the four partial include chains.
        (cpp_finish): Add debugging code (#if 0-ed out) for the
        include_hash.
        (cpp_cleanup): Free the include_hash, not the import hash and
        the all_include and dont_repeat lists which no longer exist.

From-SVN: r23857
1998-11-25 06:56:54 -05:00
Jason Merrill 08b24bda51 except.c (expand_throw): Use TYPE_PTR_P to check for pointers.
* except.c (expand_throw): Use TYPE_PTR_P to check for pointers.
	* decl.c (check_tag_decl): Do complain about null friend decl at
	file scope.

From-SVN: r23856
1998-11-25 06:28:29 -05:00
Jeff Law f1db357664 toplev.c (no_new_pseudos): Define.
* toplev.c (no_new_pseudos): Define.
        (rest_of_compilation):  Set no_new_pseudos as needed.
        * emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo
        if no_new_pseudos is set.
        * rtl.h (no_new_pseudos): Declare it.
        * reload1.c (reload): Update comments.
        * md.texi: Corresponding changes.
        * reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo.
        (choose_reload_regs): Rename it here as well.  When computing it,
        also merge in used hardregs.

From-SVN: r23855
1998-11-25 03:31:24 -07:00
Dave Love 6edfbe4c58 u77-test.f (main): Avoid testing [f]statb element, which fails on some systems.
1998-11-25  Dave Love  <d.love@dl.ac.uk>
	* g77.f-torture/execute/u77-test.f (main): Avoid testing [f]statb
	element, which fails on some systems.
	* g77.f-torture/execute/labug1.f: New test.

From-SVN: r23854
1998-11-25 10:05:05 +00:00
Dave Love f270edbcdd (main): Avoid testing [f]statb
element, which fails on some systems.

From-SVN: r23853
1998-11-25 10:02:47 +00:00
Dave Love afaa51ba55 New test.
From-SVN: r23852
1998-11-25 09:59:06 +00:00
Per Bothner 00abfc00a9 expr.c (CHECK_PC_IN_RANGE): Add void cast to kill warnings.
�
	* expr.c (CHECK_PC_IN_RANGE):  Add void cast to kill warnings.

From-SVN: r23851
1998-11-25 01:49:45 -08:00
Zack Weinberg b12da25e3e gcc.c: Split out Objective-C specs to...
* gcc.c: Split out Objective-C specs to...
        * objc/lang-specs.h: here. (New file.) Make the specs cpplib
        aware.
        * c-lex.c (init_parse): Always initialize the filename global.
        * objc/objc-act.c (lang_init): Always call check_newline at
        beginning of file.

From-SVN: r23850
1998-11-25 01:54:10 -07:00
Jason Merrill a64f294eea new
From-SVN: r23849
1998-11-24 23:11:47 -05:00
Andreas Schwab 32201ce4ea lex.c (make_lang_type): Clear the whole struct lang_type, not only the first multiple of sizeof (int).
* lex.c (make_lang_type): Clear the whole struct lang_type, not
	only the first multiple of sizeof (int).

From-SVN: r23848
1998-11-25 04:06:42 +00:00
Jason Merrill 84e6233f15 decl.c (start_decl): An explicit specialization of a static data member is only a definition if...
* decl.c (start_decl): An explicit specialization of a static data
	member is only a definition if it has an initializer.

From-SVN: r23847
1998-11-24 20:59:30 -05:00
Jeff Law f3cd6f7e12 Daily bump.
From-SVN: r23846
1998-11-24 17:45:03 -07:00
Jason Merrill c37dc68e57 except.c (expand_throw): Use cp_finish_decl for the throw temp.
* except.c (expand_throw): Use cp_finish_decl for the throw temp.
	* cvt.c (build_up_reference): Pass DIRECT_BIND down into
	cp_finish_decl.
	* init.c (expand_default_init): Check for DIRECT_BIND instead of
	DECL_ARTIFICIAL.
Fixes Sec15/1/P15140.C, g++.eh/ctor1.C.
	* call.c (build_over_call): Use build_decl.
	* except.c (expand_throw): Just use convert, not
	build_reinterpret_cast.
Fixes Sec15/P15113.C.

From-SVN: r23845
1998-11-24 19:28:51 -05:00
Jason Merrill c4c2aca361 update
From-SVN: r23844
1998-11-24 19:22:44 -05:00
Marc Espie e8294a3575 Makefile.in (just-check): Ignore errors.
�
        * Makefile.in (just-check): Ignore errors.

From-SVN: r23843
1998-11-24 17:03:23 -07:00
Marc Espie fe46648cf5 Makefile.in (just-check): Ignore errors.
(
        * Makefile.in (just-check): Ignore errors.

From-SVN: r23842
1998-11-24 17:02:57 -07:00
Marc Espie ccdbc04add Makefile.in (just-check): Ignore errors.
* Makefile.in (just-check): Ignore errors.

From-SVN: r23841
1998-11-24 17:02:56 -07:00
Marc Espie de7b168e0a * jcf-write.c (generate_bytecode_conditional): Fix typo.
From-SVN: r23840
1998-11-24 16:58:23 -07:00
Graham Stott 5828374fd9 reload1.c (reload): Remove unused variable.
* reload1.c (reload): Remove unused variable.
        (reload_reg_free_for_value_p): Add missing parameter definition.
        * jump.c (jump_optimize): Remove unused variable.

From-SVN: r23839
1998-11-24 16:51:45 -07:00
Jeffrey A Law 0c3a267b5c * Makefile.in (graph.o): Depend on $(RTL_H), not rtl.h.
From-SVN: r23838
1998-11-24 16:19:05 -07:00
Jeffrey A Law 940da3246d cse.c (fold_rtx): Make autoincrement addressing mode tests be runtime selectable.
* cse.c (fold_rtx): Make autoincrement addressing mode tests be
        runtime selectable.
        * expr.c (move_by_pieces): Similarly.
        (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly.
        * flow.c (find_auto_inc): Similarly.
        (try_pre_increment): Similarly.
        * loop.c (strength_reduce): Similarly.
        * regclass.c (auto_inc_dec_reg_p): Similarly.
        * regmove.c (try_auto_increment): Similarly.
        (fixup_match_1): Similarly.
        * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined.
        (HAVE_PRE_DECREMENT): Similarly.
        (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly.
        sponding changes to all target header files.

From-SVN: r23837
1998-11-24 16:15:19 -07:00
Jason Merrill 83f660b758 lex.c (handle_generic_pragma): Use token_buffer.
* lex.c (handle_generic_pragma): Use token_buffer.
	* decl.c (check_tag_decl): Don't complain about null friend decl.
	* Make-lang.in (DEMANGLER_PROG): Move the output argumnts to the
	first position.
	* lex.c (check_newline): Use ISALPHA.
	(readescape): Use ISGRAPH.
	(yyerror): Use ISGRAPH.
	* search.c (get_abstract_virtuals): Do not use initial
	CLASSTYPE_ABSTRACT_VIRTUALS.
	* typeck2.c (abstract_virtuals_error): Show location of abstract
	declaration.
	* call.c (build_new_method_call): Use
	CLASSTYPE_ABSTRACT_VIRTUAL, rather than recalculate.
	* class.c (finish_struct_bits): Don't bother working out whether
	get_abstract_virtuals will do anything, just do it.

From-SVN: r23836
1998-11-24 16:28:47 -05:00
Jim Wilson d1be3be367 Add m68k-elf port from Cygnus gcc sources.
* configure.in (m68020-*-elf*, m68k-*-elf*): New targets.
	* configure: Rebuild.
	* config/elfos.h: New file.
	* config/m68k/m68020-elf.h, config/m68k/m68kelf.h,
	config/m68k/t-m68kelf: New file.

From-SVN: r23835
1998-11-24 12:42:38 -08:00
Alexandre Petit-Bianco 23a79c6192 [multiple changes]
Tue Nov 24 17:06:38 1998  Per Bothner  <bothner@cygnus.com>
	* (generate_classfile): Always write class access flag with
 	ACC_SUPER set.
Tue Nov 24 16:34:33 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* class.c (maybe_layout_super_class): New function.
	(layout_class): Reorganized. Loop on class methods dispatched into
 	a new function. Call maybe_layout_super_class.
	(layout_class_methods, layout_class_method): New functions.
	* expr.c (expand_java_NEW): Call layout_class_methods on loaded
 	class.
	(expand_invoke): Likewise.
	* java-tree.h (all_class_list): New global variable declared.
	(layout_class_methods, layout_class_method): New function
 	prototypes.
	(LAYOUT_SEEN_CLASS_METHODS): New macro.
	* jcf-parse.c (all_class_list): New global variable.
	(load_class): Extended what class_or_name can be. Use parser
 	context mechanism to save globals before calling jcf_parse.
	(jcf_parse_source): Don't parse twice if HAS_BEEN_ALREADY_PARSED_P
 	is set on the file name.
	(jcf_parse): Layout class methods when Object is loaded, otherwise
 	record class in all_class_list for delayed method layout.
	(parse_class_file): Use LAYOUT_SEEN_CLASS_METHODS.
	* lang.c (put_decl_node): Decode <init> into the decl context
 	class name.
	* lex.c (java_allocate_new_line): Use xmalloc.
	* parse.h (INCOMPLETE_TYPE_P): Redefined to work with incomplete
 	pointers, not TREE_LIST elements.
	(struct parser_ctxt): Fixed comment indentations, added comments
 	and reordered some fields.
	(java_check_methods): Function prototype removed.
	* parse.y (java_push_parser_context): Use xmalloc.
	(java_parser_context_restore_global): Pop extra pushed ctxp only
 	when there's nothing next.
	(maybe_create_class_interface_decl): Fixed comment, add new
 	created class decl to all_class_list.
	(method_header): Use GET_REAL_TYPE on argument's types.
	(method_declarator): Use GET_REAL_TYPE, change type to the real
 	type in TREE_LIST dependency node. Build argument list with the
 	real type.
	(create_jdep_list): Use xmalloc. Removed allocation error message.
	(obtain_incomplete_type): Fixed leading comment. Broadened
 	incoming argument meaning.
	(register_incomplete_type): Use xmalloc. Removed allocation error
 	message.
	(safe_layout_class): Fixed leading comment.
	(jdep_resolve_class): Reversed if statement condition and switch
 	if and else bodies.
	(resolve_and_layout): Fixed leading comment. Broadened incoming
 	argument meaning.
	(complete_class_report_errors): New local variable name, for
 	clarity. purify_type_name used for all error cases.
	(java_get_real_method_name): Stricter check on constructors.
	(java_check_regular_methods): Reverse methods list only if not
 	already laid out. Layout artificial constructor.
	(java_check_methods): Deleted.
	(source_start_java_method): Obtain incomplete type for patchable
 	method arguments.
	(java_layout_classes): Fixed leading comment. Use
 	LAYOUT_SEEN_CLASS_METHODS, use a loop to check methods. Added else
 	statement to layout operation, reuse LAYOUT_SEEN_CLASS_METHODS
 	before returning. Fixed comments.
	(java_expand_classes): Check for errors up front.
	(patch_method_invocation): Class to search is resolved and laid
 	out.
A step forward truly mixing .class and .java during package
compilation. Includes a Per's patch.

From-SVN: r23834
1998-11-24 09:57:41 -08:00
Jason Merrill 333a9f0aaf typeck.c (build_component_ref): Remove unused statement.
* typeck.c (build_component_ref): Remove unused statement.
	* class.c (add_method): Catch invalid overloads.
Fixes Sec13/1/E13097.C.

From-SVN: r23833
1998-11-24 12:56:27 -05:00
Per Bothner 818347b4d6 expr.c (java_lang_expand_expr): Add missing emit_queue.
�
	* expr.c (java_lang_expand_expr):  Add missing emit_queue.
	* javaop.h (int8):  Removed - not used.
	(jbyte):  Redefine portably with correct signedness.

From-SVN: r23832
1998-11-24 05:16:53 -08:00
Per Bothner 6466fce8c9 jcf-write.c (generate_bytecode_insns): Don't free sw_state.cases.
�
	* jcf-write.c (generate_bytecode_insns):  Don't free sw_state.cases.
	* jcf-write.c (generate_bytecode_insns):  Fix typo
	OPCODE_getstatic to OPCODE_getfield.

From-SVN: r23831
1998-11-24 05:16:25 -08:00
Per Bothner 10100cc79c java-tree.def (CASE_EXPR, [...]): Kind is 'x', not '1'.
�
	* java-tree.def (CASE_EXPR, DEFAULT_EXPR):  Kind is 'x', not '1'.
	* parse.y (java_complete_tree):  For CASE_EXPR and DEFAULT_EXPR,
	set TREE_SIDE_EFFECTS (otherwise expand_expr may skip them).

From-SVN: r23830
1998-11-24 05:16:05 -08:00
Per Bothner 5863017420 java-tree.def (CASE_EXPR, [...]): Kind is 'x', not '1'.
�
	* java-tree.def (CASE_EXPR, DEFAULT_EXPR):  Kind is 'x', not '1'.
	* parse.y (java_complete_tree):  For CASE_EXPR and DEFAULT_EXPR,
	set TREE_SIDE_EFFECTS (otherwise expand_expr may skip them).

From-SVN: r23829
1998-11-24 05:16:04 -08:00