Commit Graph

691 Commits

Author SHA1 Message Date
Alexandre Petit-Bianco
ad81223cbf decl.c (complete_start_java_method): Don't call _Jv_InitClass from <clinit>
Wed Apr 26 14:29:33 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* decl.c (complete_start_java_method): Don't call _Jv_InitClass
 	from <clinit>

From-SVN: r33493
2000-04-27 16:25:18 -07:00
Tom Tromey
f1acc01e2d zextract.c (find_zip_file_start): New function.
* zextract.c (find_zip_file_start): New function.
	(read_zip_archive): Use it.

From-SVN: r33451
2000-04-27 00:18:41 +00:00
Alexandre Petit-Bianco
932207025a re GNATS gcj/181 (gcj crashes on inner classes/interfaces definition/usage.)
Mon Apr 24 14:59:36 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * parse.y (end_class_declaration): Reset the interface number
        counter.

(This fixes the Java PR #181:
 http://sourceware.cygnus.com/ml/java-prs/2000-q1/msg00207.html)

From-SVN: r33422
2000-04-25 15:14:53 -07:00
Alexandre Petit-Bianco
f2760b279a parse.y (lookup_field_wrapper): Search for final local aliases.
2000-04-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (lookup_field_wrapper): Search for final local aliases.
	(resolve_expression_name): Let lookup_field_wrapper search for
	final local aliases. Force the value of `name' if one is found.
	(qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
	an expression name. Fixed comments.

From-SVN: r33400
2000-04-24 23:01:09 -07:00
Alexandre Petit-Bianco
dfb99c83a6 parse.y (source_start_java_method): Deleted unecessary code.
2000-04-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * parse.y (source_start_java_method): Deleted unecessary code.
        (patch_method_invocation): Fixed comment.

From-SVN: r33392
2000-04-24 16:27:39 -07:00
Robert Lipe
e60a8c2604 Respective ChangeLogs for common, cp/, java/
Respective ChangeLogs for common, cp/, java/
        * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
        * cp-tree.h (lang_type): Member `language' now ENUM_BITFIELD.
        * parse.h (_jdep): Member `kind' now ENUM_BITFIELD.

From-SVN: r33378
2000-04-24 16:17:04 +00:00
Tom Tromey
3c8c10b8c6 * boehm.c (mark_reference_fields): Use int_byte_position.
From-SVN: r33354
2000-04-23 15:20:57 +00:00
Tom Tromey
8a008c41a1 boehm.c (mark_reference_fields): Only call byte_position on non-static fields.
* boehm.c (mark_reference_fields): Only call byte_position on
	non-static fields.

From-SVN: r33351
2000-04-23 01:26:51 +00:00
Zack Weinberg
4ff812cd3f Convert C++ comment to block comment
From-SVN: r33349
2000-04-22 22:50:50 +00:00
Tom Tromey
d5f76abaa1 boehm.c (mark_reference_fields): Added `last_view_index' argument.
* boehm.c (mark_reference_fields): Added `last_view_index'
	argument.  Use DECL_FIELD_OFFSET to determine field's offset.

From-SVN: r33346
2000-04-22 21:44:58 +00:00
Alexandre Petit-Bianco
a40d21da8f [multiple changes]
Thu Apr 20 17:41:28 2000  Mo DeJong  <mdejong@cygnus.com>

	* parse.h (INTERFACE_INNER_MODIFIERS): New macro.
	* parse.y (check_class_interface_creation): Fixed comments. Select
 	permitted modifiers for (inner) interfaces. Changed error message
 	to report rejected modifiers used with local classes.

2000-04-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
	of directly inherited type considered in scope.
	* parse.y (do_resolve_class): Search inherited classes for inner
	classes.

(This fixes the PR #194 and #197:
 http://sourceware.cygnus.com/ml/java-prs/2000-q2/msg00008.html
 http://sourceware.cygnus.com/ml/java-prs/2000-q2/msg00011.html)

From-SVN: r33330
2000-04-21 16:03:19 -07:00
Tom Tromey
473e7b07f1 re GNATS gcj/124 (protected constructor for InvocationTargetException still visible)
* parse.y (not_accessible_p): Use member's class, not current
	class, when doing inheritance check for protected reference.
	Fixes PR gcj/124.

From-SVN: r33315
2000-04-21 19:53:15 +00:00
Jason Schroeder
c52fbf0f79 jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
Thu Apr 20 18:20:58 2000  Jason Schroeder  <shrode@subnature.com>

	* jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.

From-SVN: r33301
2000-04-20 18:24:17 -07:00
Alexandre Petit-Bianco
807bc1db3d parse.y (yyerror): `msg' can be null, don't use it in that case.
2000-04-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (yyerror): `msg' can be null, don't use it in that case.

From-SVN: r33270
2000-04-19 19:52:26 -07:00
Tom Tromey
ecb3660479 * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
From-SVN: r33261
2000-04-19 16:05:03 +00:00
Alexandre Petit-Bianco
48a840d910 [multiple changes]
2000-04-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (maybe_make_nested_class_name): Use `obstack_grow0'.

2000-04-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (java_expand_classes): Reverse the package list once.
	(java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
	reduction.
	(patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
	the `==' and `!=' operators.

From-SVN: r33240
2000-04-18 18:53:47 -07:00
Tom Tromey
83c1f6283e re GNATS gcj/211 (gcjh doesn't handle method names that are reserved C++ keywords)
PR gcj/211:
	* gjavah.c (utf8_cmp): Changed return value.
	(cxx_keyword_subst): Handle all C++ keywords.  Allocate new return
	result.
	(cxx_keywords): New global.
	(get_field_name): Handle new result of cxx_keyword_subst.
	(print_method_info): Likewise.

From-SVN: r33225
2000-04-18 16:13:16 +00:00
Bryce McKinlay
a73848406c gjavah.c (print_name_for_stub_or_jni): Don't prefix method names with a newline, for CNI.
2000-04-17  Bryce McKinlay  <bryce@albatross.co.nz>

	* gjavah.c (print_name_for_stub_or_jni): Don't prefix method names
	with a newline, for CNI.
	(print_stub_or_jni): Print a space or newline before method name for
	CNI as well as JNI.
	(print_cxx_classname): Don't write leading "::" in CNI stub method.
	(process_file): Include gcj/cni.h if generating CNI stubs.

From-SVN: r33213
2000-04-17 17:27:45 +00:00
Tom Tromey
3e0768f05e re GNATS gcj/205 (gcjh confused about similar method and attribute names)
* gjavah.c (decompile_method): Use print_field_name.
	Fixes PR gcj/205.

From-SVN: r33198
2000-04-17 02:56:52 +00:00
Tom Tromey
bc2874c902 re GNATS gcj/140 (gcj permits assignment to array length)
Fix for PR gcj/140:
	* parse.y (check_final_assignment): Recognize assignments to the
	`length' field of an array when generating class files.

From-SVN: r32960
2000-04-06 05:29:30 +00:00
Alexandre Petit-Bianco
256172c40c class.c (decl_hash): Prototype removed.
2000-04-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* class.c (decl_hash): Prototype removed.
	(decl_compare): Likewise.

(Fixes a warning problem.)

From-SVN: r32958
2000-04-05 18:01:11 -07:00
Tom Tromey
e0fc4118fe re GNATS gcj/164 (compiler permits "volatile final" variables)
* parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter.
	* parse.y (check_modifiers_consistency): Check for final/volatile
	clash.  Fixes PR gcj/164.

From-SVN: r32955
2000-04-06 00:43:27 +00:00
Alexandre Petit-Bianco
e0422ed081 class.c: (java_hash_hash_tree_node): Renamed from `decl_hash', made global.
2000-04-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash',
        made global.
        (java_hash_compare_tree_node): Renamed from `decl_compare, made
        global.
        (add_method_1): Use `java_hash_hash_tree_node' and
        `java_hash_compare_tree_node'.
        * java-tree.h: (java_hash_hash_tree_node): Prototyped.
        (java_hash_compare_tree_node): Likewise.
        * parse.y (find_applicable_accessible_methods_list): Create,
        delete and use a hash table to remember already searched interfaces.

From-SVN: r32947
2000-04-05 16:57:19 -07:00
Matt Welsh
4200941b0f jcf-depend.c (add_entry): Fixed bug where list was always replaced with latest entry.
2000-04-03  Matt Welsh  <mdw@cs.berkeley.edu>

	* jcf-depend.c (add_entry): Fixed bug where list was always replaced
	with latest entry.

From-SVN: r32936
2000-04-05 18:50:22 +00:00
Kaveh R. Ghazi
c0b864fce7 boehm.c (mark_reference_fields, set_bit): Prototype.
* boehm.c (mark_reference_fields, set_bit): Prototype.
	(set_bit): Un-ANSI-fy definition.

	* class.c (init_test_hash_newfunc, decl_hash, decl_compare):
	Prototype.

	* decl.c (emit_init_test_initialization): Likewise.

	* gjavah.c (jni_print_char): Likewise.

	* parse.y (create_new_parser_context): Likewise.

From-SVN: r32908
2000-04-04 20:40:20 +00:00
Alexandre Petit-Bianco
7a678b64cd Fixed email address typo in Thu Mar 30, 2000 ChangeLog entry.
From-SVN: r32852
2000-03-31 16:19:13 -08:00
Alexandre Petit-Bianco
64ea4a5e27 expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000 patch missing hunk.
Thu Mar 30 15:26:56 2000  Alexandre Petit-Bianco  <apbianco@dcygnus.com>

	* expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
	patch missing hunk. Fixed indentation.

From-SVN: r32839
2000-03-30 15:41:57 -08:00
Tom Tromey
05411ecfe5 gjavah.c (D_NAN_MASK): Only define as word-reversed when HOST_FLOAT_WORDS_BIG_ENDIAN and...
* gjavah.c (D_NAN_MASK): Only define as word-reversed when
	HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.

From-SVN: r32832
2000-03-30 19:10:17 +00:00
Alexandre Petit-Bianco
acbedd7cc0 parse-scan.y (pop_class_context): Reset `inner_qualifier_length' when negative *before* using it as an array index.
2000-03-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
	when negative *before* using it as an array index.
	* ChangeLog: Fixed typo.

(Fixes the following bogus patch:
 http://gcc.gnu.org/ml/gcc-patches/2000-03/msg00937.html)

From-SVN: r32793
2000-03-28 14:35:46 -08:00
Alexandre Petit-Bianco
0981a85961 [multiple changes]
2000-03-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
	to 0 when it reaches -1.

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

	* jcf-parse.c (get_constant): Properly cast `num' during the
	invocation of `add_double call'.
	* jcf-write.c (push_long_const): Properly cast `lo' before
	comparing it to short bounds.
	* parse-scan.y (interface_declaration:): Rule re-arrange so that
	`interface_body:' is reduced after the current interface is
	pushed.

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

	* parse-scan.y (inner_qualifier, inner_qualifier_length): New
	static globals.
	(push_class_context, pop_class_context): New function.
	(class_body:): Call pop_class_context.
	(interface_body:): Likewise.
	(INNER_QUALIFIER): New macro.
	(report_class_declaration): Changed output format and use
	INNER_QUALIFIER. Call push_class_context.

From-SVN: r32779
2000-03-28 00:33:45 -08:00
Tom Tromey
a843e0ced8 jvspec.c (jvgenmain_spec): Add %{<...}' construct for each Java-specific -f' option.
* jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each
	Java-specific `-f' option.

From-SVN: r32757
2000-03-27 00:30:47 +00:00
Richard Kenner
ad41cc2a20 stor-layout.c (layout_type, [...]): early_type_list is now a list of TREE_LIST entries, not types.
* stor-layout.c (layout_type, set_sizetype): early_type_list is
	now a list of TREE_LIST entries, not types.
	* tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
	* java/decl.c (init_decl_processing): Call initialize_sizetypes once.
	Adjust order of making types.
	Make bitsize_*_node values.

From-SVN: r32751
2000-03-26 14:01:55 -05:00
Richard Kenner
770ae6cc71 * Rework fields used to describe positions of bitfields and
modify sizes to be unsigned and use HOST_WIDE_INT.
	* alias.c (reg_known_value_size): Now unsigned.
	* c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
	(really_start_incremental_init): Use bitsize_zero_node.
	(push_init_level, pop_init_level, output_init_element): Likewise.
	Use bitsize_unit_node and bitsize_one_node.
	(output_pending_init_elements, process_init_element): Likewise.
	* combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
	(make_extraction): Position and length HOST_WIDE_INT and unsigned
	HOST_WIDE_INT, respectively.
	(get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
	(num_sign_bit_copies): Returns unsigned.
	BITWIDTH now unsigned; rework arithmetic.
	Remove recursive call from arg to MAX.
	(combine_instructions, init_reg_last_arrays): NREGS now unsigned.
	(setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
	REGNO now unsigned.
	(set_nonzero_bit_and_sign_copies): NUM now unsigned.
	(find_split_point, expand_compound_operation, make_extraction): LEN
	now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
	(make_field_assignment): Likewise.
	(combine_simplify_rtx): Add cast.
	(expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
	(force_to_mode): WIDTH now unsigned; add cast.
	(if_then_else_cond): SIZE now unsigned.
	(nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
	(extended_count): Now returns unsigned.
	(simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
	Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
	(simplify_comparison): MODE_WIDTH now unsigned.
	(update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
	(mark_used_regs_combine): Likewise; rework arithmetic.
	(record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
	(record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
	(record_promoted_value): REGNO now unsigned.
	(get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
	(get_last_value): REGNO now unsigned.
	(use_crosses_set_p): REGNO and ENDREGNO now unsigned.
	(reg_dead_regno, reg_dead_endregno): Now unsigned.
	(remove_death): Arg REGNO now unsigned.
	(move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
	(reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
	now unsigned.
	* convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
	* cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
	(struct cse_reg_info): REGNO now unsigned.
	(cached_regno): Now unsigned.
	(REGNO_QTY_VALID_P): Add cast.
	(make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
	(remove_invalid_regs): Likewise.
	(remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
	as are variables END and I.
	(get_cse_reg_info, insert): Likewise.
	(mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
	(canon_hash): Likewise.
	(insert_regs, lookup_for_remove): REGNO now unsigned.
	(invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
	New variable RN.
	* dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
	* dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
	* emit-rtl.c (subreg_realpart_p): Add cast.
	(operand_subword): Arg I is now unsigned as is var PARTWORDS.
	(operand_subword_force): Arg I is now unsigned.
	* except.c (eh_regs): Variable I is now unsigned.
	* explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
	* expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
	length is unsigned HOST_WIDE_INT; likewise for internal variables.
	(store_split_bit_field, extract_fixed_bit_field): Likewise.
	(extract_split_bit_field, store_bit_field, extract_bit_field):
	Likewise.
	* expr.c (store_constructor_fields, store_constructor, store_field):
	Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
	(expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
	(do_jump): Likewise.
	(move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
	MAX_SIZE is now unsigned.
	(emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
	(emit_group_store): Likewise.
	(emit_move_insn): I now unsigned.
	(store_constructor): Use host_integerp, tree_low_cst, and
	bitsize_unit_node.
	(get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
	Rework all calculations to use trees and new fields.
	* expr.h (promoted_input_arg): Regno now unsigned.
	(store_bit_field, extract_bit_field): Adjust types of pos and size.
	(mark_seen_cases): Arg is HOST_WIDE_INT.
	* flow.c (verify_wide_reg_1): REGNO now unsigned.
	* fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
	precisions and alignments are unsigned.
	(optimize_bit_field_compare, fold_truthop): Likewise.
	(int_const_binop): Adjust threshold for size_int_type_wide call.
	(fold_convert): Likewise.
	(size_int_type_wide): Make table larger and fix thinko that only
	had half of table used.
	(all_ones_mask_p, fold): Precisions are unsigned.
	* function.c (put_reg_info_stack): REGNO is unsigned.
	(instantiate_decl): Size is HOST_WIDE_INT.
	(instantiate_virtual_regs): I is unsigned.
	(assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
	(promoted_input_arg): REGNO is unsigned.
	* function.h (struct function): x_max_parm_reg is now unsigned.
	* gcse.c (max_gcse_regno): Now unsigned.
	(struct null_pointer_info): min_reg and max_reg now unsigned.
	(lookup_set, next_set): REGNO arg now unsigned.
	(compute_hash_table): REGNO and I now unsigned.
	(handle_avail_expr): regnum_for_replacing now unsigned.
	(cprop_insn): REGNO now unsigned.
	(delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
	* ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
	* global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
	* hard-reg-set.h (reg_class_size): Now unsigned.
	* integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
	* jump.c (mark_modified_reg): I now unsigned; add cast.
	(rtx_equal_for_thread_p): Add cast.
	* loop.c (max_reg_before_loop): Now unsigned.
	(struct_movable): REGNO now unsigned.
	(try_copy_prop): REGNO arg unsigned.
	(regs_match_p): XN and YN now unsigned.
	(consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
	(strength_reduce): Likewise; NREGS also unsigned.
	(first_increment_giv, last_increment_giv unsigned): Now unsigned.
	* loop.h (struct iv_class): REGNO now unsigned.
	(max_reg_before_loop, first_increment_giv, last_increment_giv):
	Now unsigned.
	* machmode.h (mode_size, mode_unit_size): Now unsigned.
	(mode_for_size, smallest_mode_for_size): Pass size as unsigned.
	* optabs.c (expand_binop): I and NWORDS now unsigned.
	(expand_unop): I now unsigned.
	* print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
	print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
	* real.c (significand_size): Now returns unsigned.
	* real.h (significand_size): Likewise.
	* regclass.c (reg_class_size): Now unsigned.
	(choose_hard_reg_mode): Both operands now unsigned.
	(record_reg_classes): REGNO and NR now unsigned.
	(reg_scan): NREGS now unsigned.
	(reg_scan_update): old_max_regno now unsigned.
	(reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
	* reload.c (find_valid_class): BEST_SIZE now unsigned.
	(find_dummy_reload): REGNO, NWORDS, and	I now unsigned.
	(hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
	Likewise for variable R.
	(refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
	as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
	(find_equiv_reg): Add casts.
	(regno_clobbered_p): Arg REGNO now unsigned.
	* reload.h (struct reload): NREGS now unsigned.
	(refers_to_regno_for_reload_p): Regno args are unsigned.
	(regno_clobbered_p): Likewise.
	* reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
	(compute_use_by_pseudos): REGNO now unsigned.
	(find_reg): I and J now unsigned, new variable K, and change loop
	variables accordingly; THIS_NREGS now unsigned.
	(alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
	(spill_hard_reg): REGNO arg now unsigned; add casts.
	(forget_old_reloads_1): REGNO, NR, and I now unsigned.
	(mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
	(clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
	END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
	(reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
	(choose_reload_regs): MAX_GROUP_SIZE now unsigned.
	(emit_reload_insns): REGNO now unsigned.
	(reload_cse_move2add): Add cast.
	(move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
	and rework loop.
	* resource.c (mark_referenced_resources, mark_set_resources): New
	variable R; REGNO and LAST_REGNO now unsigned.
	(mark_target_live_regs): J and REGNO now unsigned.
	* rtl.c (mode_size, mode_unit_size): Now unsigned.
	* rtl.h (union rtunion_def): New field rtuint.
	(XCUINT): New macro.
	(ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
	(operand_subword, operand_subword_force): Word number is unsigned.
	(choose_hard_reg_mode): Operands are unsigned.
	(refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
	(find_regno_note, find_regno_fusage, replace_regs): Likewise.
	(regno_use_in, combine_instructions, remove_death): Likewise.
	(reg_scan, reg_scan_update): Likewise.
	(extended_count): Return is unsigned.
	* rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
	INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
	(reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
	(reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
	(reg_reg_last_1): FIRS and LAST now unsigned.
	(dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
	(dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
	now unsigned.
	(find_regno_note, regno_use_in): Arg REGNO now unsigned.
	(find_regno_fusage): Likewise; also var REGNOTE now unsigned.
	(find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
	(replace_regs): Arg NREGS now unsigned.
	* sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
	* simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
	(simplify_binary_operation): Likewise.
	(cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
	THIS_LAST now unsigned.
	(cselib_record_set): Add cast.
	* ssa.c (ssa_max_reg_num): Now unsigned.
	(rename_block): REGNO now unsigned.
	* stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
	sizes now unsigned.
	(all_cases_count): Just return -1 not -2.
	COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
	Rework tests to use trees whenever possible.
	Use host_integerp and tree_low_cst.
	(mark_seen_cases): COUNT arg now HOST_WIDE_INT;
	Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
	(check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
	* stor-layout.c (mode_for_size): SIZE arg now unsigned.
	(smallest_mode_for_size): Likewise.
	(layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
	KNOWN_ALIGN is now an alignment, so simplify code.
	Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
	(start_record_layout): Renamed from new_record_layout_info.
	Update to new fields.
	(debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
	New functions.
	(place_union_field): Renamed from layout_union_field.
	Update to use new fields in rli.
	(place_field): Renamed from layout_field.
	Major rewrite to use new fields in rli; pass alignment to layout_decl.
	(finalize_record_size): Rework to use new fields in rli and handle
	union.
	(compute_record_mode): Rework to simplify and to use new DECL fields.
	(finalize_type_size): Make rounding more consistent.
	(finish_union_layout): Deleted.
	(layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
	(layout_type, case RECORD_TYPE): Call new function names.
	(initialize_sizetypes): Set TYPE_IS_SIZETYPE.
	(set_sizetype): Set TYPE_IS_SIZETYPE earlier.
	(get_best_mode): UNIT is now unsigned; remove casts.
	* tree.c (bit_position): Compute from new fields.
	(byte_position, int_byte_position): New functions.
	(print_type_hash_statistics): Cast to remove warning.
	(build_range_type): Use host_integerp and tree_low_cst to try to hash.
	(build_index_type): Likewise; make subtype of sizetype.
	(build_index_2_type): Pass sizetype to build_range_type.
	(build_common_tree_nodes): Use size_int and bitsize_int to
	initialize nodes; add bitsize_{zero,one,unit}_node.
	* tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
	(DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
	(DECL_PACKED, DECL_BIT_FIELD): Likewise.
	(DECL_FIELD_BITPOS): Deleted.
	(DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
	(DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
	(DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
	(DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
	(DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
	(DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
	(DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
	(DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
	(DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
	(DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
	(DECL_ALIGN): Adjust to new field in union.
	(DECL_OFFSET_ALIGN): New field.
	(DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
	(DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
	(union tree_decl): Add struct for both aligns.
	(enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
	(bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
	(struct record_layout_info): Rework fields to have offset
	alignment and byte and bit position.
	(start_record_layout, place_field): Renamed from old names.
	(rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
	(byte_position, int_byte_position): Likewise.
	(get_inner_reference): Change types of position and length.
	* unroll.c (unroll_loop): New variable R; use for some loops.
	MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
	(calculate_giv_inc): Arg REGNO now unsigned.
	(copy_loop_body): REGNO and SRC_REGNO now unsigned.
	* varasm.c (assemble_variable): Clean up handling of size using
	host_integerp and tree_low_cst.
	(decode_addr_const): Use byte, not bit, position.
	(output_constructor): bitpos and offsets are HOST_WIDE_INT;
	use tree_low_cst and int_bit_position.
	* objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
	* ch/actions.c (check_missing_cases): BYTES_NEEDED is HOST_WIDE_INT.
	* ch/typeck.c (expand_constant_to_buffer): Use int_byte_position.
	(extract_constant_from_buffer): Likewise.
	* cp/class.c (build_vbase_pointer_fields): layout_field now
	place_field.
	(get_vfield_offset): Use byte_position.
	(set_rtti_entry): Set OFFSET to ssizetype zero.
	(get_binfo_offset_as_int): Deleted.
	(dfs_record_base_offsets): Use tree_low_cst.
	(dfs_search_base_offsets): Likewise.
	(layout_nonempty_base_or_field): Reflect changes in RLI format
	and call byte_position.
	(layout_empty_base): Convert offset to ssizetype.
	(build_base_field): use rli_size_unit_so_far.
	(dfs_propagate_binfo_offsets): Do computation in proper type.
	(layout_virtual_bases): Pass ssizetype to propagate_binfo_offsets.
	(layout_class_type): Reflect changes in RLI names and fields.
	(finish_struct_1): Set DECL_FIELD_OFFSET.
	* cp/dump.c (dequeue_and_dump): Call bit_position.
	* cp/expr.c (cplus_expand_constant): Use byte_position.
	* cp/rtti.c (expand_class_desc): Use bitsize_one_node.
	* cp/typeck.c (build_component_addr): Use byte_position and don't
	special case for zero offset.
	* f/com.c (ffecom_tree_canonize_ptr_): Use bitsize_zero_node.
	(ffecom_tree_canonize_ref_): Likewise.
	* java/class.c (make_field_value): Use byte_position.
	* java/expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
	(java_array_data_offset): Likewise.
	* java/java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
	bzero call.

From-SVN: r32742
2000-03-25 13:34:13 -05:00
Alexandre Petit-Bianco
165f37bc07 [multiple changes]
2000-03-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (check_abstract_method_definitions): New local
	`end_type_reached'. Make sure we also consider `end_type'.
	(java_check_abstract_method_definitions): Make sure we also
	eventually consider `java.lang.Object'.
	(maybe_use_access_method): Don't use access method if not a pure
	inner class or if the method's context is right.
	(find_applicable_accessible_methods_list): New static
	`object_done'. Don't search abstract classes as interfaces. Fixed
	indentation. Fixed the `java.lang.Object' only search. Search class'
	interface(s) first, fully search enclosing contexts.
	(find_most_specific_methods_list): Pick closest candidates when
	they're all abstract.

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

	* parse.y (check_method_types_complete): New function.
	(create_class): Reset anonymous class counter only when seeing an
	non inner classe.
	(java_complete_class): JDEP_METHOD: Don't recompute signature
	if incomplete.

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

	* class.c (build_static_ref): Fixed indentation in comment.
	* java-tree.def (TRY_EXPR): Fixed typo in name.
	(CLASS_LITERAL): Likewise.
	* java-tree.h: (TYPE_DOT_CLASS): New macro.
	(struct lang_type): New field `dot_class'.
	* jcf-write.c (generate_bytecode_insns): Fixed error message.
	(generate_classfile): Method `class$' is synthetic.
	* parse.y (build_do_class_method): New function.
	(build_dot_class_method_invocation): Likewise.
	(java_complete_expand_methods): Expand TYPE_DOT_CLASS if necessary.
	(resolve_qualified_expression_name): Handle CLASS_LITERAL.
	(qualify_ambiguous_name): Likewise.
	(patch_incomplete_class_ref): Invoke synthetic method if necessary.
	(build_try_statement): Fixed leading comment.

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

	* parse.h (INNER_ENCLOSING_SCOPE_CHECK): Disregard anonymous
	classes.
	* parse.y (patch_method_invocation): Handle anonymous classes
	creation in static context.

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

	* parse.h (INNER_ENCLOSING_SCOPE_CHECK): New macro.
	* parse.y (resolve_qualified_expression_name): Use it.
	(patch_method_invocation): Likewise.

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

	* parse.y (register_incomplete_type): JDEP_ENCLOSING set
	depending on the type of dependency which dictates what the
	current class is.
	(unresolved_type_p): Resolved types limited to the current class.

(For details, see: http://gcc.gnu.org/ml/gcc-patches/2000-03/msg00790.html)

From-SVN: r32701
2000-03-22 23:01:24 -08:00
Alexandre Petit-Bianco
124906f908 jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR...
Mon Mar 20 08:58:51 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
	properly initialize `finished_label.' Don't emit gotos for empty
	try statements.

(Minor fix: http://gcc.gnu.org/ml/gcc-patches/2000-03/msg00762.html)

From-SVN: r32690
2000-03-22 14:48:04 -08:00
Martin v. Löwis
c14f7160a1 emit-rtl.c (push_to_full_sequence, [...]): New functions.
* emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
	* except.c (emit_cleanup_handler): Use them.
	(expand_end_all_catch): Likewise.
	* function.c (fixup_var_refs): Likewise.
	(expand_function_end): Clear catch_clauses_last.
	* rtl.h (push_to_full_sequence, end_full_sequence): Declare.
	* except.h (struct eh_status): New field x_catch_clauses_last.
	(catch_clauses_last): New define.

	* cp/except.c (expand_exception_blocks): Clear catch_clauses_last.

	* java/except.c (emit_handlers): Clear catch_clauses_last.

From-SVN: r32643
2000-03-19 18:25:27 +00:00
Richard Kenner
665f250366 * Clean up usages of TREE_INT_CST_LOW.
* c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
	* c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
	Regenerated.
	* c-tree.h (min_precision): Move declaration to here.
	* c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
	(build_unary_op, add_pending_init): Use bit_position.
	(pending_init_member, process_init_element): Likewise.
	(really_start_incremental_init, push_init_level, pop_init_level):
	Don't make copies of nodes or modify them in place, use consistent
	types when tracking positions, and use tree routines computations.
	(set_init_index, output_init_element): Likewise.
	(output_pending_init_elements, process_init_element): Likewise.
	* dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
	tree_low_cst and int_bit_position; also minor cleanup.
	(dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
	(print_cst_octal): Precision is unsigned.
	(dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
	* dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
	(simple_type_align_in_bits): Result is unsigned int.
	Use tree_int_low_cst and host_integerp.
	(simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
	(field_byte_offset): Result is HOST_WIDE_INT.
	Change types of internal variables so alignments are unsigned int,
	offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
	Use host_integerp, tree_low_cst, and int_bit_position.
	(add_bit_offset_attribute): Likewise.
	(add_data_member_location_attribute): Use tree_cst_low.
	(add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
	(add_bit_size_attribute): Use tree_low_cst.
	(add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
	* dwarfout.c: Similar changes to dwarf2out.c.
	* expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
	* genoutput.c (n_occurences): Return -1 for null string.
	(strip_whitespace): Accept null string and make into function.
	(scan_operands): Reflect above changes.
	* sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
	(sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
	* ssa.c (rename_registers): Add missing cast of arg to bzero.
	* tree.c (int_size_in_bytes): Check for too big to represent.
	(bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
	* tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
	New declarations.
	(min_precision): Delete from here.
	* varasm.c (decode_addr_const): Use host_integerp, bit_position,
	and int_bit_position.
	* objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
	(encode_method_def): Likewise.
	(build_ivar_list_initializer): Use int_bit_position.
	(generate_shared_structures): Convert size.
	(encode_type, encode_complete_bitfield): Use integer_zerop.
	(encode_bitfield): Use tree_low_cst and int_bit_position.
	* ch/typeck.c (min_precision): New function.
	(build_chill_slice): Use host_integerp and tree_low_cst.
	(expand_constant_to_buffer): Likewise and also int_bit_position.
	LO is unsigned HOST_WIDE_INT
	(build_chill_array_ref_1): Make `i' be HOST_WIDE_INT; use tree_low_cst.
	(extract_constant_from_buffer): Sizes are now HOST_WIDE_INT.
	Use host_integerp and tree_low_cst.
	(build_chill_bin_type): Use host_integerp and tree_low_cst.
	(layout_chill_range_type): Use tree_int_cst_sgn, compare_tree_int,
	tree_low_cst, and min_precision.
	(apply_chill_array_layout): Cleanups for types of variables
	and use tree_int_cst_sgn, compare_tree_int, and tree_low_cst.
	(apply_chill_field_layout): Likewise.
	* cp/class.c (build_vbase_path): Use integer_zerop.
	(build_vtable_entry): Use tree_low_cst.
	(get_vfield_offset): Use bit_position.
	(dfs_modify_vtables): New variable vindex_val; `i' is HOST_WIDE_INT.
	Use tree_low_cst.
	(check_bitfield_decl): Set DECL_SIZE using convert.
	(build_base_field): Set DECL_SIZE and DECL_SIZE_UNIT using size_binop.
	(layout_virtual_bases): DSIZE is unsigned HOST_WIDE_INT.
	Use tree_low_cst.
	(finish_struct_1): Use bit_position.
	(dump_class_hierarchy): Use tree_low_cst.
	* cp/cp-tree.h (min_precision): Add declaration.
	* cp/decl.c (xref_tag, xref_basetypes): Use tree_low_cst.
	* cp/error.c (dump_type_suffix): Use host_integerp and tree_low_cst.
	(dump_expr): Use integer_zerop, host_integerp, and tree_low_cst.
	* cp/expr.c (cplus_expand_constant): Use bit_position.
	* cp/init.c (build_vec_init): Use host_integerp and tree_low_cst.
	* cp/rtti.c (get_base_offset): Use bit_position.
	* cp/typeck.c (build_binary_op): Use integer_zerop, compare_tree_int,
	host_integerp, and tree_low_cst.
	(pointer_int_sum): Use integer_zerop.
	(build_component_addr): Use bit_position.
	* java/class.c (make_field_value): Properly handle sizes.
	(get_dispatch_vector): Use tree_low_cst and host_integerp.
	(layout_class_method): Count using trees.
	* java/decl.c (push_promoted_type): Set TYPE_{MIN,MAX}_VALUE with
	copy_node.
	* java/expr.c (java_array_data_offset): Use int_bit_position.
	(build_newarray, build_anewarray): Use host_integerp and tree_low_cst.
	(build_invokevirtual): Use tree_low_cst and do computations with trees.

From-SVN: r32607
2000-03-17 12:31:58 -05:00
Tom Tromey
64aa33dd9c lang.c (flag_hash_synchronization): New global.
* lang.c (flag_hash_synchronization): New global.
	(lang_f_options): Added `hash-synchronization'.
	* lang-options.h: Mention -fhash-synchronization.
	* java-tree.h (flag_hash_synchronization): Declare.
	* expr.c (java_lang_expand_expr): Only push `sync_info' value when
	hash table synchronization is disabled.
	* decl.c (init_decl_processing): Only push `sync_info' value when
	hash table synchronization is disabled.
	* class.c (make_class_data): Only push `sync_info' field when hash
	table synchronization is disabled.  Removed dead code.

From-SVN: r32593
2000-03-16 18:32:45 +00:00
Tom Tromey
ae23f3ed01 * lang.c (lang_decode_option): Enable -Wunused when -Wall given.
From-SVN: r32591
2000-03-16 17:26:46 +00:00
Tom Tromey
2c6c322a97 decl.c (init_decl_processing): Set type of `sync_info' to be pointer to Object.
* decl.c (init_decl_processing): Set type of `sync_info' to be
	pointer to Object.

	* boehm.c (get_boehm_type_descriptor): Correctly compute `bits'.
	Correctly compute bit number for current slot.  Zero `high' and
	`low' in DS_LENGTH case.  Don't skip inherited fields.  Use
	mark_reference_fields.
	(mark_reference_fields): New function.

From-SVN: r32572
2000-03-16 01:32:12 +00:00
Alexandre Petit-Bianco
324ed8fdf2 re GNATS gcj/172 (compiler rejects inner-class argument to inner-class constructor)
Tue Mar 14 17:15:41 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (register_incomplete_type): Fixed initialization of
	JDEP_ENCLOSING.

(This is a fix to the gcj PR #172:
 http://sourceware.cygnus.com/ml/java-prs/2000-q1/msg00169.html)

From-SVN: r32556
2000-03-15 01:30:39 -08:00
Andrew Haley
d77a712d1d check-init.c (check_init): Add new cases for unary and binary tree nodes.
2000-02-14  Andrew Haley  <aph@cygnus.com>

        * check-init.c (check_init): Add new cases for unary and binary
        tree nodes.

From-SVN: r32543
2000-03-14 20:54:55 +00:00
Alexandre Petit-Bianco
dde1da7265 parse.y (resolve_package): Set `next' once a type name has been progressively discovered.
2000-03-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (resolve_package): Set `next' once a type name has been
	progressively discovered.
	(resolve_qualified_expression_name): Propagate resolution only if
	there are remaining qualifiers. Take into account `q' might have
	been cleared after re-qualification.
	* parse.y (patch_method_invocation): New local `resolved'.
  	Section dealing with qualified expression rewritten to use
 	resolve_field_access.

From-SVN: r32520
2000-03-13 23:51:42 -08:00
Alexandre Petit-Bianco
c2952b018a Added Java 1.1 language features.
From-SVN: r32517
2000-03-13 21:01:05 -08:00
Hans Boehm
46089b8642 typeck.c (build_prim_array_type): Correctly set the high word too.
Mon Mar 13 11:36:51 2000  Hans Boehm <boehm@acm.org>

	* typeck.c (build_prim_array_type): Correctly set the high word too.

From-SVN: r32512
2000-03-13 13:36:09 -08:00
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
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
Alexandre Petit-Bianco
518f173d3d *** empty log message ***
From-SVN: r32385
2000-03-07 10:46:22 -08: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
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
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
Tom Tromey
01447dce5b * Make-lang.in (JAVA_SRCS): Added boehm.c, lex.c.
From-SVN: r32369
2000-03-06 19:37:34 +00:00
Tom Tromey
5830574a16 Makefile.in (JAVA_OBJS): Added boehm.o.
* Makefile.in (JAVA_OBJS): Added boehm.o.
	(boehm.o): New target.
	* Make-lang.in (JAVA_SRCS): Added boehm.c.
	* java-tree.h (flag_use_boehm_gc): Declare.
	(get_boehm_type_descriptor): Declare.
	* lang.c (lang_f_options): Added `use-boehm-gc'.
	(flag_use_boehm_gc): New global.
	* lang-options.h: Added -fuse-boehm-gc.
	* boehm.c: New file.
	* class.c (get_dispatch_table): If class uses a Boehm type
	descriptor, put it in the vtable.
	(make_class_data): Removed dead code.

From-SVN: r32331
2000-03-04 22:27:35 +00:00
Per Bothner
4a7f193558 * decl.c (init_decl_processing): Initialize sizetype properly.
From-SVN: r32328
2000-03-04 10:27:48 -08:00
Martin v. Löwis
00262c8ac7 c-decl.c (current_function_decl): Move to toplev.c.
* c-decl.c (current_function_decl): Move to toplev.c.
	(init_decl_processing): Don't add current_function_decl as a ggc
	root here.
	* dbxout.c (dbxout_symbol): Change return type to int.
	(dbxout_symbol_location, dbxout_syms): Likewise.
	(dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
	any locals. Use current_function_func_begin_label if set.
	* dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
	* dwarf2out.c (dwarf2out_begin_prologue): Set
	current_function_func_begin_label.
	* final.c (final_start_function): Reset it.
	* toplev.c (current_function_decl): Define it here.
	(current_function_func_begin_label): New variable.
	(main): Add both as ggc roots.
	* tree.h (current_function_func_begin_label): Declare.
	* ch/decl.c (current_function_decl): Move to toplev.c.
	* cp/decl.c (current_function_decl): Move to toplev.c.
	* f/com.c (current_function_decl): Move to toplev.c.
	* java/decl.c (current_function_decl): Move to toplev.c.

From-SVN: r32268
2000-02-29 23:33:50 +00:00
Richard Kenner
9df2c88cf7 * Eliminate DECL_FIELD_SIZE.
* builtins.c (built_in_class_names, built_in_names): New variables.
	* c-decl.c (finish_struct): Set specified size in DECL_SIZE.
	* expr.c (expand_expr, case COMPONENT_REF): Get field size from
	DECL_SIZE, not DECL_FIELD_SIZE.
	* print-tree.c (print_node): Remove code that prints extra blank
	lines in some cases.
	Properly handle inline and builtin function cases.
	* stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
	* tree.h (built_in_class_named, built_in_names): New declarations.
	(union tree_decl): Rename internal unions to u1 and u2 and change
	some of their components.
	Add new field built_in_class.
	(DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
	Reflect above changes.
	(DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
	(DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
	* objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
	(encode_field_decl): Likewise; also remove obsolete test for bitfield.
	* ch/ch-tree.h (DECL_ACTION_NESTING_LEVEL): Use new tree union name.
	* ch/decl.c (finish_struct): Don't clear DECL_FIELD_SIZE.
	* ch/typeck.c (make_chill_struct_type): Likewise.
	(apply_decl_field_layout): General cleanup.
	Set DECL_SIZE instead of DECL_FIELD_SIZE.
	* cp/class.c (build_vtbl_or_vbase_field, check_methods): Don't clear
	DECL_FIELD_SIZE.
	(check_bitfield_decl, check_field_decls): Set DECL_SIZE, not
	DECL_FIELD_SIZE.
	* cp/rtti.c (expand_class_desc): Likewise.
	* cp/cp-tree.h (DECL_INIT_PRIORITY): Use underlying union name.
	(THUNK_VCALL_OFFSET): Likewise.
	(THUNK_DELTA): Reflect changes in ../tree.h.
	* java/java-tree.h (LABEL_PC): Relect name changes in ../tree.h.
	(DECL_BIT_INDEX): Use underlying representation.
	* java/parse.h (DECL_INHERITED_SOURCE_LINE): Likewise.

From-SVN: r32249
2000-02-28 21:34:48 -05:00
Richard Kenner
fed3cef0db builtins.c (c_strlen): Use size_diffop and return ssizetype value.
* builtins.c (c_strlen): Use size_diffop and return ssizetype value.
	(expand_builtin_strcpy): Pass correct type to size_binop.
	(expand_builtin_strcmp): Likewise.
	Clean up conditional structure.
	* c-decl.c (init_decl_processing): Don't call set_sizetype twice.
	(complete_array_type): Don't use size_binop for MAXINDEX.
	* c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
	(c_sizeof_nowarn, c_size_in_bytes): Likewise.
	(c_alignof): Use size_one_node.
	(build_unary_op): Pass arg of proper type to size_binop.
	(really_start_incremental_init, push_init_level): Use sizetype for
	constructor{,_bit,_unfilled}_index.
	(pop_init_label, output_init_element): Likewise.
	(output_pending_init_elements, process_init_element): Likewise.
	* calls.c (compute_argument_block_size): Field VAR is ssizetype.
	* expr.c (store_expr): Use size_int.
	(store_constructor): Use proper types for size_binop args.
	(get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
	(expand_expr_unaligned): Likewise.
	(string_contant): Return object of sizetype.
	* expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
	(ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
	(ARGS_SIZE_TREE): Pass proper types to size_binop.
	* fold-const.c (int_const_binop): Refine when size_int is called.
	(fold_convert): Likewise.
	(size_int_wide): Rework to take KIND as arg, only take low order
	bits, handle new sizetype_tab datatype, and chain entries in
	size_table.
	(size_int_type_wide): New function.
	(size_binop): Validate types of arguments.
	(ssize_binop): Deleted.
	(size_diffop): New function.
	(extract_muldiv): Only fold division into multiplication for sizetypes.
	* function.c (assign_parms): Use size_diffop and make sure
	VAR field is of ssizetype; also pass proper type to size_binop.
	(locate_and_pad_parm, pad_to_arg_alignment): Likewise.
	(round_down): Deleted from here.
	* store-layout.c (sizetype_tab): Now an array.
	(sizetype_set, early_root_list): New variables.
	(variable_size): Use size_one_node.
	(round_up): Pass proper type to size_binop.
	(round_down): Moved to here and corrected as above.
	(layout_record): Pass proper arg types to size_binop.
	(layout_type): Likewise.
	If sizetype_set is zero, record the type just laid out.
	(make_unsigned_type): Don't call set_sizetype;
	(make_signed_type): Likewise; also, call fixup_signed_type.
	(initialize_sizetypes): New function.
	(set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
	set name of bitsizetype to "bit_size_type".
	Fix up type of sizes of all types made before call.
	* tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
	* tree.c (fix_sizetype): Deleted.
	(build_common_tree_nodes): Call initialize_sizetypes.
	(build_common_tree_nodes_2): Don't call fix_sizetype.
	* tree.h (TYPE_IS_SIZETYPE): New macro.
	(initialize_sizetype): New declaration.
	(enum size_type_kind): New type.
	(struct sizetype_tab): Deleted.
	(sizetype_tab): Now array; adjust sizetype macros.
	(size_diffop, size_int_type_wide): New functions.
	(size_int_wide): Change number of args and type; access macros changed.
	(ssize_int, sbitsize_int): New macros.
	* config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
	(ROUND_TYPE_SIZE_UNIT): New macro.
	* ch/actions.c (chill_convert_for_assignment): Don't use size_binop
	for things that aren't sizes.
	(expand_varying_length_assignment): Likewise.
	* ch/convert.c (digest_array_tuple, convert): Likewise.
	* ch/typeck.c (build_chill_slice, smash_dummy_type): Likewise.
	(build_chill_slice_with_range): Likewise.
	(build_chill_slice_with_length): Likewise.
	(build_array_from_set): Adjust types for size_binop.
	* ch/expr.c (build_concat_expr, build_chill_repetition_op): Likewise.
	(build_chill_sizeof): Use TYPE_SIZE_UNIT.
	* ch/tree.c (build_string_type): Pass proper type to size_binop.
	* cp/class.c (dfs_build_vtable_offset_vtbl_entries): Don't use
	size_binop on things that are not sizes; ssize_binop deleted.
	Call size_diffop when appropriate.
	(dfs_build_vcall_offset_vtbl_entries): Likewise.
	(build_primary_vtable, build_secondary_vtable): Likewise.
	(dfs_set_offset_for_unshared_vbases, dfs_modify_vtables): Likewise.
	Variable I is HOST_WIDE_INT.
	(get_vfield_offset): Pass proper types to size_binop.
	(size_extra_vtbl_entries, layout_virtual_bases): Likewise.
	(finish_struct_1): Likewise.
	(skip_rtti_stuff): Arg N is now pointer to signed.
	(layout_class_type): Use size_zero_node.
	* cp/cp-tree.h (skip_rtti_stuff): Arg N is pointer to signed.
	* cp/cvt.c (cp_convert_to_pointer): Pass proper types to size_binop.
	* cp/decl.c (complete_arry_type): Pass proper types to size_binop.
	(xref_basetypes): BINFO_OFFSET is sizetype.
	* cp/error.c (dump_expr): Don't use size_binop non-sizes.
	* cp/expr.c (cplus_expand_constant): Pass proper types to size_binop.
	* cp/init.c (construct_virtual_bases): Fix type error.
	(build_vec_delete_1): Pass proper type to size_binop and don't
	fold result.
	* cp/lex.c (cp_make_lang_type): BINFO_OFFSET is sizetype.
	* cp/rtti.c (get_base_offset): Pass proper type to size_binop.
	* cp/search.c (dfs_find_vbases): Fix type error.
	(expand_upcast_fixups): Arg to skip_rtti_stuff is pointer to signed.
	(dfs_get_vbase_types): BINFO_OFFSET is sizetype.
	* cp/tree.c (debug_binfo): Variable N is signed.
	Use HOST_WIDE_INT_PRINT_DEC.
	* cp/typeck.c (comptypes): sizetype is same as equivalent integer type.
	(c_sizeof, c_sizeof_nowarn, expr_sizeof): Use TYPE_SIZE_UNIT,
	size_one_node and size_zero_node.
	(c_alignof): Use size_one_node.
	(build_component_addr): Pass proper types to size_binop.
	(expand_ptrmemfunc_cst): Don't use size_binop on non-sizes.
	* f/com.c (ffecom_arrayref_): Convert args to size_binop to proper
	type.
	(ffecom_tree_canonize_ptr_): Don't use size_binop for non-sizes.
	(ffecom_tree_canonize_ref_): Likewise.
	(type_for_mode): Handle TImode.
	* f/ste.c (ffeste_io_dofio_, ffeste_io_douio_): Use TYPE_SIZE_UNIT.
	(ffeste_io_ciclist_): Likewise.
	* java/expr.c (build_java_ret): Pass proper type to size_binop.

From-SVN: r32225
2000-02-27 16:39:40 -05:00
Jeff Law
3852e8afcc Fix copyrights
From-SVN: r32182
2000-02-26 13:02:01 -07:00
Anthony Green
3ff9925ce0 expr.c (build_class_init): Mark the decl to be ignored by check_init.
2000-02-25  Anthony Green  <green@cygnus.com>

	* expr.c (build_class_init): Mark the decl to be ignored by
	check_init.
	* java-tree.h (DECL_BIT_INDEX): Move definition from check-init.c
	* check-init.c: Move DECL_BIT_INDEX to java-tree.h
	* class.c (init_test_hash_newfunc): New function.
	(decl_hash): New function.
	(decl_compare): New function.
	* decl.c (emit_init_test_initialization): New function.
	(complete_start_java_method): Traverse the init test hashtable,
	calling emit_init_test_initialization.
	(always_initialize_class_p): Define.
	* expr.c (build_class_init): Use initialization tests when
	emitting class initialization code.
	(always_initialize_class_p): Declare.
	* jcf-parse.c (parse_class_file): Set always_initialize_class_p to
	1.
	* java-tree.h: Include hash.h.
	(DECL_FUNCTION_INIT_TEST_TABLE): Define.
	(struct lang_decl): Add init_test_table field.
	(init_test_hash_entry): Define.

From-SVN: r32166
2000-02-26 05:12:27 +00:00
Alexandre Petit-Bianco
3c9ef12753 gjavah.c (main): Avoid using `argi' to report unimplemented options.
* gjavah.c (main): Avoid using `argi' to report unimplemented
	options.

From-SVN: r32164
2000-02-26 04:32:08 +00:00
Alexandre Petit-Bianco
0e9137bb1f jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR: initialize locals to avoid warnings.
Fri Feb 25 18:47:25 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
 	initialize locals to avoid warnings. Local `exception_type' moved
	into if statement.

From-SVN: r32161
2000-02-25 18:50:37 -08:00
Alexandre Petit-Bianco
98f3c1dbd3 parse.y (resolve_expression_name): Use `orig' as a second argument to resolve_field_access.
Fri Feb 25 18:00:37 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (resolve_expression_name): Use `orig' as a second
 	argument to resolve_field_access.
	(resolve_field_access): Removed unecessary code when dealing with
 	static fields.

From-SVN: r32158
2000-02-25 18:05:35 -08:00
Tom Tromey
c45c5e092d gjavah.c (print_name): In JNI case, correctly quote string.
* gjavah.c (print_name): In JNI case, correctly quote string.
	(print_method_info): Don't handle overrides in JNI mode.

From-SVN: r32124
2000-02-23 20:46:18 +00:00
Alexandre Petit-Bianco
99803cd4cc parse.y (init_decl_processing): _Jv_IsInstanceOf' returned value type set to boolean_type_node'.
2000-02-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (init_decl_processing): `_Jv_IsInstanceOf' returned
	value type set to `boolean_type_node'.

From-SVN: r32104
2000-02-22 01:12:48 -08:00
Alexandre Petit-Bianco
2323b28bb6 re GNATS gcj/147 (Problem parsing comments)
2000-02-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* lex.c (java_parse_doc_section): Alway unget the last unicode
	when returning 0.
	(java_lex): Call java_parse_end_comment with fetched unicode.

This is a fix to the Java PR #47
(http://sourceware.cygnus.com/ml/java-prs/2000-q1/msg00042.html)

From-SVN: r32097
2000-02-21 16:13:54 -08:00
Alexandre Petit-Bianco
2a1ed9c111 [multiple changes]
Thu Feb 17 14:30:37 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* jcf-write.c (generate_bytecode_insns): Don't generate empty
 	`finally' clauses.

Thu Feb 17 13:20:58 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* jcf-parse.c (load_class): Call `fatal' if no file containing
	the target class are found.

From-SVN: r32095
2000-02-21 15:53:36 -08:00
Joerg Brunsmann
c801c87c9d jcf-dump.c (main): Test for correct condition after output file creation.
Mon Jan 18 14:30:09 2000  Joerg Brunsmann  <joerg.brunsmann@fernuni-hagen.de>

	* jcf-dump.c (main): Test for correct condition after
	output file creation.

From-SVN: r32089
2000-02-21 16:36:55 +00:00
Anthony Green
7b227604e7 * jcf-depend.c (add_entry): Fix test for first list entry.
From-SVN: r32072
2000-02-20 04:16:42 +00:00
Richard Kenner
64e92991e7 Move language-specific entries
From-SVN: r32071
2000-02-19 22:53:02 -05:00
Richard Kenner
06ceef4e7b c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
* c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
	* c-decl.c (duplicate_decls, finish_enum): Likewise.
	(finish_decl): Remove -Wlarger-than code from here.
	* flags.h (id_clash_len): Now int.
	(larger_than_size): Now HOST_WIDE_INT.
	* fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
	Clean up checking to see if in table.
	(make_bit_field_ref): Remove extra parm to bitsize_int.
	* ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
	* print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
	* stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
	and for computing size of decl.
	* stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
	Move -Wlarger-than code to here.
	(layout_record): Remove extra arg to bitsize_int.
	Set TYPE_BINFO_SIZE_UNIT.
	(layout_union): Remove extra arg to bitsize_int.
	Use proper type for size of QUAL_UNION.
	(layout_type): Remove extra arg to bitsize_int.
	* toplev.c (id_clash_len): Now int.
	(larger_than_size): Now HOST_WIDE_INT.
	(decode_W_option): Clean up id-clash and larger-than- cases.
	* tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
	(expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
	* tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
	(struct tree_decl): New field size_unit.
	(size_int_wide): No HIGH operand; NUMBER is now signed.
	(size_int_2): Deleted.
	(size_int, bitsize_int): Don't use it and rework args.
	* varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
	* ch/decl.c (layout_enum): Set DECL_SIZE_UNIT.
	* ch/satisfy.c (safe_satisfy_decl): Likewise.
	* cp/class.c (build_primary_vtable, layout_vtable_decl): Likewise.
	(avoid_overlap, build_base_field): Likewise.
	(build_base_field, build_base_fields, is_empty_class):
	Test DECL_SIZE with integer_zero.
	(layout_class_type): Set CLASSTYPE_SIZE_UNIT.
	* cp/cp-tree.h (struct lang_type): New field size_unit.
	(CLASSTYPE_SIZE_UNIT): New macro.
	* cp/decl.c (init_decl_processing): Set DECL_SIZE_UNIT.
	(cp_finish_decl): Delete -Wlarger-than processing.
	* cp/optimize.c (remap_decl): Walk DECL_SIZE_UNIT.
	* cp/pt.c (tsubst_decl): Set DECL_SIZE_UNIT.
	* cp/tree.c (make_binfo): binfo vector is one entry longer.
	(walk_tree): Walk DECL_SIZE_UNIT.
	* f/com.c (ffecom_sym_transform): Use DECL_SIZE_UNIT.
	(ffecom_transform_common_, ffecom_transform_equiv_): Likewise.
	(duplicate_decls): Likewise.
	(ffecom_tree_canonize_ptr_): Delete extra arg to bitsize_int.
	(finish_decl): Delete -Wlarger-than processing.
	* java/class.c (build_class_ref, push_super_field): Set DECL_SIZE_UNIT.
	* java/constants.c (build_constants_constructor): Likewise.

From-SVN: r32068
2000-02-19 20:11:00 -05:00
Anthony Green
ccd4c273d9 jcf-depend.c (add_entry): Add entries to the end of the list.
* jcf-depend.c (add_entry): Add entries to the end of the list.

I

From-SVN: r32066
2000-02-19 23:02:33 +00:00
Pekka Nikander
a0f4cca642 re GNATS gcj/82 (code generation for jvm IRETURN fails on boolean/byte/short methods if INT_TYPE_SIZE < 32)
Wed Nov 03 02:16:00 PST 1999  Pekka Nikander  <pekka.nikander@hut.fi>

	* decl.c (INT_TYPE_SIZE): Define if necessary.
	(expand_java_return): Handle the case of a native integer smaller
 	than a JVM integer.

(Fix to the Java PR #82:
  http://sourceware.cygnus.com/ml/java-prs/1999-q4/msg00078.html)

From-SVN: r32051
2000-02-18 10:17:37 -08:00
Martin v. Löwis
8b97e23b76 gcc.texi (Bug Reporting): Refer to bugs.html.
* gcc.texi (Bug Reporting): Refer to bugs.html.
	(Bug Lists): Likewise.
	* system.h (GCCBUGURL): New preprocessor define.
	* rtl.c (fancy_abort): Use it.
	* gcc.c (main): Likewise.
	* typeck2.c (my_friendly_abort): Use GCCBUGURL.
	* g77spec.c (lang_specific_driver): Use GCCBUGURL.
	* gjavah.c (help): Use GCCBUGURL.
	* jv-scan.c (help): Likewise.
	* jcf-dump.c (help): Likewise.

From-SVN: r32049
2000-02-18 12:26:50 +00:00
Zack Weinberg
33ae9bdf30 Makefile.in (PARSE_C, [...]): Move dependencies on lex.c, lex.h, and PARSE_H to...
* Makefile.in (PARSE_C, PARSE_SCAN_C): Move dependencies on
	lex.c, lex.h, and PARSE_H to...
	(parse.o, parse-scan.o): ...here, respectively.

	* lex.c: Split out code that may trigger SIGFPE from yylex()
	to its own function.
	* lex.h (JAVA_FLOAT_RANGE_ERROR): Don't set value.

From-SVN: r32025
2000-02-17 04:19:34 +00:00
Kaveh R. Ghazi
4746ee266f configure (gcc_version): When setting, narrow search to lines containing `version_string'.
* configure (gcc_version): When setting, narrow search to
	lines containing `version_string'.

gcc:
	* version.c: Include gansidecl.h and version.h.

	* version.h: Wrap entire file in macro __GCC_VERSION_H__.

	* configure.in (gcc_version): When setting, narrow search to
	lines containing `version_string'.

	* Makefile.in (mainversion): Likewise.
	(GCC_H): New variable.
	(gcc.h): Delete target.
	(gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
	(version.o): Depend on version.h.
	(dbxout.o): Don't depend on gcc.h.

gcc/cp:
	* Make-lang.in (g++spec.o): Depend on $(GCC_H), not gcc.h.

gcc/f:
	* Make-lang.in (g77spec.o): Depend on $(GCC_H), not gcc.h.

gcc/java:
	* Make-lang.in (jvspec.o): Depend on $(GCC_H), not gcc.h.

libf2c:
	* configure.in (gcc_version): When setting, narrow search to
	lines containing `version_string'.

From-SVN: r32009
2000-02-16 16:22:47 +00:00
Joerg Brunsmann
a003f638ee gjavah.c: Delete ACC_VISIBILITY define.
Mon Jan 18 14:30:09 2000  Joerg Brunsmann  <joerg.brunsmann@fernuni-hagen.de>

	* gjavah.c: Delete ACC_VISIBILITY define.
	* jcf.h: Add ACC_VISIBILITY define.
	* parse.y: final: rule tagged <value>.
	(java_check_regular_methods): Use ACC_VISIBILITY define for
	default package access check.
	(local_variable_declaration_statement): Use final: rule.

From-SVN: r31992
2000-02-15 14:54:21 -08:00
Tom Tromey
78de74bea9 gjavah.c (jni_print_char): New function.
* gjavah.c (jni_print_char): New function.
	(print_full_cxx_name): Use it.
	(decode_signature_piece): Likewise.
	(print_cxx_classname): Likewise.

From-SVN: r31989
2000-02-15 22:17:55 +00:00
Kaveh R. Ghazi
9f8f4efee3 Makefile.in (TREE_H, [...]): Depend on version.h.
* Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
	cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.

	* cccp.c: Include version.h and/or don't declare `version_string'.
	* collect2.c: Likewise.
	* alpha.c: Likewise.
	* arm/aof.h: Likewise.
	* arm/coff.h: Likewise.
	* arm/elf.h: Likewise.
	* arm/pe.h: Likewise.
	* arm/tcoff.h: Likewise.
	* arm/telf.h: Likewise.
	* arm/tpe.h: Likewise.
	* arm/vxarm.h: Likewise.
	* convex/convex.c: Likewise.
	* i386/dgux.c: Likewise.
	* i386/sun386.h: Likewise.
	* m88k/m88k.c: Likewise.
	* mcore/mcore-pe.h: Likewise.
	* mips/mips.h: Likewise.
	* romp/romp.h: Likewise.
	* sh/sh.c: Likewise.
	* cpphash.c: Likewise.
	* cppinit.c: Likewise.
	* dwarf2out.c: Likewise.
	* dwarfout.c: Likewise.
	* gcc.c: Likewise.
	* gcc.h: Likewise.
	* mips-tfile.c: Likewise.
	* protoize.c: Likewise.
	* toplev.c: Likewise.
	* tree.h: Likewise.

	* version.c (version_string): Constify a char*.

	* version.h: New file.

ch:
	* grant.c: Don't declare `version_string'.

f:
	* g77spec.c: Don't declare `version_string'.

java:
	* Makefile.in (jv-scan, jcf-dump, gcjh): Depend on and link with
	version.o.
	(jcf-dump.o, gjavah.o, jv-scan.o): Depend on version.h.

	* gjavah.c: Include version.h.

	* jcf-dump.c: Likewise.

	* jv-scan.c: Likewise.

From-SVN: r31984
2000-02-15 16:36:35 +00:00
Kaveh R. Ghazi
ef86eabb6c except.c (maybe_start_try): Remove excess argument to `check_start_handlers'.
* except.c (maybe_start_try): Remove excess argument to
	`check_start_handlers'.

From-SVN: r31900
2000-02-10 19:10:07 +00:00
Kaveh R. Ghazi
ae0a06c54b * except.c (check_start_handlers): Prototype.
From-SVN: r31896
2000-02-10 16:48:43 +00:00
Andrew Haley
71600a4ae0 decl.c (clear_binding_level): Remove excess initializer.
2000-02-09  Andrew Haley  <aph@cygnus.com>

        * decl.c (clear_binding_level): Remove excess initializer.
        (maybe_poplevels): Remove unused variable.
        (force_poplevels): Ditto.
        (struct binding_level): Add comment.

From-SVN: r31870
2000-02-09 20:38:02 +00:00
Andrew Haley
e8b22dd136 java-except.h (struct eh_range): Add `expanded' field.
2000-01-25  Andrew Haley  <aph@cygnus.com>

        * java-except.h (struct eh_range): Add `expanded' field.
        (maybe_start_try): Add end_pc arg.
        (maybe_end_try): Ditto.
	* java-tree.h (force_poplevels): new function.
        * expr.c (expand_byte_code): Don't call maybe_start_try or
        maybe_end_try.
        * except.c (add_handler): Reset expanded.
        (expand_start_java_handler): Set expanded.
        (check_start_handlers): Don't expand a start handler that's
        already been expanded.
        (maybe_start_try): Add end_pc arg.  Only expand a handler which
        ends after end_pc.
	(expand_end_java_handler): call force_poplevels.
	(force_poplevels): new function.
        * decl.c (binding_level): Add start_pc of binding level.
        (maybe_pushlevels): Call maybe_start_try when pushing binding
        levels.
        (maybe_poplevels): Call maybe_end_try when popping binding levels.
        (LARGEST_PC): Define.
        (clear_binding_level): Use LARGEST_PC.

	* java-tree.h (DEBUG_JAVA_BINDING_LEVELS): new define.
	* decl.c (DEBUG_JAVA_BINDING_LEVELS): new define.
	(binding_depth, is_class_level, current_pc): new variables.
        (struct binding_level): ditto.
	(indent): new function.
	(push_jvm_slot): add debugging info.
	(maybe_pushlevels): ditto.
	(maybe_poplevels): ditto.
	(pushlevel): ditto.
	(poplevel): ditto.
	(start_java_method): ditto.
	(give_name_to_locals): comment only.
	* except.c (binding_depth, is_class_level, current_pc):
	new variables.
	(expand_start_java_handler): add debugging info.
	(expand_end_java_handler): ditto.

From-SVN: r31861
2000-02-09 14:08:44 +00:00
Kaveh R. Ghazi
5ca1627b6d gjavah.c (overloaded_jni_method_exists_p): Add prototype.
* gjavah.c (overloaded_jni_method_exists_p): Add prototype.
       (print_name_for_stub_or_jni, process_file): Constify a char*.

From-SVN: r31813
2000-02-06 04:33:10 +00:00
Tom Tromey
d8b6d4cf40 * jcf-io.c (jcf_print_utf8_replace): Handle UTF-8 input.
From-SVN: r31779
2000-02-03 19:09:54 +00:00
Scott Bambrough
2c2f0e546b javaop.h (WORDS_TO_DOUBLE): Allow WORDS_TO_DOUBLE to assemble doubles correctly when...
2000-01-31  Scott Bambrough  <scottb@netwinder.org>

	* gcc/java/javaop.h (WORDS_TO_DOUBLE): Allow WORDS_TO_DOUBLE to
	assemble doubles correctly when HOST_FLOAT_WORDS_BIG_ENDIAN is
	defined to be 1.

From-SVN: r31777
2000-02-03 18:45:45 +00:00
Tom Tromey
ef2aac99d4 Make-lang.in (java.mostlyclean): Remove executables in `mostlyclean'.
* Make-lang.in (java.mostlyclean): Remove executables in
	`mostlyclean'.

From-SVN: r31776
2000-02-03 18:39:48 +00:00
Scott Bambrough
9b4a08f945 gjavah.c (D_NAN_MASK): Alternate definition required when HOST_FLOAT_WORDS_BIG_ENDIAN is defined to be 1.
2000-01-31  Scott Bambrough  <scottb@netwinder.org>

	* gcc/java/gjavah.c (D_NAN_MASK): Alternate definition required when
	HOST_FLOAT_WORDS_BIG_ENDIAN is defined to be 1.
	(java_float_finite): Convert to use union Word from javaop.h.
	(java_double_finite): Convert to use union DWord from javaop.h.

From-SVN: r31768
2000-02-03 06:46:30 +00:00
Tom Tromey
de3807234a gjavah.c (options): Added `jni' entry.
* gjavah.c (options): Added `jni' entry.
	(help): Document -jni.
	(flag_jni): New global.
	(process_file): Handle JNI output.  Don't print text from
	-prepend, -add, etc, when generating stubs.  Only remove `.class'
	suffix if it actually exists.
	(main): Create a `.c' file when run with `--jni --stubs'.  Create
	correct output file name with `--jni'.
	(print_include): Mangle header name differently in JNI case.
	(HANDLE_METHOD): In JNI mode, call print_method_info to generate
	method list.
	(print_method_info): Handle JNI case.  Put signature info into
	method name.  Handle case when STREAM is NULL.
	(print_name_for_stub_or_jni): New function.
	(print_stub_or_jni): Renamed from `print_stub'.  Handle JNI.
	(print_cxx_classname): Handle JNI.
	(print_full_cxx_name): Likewise.
	(decode_signature_piece): Likewise.
	(overloaded_jni_method_exists_p): New function.
	(struct method_name): Added `signature' and `sig_length' fields.
	(HANDLE_END_FIELD): Do nothing in JNI mode.

From-SVN: r31767
2000-02-03 06:13:46 +00:00
Tom Tromey
c89c53eb67 jv-scan.c: Include version.c, <getopt.h>.
* jv-scan.c: Include version.c, <getopt.h>.
	(LONG_OPT, OPT_HELP, OPT_VERSION): New macros.
	(options): New array.
	(usage): New function.
	(version): New function.
	(main): Use getopt_long to parse command line.
	* jcf-dump.c: Include version.c, <getopt.h>.
	(LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_VERSION,
	OPT_JAVAP): New macros.
	(options): New array.
	(usage): Return `void'.  Changed message.
	(help): New function.
	(version): New function.
	(main): Use getopt_long_only to parse command line.
	* gjavah.c: Include <getopt.h>.
	(LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_TEMP,
	OPT_VERSION, OPT_PREPEND, OPT_FRIEND, OPT_ADD, OPT_APPEND, OPT_M,
	OPT_MM, OPT_MG, OPT_MD, OPT_MMD): New macros.
	(options): New array.
	(java_no_argument): Removed.
	(help): Updated with missing options.
	(main): Use getopt_long_only to parse command line.
	(usage): Changed message.

From-SVN: r31765
2000-02-02 21:55:39 +00:00
Anthony Green
105a8d1c0e jcf-write.c (generate_bytecode_insns): Use TYPE_IS_WIDE to determine how many stack slots to pop.
* jcf-write.c (generate_bytecode_insns): Use TYPE_IS_WIDE to
        determine how many stack slots to pop.

From-SVN: r31709
2000-01-31 05:36:56 +00:00
Alexandre Petit-Bianco
f8989a66b8 [multiple changes]
2000-01-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (formal_parameter:): Set `$$' to NULL_TREE for better
	error handling/recovery.
	* java-tree.h (SYNCHRONIZED_EXPR): Fixed typo in comment.

Wed Jan 12 20:20:11 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* jcf-write.c (generate_bytecode_insns): binop: Change the type of
	the shift value to int. Fixed typo in comment.

From-SVN: r31695
2000-01-29 14:40:07 -08:00
Andrew Haley
f85cedde61 jcf-write.c (emit_goto): RESERVE 3 bytes for insn.
2000-01-27  Andrew Haley  <aph@cygnus.com>

        * jcf-write.c (emit_goto): RESERVE 3 bytes for insn.
        (emit_if): Ditto.
        (emit_jsr): Ditto.

From-SVN: r31647
2000-01-27 19:09:14 +00:00
Kaveh R. Ghazi
2884c41e1c parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string concatenation.
* parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string
	concatenation.
	(OBSOLETE_MODIFIER_WARNING2): New macro allowing two args.

	* parse.y (register_fields): Don't pass a format specifier to
	OBSOLETE_MODIFIER_WARNING.
	(check_abstract_method_header): Use OBSOLETE_MODIFIER_WARNING2
	instead of OBSOLETE_MODIFIER_WARNING, and don't pass a format
	specifier.
	(check_modifiers): Change function into a macro.
	(check_class_interface_creation): Pass a literal format string.

From-SVN: r31614
2000-01-25 18:29:02 +00:00
Kaveh Ghazi
0a06884142 Fix typo in ChangeLog
From-SVN: r31551
2000-01-21 20:59:01 +00:00
Kaveh R. Ghazi
df32d2ce42 buffer.h: PROTO -> PARAMS.
* buffer.h: PROTO -> PARAMS.
        * check-init.c: Likewise.
        * class.c: Likewise.
        * constants.c: Likewise.
        * convert.h: Likewise.
        * decl.c: Likewise.
        * except.c: Likewise.
        * expr.c: Likewise.
        * gjavah.c: Likewise.
        * java-except.h: Likewise.
        * java-tree.h: Likewise.
        * jcf-depend.c: Likewise.
        * jcf-dump.c: Likewise.
        * jcf-parse.c: Likewise.
        * jcf-path.c: Likewise.
        * jcf-reader.c: Likewise.
        * jcf-write.c: Likewise.
        * jcf.h: Likewise.
        * jv-scan.c: Likewise.
        * jvgenmain.c: Likewise.
        * jvspec.c: Likewise.
        * lang.c: Likewise.
        * lex.c: Likewise.
        * lex.h: Likewise.
        * parse-scan.y: Likewise.
        * parse.h: Likewise.
        * parse.y: Likewise.
        * typeck.c: Likewise.
        * verify.c: Likewise.
        * xref.c: Likewise.
        * xref.h: Likewise.
        * zextract.c: Likewise.
        * zipfile.h: Likewise.

From-SVN: r31550
2000-01-21 20:57:00 +00:00
Joerg Brunsmann
18990de52b re GNATS gcj/128 (weak error message when expecting final modifier)
Mon Jan 17 11:58:17 2000  Joerg Brunsmann  <joerg.brunsmann@fernuni-hagen.de>

        * parse.y (format_parameter:): Use final: rule instead of modifiers:.
        (final:): New rule.

Joerg Brunsmann's contribution to fix the Java PR #128.

From-SVN: r31477
2000-01-17 14:54:30 -08:00
Tom Tromey
9b4579b3bb * gjavah.c (print_field_info): Allow non-static final fields.
From-SVN: r31466
2000-01-17 18:25:37 +00:00
Anthony Green
c52b57714b parse.y (build_string_concatenation): Only use StringBuffer(String) shortcut if String arg is constant.
2000-01-16  Anthony Green  <green@cygnus.com>

	* parse.y (build_string_concatenation): Only use
	StringBuffer(String) shortcut if String arg is constant.

From-SVN: r31450
2000-01-16 23:56:06 +00:00
Mumit Khan
51149cc88d jcf-path.c: Delete PATH_SEPARATOR and DIR_SEPARATOR macros.
2000-01-11  Mumit Khan  <khan@xraylith.wisc.edu>

	* jcf-path.c: Delete PATH_SEPARATOR and DIR_SEPARATOR macros.
	* jcf-write.c: Likewise.
	* parse.y: Likewise.
	* parse.c: Regenerate.

From-SVN: r31344
2000-01-12 05:21:12 +00:00
Anthony Green
2d54440c96 jcf-write.c (generate_bytecode_insns): Emit invokeinterface bytecodes in the correct order.
* jcf-write.c (generate_bytecode_insns): Emit invokeinterface
	bytecodes in the correct order.

From-SVN: r31301
2000-01-10 01:26:27 +00:00
Kaveh R. Ghazi
2cc60d1641 * Makefile.in (jcf-dump, gcjh): Move ../errors.o before $(LIBS).
From-SVN: r31294
2000-01-09 14:30:28 +00:00
Alexandre Petit-Bianco
6f9c87166a expr.c (java_lang_expand_expr): Switch to permanent obstack before calling expand_eh_region_start and...
Wed Dec  8 15:33:26 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * expr.c (java_lang_expand_expr): Switch to permanent obstack
        before calling expand_eh_region_start and expand_start_all_catch.
        * except.c (expand_start_java_handler): Switch to permanent
        obstack before calling expand_eh_region_start.
        (expand_end_java_handler): Switch to permanent obstack before
        calling expand_start_all_catch.

From-SVN: r31284
2000-01-07 17:59:33 -08:00
Anthony Green
f626e9fa21 expr.c (java_lang_expand_expr): Switch to permanent obstack before building constant array decl.
Thu Jan  6 16:31:28 2000  Anthony Green  <green@cygnus.com>

        * expr.c (java_lang_expand_expr): Switch to permanent obstack
        before building constant array decl.

From-SVN: r31283
2000-01-07 15:07:52 -08:00
Alexandre Petit-Bianco
6b924cc558 re GNATS gcj/122 (SP mismatch error from certain code constructs)
Thu Jan  6 00:54:10 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * jcf-write.c (generate_byecode_conditional): Fixed indentation in
        method invocation and typo in conditional expression.
        (generate_bytecode_insns): COND_EXPR can be part of a binop. Issue
        the appropriate NOTE_POP.
        * parse.y (patch_binop): Shift value mask to feature the right
        type.

(This is a fix for the PR #122:
 http://sourceware.cygnus.com/ml/java-prs/2000-q1/msg00000.html)

From-SVN: r31277
2000-01-07 12:28:11 -08:00
Alexandre Petit-Bianco
ee07f4f4b1 Makefile.in (LIBDEPS): Added gcc's errors.o
Fri Dec 24 00:25:29 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* Makefile.in (LIBDEPS): Added gcc's errors.o
	(../jcf-dump$(exeext):): Link with gcc's errors.o
	(../gcjh$(exeext):): Likewise.
	* expr.c (expand_java_NEW): Layout the entire target type instead of
 	laying out its methods only.
	(lookup_field): Layout the class after having loaded it.
	* java-tree.h (java_debug_context): Declared.
	* jcf-io.c (toplev.h): Included.
	(find_class): Removed assignment to jcf's outofsynch
 	field. Force source file to be read if newer than its matching
 	class file. Tweaked debug messages.
	* jcf-parse.c (jcf_out_of_synch): Deleted.
	(read_class): Call to jcf_out_of_synch removed.
	* jcf.h (typedef struct JCF): Field `outofsynch' deleted.
	(jcf_out_of_synch): Prototype deleted.
	* parse.h (struct parser_ctxt): `minus_seen', `java_error_flag',
 	`deprecated' and `class_err': integer turned into bit fields.
	New bit fields `saved_data_ctx' and `saved_data'. Fixed comments.
	* parse.y (package_list): New global.
	(package_declaration:): Record newly parsed package name.
	(extra_ctxp_pushed_p): Static global deleted.
	(java_parser_context_save_global): Create buffer context for the
 	purpose of saving globals, if necessary.
	(java_parser_context_restore_global): Pop context pushed for the
 	purpose of saving globals, if necessary.
	(java_debug_context_do): New prototype and function.
	(java_debug_context): Likewise.
	(do_resolve_class): Use already parsed package names to qualify
 	and lookup class candidate.
	(java_pre_expand_clinit): Removed unnecessary local variable.

From-SVN: r31261
2000-01-06 14:06:22 -08:00
Kaveh R. Ghazi
c63b98cdad class.c (assume_compiled, [...]): Add static prototype.
* class.c (assume_compiled, assume_compiled_node): Add static
	prototype.
	(add_assume_compiled): Use xmalloc/xstrdup, not malloc/strdup.

	* jcf-dump.c (ARRAY_NEW_NUM): Cast long to int in switch.

	* jvgenmain.c (usage): Add static prototype with ATTRIBUTE_NORETURN.

	* parse.h (OBSOLETE_MODIFIER_WARNING): Rename parameter `modifier'
	to `__modifier' to avoid stringifying it.

	* parse.y (verify_constructor_circularity): Don't call a variadic
	function with a non-literal format string.
	(java_check_abstract_methods): Move unreachable code inside
	`continue' statement.
	(lookup_method_invoke): Call xstrdup, not strdup.

	* expr.c (expand_java_field_op): Avoid the use of ANSI string
	concatenation.

	* jcf-parse.c (yyparse): Likewise.

	* jv-scan.c (main): Likewise.

From-SVN: r31148
1999-12-31 03:30:22 +00:00
Alexandre Petit-Bianco
6bafd8b6e9 expr.c (expand_invoke): Layout the loaded class before attempting to use it.
Thu Dec 16 00:09:45 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* expr.c (expand_invoke): Layout the loaded class before
 	attempting to use it.
	(expand_java_field_op): Allow final field assignments to take
 	place in $finit$.
	* typeck.c (convert): Return error_mark_node if expr is null.

From-SVN: r31147
1999-12-30 19:06:55 -08:00
Kaveh R. Ghazi
781b0558cf parse.h (ABSTRACT_CHECK, [...]): Avoid the use of ANSI string concatenation.
* parse.h (ABSTRACT_CHECK, JCONSTRUCTOR_CHECK,
	ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
	ERROR_CAST_NEEDED_TO_INTEGRAL): Avoid the use of ANSI string
	concatenation.

	* parse.y (synchronized, variable_redefinition_error,
	check_class_interface_creation, create_interface, create_class,
	method_header, finish_method_declaration,
	check_modifiers_consistency, method_declarator,
	complete_class_report_errors, check_abstract_method_definitions,
	java_check_regular_methods, check_throws_clauses,
	java_check_abstract_methods, read_import_dir,
	check_pkg_class_access, declare_local_variables, fix_constructors,
	cut_identifier_in_qualified, resolve_expression_name,
	resolve_qualified_expression_name, patch_method_invocation,
	java_complete_lhs, patch_assignment, try_builtin_assignconv,
	patch_binop, patch_array_ref, patch_newarray, build_labeled_block,
	patch_exit_expr, patch_exit_expr, patch_switch_statement,
	patch_try_statement, patch_synchronized_statement,
	patch_throw_statement, check_thrown_exceptions,
	patch_conditional_expr): Likewise.

From-SVN: r31146
1999-12-31 02:41:24 +00:00
Alexandre Petit-Bianco
e920ebc931 class.c (class_depth): Return -1 if the class doesn't load properly.
1999-12-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * class.c (class_depth): Return -1 if the class doesn't load
        properly.
        * expr.c (can_widen_reference_to): Check for errors during depth
        computation and return 0 accordingly.
        * jcf-parse.c (parse_source_file): Call java_fix_constructors to
        create default constructors and add an other error check.
        * parse.h (java_fix_constructors): Prototyped.
        * parse.y (java_pre_expand_clinit): Likewise.
        (build_super_invocation): Re-prototyped to feature one argument.
        (java_check_circular_reference): Directly use `current'.
        (java_fix_constructors): New function.
        (java_check_regular_methods): Don't create default constructors
        here, but abort if none were found.
        (java_complete_expand_methods): Pre-process <clinit> calling
        java_pre_expand_clinit.
        (java_pre_expand_clinit): New function.
        (fix_constructors): build_super_invocation invoked with the
        current method declaration as an argument.
        (build_super_invocation): Use the context of the processed method
        decl argument instead of current_class.
        * typeck.c (lookup_java_method): Take WFLs in method names into
        account.

From-SVN: r31144
1999-12-30 14:36:25 -08:00
Tom Tromey
6f19291ada re GNATS gcj/119 (gcjh needs to output space before leading "::" with JArray's)
* gjavah.c (decode_signature_piece): Print "::" in JArray<>.  This
	fixes PR gcj/119.
	(process_file): Use `\n\' at end of each line in string.

From-SVN: r30997
1999-12-17 20:25:59 +00:00
Per Bothner
cf69bfbf38 re GNATS gcj/110 (don't exclude private methods from method table when optimizing)
Tue Dec 14 14:20:16 1999  Per Bothner  <per@bothner.com>

	* class.c (make_class_data): flag_keep_inline_functions to keep
	private methods in the method array.

(This is a fix to the Java PR #110:
  http://sourceware.cygnus.com/ml/java-prs/1999-q4/msg00179.html)

From-SVN: r30930
1999-12-14 14:25:37 -08:00
Alexandre Petit-Bianco
3a1760acf0 re GNATS gcj/79 (Problem creating static arrays)
Fri Dec 10 21:53:45 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * parse.y (java_complete_lhs): Force convertion of array
        dimensions to int_type_node, that's what runtime's ABI expects.

(This patch is a fix for the PR #79:
 http://sourceware.cygnus.com/ml/java-prs/1999-q4/msg00069.html)

From-SVN: r30881
1999-12-12 17:50:55 -08:00
Anthony Green
38b58895a4 check-init.c (check_init): Take into account both types of `throw's when checking for uninitialized variables.
1999-12-15  Anthony Green  <green@cygnus.com>

	* check-init.c (check_init): Take into account both types of
        `throw's when checking for uninitialized variables.

From-SVN: r30879
1999-12-12 23:19:04 +00:00
Alexandre Petit-Bianco
6a50bd919b parse.h (EXPR_WFL_QUALIFICATION): Temporary uses the third operand of a WFL...
Fri Dec 10 16:13:48 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.h (EXPR_WFL_QUALIFICATION): Temporary uses the third
 	operand of a WFL, until the Java front-end gets fixed with regard
 	to Mark Mitchell's gcc/tree.h patch (1999-12-04.)

From-SVN: r30878
1999-12-12 11:54:35 -08:00
Andrew Haley
8bbb23b7ac parse.h (BUILD_THROW): Add support for sjlj-exceptions.
1999-11-17  Andrew Haley  <aph@cygnus.com>

	* parse.h (BUILD_THROW): Add support for sjlj-exceptions.
	decl.c (init_decl_processing): Add _Jv_Sjlj_Throw.
	expr.c (build_java_athrow): Add support for sjlj-exceptions.
	java-tree.h: Ditto.
	jcf-write.c: Ditto.

From-SVN: r30859
1999-12-10 16:06:23 +00:00
Anthony Green
1684f87473 > * decl.c (init_decl_processing): Mark throw_node as a noreturn > function with side effects.
>     * decl.c (init_decl_processing): Mark throw_node as a noreturn
  >     function with side effects.
  >     (init_decl_processing): Mark all memory allocating DECLs with
  >     DECL_IS_MALLOC.

From-SVN: r30845
1999-12-09 12:32:48 +00:00
Alexandre Petit-Bianco
de1f429d34 [multiple changes]
Tue Nov 30 12:36:15 1999  Anthony Green  <green@cygnus.com>

        * verify.c (verify_jvm_instructions): Create new return label
        chain if non existant (don't rely on the verified state of the jsr
        target.)

Tue Nov 23 17:29:40 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * verify.c (merge_type_state): Non verified subroutines being
        considered more than once to trigger passive type merge.

From-SVN: r30811
1999-12-06 11:56:58 -08:00
Alexandre Petit-Bianco
1ba305b54c jcf-parse.c (saw_java_source): Global variable removed.
Wed Nov 24 17:33:26 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * jcf-parse.c (saw_java_source): Global variable removed.
        (read_class): Don't use `saw_java_source'. Added extra braces.
        (yyparse): Code setting `saw_java_source' removed.

From-SVN: r30809
1999-12-06 11:49:06 -08:00
Alexandre Petit-Bianco
0974e9fec8 except.c (expand_end_java_handler): Call expand_resume_after_catch and end_catch_handler.
Wed Dec  1 04:25:06 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * except.c (expand_end_java_handler): Call
        expand_resume_after_catch and end_catch_handler.

From-SVN: r30807
1999-12-06 11:37:30 -08:00
Alexandre Petit-Bianco
afc390b1ad jcf-write.c (generate_byecode_insns): Fixed indentation for COMPOUND_EXPR and FIX_TRUNC_EXPR cases.
Tue Nov 30 12:28:34 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * jcf-write.c (generate_byecode_insns): Fixed indentation for
        COMPOUND_EXPR and FIX_TRUNC_EXPR cases.

        * parse.y (patch_assignment): Removed bogus final class test on
        lhs when checking on whether to emit an ArrayStoreException runtime
        check.
        * expr.c (expand_java_arraystore): Likewise.

From-SVN: r30806
1999-12-06 11:31:25 -08:00
Jan Hubicka
eb69a68672 Undo the last change I've checked in by accident.
From-SVN: r30742
1999-12-01 17:27:17 +00:00
Jan Hubicka
591702deff i386.c (ix86_expand_move): Never add clobbers to move patterns.
* i386.c (ix86_expand_move): Never add clobbers to move patterns.
	* i386.md (movsi_xor): New.
	(movsi_or): New.
	(movsi_1, movhi_1, movqi_1): Remove.
	(movsi_2): Rename to movsi_1.
	(movhi_2): Rename to movhi_1.
	(movqi_2): Rename to movqi_1.
	(movdi_1): Remove; remove splitter.
	(movdi_2): Rename to movdi_1.
	(divmodsi4 splitter): Do not emit clobbers for move patterns.
	(long move peep2): Do not create QI or HI mode mov0s
	(mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.

From-SVN: r30741
1999-12-01 16:50:46 +00:00
Alexandre Petit-Bianco
b5b8a0e779 re GNATS gcj/97 (Internal compiler error)
Thu Nov 11 01:57:14 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * parse.y (lookup_method_invoke): Use lang_printable_name to
 	reliably build the type name during error report. Fixes PR gcj/97.

From-SVN: r30739
1999-12-01 05:06:10 -08:00
Alexandre Petit-Bianco
97f3028449 parse.y (catch_clause_parameter:): Still set `$$' to NULL_TREE in case of error.
Tue Nov 23 10:55:18 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (catch_clause_parameter:): Still set `$$' to NULL_TREE
 	in case of error. Error message tuned.

This fixes a catch clause error handling reported on the java-discuss
mailing list:

  http://sourceware.cygnus.com/ml/java-discuss/1999-q4/msg00358.html

From-SVN: r30710
1999-11-29 12:43:24 -08:00
Alexandre Petit-Bianco
37feda7d76 hu Nov 4 16:27:01 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
* parse.y (resolve_qualified_expression_name): Handle PLUS_EXPR.
        (qualify_ambiguous_name): Likewise.

(This patch fixes the gcj PR #55.)

From-SVN: r30707
1999-11-29 09:40:31 -08:00
Mark Mitchell
9a260e9924 * except.c (emit_handlers): Zero catch_clauses after emitting them.
From-SVN: r30657
1999-11-25 02:17:23 +00:00
Anthony Green
48aedbca8b constants.c (find_methodref_index): Unwrap method names before inserting them in the constant pool.
* constants.c (find_methodref_index): Unwrap method names before
        inserting them in the constant pool.

        * jcf-parse.c (jcf_parse): Display `interface' when appropriate.

        * class.c (assume_compiled_node): New typedef.
        (assume_compiled_tree): New static data.
        (find_assume_compiled_node): New function.
        (add_assume_compiled): New function.
        (assume_compiled): New function.
        * class.c (make_class_data): Use assume_compiled.
        (is_compiled_class): Use assume_compiled.

        * java-tree.h (add_assume_compiled): Declare.

        * lang.c (lang_decode_option): Parse new options.

From-SVN: r30608
1999-11-21 23:37:58 +00:00
Alexandre Petit-Bianco
4832340ccc class.c (layout_class): Always convert TYPE_SIZE_UNIT to int_type_node...
Wed Nov 17 21:09:28 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* class.c (layout_class): Always convert TYPE_SIZE_UNIT to
 	int_type_node: that's what `_Jv_AllocObject' expects.

From-SVN: r30581
1999-11-18 17:43:21 -08:00
Godmar Back
7c2e3b9b52 typeck.c: (lookup_java_method): search all inherited interfaces when...
Wed Nov  3 15:20:02 MST 1999  Godmar Back <gback@cs.utah.edu>

        * typeck.c: (lookup_java_method):  search all inherited
        interfaces when looking up interface method.

From-SVN: r30566
1999-11-17 19:59:48 -08:00
Tom Tromey
71651d6c00 re GNATS gcj/84 (path to classes.zip is compiled in to gcj at build time)
* jcf-path.c: Include <sys/stat.h>.
	(jcf_path_init): Search for libjava.zip.  Fixes PR gcj/84.
	(DIR_UP): New macro.

From-SVN: r30465
1999-11-10 01:38:24 +00:00
Alexandre Petit-Bianco
8226320b92 parse.y (source_end_java_method): Resume permanent allocation, reversing Apr 27 1998 patch.
Tue Nov  9 12:12:38 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (source_end_java_method): Resume permanent allocation,
 	reversing Apr 27 1998 patch.
	(patch_string_cst): Pop obstacks after having pushed the permanent
 	ones.

From-SVN: r30462
1999-11-09 12:30:57 -08:00
Tom Tromey
09e7d04a1b re GNATS gcj/85 (Compiler optimizes away private methods when native methods might access them)
* class.c (finish_class): Emit inlined methods if any native
	methods exist in the class.  Fixes PR gcj/85.

From-SVN: r30420
1999-11-05 18:27:28 +00:00
Alexandre Petit-Bianco
efa0a23fc2 parse.y (method_header:): Issue error message for rule `type error'.
Mon Nov  1 23:42:00 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (method_header:): Issue error message for rule `type
 	error'.
	(synchronized:): Error report when not using synchronized.

From-SVN: r30343
1999-11-01 23:51:19 -08:00
Alexandre Petit-Bianco
ffa669ea3c parse.y (resolve_qualified_expression_name): Prevent `this' from being used before the superclass constructor has been called.
Mon Nov  1 01:32:48 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (resolve_qualified_expression_name): Prevent `this' from
 	being used before the superclass constructor has been called.
	(complete_function_arguments): Use CALL_EXPLICIT_CONSTRUCTOR_P
 	instead of `CALL_THIS_CONSTRUCTOR_P'.

(Fixed the incomplete last ChangeLog entry.)

From-SVN: r30318
1999-11-01 01:48:46 -08:00
Alexandre Petit-Bianco
f63991a86a re GNATS gcj/48 (Compiler fails to catch constructor problem)
Mon Nov  1 01:32:48 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (resolve_qualified_expression_name): Prevent `this'
 	from being before the superclass constructor has been called.

(This fixes the net PR #48:
 http://sourceware.cygnus.com/ml/java-prs/1999-q3/msg00106.html)

From-SVN: r30317
1999-11-01 01:45:18 -08:00
Todd T. Fries
f6e8b583c4 * check-init.c: Fix typo in comment.
From-SVN: r30281
1999-10-30 21:36:38 -06:00
Alexandre Petit-Bianco
ed598dde43 class.c (add_method_1): Set DECL_INLINE to 1 for private, static and final method.
Fri Oct 29 14:35:18 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* class.c (add_method_1): Set DECL_INLINE to 1 for private, static
 	and final method.

From-SVN: r30268
1999-10-29 14:37:51 -07:00
Alexandre Petit-Bianco
8119c72007 parse.y (expression_statement:): Call function to report improper invocation of a constructor.
Fri Oct 29 14:23:32 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (expression_statement:): Call function to report
 	improper invocation of a constructor.
	(parse_ctor_invocation_error): New function.

From-SVN: r30267
1999-10-29 14:32:28 -07:00
Mark Mitchell
2af0ac2840 tree.h (BLOCK_TYPE_TAGS): Remove.
* tree.h (BLOCK_TYPE_TAGS): Remove.
	(BLOCK_END_NOTE): Likewise.
	(BLOCK_LIVE_RANGE_FLAG): Likewise.
	(BLOCK_LIVE_RANGE_START): Likewise.
	(BLOCK_LIVE_RANGE_END): Likewise.
	(tree_block): Remove live_range_flag, live_range_var_flag, and
	type_tags.  Remove end_note, live_range_start, and live_range_end.
	(remember_end_note): Remove prototype.
	* tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
	* c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
	remember_end_note.
	* ggc-common.c (ggc_mark_tree_children): Don't mark
	BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
	* integrate.c (adjust_copied_decl_tree): Remove.
	* print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
	* stmt.c (last_block_end_note): Remove.
	(init_stmt): Don't add a GC root for it.
	(expand_fixup): Don't set it.
	(remember_end_note): Remove.
	(expand_end_bindings): Don't set last_block_end_note.

	* ch-tree.h (remember_end_note): Remove prototype.
	* decl.c (poplevel): Don't call remember_end_note.

	* decl.c (poplevel): Don't set BLOCK_TYPE_TAGS.  Don't call
	remember_end_note.

	* com.c (poplevel): Don't call remember_end_note.

	* decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
	remember_end_note.

From-SVN: r30188
1999-10-26 08:34:46 +00:00
Tom Tromey
2fca54beb2 jvgenmain.c (main): _Jv_Compiler_Properties now an extern; set in generated `main'.
* jvgenmain.c (main): _Jv_Compiler_Properties now an extern; set
	in generated `main'.

From-SVN: r30132
1999-10-22 19:40:50 +00:00
Alexandre Petit-Bianco
ac22f9cb2c re GNATS gcj/56 (gcj segfaults in jc1 on OK java file)
Thu Oct 21 01:27:31 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (resolve_qualified_expression_name): Handle MODIFY_EXPR.
	(qualify_ambiguous_name): Likewise.

This fixes the net PR #56
(http://sourceware.cygnus.com/ml/java-prs/1999-q3/msg00131.html)

From-SVN: r30127
1999-10-21 23:06:47 -07:00
Alexandre Petit-Bianco
100f7cd8b9 re GNATS gcj/37 (gcj fails to compile "jBYTEmark" from source code when optimization is used)
Wed Oct 20 01:41:47 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (java_complete_tree): fold_constant_for_init to work on
 	permanent_obstack.
	(java_complete_lhs): Likewise.
	(array_constructor_check_entry): Complete an initializer element
 	on permanent_obstack.

This patch fixes the net PR #37
(http://sourceware.cygnus.com/ml/java-prs/1999-q3/msg00043.html)

From-SVN: r30126
1999-10-21 22:27:34 -07:00
Tom Tromey
51ae407148 jcf-parse.c (parse_source_file): Call jcf_dependency_add_file.
* jcf-parse.c (parse_source_file): Call jcf_dependency_add_file.
	From Mike Moreton <mike@pillim.demon.co.uk>.

From-SVN: r30093
1999-10-19 23:05:28 +00:00
Greg McGary
13f9ac51e3 java-tree.h (flag_bounds_check): Remove extern decl.
* java-tree.h (flag_bounds_check): Remove extern decl.
* lang.c (flag_bounds_check): Remove global variable.
(lang_f_options): Remove "bounds-check" entry.
(lang_init_options): Default flag_bounds_check to "on".

From-SVN: r30036
1999-10-16 01:25:52 +00:00
Tom Tromey
7cf4196339 jvgenmain.c (usage): New function.
* jvgenmain.c (usage): New function.
	(main): Use it.  Also, handle `-D' options.
	* jvspec.c (lang_specific_driver): Recognize -D.
	(jvgenmain_spec): Added `%{D*}' to jvgenmain invocation.

From-SVN: r30019
1999-10-15 16:45:31 +00:00
Tom Tromey
8f4265869d * jvspec.c (jvgenmain_spec): Use %umain', not just %u'.
From-SVN: r29985
1999-10-14 20:55:21 +00:00
Kaveh R. Ghazi
1ebadc609b jcf-dump.c (print_constant, [...]): Don't call a variadic function with a non-literal format string.
* jcf-dump.c (print_constant, disassemble_method): Don't call a
	variadic function with a non-literal format string.

	* parse-scan.y (report_main_declaration): Likewise.

	* parse.h (ERROR_CAST_NEEDED_TO_INTEGRAL): Likewise.

	* parse.y (read_import_dir, patch_assignment, patch_binop,
	patch_array_ref): Likewise.

	* typeck.c (build_java_array_type): Likewise.

	* verify.c (verify_jvm_instructions): Likewise.

From-SVN: r29981
1999-10-14 17:13:57 +00:00
Jeff Law
5cf531a862 Fix thinko in last change.
From-SVN: r29955
1999-10-13 17:19:33 -06:00
Alexandre Petit-Bianco
ce74b7d6e8 (Fixing malformed ChangeLog entries...)
From-SVN: r29944
1999-10-13 08:16:12 -07:00
Alexandre Petit-Bianco
b5edd13335 (RELOCATION_VALUE_1): Fixed integer value from 0 to 1.
Tue Oct 12 22:28:10 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * (RELOCATION_VALUE_1): Fixed integer value from 0 to 1.

From-SVN: r29933
1999-10-12 22:37:30 -07:00
Alexandre Petit-Bianco
cacc154ecc jcf-write.c: (RELOCATION_VALUE_0): New macro.
Tue Sep 14 16:24:19 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * jcf-write.c: (RELOCATION_VALUE_0): New macro.
        (RELOCATION_VALUE_1): Likewise.
        (emit_iinc, emit_reloc, push_constant1, push_constant2,
        push_in_const, push_long_const): Prototyped.
        (push_constant1): Argument `index' is of type HOST_WIDE_INT.
        (push_constant2): Likewise.
        (push_int_const): Cast find_constant1's integer arguments to `jword'.
        (find_constant_wide): Cast find_constant2's integer arguments to
        `jword'.
        (find_constant_index): Cast find_constant2's and find_constant2's
        integer arguments to `jword'.
        (emit_pop): Argument `value' is of type HOST_WIDE_INT.
        (emit_switch_reloc): Use RELOCATION_VALUE_0.
        (emit_if): Use RELOCATION_VALUE_1.
        (emit_goto): Likewise.
        (emit_jsr): Likewise.
        (generate_bytecode_insns): Use RELOCATION_VALUE_0. Cast second
        argument to push_long_const to HOST_WIDE_INT.

(This is a forgotten patch.)

From-SVN: r29932
1999-10-12 19:52:08 -07:00
Anthony Green
ab150fb189 During class file generation...
During class file generation, generate_classfile occasionally writes
out a bunch of data and then skips backwards to fill in blanks.  When
configured with --enable-checking, this patching up will often trip
the checking code.  This change introduces UNSAFE_PUTx macros which
never use CHECK_PUT.  These should only be used in cases we know
CHECK_PUT will fail.

From-SVN: r29854
1999-10-07 13:26:01 +00:00
Tom Tromey
05a3dfc719 re GNATS gcj/59 (Problem with jv-scan --print-main)
* lex.h (BUILD_OPERATOR2): Return ASSIGN_ANY_TK in `lite' case as
	well.  Fixes Java PR gcj/59.
	* parse-scan.y (yyerror): Report errors.

From-SVN: r29811
1999-10-04 20:32:08 +00:00
Glenn Chambers
d353a00cf3 Changed credit to the right person.
From-SVN: r29658
1999-09-24 12:33:23 -07:00
Glenn Chambers
ca6c74893b decl.c (insert_block): Removed unconditional `abort'.
Fri Sep 24 12:23:05 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* decl.c (insert_block): Removed unconditional `abort'.

From-SVN: r29657
1999-09-24 12:24:19 -07:00
Bernd Schmidt
26db82d823 Allow to distinguish between three classes of builtin functions
From-SVN: r29653
1999-09-24 10:07:04 +00:00
Tom Tromey
0cffaca32c jvspec.c (lang_specific_driver): Don't read spec file if -fsyntax-only given.
* jvspec.c (lang_specific_driver): Don't read spec file if
	-fsyntax-only given.

From-SVN: r29630
1999-09-23 19:45:39 +00:00
Tom Tromey
ba02095155 * lang-specs.h: Added `%(jc1)' to the jc1 spec.
From-SVN: r29600
1999-09-22 20:30:30 +00:00
Tom Tromey
bad1e2ac25 javaop.h (WORD_TO_FLOAT): Use `inline' unconditionally.
* javaop.h (WORD_TO_FLOAT): Use `inline' unconditionally.
	(WORDS_TO_LONG): Likewise.
	(WORDS_TO_DOUBLE): Likewise.

From-SVN: r29593
1999-09-22 16:59:35 +00:00
Alexandre Petit-Bianco
b771925e7e re GNATS gcj/46 (Static inializers compiled incorrectly)
Thu Sep 16 15:42:39 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (java_method_add_stmt): Test against GET_CURRENT_BLOCK
 	instead of fndecl.

(This patch fixes the net Java PR #46:
 http://sourceware.cygnus.com/ml/java-prs/1999-q3/msg00092.html)

From-SVN: r29550
1999-09-21 08:53:23 -07:00
Andreas Schwab
7161fcc7c5 Makefile.in (parse.o): Depend on $(JAVA_TREE_H).
1999-09-15  Andreas Schwab  <schwab@suse.de>

	* Makefile.in (parse.o): Depend on $(JAVA_TREE_H).

From-SVN: r29525
1999-09-20 16:27:29 +00:00
Nick Clifton
03d32d1a08 Add comment saying that lang_decode_options should not complain about
unrecognised options.

From-SVN: r29522
1999-09-20 14:26:59 +00:00
Kaveh R. Ghazi
c2e3db9254 gjavah.c (get_field_name, [...]): Use xmalloc, not malloc.
* gjavah.c (get_field_name, print_method_info, print_include,
	add_namelet): Use xmalloc, not malloc.

	* jcf-depend.c (add_entry): Likewise.  Use xstrdup, not strdup.
	(munge): Use xrealloc, not realloc, trust xrealloc to handle a
	NULL pointer.

	* jcf-io.c (open_in_zip, find_class): Use xstrdup, not strdup.

	* jcf-parse.c (jcf_out_of_synch, yyparse): Likewise.

	* jcf-path.c (add_entry): Likewise.

	* jcf.h (ALLOC, REALLOC): Use xmalloc/xrealloc, not malloc/realloc.

	* jv-scan.c (xmalloc): Remove definition.

	* jvgenmain.c (xmalloc): Likewise.

	* jvspec.c (lang_specific_driver): Use xcalloc, not xmalloc/bzero.

	* lex.c (java_store_unicode): Use xrealloc, not realloc.

	* parse-scan.y: Use concat, not of xmalloc/assign/strcpy.  Use
	concat, not xmalloc/sprintf.
	(java_push_parser_context): Use xcalloc, not xmalloc/bzero.
	(xstrdup): Remove definition.

	* parse.y (duplicate_declaration_error_p,
	constructor_circularity_msg, verify_constructor_circularity,
	check_abstract_method_definitions, java_check_regular_methods,
	java_check_abstract_methods, patch_method_invocation,
	check_for_static_method_reference, patch_assignment, patch_binop,
	patch_cast, array_constructor_check_entry, patch_return,
	patch_conditional_expr): Use xstrdup, not strdup.

	* zextract.c (ALLOC): Use xmalloc, not malloc.

From-SVN: r29457
1999-09-16 15:45:15 +00:00
Kaveh R. Ghazi
9257393c20 Makefile.in (gcc.o, [...]): Depend on gcc.h.
* Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.

	* gcc.h: New file.
	(lang_specific_driver): Don't take a function pointer parameter.
	All callers changed.

	* gcc.c: Include gcc.h.
	(do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
	lang_specific_extra_outfiles, fatal): Don't declare.
	(multilib_defaults_raw): Constify.
	(read_specs): Call memset, rather than bzero.
	(main): Call return, not exit.
	(lookup_compiler): Call memcpy, not bcopy.
	(fatal): Make extern.

	* cppspec.c: Include gcc.h.
	(lang_specific_driver): Initialize variable `quote'.  Constify a
	char*.  All calls to the function pointer parameter now
	explicitly call `fatal'.

	* gccspec.c (lang_specific_driver): Include gcc.h.

cp:

	* Make-lang.in (g++spec.o): Depend on system.h and gcc.h.

	* g++spec.c: Include gcc.h.
	(lang_specific_driver): Constify a char*.  Call xcalloc, not
 	xmalloc/bzero.  All calls to the function pointer parameter now
 	explicitly call `fatal'.

f:

	* Make-lang.in (g77spec.o): Depend on system.h and gcc.h.

	* g77spec.c: Include gcc.h.
	(g77_xargv): Constify.
	(g77_fn): Add parameter prototypes.
	(lookup_option, append_arg): Add static prototypes.
	(g77_newargv): Constify.
	(lookup_option, append_arg, lang_specific_driver): Constify a char*.
	(lang_specific_driver): All calls to the function pointer
 	parameter now explicitly call `fatal'.

java:

	* Make-lang.in (jvspec.o): Depend on system.h and gcc.h.

	* jvspec.c: Include gcc.h.  Don't include gansidecl.h.
	(do_spec, lang_specific_pre_link, lang_specific_driver,
	input_filename, input_filename_length): Don't declare.
	(main_class_name, jvgenmain_spec, lang_specific_driver):
	Constify a char*.
	(lang_specific_driver): All calls to the function pointer
	parameter now explicitly call `fatal'.

From-SVN: r29367
1999-09-13 03:57:40 +00:00
Alexandre Petit-Bianco
f4e16489df re GNATS gcj/18 (Internal error: segfault on invalid cast)
Sat Sep 11 16:46:44 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * parse.y (find_applicable_accessible_methods_list): Search
        abstract classes as interfaces.

(Fix to Java PR #18:
 http://sourceware.cygnus.com/ml/java-prs/1999-q3/msg00015.html)

From-SVN: r29352
1999-09-11 20:20:31 -07:00
Alexandre Petit-Bianco
fcf6eeb628 class.c (finish_class): We're now outside a valid method declaration.
Thu Sep  9 17:33:28 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * class.c (finish_class): We're now outside a valid method
        declaration. Tell the rest of gcc so.

From-SVN: r29347
1999-09-11 15:22:57 -07:00
Tom Tromey
512d594b4f gjavah.c (add_class_decl): Generate include for gcj/array.h, not java-array.h.
* gjavah.c (add_class_decl): Generate include for gcj/array.h, not
	java-array.h.
	(decode_signature_piece): Don't emit "::" in JArray<>.
	(print_namelet): Only print trailing `;' when printing a class.

From-SVN: r29277
1999-09-10 21:45:39 +00:00
Bernd Schmidt
81b3411cdf Move declarations and building code for common tree nodes to tree.[ch]
From-SVN: r29266
1999-09-10 10:36:02 +00:00
Bruce Korb
98cc505096 Hapless User Hint for gperf
From-SVN: r29207
1999-09-08 14:08:26 +00:00
Jeff Law
c5c7673583 Merge in gcc2-ss-010999
From-SVN: r29150
1999-09-06 23:49:18 -06:00
Mark Mitchell
6308c57495 Make-lang.in (f771): Depend on ggc-callbacks.o.
* Make-lang.in (f771): Depend on ggc-callbacks.o.
	* Makefile.in (OBJS): Add ggc-callbacks.o.
	(OBJDEPS): Likewise.

From-SVN: r29116
1999-09-05 00:59:59 +00:00
Mark Mitchell
03705c9588 Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
GCC:

Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>

	* Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
	(OBJS): Add $(GCC).
	(ggc-callbacks.o): New target.
	* ggc-callbacks.c: New file.

Chill:

1999-09-04  Mark Mitchell  <mark@codesourcery.com>

	* Make-lang.in (cc1chill): Depend on ggc-callbacks.o.
	* Makefile.in (CHILL_OBJS): Add ggc-callbacks.o.

C++:

1999-09-04  Mark Mitchell  <mark@codesourcery.com>

	* Make-lang.in (cc1plus): Remove dependency on GGC.
	* Makefile.in (OBJS): Don't mention ggc-simple.o.
	(OBJDEPS): Don't mention ggc-simple.o.

F77:

Sat Sep  4 13:46:27 1999  Mark Mitchell  <mark@codesourcery.com>

	* Make-lang.in (f771): Depend on ggc-callbacks.o.
	* Makefile.in (OBJS): Add ggc-callbacks.o.
	(OBJDEPS): Likewise.

Objc:

1999-09-04  Mark Mitchell  <mark@codesourcery.com>

	* Make-lang.in (jc1): Depend on ggc-callbacks.o.
	* Makefile.in (OBJS): Add ggc-callbacks.o.
	(OBJDEPS): Likewise.

From-SVN: r29111
1999-09-04 22:24:18 +00:00
Tom Tromey
2f11d4079a parse.y (strip_out_static_field_access_decl): Return operand if it satisfies JDECL_P.
* parse.y (strip_out_static_field_access_decl): Return operand if
	it satisfies JDECL_P.

From-SVN: r29086
1999-09-03 17:18:11 +00:00
Tom Tromey
3a5395a311 gjavah.c (decode_signature_piece): Emit "::" in JArray<>.
* gjavah.c (decode_signature_piece): Emit "::" in JArray<>.
	Handle nested arrays, like `[[I'.

From-SVN: r29067
1999-09-02 23:44:04 +00:00
Kaveh R. Ghazi
d593dd8c6a class.c (finish_class): Remove unused parameter, all callers changed.
* class.c (finish_class): Remove unused parameter, all callers
	changed.

	* expr.c (build_java_athrow): Change return type to void.
	(java_lang_expand_expr): Make sure each case in switch returns a
	value.

	* java-tree.h (finish_class): Fix prototype to take void args.

	* jcf-dump.c (usage): Mark with ATTRIBUTE_NORETURN.
	(main): Issue return from main, not exit.

	* jcf-parse.c (parse_class_file): Fix call to `finish_class'.

	* jcf.h (jcf_unexpected_eof): Mark with ATTRIBUTE_NORETURN.

	* jv-scan.c (main): Issue return from main, not exit.

	* parse.y (check_abstract_method_definitions,
	java_check_abstract_method_definitions): Add static prototypes.
	(java_complete_expand_methods): Fix call to `finish_class'.

	* verify.c (verify_jvm_instructions): Initialize variables `oldpc'
	and `prevpc'.

From-SVN: r29065
1999-09-02 21:57:09 +00:00
Kaveh R. Ghazi
f425a8879b c-parse.in (language_string): Constify.
* c-parse.in (language_string): Constify.

	* dwarf2out.c (language_string): Remove declaration.

	* dwarfout.c (language_string): Likewise.

	* toplev.c (language_string, init_parse, finish_parse): Likewise.

	* tree.h (language_string, init_parse, finish_parse): Declare.

	* i386/sun386.h (language_string): Remove declaration.

	* mips.h (language_string): Likewise.

	* nextstep.h (language_string): Likewise.

	* nextstep21.h (language_string): Likewise.

	* rs6000.c (language_string): Likewise.

In ch:
	* parse.c (language_string): Constify.
In cp:
	* parse.y (language_string): Constify.
In f:
	* com.c (language_string): Constify.
In java:
	* lang.c (language_string): Constify.

From-SVN: r29000
1999-08-31 02:16:34 +00:00
Kaveh R. Ghazi
00d30284b8 Makefile.in (LIBS): Fix definition so we link with $(CLIB).
* Makefile.in (LIBS): Fix definition so we link with $(CLIB).
	Remove hacks for stuff which comes from libiberty.

	* Make-lang.in: Likewise.

From-SVN: r28995
1999-08-31 00:34:22 +00:00
Hans-Peter Nilsson
24c30b28cd * Makefile.in (xref.o): Depend on xref.c explicitly.
From-SVN: r28988
1999-08-30 16:42:01 -06:00
Kaveh R. Ghazi
1b93a502f9 java-tree.h (lang_printable_name): Constify a char*.
* java-tree.h (lang_printable_name): Constify a char*.

	* lang.c (lang_printable_name): Likewise.

From-SVN: r28970
1999-08-29 13:51:39 +00:00
Jeffrey A Law
5f9ee6953e gjavah.c, [...]: Do not use C++ style comments in C code.
* gjavah.c, jcf-write.c, verify.c: Do not use C++ style
        comments in C code.

From-SVN: r28940
1999-08-27 23:33:02 -06:00
Tom Tromey
12207a8790 gjavah.c (print_cxx_classname): Print "::" before qualified name.
* gjavah.c (print_cxx_classname): Print "::" before qualified
	name.

http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&database=java&pr=36

From-SVN: r28902
1999-08-26 18:23:33 +00:00
Gregg Townsend
ee5cd6389e verify.c (verify_jvm_instructions): Don't check instruction validity beyond end of method.
Wed Aug 25 15:37:15 1999  Gregg Townsend  <gmt@cs.arizona.edu>

        * verify.c (verify_jvm_instructions): Don't check instruction
        validity beyond end of method.

From-SVN: r28897
1999-08-26 10:00:57 -07:00
Alexandre Petit-Bianco
f441f67120 re GNATS gcj/32 (A boolean expression containing two qualified expressions makes jc1 die.)
Thu Aug 26 09:10:58 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * parse.y (lookup_cl): Changed leading comment. Now does its best
        to set the column number.
        (qualify_ambiguous_name): Take WFL wrappers into account.

This patch fixes the Java net PR #32.

From-SVN: r28894
1999-08-26 09:51:49 -07:00
Tom Tromey
20c96b2a12 * jvspec.c (lang_specific_driver): Correctly handle --help again.
From-SVN: r28869
1999-08-25 18:37:05 +00:00
Kaveh R. Ghazi
be245ac0a0 gjavah.c (print_name, [...]): Add static prototype.
* gjavah.c (print_name, print_base_classname, utf8_cmp,
	cxx_keyword_subst, generate_access, name_is_method_p,
	get_field_name, print_field_name, super_class_name, print_include,
	decode_signature_piece, print_class_decls, usage, help,
	java_no_argument, version, add_namelet, print_namelet): Add static
	prototype.
	(print_base_classname, utf8_cmp, cxx_keyword_subst,
	name_is_method_p): Constify a char*.
	(get_field_name): Likewise.  Prefer xstrdup over malloc/strcpy.
	Provide a final else clause in an if-else-if.
	(print_field_info): Add missing final arg in function call to
	`print_field_name'.
	(print_method_info, decompile_method, decode_signature_piece,
	print_c_decl, print_full_cxx_name, print_stub,
	print_mangled_classname, super_class_name, print_include,
	add_namelet, add_class_decl, print_class_decls, process_file,
	help): Constify a char*.

	* jcf-write.c (jcf_handler, push_constant1, push_constant2,
	push_int_const, find_constant_wide, find_constant_index,
	push_long_const, field_op, maybe_wide, emit_dup, emit_pop,
	emit_iinc, emit_load_or_store, emit_load, emit_store, emit_unop,
	emit_binop, emit_reloc, emit_switch_reloc, emit_case_reloc,
	emit_if, emit_goto, emit_jsr, call_cleanups,
	make_class_file_name): Add static prototypes.
	(generate_bytecode_return, generate_bytecode_insns): Pass a
	NULL_PTR, not a NULL_TREE.

	* jv-scan.c: Include "jcf.h".
	(main): Declare using DEFUN macro.

	* jvspec.c (find_spec_file, lang_specific_pre_link,
	lang_specific_driver): Add prototypes.
	(find_spec_file): Constify a char*.

	* keyword.gperf (hash, java_keyword): Add prototypes.

	* lang.c (lang_print_error): Add static prototype.
	(lang_init): Prefer memcpy over bcopy to avoid casts.

	* lex.c (yylex): Add static prototype.

	* parse-scan.y: Include "lex.c" earlier.

	* parse.h: Remove redundant declaration for `yylex'.

	* parse.y (java_decl_equiv, binop_compound_p, search_loop,
	labeled_block_contains_loop_p): Add static prototypes.
	(not_accessible_p): Make static to match prototype.

	* verify.c (start_pc_cmp): Don't needlessly cast away const.

From-SVN: r28862
1999-08-25 13:59:28 +00:00
Alexandre Petit-Bianco
d77613be8b re GNATS gcj/30 (gcj not reporting unimplemented methods)
Sun Aug 22 11:07:41 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (check_method_redefinition): Changed leading comment.
	(check_abstract_method_definitions): New function.
	(java_check_abstract_method_definitions): New function.
	(java_check_regular_methods): Call it.
	(verify_constructor_super): Fixed indentation.
	(lookup_method_invoke): Likewise.

(This fixes the Java net PR #30,
 http://sourceware.cygnus.com/ml/java-prs/1999-q3/msg00034.html)

From-SVN: r28805
1999-08-22 11:38:07 -07:00
Alexandre Petit-Bianco
79d133336a re GNATS gcj/17 (Internal error: segfault on import-classname clash)
Thu Aug 19 10:26:18 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * parse.y (method_header): Return a null pointer if the current
        class node is null.
        (finish_method_declaration): Return if the current function decl
        is null.
        (source_start_java_method): Likewise.
        (java_method_add_stmt): Likewise.

This fixes the net PR #17.

From-SVN: r28765
1999-08-19 13:37:04 -07:00
Alexandre Petit-Bianco
5cbdba6424 [multiple changes]
Wed Aug 18 13:17:15 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* class.c (emit_register_class): Removed unnecessary call to
 	start_sequence.
	* parse.y (labeled_block_contains_loop_p): Removed unused local
 	variable.

Tue Aug 17 22:51:44 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * parse.y (java_refold): Added prototype.

Tue Aug 17 21:48:41 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * parse.y (BINOP_COMPOUND_CANDIDATES): New macro.
        (java_stabilize_reference): Removed unnecessary `else'.
        (java_complete_lhs): Set flag to remember boolean. Call
        java_refold. Added comments.
        (java_decl_equiv): New function.
        (binop_compound_p): Likewise.
        (java_refold): Likewise.
        (patch_unaryop): Striped static field access assigned to decl and
        op. Changed promotion scheme for ++/-- operators.
        (search_loop): New function.
        (labeled_block_contains_loop_p): Likewise.
        (patch_loop_statement): Call labeled_block_contains_loop_p. Added
        comment.
        (patch_bc_statement): Call search_loop. Fixed comment.

Mostly bug fixes in some forms of compound expressions and
break/continue target lookup.

From-SVN: r28758
1999-08-18 17:53:20 -07:00
Anthony Green
66e064294f expr.c (java_lang_expand_expr): Mark static array data as referenced.
* expr.c (java_lang_expand_expr): Mark static array data as
        referenced.

From-SVN: r28714
1999-08-15 08:31:56 +00:00
Rainer Orth
9a81650073 * jvgenmain.c (main): NUL-terminate name_obstack.
From-SVN: r28655
1999-08-11 05:03:11 +00:00
Kaveh R. Ghazi
c8e7d2e632 check-init.c (check_bool2_init, [...]): Add static prototypes.
* check-init.c (check_bool2_init, done_alternative): Add static
	prototypes.

	* class.c (add_interface_do, maybe_layout_super_class): Likewise.
	(add_method, build_utf8_ref, build_class_ref,
	append_gpp_mangled_type, layout_class_method): Constify a char*.

	* decl.c (push_promoted_type, make_binding_level): Add static
	prototypes.
	(push_promoted_type, pushdecl): Constify a char*.

	* except.c (find_handler_in_range, link_handler,
	check_start_handlers): Add static prototypes.

	* expr.c (process_jvm_instruction): Constify a char*.

	* gjavah.c (main): Constify a char*.

	* java-tree.h (verify_jvm_instructions, process_jvm_instruction):
	Constify a char*.

	* jcf-depend.c (free_entry, add_entry, munge, print_ents): Add
	static prototypes.
	(add_entry, jcf_dependency_set_target, jcf_dependency_add_target,
	munge, print_ents): Constify a char*.

	* jcf-dump.c (disassemble_method): Constify a char*.
	(print_constant_pool, print_exception_table): Add static prototypes.
	(print_constant, print_exception_table, main, disassemble_method):
	Constify a char*.

	* jcf-io.c (find_classfile, find_class): Likewise.

	* jcf-parse.c (JPOOL_UTF_DATA, find_in_current_zip): Likewise.
	(set_source_filename, predefined_filename_p): Add static prototypes.
	(set_source_filename, get_constant, get_class_constant,
	find_in_current_zip): Constify a char*.

	* jcf-path.c (free_entry, append_entry, add_entry, add_path): Add
	static prototypes.
	(add_entry, add_path, jcf_path_classpath_arg,
	jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.

	* jcf-reader.c (get_attribute, jcf_parse_preamble,
	jcf_parse_constant_pool, jcf_parse_class, jcf_parse_fields,
	jcf_parse_one_method, jcf_parse_methods,
	jcf_parse_final_attributes): Add static prototypes.
	(get_attribute): Constify a char*.

	* jcf.h (find_class, find_classfile, jcf_dependency_set_target,
	jcf_dependency_add_target, jcf_path_classpath_arg,
	jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.

	* jv-scan.c (main): Constify a char*.
	(gcc_obstack_init): Add prototype arguments.

	* jvgenmain.c (gcc_obstack_init): Likewise.
	(main): Constify a char*.

	* lang.c (put_decl_string, put_decl_node, java_dummy_print): Add
	static prototypes.
	(put_decl_string, lang_print_error): Constify a char*.
	(lang_init): Remove redundant extern prototype.

	* mangle.c (emit_unicode_mangled_name): Constify a char*.

	* typeck.c (convert_ieee_real_to_integer, parse_signature_type):
	Add static prototypes.
	(get_type_from_signature): Constify a char*.

	* verify.c (check_pending_block, type_stack_dup, start_pc_cmp ):
	Add static prototypes.
	(start_pc_cmp): Prefer PTR over GENERIC_PTR.
	(verify_jvm_instructions): Constify a char*.

	* xref.c (xref_flag_value): Likewise.

	* xref.h (xref_flag_value): Likewise.

	* zextract.c (makeword, makelong): Add static prototypes.
	(makeword, makelong): Constify a uch*.

From-SVN: r28648
1999-08-10 16:58:13 +00:00
Kaveh R. Ghazi
0070eeda65 lang.c (java_dummy_print): Constify a char*.
* lang.c (java_dummy_print): Constify a char*.
        (lang_print_error): Likewise.
        (lang_init): Remove redundant prototype for `print_error_function'.
        (lang_init_source): Likewise.
        (lang_identify): Constify a char*.

From-SVN: r28635
1999-08-09 23:52:36 +00:00
Tom Tromey
63ac1f08b7 javaop.h (WORD_TO_FLOAT): only inline if building with gcc.
* javaop.h (WORD_TO_FLOAT): only inline if building with gcc.
	(WORDS_TO_LONG): Likewise.
	(WORDS_TO_DOUBLE): Likewise.

From-SVN: r28630
1999-08-09 21:14:12 +00:00
Kaveh R. Ghazi
49f48c719e Warning fixes:
* Makefile.in (lang.o): Depend on $(RTL_H) $(EXPR_H).

        * expr.c (java_stack_pop, java_array_data_offset,
        build_java_throw_out_of_bounds_exception, case_identity,
        build_java_check_indexed_type): Add static prototypes.
        (linenumber_table, expand_invoke, expand_java_field_op,
        build_primtype_type_ref, expand_byte_code): Constify a char*.

        * java-tree.h (build_primtype_type_ref, linenumber_table):
        Constify a char*.
        (java_lang_expand_expr): Add prototype.

        * lang.c: Include rtl.h and expr.h.  Remove extern prototype for
        `java_lang_expand_expr'.

        * lex.c (java_lex_error): Constify a char*.
        (java_get_unicode, java_read_char, java_allocate_new_line,
        java_unget_unicode, java_sneak_unicode): Prototype.

        * parse-scan.y (current_class, package_name, method_declarator,
        report_class_declaration, yyerror): Constify a char*.

        * parse.h (java_report_errors): Prototype.
        (yyerror): Constify a char*.

        * parse.y (classitf_redefinition_error, check_modifiers,
        parse_jdk1_1_error, lookup_package_type,
        lookup_package_type_and_set_next, get_printable_method_name,
        purify_type_name): Constify a char*.
        (build_super_invocation, maybe_generate_finit,
        verify_constructor_super, parser_add_interface,
        add_superinterfaces, jdep_resolve_class, note_possible_classname,
        java_complete_expand_methods, java_expand_finals,
        cut_identifier_in_qualified, java_stabilize_reference,
        do_unary_numeric_promotion, operator_string, do_merge_string_cste,
        merge_string_cste): Prototype.
        (single_type_import_declaration, yyerror,
        variable_redefinition_error, build_array_from_name,
        build_unresolved_array_type, check_class_interface_creation,
        resolve_class, complete_class_report_errors,
        note_possible_classname, read_import_dir,
        find_in_imports_on_demand, resolve_package, fix_constructors,
        check_deprecation, lookup_method_invoke,
        maybe_build_primttype_type_ref, array_constructor_check_entry):
        Constify a char*.
        (java_complete_expand_methods, java_expand_finals): Make static.
        (convert_narrow): Remove static prototype.

From-SVN: r28498
1999-08-04 13:30:51 +00:00
J"orn Rennecke
02edc62b77 Makefile.in (c-decl.o): Depends on defaults.h.
* Makefile.in (c-decl.o): Depends on defaults.h.
	* java/Makefile.in (decl.o): Depends on $(srcdir)/../defaults.h.

From-SVN: r28479
1999-08-03 23:01:21 +01:00
Richard Henderson
0ae70c6a94 decl.c: Include defaults.h instead of expr.h.
* decl.c: Include defaults.h instead of expr.h.
        * parse.y: Likewise.

From-SVN: r28431
1999-08-02 17:57:50 -07:00
Jakub Jelinek
e438e1b788 Jakub Jelinek <jj@ultra.linux.cz>
* java/decl.c (start_java_method): Change all uses of
        PROMOTE_PROTOTYPES, so that it tests it as a C expression.
        Ensure expr.h is included.
        * java/expr.c (pop_arguments): Ditto.
        * java/parse.y (expand_start_java_method): Ditto.

From-SVN: r28419
1999-08-02 16:14:31 -07:00
Kaveh R. Ghazi
9490b7d6af * Makefile.in (ALL_CFLAGS): Add '-W -Wall'.
From-SVN: r28372
1999-08-01 04:26:47 +00:00