Commit Graph

26906 Commits

Author SHA1 Message Date
Anthony Green 3fc6183651 re GNATS gcj/107 (Bad array or type conversion bug when compiling bytecode)
1999-11-28 Anthony Green <green@cygnus.com>

	* decl.c (find_local_variable): Reuse single slot decls when
	appropriate.

(This fixes the Java PR #107:
 http://sourceware.cygnus.com/ml/java-prs/1999-q4/msg00171.html)

From-SVN: r32398
2000-03-07 19:10:19 -08:00
Alexandre Petit-Bianco cd7c584005 re GNATS gcj/102 (crashes when compiling try block from java source)
2000-03-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (qualify_ambiguous_name): Properly handle expressions
	using `null'.

(This fixes the Java PR #102:
 http://sourceware.cygnus.com/ml/java-prs/1999-q4/msg00152.html)

From-SVN: r32397
2000-03-07 17:37:39 -08:00
Alexandre Petit-Bianco 6632dcdd41 re GNATS gcj/94 (compiler allows assignment to interface constants)
2000-02-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (check_final_assignment): Extended to process
	COMPOUND_EXPR.
	(patch_assignment): Have check_final_assignment called only once.

(This fixes the Java PR #94:
 http://sourceware.cygnus.com/ml/java-prs/1999-q4/msg00125.html)

From-SVN: r32396
2000-03-07 16:30:06 -08:00
Jason Merrill 15f1a7952b search.c (note_debug_info_needed): Walk the bases even if we weren't deferring the type itself.
* search.c (note_debug_info_needed): Walk the bases even if we
        weren't deferring the type itself.

From-SVN: r32395
2000-03-07 19:22:21 -05:00
Zack Weinberg e23c0ba36f [multiple changes]
2000-03-07  Neil Booth  <NeilB@earthling.net>

	* cppexp.c (struct operation, left_shift, right_shift,
	cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
	"int"s to "unsigned int"s.
	* cpplib.c (detect_if_not_defined, do_assert, do_unassert):
	Similarly.
	* cpplib.h: Update for above.
	* mkdeps.c (deps_init, deps_calc_target): Cast pointers
	returned from allocations.

	* cppinit.c (opt_comp, parse_options): New functions.
	(handle_option): Use parse_option to parse a single command
	line option, that possibly takes an argument.
	(cpp_handle_options): Sort the array of command line options on
	first invocation (non-ASCII hosts only).
	(print_help): Update.

2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>

	* mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
	backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.

From-SVN: r32394
2000-03-07 23:11:06 +00:00
Bryce McKinlay 28c231d647 Test for PR gcj/163:
2000-03-07  Bryce McKinlay  <bryce@albatross.co.nz>

        Test for PR gcj/163:
        * libjava.lang/PR163.java: New file.
        * libjava.lang/PR163.xfail: New file.

From-SVN: r32393
2000-03-07 22:54:12 +00:00
Tom Tromey c7ce272aa5 libjava.exp (test_libjava_from_javac): Removed hack for interfaces.
* lib/libjava.exp (test_libjava_from_javac): Removed hack for
	interfaces.  Fail if jv-scan reports a parse error.

From-SVN: r32392
2000-03-07 22:44:22 +00:00
Alexandre Petit-Bianco 1729c26505 re GNATS gcj/108 (Compiler doesn't check access modifiers on interface implementations)
2000-03-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* java-tree.h (IS_INIT_CHECKED): New flag.
	* check-init.c (check_init): Test and set IS_INIT_CHECKED.
	* parse.y (patch_string): Call force_evaluation_order on the
	completed string concatenation tree.
	* expr.c (force_evaluation_order): Call force_evaluation_order on
        function's arguments too.

(This fixes the Java PR #108:
 http://sourceware.cygnus.com/ml/java-prs/1999-q4/msg00174.html)

From-SVN: r32391
2000-03-07 14:09:56 -08:00
Zack Weinberg b0699daddf cppfiles.c (_cpp_find_include_file): Make sure ih->name is initialized.
* cppfiles.c (_cpp_find_include_file): Make sure ih->name is
	initialized.
	* cppinit.c (cpp_cleanup): Free imp->nshort also.

	* cpperror.c (cpp_print_containing_files,
	cpp_print_file_and_line, v_cpp_message): Rename to
	print_containing_files, print_file_and_line, and v_message.
	* cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
	to _cpp_parse_expr, parse_escape, and lex.
	(parse_charconst): Remove broken multibyte support.
	* cppfiles.c (include_hash): Make static.
	(cpp_included): New function.
	(merge_include_chains, find_include_file, finclude,
	simplify_pathname): Rename to _cpp_merge_include_chains,
	_cpp_find_include_file, _cpp_read_include_file, and
	_cpp_simplify_pathname.
	* cpphash.c (cpp_lookup, free_definition, delete_macro,
	cpp_install, create_definition, macroexpand, compare_defs,
	dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
	_cpp_delete_macro, _cpp_install, _cpp_create_definition,
	_cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
	* cppinit.c (cpp_handle_option): Rename to handle_option, make
	static.
	* cpplib.c: Remove extern prototype of cpp_parse_expr.

	* cpphash.h: Update prototypes.
	* cpplib.h: Likewise.  Prototype _cpp_parse_expr here.

From-SVN: r32390
2000-03-07 20:58:47 +00:00
Andrew Haley 79e69af025 mips.h (PTRDIFF_TYPE): Revert broken change; PTRDIFF_TYPE should be based solely on Pmode.
2000-03-07  Andrew Haley  <aph@cygnus.com>

	* config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
	PTRDIFF_TYPE should be based solely on Pmode.
	(SIZE_TYPE): ditto.

From-SVN: r32389
2000-03-07 20:49:45 +00:00
Kaveh R. Ghazi 3cce094dd9 rtl.h (rtunion_def): Constify member `rtstr'.
* rtl.h (rtunion_def): Constify member `rtstr'.
	(emit_line_note_after, emit_line_note, emit_line_note_force,
	emit_note, decode_asm_operands): Constify.

	* cse.c (canon_hash): Likewise.

	* dbxout.c (dbxout_block): Likewise.

	* diagnostic.c (file_and_line_for_asm, v_error_for_asm,
	v_warning_for_asm): Likewise.

	* dwarfout.c (function_start_label): Likewise.

	* emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
	emit_line_note_force): Likewise.

	* final.c (last_filename, asm_insn_count, final_scan_insn,
	output_source_line): Likewise.

	* function.h (struct emit_status): Likewise.

	* gcse.c (hash_expr_1): Likewise.

	* genattr.c (gen_attr, main): Likewise.

	* genattrtab.c (struct function_unit, current_alternative_string,
	write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
	attr_numeral, check_attr_test, check_attr_value,
	convert_set_attr_alternative, convert_set_attr,
	compute_alternative_mask, simplify_by_exploding, gen_attr,
	gen_unit): Likewise.

	* genflags.c (gen_insn): Likewise.

	* gengenrtl.c (type_from_format): Likewise.

	* genopinit.c (gen_insn): Likewise.

	* genoutput.c (n_occurrences, process_template, process_template):
	Likewise.

	* ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
	Likewise.

	* ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
	Likewise.

	* ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
	ggc_set_mark, ggc_get_size): Likewise.

	* objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.

	* optabs.c (init_one_libfunc): Likewise.

	* output.h (assemble_start_function): Likewise.

	* recog.c (decode_asm_operands): Likewise.

	* toplev.c (rest_of_compilation): Likewise.

	* tree.h (emit_line_note_after, emit_line_note,
	emit_line_note_force): Likewise.

	* varasm.c (asm_output_bss, asm_output_aligned_bss,
	asm_emit_uninitialised, assemble_start_function,
	assemble_variable, const_hash, compare_constant_1,
	find_pool_constant, mark_constant_pool, assemble_alias): Likewise.

	* xcoffout.h (DBX_FINISH_SYMBOL): Likewise.

	* alpha/alpha.md (call_vms, call_value_vms): Likewise.

	* arm/aof.h (ASM_OUTPUT_ASCII): Likewise.

	* arm/aout.h (ASM_OUTPUT_ASCII): Likewise.

	* arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
	arm_dllimport_name_p): Likewise.

	* arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
	Likewise.

	* arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.

	* arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
	arm_mark_dllexport, arm_mark_dllimport,
	arm_pe_encode_section_info): Likewise.

	* arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
	ASM_FINISH_DECLARE_OBJECT): Likewise.

	* arm/thumb.c (thumb_function_prologue): Likewise.

	* arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.

	* avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.

	* fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.

	* i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.

	* i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
	ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.

	* i386/i386-protos.h (asm_output_function_prefix): Likewise.

	* i386/i386.c (asm_output_function_prefix): Likewise.

	* i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.

	* i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.

	* i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
	ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
	ASM_OUTPUT_SECTION_NAME): Likewise.

	* i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.

	* i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.

	* i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.

	* m32r/m32r.c (m32r_encode_section_info): Likewise.

	* mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* mcore/mcore.c (mcore_encode_section_info): Likewise.

	* mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* mips/mips.h (ASM_OUTPUT_IDENT): Likewise.

	* mips/mips.md (movdi, movsi): Likewise.

	* mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
	ASM_OUTPUT_ASCII): Likewise.

	* rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
	output_mi_thunk, output_toc): Likewise.

	* rs6000/rs6000.md (movsi): Likewise.

	* rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.

	* tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.

	* v850/v850.c (print_operand, print_operand_address,
	v850_encode_data_area): Likewise.

ch:
	* grant.c (globalize_decl): Constify a char*.

cp:
	* decl2.c (finish_objects): Constify a char*.

	* method.c (emit_thunk): Likewise.

From-SVN: r32388
2000-03-07 20:39:10 +00:00
Tom Tromey 2ba5f77454 All files: Updated copyright information.
* All files: Updated copyright information.
	* COPYING: New file.
	* COPYING.LIB: Removed.
	* LIBGCJ_LICENSE: We now use GPL + special exception.

From-SVN: r32387
2000-03-07 19:55:28 +00:00
Clinton Popetz 32fdad6ead mips.md (zero_extendsidi2): Always force operand one to memory for mips16.
* config/mips/mips.md (zero_extendsidi2): Always force operand
	one to memory for mips16.

From-SVN: r32386
2000-03-07 14:29:51 -05:00
Alexandre Petit-Bianco 518f173d3d *** empty log message ***
From-SVN: r32385
2000-03-07 10:46:22 -08:00
Tom Tromey 8c214df6d3 Test for PR gcj/162:
* libjava.lang/PR162.out: New file.
	* libjava.lang/PR162.java: New file.

From-SVN: r32384
2000-03-07 18:06:31 +00:00
Richard Kenner 05bccae2ef tree.h (INT_CST_LT, [...]): Remove unneeded casts.
* tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
	(struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
	(attribute_hash_list, type_hash_canon): hashcode is now unsigned.
	(type_hash_lookup, type_hash_add, type_hash_list): Likewise.
	(min_precision): Result is unsignd.
	(add_double, neg_double, mul_double): Low word is unsigned.
	(lshift_double, rshift_double, lrotate_double): Likewise.
	(rrotate_double, div_and_round_double): Likewise.
	(tree_floor_log2, compare_tree_int): New functions.
	(preserve_rtl_expr_temps): New declaration.
	* c-common.c (declare_hidden_char_array): Use compare_tree_int.
	(decl_attributes): Use tree_log2 to find alignment.
	Check for TREE_INT_CST_HIGH for format args.
	(min_precision): Now unsigned.
	Use tree_floor_log2.
	(truthvalue_conversion): Delete long-disabled code.
	* c-decl.c (finish_struct): Clean up tests on field width.
	(finish_function): Use compare_tree_int.
	* c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
	* c-typeck.c (comptypes): Use tree_int_cst_equal.
	(default_conversion, digest_init): Use compare_tree_int.
	(build_binary_op): Use integer_all_onesp and compare_tree_int.
	Fix type errors in forming masks.
	* calls.c (initialize_argument_information): Use compare_tree_int.
	* dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
	* except.c (expand_eh_region_start_tree): Use compare_tree_int.
	* expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
	(store_field): Use compare_tree_int.
	(expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
	(expand_expr, case ARRAY_REF): Use compare_tree_int.
	(do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
	(do_store_flag): Use compare_tree_int.
	* fold-const.c (encode, decode): Low part is always unsigned.
	(force_fit_type, add_double, neg_double, mul_double): Likewise.
	(lshift_double, rshift_double, lrotate_double): Likewise.
	(rrotate_double, div_and_round_double, int_const_binop): Likewise.
	(fold_convert): Use compare_tree_int.
	(operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
	(invert_truthvalue, case INTEGER_CST): Likewise.
	(fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
	* mkdeps.c (deps_dummy_targets): Make I unsigned.
	* rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
	(lshift_double, rshift_double, lrotate_double, rrotate_double):
	Likewise.
	* stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
	(expand_end_case): Use compare_tree_int.
	(estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
	* stor-layout.c (mode_for_size_tree): Use compare_tree_int.
	(layout_decl): Likewise.
	(layout_record, layout_union): Make sizes unsigned.
	(layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
	(layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
	* tree.c (struct type_hash): hashcode is unsigned.
	(build_type_attribute_variant, type_hash_list): Likewise.
	(type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
	(attribute_hash_list, build_array_type, build_method_type): Likewise.
	(build_complex_type): Likewise.
	(real_value_from_int_cst): Remove unneeded casts.
	(integer_all_onesp): Add casts.
	(tree_floor_log2, compare_tree_int): New functions.
	(build_index_type): Use tree_int_cst_sgn.
	* varasm.c (assemble_variable): Use compare_tree_int.
	* ch/actions.c (chill_convert_for_assignment): INDEX is unsigned
	HOST_WIDE_INT.
	* ch/ch-tree.h (DECL_NESTING_LEVEL): Use TREE_INT_CST_HIGH
	since unsigned.
	* ch/except.c (chill_handle_on_labels): ALTERNATIVE is unsigned.
	Use compare_tree_int.
	(expand_goto_except_cleanup): Likewise.
	* cp/class.c (dfs_modify_vtables): I is now unsigned.
	(check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int.
	(build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT.
	* cp/error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned.
	* cp/init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
	* cp/method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned.
	* cp/typeck.c (build_binary_op, case TRUNC_DIV_EXPR):
	Call integer_all_onesp.
	* cp/typeck2.c (process_init_constructor): Use compare_tree_int.
	* f/com.c (ffecom_f2c_set_lio_code_): Use compare_tree_int.
	(ffecom_sym_transform_, ffecom_transform_common_): Likewise.
	(ffecom_transform_equiv_): Likewise.
	* java/decl.c (emit_init_test_initialization): Mark KEY as unused.
	* java/expr.c (build_newarray): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
	(build_anewarray): Likewise.
	* java/parse.y (patch_newarray): Likewise.
	* java/parse.c: Regenerated.

From-SVN: r32383
2000-03-07 06:41:32 -05:00
Bryce McKinlay ddf0fc6c9f resolve.cc (_Jv_SearchMethodInClass): New function.
2000-03-07  Bryce McKinlay  <bryce@albatross.co.nz>

        * resolve.cc (_Jv_SearchMethodInClass): New function.
        (_Jv_ResolvePoolEntry): Search superinterfaces for interface
        methods.
        * java/lang/Class.h (_Jv_SearchMethodInClass): New prototype.

2000-03-07  Bryce McKinlay  <bryce@albatross.co.nz>

        * java/lang/Class.h (union _Jv_IDispatchTable): New declaration.
        (struct _Jv_ifaces): New declaration.
        JV_CLASS: New macro definition.
        (getComponentType): Relocate below isArray() for inlining.
        (getModifiers): Declare `inline'.
        (getSuperclass): Ditto.
        (isArray): Ditto.
        (isPrimitive): Ditto.
        (_Jv_IsAssignableFrom): New prototype.
        (_Jv_LookupInterfaceMethodIdx): New prototype. Predeclare with "C"
        linkage.
        (_Jv_InitClass): Move from natClass.cc. Declare `inline'.
        Check for JV_STATE_DONE before invoking initializeClass().
        (_Jv_PrepareConstantTimeTables): New prototype.
        (_Jv_GetInterfaces): Ditto.
        (_Jv_GenerateITable): Ditto.
        (_Jv_GetMethodString): Ditto.
        (_Jv_AppendPartialITable): Ditto.
        (_Jv_FindIIndex): Ditto.
        depth, ancestors, idt: New class fields.

        * java/lang/natClass.cc (isAssignableFrom): Move functionality to
        inline function `_Jv_IsAssignableFrom'. Use that function.
        (isInstance): Declare `inline'.
        (initializeClass): Get lock on class before checking `state'. Unlock
        before calling resolveClass0. Call _Jv_PrepareConstantTimeTables
	with the lock held.
        (_Jv_LookupInterfaceMethod): Use _Jv_GetMessageString.
        (_Jv_IsAssignableFrom): New inline function. Test assignability
	using class->depth and ancestor table.
        (_Jv_IsInstanceOf): Use _Jv_IsAssignableFrom.
        (_Jv_CheckCast): Move from prims.cc. Use JV_CLASS and
        _Jv_IsAssignableFrom.
        (_Jv_CheckArrayStore): Ditto.
        (_Jv_LookupInterfaceMethodIdx): New function.
        INITIAL_IOFFSETS_LEN, INITIAL_IFACES_LEN: New #defines.
        (_Jv_PrepareConstantTimeTables): New function.
        (_Jv_IndexOf): Ditto.
        (_Jv_GetInterfaces): Ditto.
        (_Jv_GenerateITable): Ditto.
        (_Jv_GetMethodString): Ditto.
        (_Jv_AppendPartialITable): Ditto.
        iindex_mutex, iindex_mutex_initialized: New static fields.
        (_Jv_FindIIndex): New function.

        * java/lang/natClassLoader.cc (_Jv_NewClass): Set new jclass fields.

        * prims.cc (_Jv_CheckCast): Moved to natClass.cc.
        (_Jv_CheckArrayStore): Ditto.
        (JvNewCharArray, JvNewBooleanArray, JvNewByteArray, JvNewShortArray,
        JvNewIntArray, JvNewLongArray, JvNewFloatArray, JvNewDoubleArray):
        Moved to gcj/array.h.
        (_Jv_Realloc): New function.

        * gcj/cni.h: Move _Jv_PrimClass definitions to gcj/array.h.

        * gcj/array.h: _Jv_PrimClass definitions moved from gcj/cni.h.
        (JvNewCharArray, JvNewBooleanArray, JvNewByteArray,
        JvNewShortArray, JvNewIntArray, JvNewLongArray, JvNewFloatArray,
        JvNewDoubleArray): Implementations moved from prims.cc and
        declared `inline'.

        * gcj/javaprims.h (_Jv_Realloc): Prototype.

        * include/jvm.h (_Jv_LookupInterfaceMethodIdx): Prototype.

From-SVN: r32382
2000-03-07 09:52:56 +00:00
Bryce McKinlay 173f556ccc decl.c (init_decl_processing): Added new class fields `depth', `ancestors', and `idt' to class_type_node.
2000-03-06  Bryce McKinlay  <bryce@albatross.co.nz>

	* decl.c (init_decl_processing): Added new class fields `depth',
	`ancestors', and `idt' to class_type_node. Use
	_Jv_LookupInterfaceMethodIdx for soft_lookupinterfacemthod_node.
	* class.c (make_class_data): Push initial values for new fields.
	* java-tree.h: Updated prototype for `build_invokeinterface'.
	* expr.c (build_invokeinterface): Changed parameters to accept
	`method' tree. Calculate index of `method' in its declaring
	interface. Build call to _Jv_LookupInterfaceMethodIdx.
	(expand_invoke): Call `build_invokeinterface' with new parameters.
	* parse.y (patch_invoke): Call `build_invokeinterface' with new
	parameters.

(This is Bryce McKinlay's implementation of the interfaces
 constant-time dispatch and type checking techniques designed by Per
 Bothner.)

From-SVN: r32381
2000-03-07 00:58:26 -08:00
Jeff Law f2d2acce60 Daily bump.
From-SVN: r32380
2000-03-07 01:45:07 -07:00
Jason Merrill 25baa03051 oops
From-SVN: r32379
2000-03-07 03:39:13 -05:00
Jason Merrill 7d26bd1698 cpphash.c (collect_expansion): Also catch ## at start of macro.
* cpphash.c (collect_expansion): Also catch ## at start of macro.

        * varasm.c (make_decl_rtl): Don't add a number to members of
        local classes.
        (make_function_rtl): Likewise.

From-SVN: r32378
2000-03-07 03:34:34 -05:00
Jason Merrill 5816f88b4b new
From-SVN: r32377
2000-03-07 03:29:56 -05:00
Alexandre Petit-Bianco 614eaae0a5 [multiple changes]
2000-03-06  Bryce McKinlay <bryce@albatross.co.nz>

	* typeck.c (lookup_do): Search superinterfaces first
	when looking up an interface method. From Godmar Back
	<gback@cs.utah.edu>

2000-03-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* java-tree.h (lookup_argument_method2): Declared.
	(safe_layout_class): Prototype moved from parse.h.
	* parse.h (safe_layout_class): Prototype moved to java-tree.h.
	* parse.y (java_check_regular_methods): Local `super_class' gone.
	Call lookup_argument_method2 instead of lookup_argument_method.
	Perform modifier match for methods found declared in implemented
	interfaces. Fixed indentation problem. Overriding/hiding error
	report to take place only for methods found in classes.
	* typeck.c (lookup_argument_method): Changed leading
	comment. Re-written by calling lookup_do.
	(lookup_argument_method2): New function.
	(lookup_java_method): Re-written by calling lookup_do.
	(lookup_do): New function.

From-SVN: r32376
2000-03-06 22:25:14 -08:00
Alexandre Oliva 141b581084 gcse.c (compute_can_copy): Adjust if/else blocks from rth's patch from 2000-01-28.
* gcse.c (compute_can_copy): Adjust if/else blocks from rth's
patch from 2000-01-28.

From-SVN: r32375
2000-03-07 03:43:03 +00:00
Tom Tromey 1c30539d66 Test for PR gcj/164:
* libjava.compile/PR164.xfail: New file.
	* libjava.compile/PR164.java: New file.

From-SVN: r32374
2000-03-07 00:49:18 +00:00
Tom Tromey 8d00f6171a jni.cc (MARK_NONE): New define.
* jni.cc (MARK_NONE): New define.
	(MARK_USER): Likewise.
	(MARK_SYSTEM): Likewise.
	(struct _Jv_JNI_LocalFrame): Made `marker' bigger and `size'
	smaller.
	(_Jv_JNI_DeleteLocalRef): Use MARK_NONE in assert.
	(_Jv_JNI_EnsureLocalCapacity): Use MARK_NONE.
	(_Jv_JNI_PushLocalFrame): Use MARK_USER.
	(_Jv_JNI_PopLocalFrame): New version with additional `stop'
	argument.
	(call): Use MARK_SYSTEM.
	(_Jv_GetJNIEnvNewFrame): New function.
	(_Jv_LookupJNIMethod): New function.
	(_Jv_JNI_PopSystemFrame): New function.
	(call): Use _Jv_JNI_PopSystemFrame and _Jv_LookupJNIMethod.

From-SVN: r32373
2000-03-07 00:10:52 +00:00
Clinton Popetz b1b41fe4ac sh.c: (barrier_align): Handle a delay slot that is filled with an insn from the jump...
* config/sh/sh.c: (barrier_align): Handle a delay slot that is
	filled with an insn from the jump target.

From-SVN: r32371
2000-03-06 16:17:44 -05:00
Michael Hayes 1621934772 c4x-protos.h (c4x_global_name): Constify char *.
* config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
	(c4x_external_ref): Likewise.
	* config/c4x/c4x.c (struct name_list): Likewise.

From-SVN: r32370
2000-03-06 20:59:16 +00:00
Tom Tromey 01447dce5b * Make-lang.in (JAVA_SRCS): Added boehm.c, lex.c.
From-SVN: r32369
2000-03-06 19:37:34 +00:00
Jakub Jelinek 4710d3eb4b real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to LONG_DOUBLE_TYPE_SIZE if not defined.
* real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
	LONG_DOUBLE_TYPE_SIZE if not defined.
	Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
	LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
	* real.c: Likewise.
	* gengenrtl.c: Likewise.
	* print-rtl.c: Likewise.
	* rtl.c: Likewise.
	* config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
	MASK_LONG_DOUBLE_128.
	* config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
	* config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
	* config/sparc/linux64 (TARGET_DEFAULT): Likewise.
	(SUBTARGET_SWITCHES): Define.
	(CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
	with -mlong-double-128.
	(LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
	(MAX_LONG_DOUBLE_TYPE_SIZE): Define.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
	(CC1_SPEC): Include -mlong-double-{64,128} as needed.
	* config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
	(CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
	with -mlong-double-128.
	(LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
	(MAX_LONG_DOUBLE_TYPE_SIZE): Define.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
	* config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
	TARGET_LONG_DOUBLE_128): Define.
	* config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
	* config/sparc/sparc.c (sparc_override_options): Disallow 64bit
	long double on TARGET_ARCH64.

From-SVN: r32367
2000-03-06 19:51:52 +01:00
Jakub Jelinek 6149cebb52 sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs to gas if it supports .register pseudo.
* config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
	to gas if it supports .register pseudo.

From-SVN: r32366
2000-03-06 19:14:48 +01:00
Ben Collins 0a8d66180c Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth argument to genmultilib.
* Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
	argument to genmultilib.
	* genmultilib: accept new MULTILIB_EXCLUSIONS option and output
	the contents into the multilib.h header.
	* gcc.c: Declare multilib_exclusions for the specs file.
	(set_multilib_dir): Use it.
	(print_multilib_info): Likewise.
	* t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
	to pass to genmultilib.

From-SVN: r32365
2000-03-06 19:05:52 +01:00
Kaveh R. Ghazi fd05eb8097 builtins.c (built_in_class_names, [...]): Constify a char*.
* builtins.c (built_in_class_names, built_in_names): Constify a
	char*.

	* gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
	int.
	(_mcleanup): Ensure value matches format specifier in sprintf.

	* cpphash.c (special_symbol): Don't needlessly cast away
	const-ness.

	* cppinit.c (base_name): Delete unused prototype.

	* mkdeps.c (deps_init): Make definition K&R safe.

	* tree.h (built_in_class_names, built_in_names): Constify a
	char*.

f:
	* ansify.c (die_unless): Don't use ANSI string concatenation.
	(die): Mark with ATTRIBUTE_NORETURN.

From-SVN: r32364
2000-03-06 18:03:55 +00:00
Jakub Jelinek c137830fba sparc.c (eligible_for_epilogue_delay): Accept floating point instructions for epilogue delay.
* config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
	floating point instructions for epilogue delay.

From-SVN: r32362
2000-03-06 18:55:17 +01:00
Nathan Sidwell 133a40d247 * g++.old-deja/g++.warn/impint2.C: New test.
From-SVN: r32361
2000-03-06 15:47:02 +00:00
Nathan Sidwell 55df01757b typeck.c (dubious_conversion_warnings): Look through REFERENCE_TYPE.
* typeck.c (dubious_conversion_warnings): Look through
	REFERENCE_TYPE.

From-SVN: r32360
2000-03-06 15:45:11 +00:00
Richard Kenner efd3d4a663 * lang-specs.h (as): Don't call if -syntax-only.
From-SVN: r32359
2000-03-06 08:37:50 -05:00
Hans-Peter Nilsson d75c89dc2a 20000224-1.c (main): Expected return-value is 1, not zero.
* execute/20000224-1.c (main): Expected return-value is	1, not
	zero.

From-SVN: r32358
2000-03-06 10:47:11 +00:00
Bryce McKinlay 4dfc2930e4 * libjava.compile/PR127.xfail: New file.
From-SVN: r32357
2000-03-06 10:45:02 +00:00
Bryce McKinlay 2d5049639b re GNATS gcj/127 (gcj dumps core on method invocation on a primitive type)
2000-03-06  Bryce McKinlay  <bryce@albatross.co.nz>

        * libjava.compile/PR127.java: New file.
        PR 127 test case from Joerg Brunsmann.

From-SVN: r32356
2000-03-06 10:25:53 +00:00
Mark Mitchell 64dc53f34d function.c (free_temps_for_rtl_expr): Don't free slots that have been pushed into a higher level.
* function.c (free_temps_for_rtl_expr): Don't free slots
	that have been pushed into a higher level.

	* expr.c (cplus_expand_expr, case STMT_EXPR): Don't set
	RTL_EXPR_HAS_NO_SCOPE after all.

From-SVN: r32355
2000-03-06 09:50:17 +00:00
Jeff Law 7b45d84d60 Daily bump.
From-SVN: r32354
2000-03-06 01:45:09 -07:00
Tom Tromey fc159ae11b re GNATS gcj/124 (protected constructor for InvocationTargetException still visible)
* lib/libjava.exp (test_libjava): Document `shouldfail' token.
	(test_libjava_from_source): Handle `shouldfail' case.
	(test_libjava_from_javac): Likewise.

	Test for PR libgcj/124:
	* libjava.compile/PR124.java: New file.
	* libjava.compile/PR124.xfail: New file.

From-SVN: r32353
2000-03-06 06:05:02 +00:00
Anthony Green 8cf870df7b re GNATS java.io/141 (StreamTokenizer doesn't scan mixed token types correctly)
2000-03-05  Anthony Green  <green@redhat.com>

        * libjava.lang/PR141.java: New file.
        * libjava.lang/PR141.out: New file.
	For PR java.io/141.

From-SVN: r32352
2000-03-06 03:48:33 +00:00
Tom Tromey 4d54cfecc3 re GNATS libgcj/43 (jni.h not installed)
Fix for PR libgcj/43:
	* include/Makefile.in: Rebuilt.
	* include/Makefile.am (include_HEADERS): New define.

From-SVN: r32351
2000-03-06 02:50:38 +00:00
Mark Mitchell ee25a7a5f6 basic-block.h (ALLOCA_REG_SET): Remove.
* basic-block.h (ALLOCA_REG_SET): Remove.
	(INITIALIZE_REG_SET): New macro.
	* flow.c (update_life_info): Use it.
	(calculate_global_regs_live): Likewise.
	(propagate_block): Likewise.
	* global.c (build_insn_chain): Likewise.
	* haifa-sched.c (schedule_region): Likewise.

From-SVN: r32350
2000-03-05 22:35:27 +00:00
Anthony Green 008b7307cb javaprims.h ("Java"): Remove FirstThread.
2000-03-08  Anthony Green  <green@redhat.com>

	* gcj/javaprims.h ("Java"): Remove FirstThread.

From-SVN: r32349
2000-03-05 22:31:02 +00:00
Anthony Green 6cc964322f configure.host: Fix __NO_MATH_INLNES botch.
* configure.host: Fix __NO_MATH_INLNES botch.

	* Makefile.in: Rebuilt.
	* Makefile.am (nat_source_files): Move natFirstThread.cc.
	(gnu/gcj/runtime/FirstThread.h): Moved.
	(ordinary_java_source_files): Move FirstThread.java.
	* prims.cc: Deal with FirstThread movement.
	(JvRunMain): Ditto.
	(_Jv_RunMain): Ditto.

	* gnu/gcj/runtime/FirstThread.java: Moved from java/lang.
	* gnu/gcj/runtime/natFirstThread.cc: Ditto.

From-SVN: r32348
2000-03-05 22:26:30 +00:00
Stephane Carrez 262b638442 dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
* dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
        (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
        (DWARF_ARANGES_PAD_SIZE): New define.
        (output_aranges): Use it to pad the address range header.
        (DWARF_ROUND): Fix for non power of 2 rounding.

From-SVN: r32347
2000-03-05 17:25:36 -05:00
Jason Merrill 92df03e1de * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
From-SVN: r32346
2000-03-05 16:47:50 -05:00