Commit Graph

83 Commits

Author SHA1 Message Date
Tom Tromey
12cfb4fc72 parse.y (dump_java_tree): New function.
* parse.y (dump_java_tree): New function.
	(source_end_java_method): Call it.
	(end_class_declaration): Likewise.
	* lang.c (java_decode_option): Call dump_switch_p.

From-SVN: r48439
2002-01-01 01:42:15 +00:00
Kaveh R. Ghazi
0b5826acc8 arc.c (arc_hard_regno_mode_ok): Const-ify.
* arc.c (arc_hard_regno_mode_ok): Const-ify.
	* arc.h (arc_hard_regno_mode_ok): Likewise.
	* i386.c (x86_64_reg_class_name): Make static.
	* m68k.c (regno_reg_class): Const-ify.
	* m68k.h (regno_reg_class): Likewise.
	* mcore.c (reg_class_from_letter): Likewise.
	* mcore.h (reg_class_from_letter): Likewise.
	* sh.c (reg_class_from_letter, ashiftrt_insns, shift_insns,
	ext_shift_insns, ext_shift_amounts): Likewise.
	* sh.h (reg_class_from_letter): Likewise.
	* sparc.c (hard_regno_mode_classes, hard_32bit_mode_classes,
	hard_64bit_mode_classes): Likewise.
	* sparc.h (hard_regno_mode_classes): Likewise.

	* gcc.c (modify_target): Make static.
	* gengenrtl.c (defs, formats): Likewise.
	* reload1.c (elim_table_1, init_elim_table): Const-ify.
	* tradcpp.c (directive, directive_table, handle_directive,
	skip_if_group, run_directive): Likewise.

cp:
	* decl2.c (lang_f_options): Const-ify.

f:
	* com.c (ffecom_gfrt_volatile_, ffecom_gfrt_complex_,
	ffecom_gfrt_const_, ffecom_gfrt_type_): Const-ify.

java:
	* Make-lang.in (keyword.h): Pass -C to gperf to const-ify
	the static arrays that are output.
	* jvspec.c (jvgenmain_spec): Make static.
	* keyword.gperf (struct java_keyword, java_keyword): Const-ify.
	* keyword.h: Regenerate.
	* lang.c (string_option, process_option_with_no, lang_f_options,
	lang_W_options): Const-ify.
	* lex.c (java_lex): Likewise.

From-SVN: r48290
2001-12-23 16:07:16 +00:00
Bryce McKinlay
861ef92859 java-tree.h (otable_methods, [...]): New field/global tree definitions.
gcc/java:

	* java-tree.h (otable_methods, otable_decl, otable_syms_decl,
	otable_type, otable_ptr_type, method_symbol_type,
	method_symbols_array_type, method_symbols_array_ptr_type): New
	field/global tree definitions.
	(flag_indirect_dispatch): New flag.
	* decl.c (java_init_decl_processing): Initialize new otable and
	otable_syms type nodes and decls. Add new field "index" to
	method_type_node.
	* class.c (build_method_symbols_entry): New function.
	(make_method_value): Set "index" to to method's vtable index for
	virtual methods when indirect-dispatch is not used.
	(make_class_data): For indirect-dispatch, dont emit the dtable_decl,
	and set vtable_method_count to -1. Set otable and otable_syms field
	if indirect-dispatch is used and there was something to put in them.
	(build_method_symbols_entry): New function.
	(emit_offset_symbol_table): New function.
	* expr.c (get_offset_table_index): New function.
	(build_invokevirtual): Build array reference to otable at the index
	returned by get_offset_table_index, and use the result as the vtable
	offset.
	(build_invokeinterface): Similar.
	* jcf-parse.c (yyparse): If indirect-dispatch, call
	emit_offset_symbol_table at the end of compilation, after all classes
	have been generated.
	* jvspec.c: Don't pass findirect-dispatch to jvgenmain.
	* lang.c (flag_indirect_dispatch): Define.
	(lang_f_options): Add indirect-dispatch flag.

libjava:

	* include/jvm.h (_Jv_VTable::idx_to_offset): New method.
	* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Call
	_Jv_MakeVTable and _Jv_LinkOffsetTable if needed.
	* java/lang/Class.h (_Jv_Method): Add "index" field.
	(_Jv_MethodSymbol): New struct type.
	(_Jv_LinkOffsetTable, _Jv_LayoutVTableMethods, _Jv_SetVTableEntries,
	_Jv_MakeVTable): Friends.
	(otable, otable_syms): New Class fields.
	* java/lang/natClass.cc (_Jv_LinkOffsetTable): New function.
	(isVirtualMethod): New static function.
	(_Jv_LayoutVTableMethods): New function.
	(_Jv_SetVTableEntries): New function.
	(_Jv_MakeVTable): New function.

From-SVN: r48038
2001-12-15 08:31:49 +00:00
Tom Tromey
8f25dc2806 lang.c (lang_f_options): Added optimize-static-class-initialization.
* lang.c (lang_f_options): Added
	optimize-static-class-initialization.
	(java_decode_option): Removed special case.

From-SVN: r47768
2001-12-07 19:01:19 +00:00
Neil Booth
22703ccc3f Makefile.in (c-parse.o, c-common.o): Update dependencies.
* Makefile.in (c-parse.o, c-common.o): Update dependencies.
	* c-common.c: Include diagnostic.h.
	(c_common_finish): New.
	* c-common.h (c_common_finish): New.
	* c-lang.c (LANG_HOOKS_FINISH): Override.
	* c-parse.in: Don't include diagnostic.h.
	(finish_parse): Remove.
	* langhooks.h: Update comments.
	* toplev.c (lang_dependent_init): New prototype.
	(finalize): New.
	(compile_file): Split cleanup code out to finalize.
	(lang_dependent_init): Stop if lang_hooks.init fails.
	(toplev_main): Update.
	* tree.h (finish_parse): Remove.

ada:	* misc.c (gnat_decode_option, gnat_init_options): Make definitions
	static too.
	(gnat_init): Don't return NULL.
	(finish_parse): Remove.
cp:	* lex.c (cxx_finish): Call c_common_finish.
	(finish_parse): Remove.
f:	* com.c (finish_parse): Remove.
	(ffe_finish): Move body of finish_parse.
java:	* lang.c (finish_parse): Rename to java_finish.
	(LANG_HOOKS_FINISH, java_finish): New.
objc:	* objc-act.c (LANG_HOOKS_FINISH): Override.

From-SVN: r47141
2001-11-18 11:04:53 +00:00
Neil Booth
f5e99456f1 c-common.c: Include c-lex.h.
* c-common.c: Include c-lex.h.
	(c_common_lang_init): Change prototype.  Call init_c_lex and
	init_pragma from here.
	* c-common.h (c_common_lang_init): Change prototype.
	* c-decl.c (init_decl_processing): Rename.  Call c_parse_init.
	* c-lang.c (c_init): Change prototype.  Update.
	(c_init_options): Update.
	* c-lex.c (cpp_filename): Remove.
	(init_c_lex): Update.  Read the main file, and get the original
	file name.
	(yyparse): Finish the command line options.
	* c-parse.in (c_parse_init): Call init_reswords here.
	(init_parse): Remove.
	* c-tree.h (c_init_decl_processing): New.
	* cpphash.c (_cpp_init_hashtable): After initializing the hash
	table, populate it.
	* cppinit.c (read_original_filename, cpp_finish_options): New.
	(cpp_create_reader): New prototype. Defer hash table initialization.
	(cpp_start_read): Rename cpp_read_main_file.  Initialize the
	hash table.  Get the original filename.
	* cpplib.h (cpp_create_reader): Update.
	(cpp_start_read): Remove.
	(cpp_read_main_file, cpp_finish_options): New.
	* cppmain.c (main, do_preprocessing): Update.
	* langhooks.h (struct langhooks): Update init prototype.
	* toplev.c (general_init, parse_options_and_default_flags,
	process_options, lang_indpendent_init, lang_dependent_init,
	init_asm_output): New; perform the bulk of initialization.
	(compile_file): Move most of initialization to above functions.
	(debug_hooks): Initialize statically.
	(set_Wunused): Relocate.
	(toplev_main): Move most of initialization to other init functions.
	Have a clear logic flow.
	* tree.h (init_parse, init_decl_processing): Remove.
ada:
	* misc.c (gnat_init): Change prototype.  Include the
	functionality of the old init_parse and init_decl_processing.
	(gnat_init_decl_processing): New prototype.
	(init_parse): Remove.
	* utils.c (init_decl_processing): Rename gnat_init_decl_processing.
cp:	* cp-tree.h (init_reswords, cxx_init_decl_processing): New.
	(cxx_init): Update prototype.
	* decl.c (init_decl_processing): Rename.  Move null node init
	to its creation time.
	* lex.c (cxx_init_options): Update.
	(cxx_init): Combine with old init_parse; also call
	cxx_init_decl_processing.
f:	* com.c (ffecom_init_decl_processing): Renamed from
	init_decl_processing.
	(init_parse): Move contents to ffe_init.
	(ffe_init): Update prototype.
java:	* decl.c (init_decl_processing): Rename java_init_decl_processing.
	* java-tree.h: New prototype.
	* lang.c (java_init): Update prototype.  Combine with old init_parse.
objc:	* objc-act.c (objc_init): Update prototype, combine with old
	init_parse.
	(objc_init_options): Update.

From-SVN: r47046
2001-11-15 10:01:10 +00:00
Neil Booth
5d69f816bc Makefile.in: Update.
* Makefile.in: Update.
	* c-decl.c (print_lang_decl, print_lang_type): Remove.
	(print_lang_identifier): Rename c_print_identifier.
	* c-lang.c (LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): New.
	(print_lang_statistics, lang_print_xnode): Remove.
	* c-parse.in (set_yydebug): Rename c_set_yydebug.
	* c-tree.h (c_set_yydebug, c_print_identifier): New.
	* langhooks-def.h (lhd_print_tree_nothing, lhd_set_yydebug): New.
	LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
	LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
	LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New members.
	(lang_print_tree_hook): New.
	* langhooks.c (lhd_print_tree_nothing, lhd_set_yydebug): New.
	* print-tree.c: Include langhooks.h.
	(print_node): Update.
	* toplev.c (decode_d_option): Update.
	* tree.c: Include langhooks.h.
	(dump_tree_statistics): Update.
	* tree.h (print_lang_statistics, print_lang_decl, print_lang_type,
	print_lang_identifier, set_yydebug, lang_print_xnode): Remove.
ada:
	* misc.c (gnat_print_decl, gnat_print_type): Renamed.
	(LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
	(print_lang_statistics, lang_print_xnode, print_lang_identifier,
	set_yydebug): Remove.
cp:
	* cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
	LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
	LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
	* cp-tree.h (print_class_statistics): Remove.
	(cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
	cxx_print_identifier, cxx_set_yydebug): New.
	* lex.c (set_yydebug): Rename c_set_yydebug.
	* ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
	lang_print_xnode): Rename.
	* tree.c (print_lang_statistics): Rename.
f:
	* com.c (ffe_print_identifier): Rename.
	(LANG_HOOKS_PRINT_IDENTIFIER): Override.
	(lang_print_xnode, print_lang_decl, print_lang_statistics,
	print_lang_type, set_yydebug): Remove.
java:
	* java-tree.h (java_set_yydebug): New.
	* jcf-parse.c (set_yydebug): Rename java_set_yydebug.
	* lang.c (LANG_HOOKS_SET_YYDEBUG): Override.
	(print_lang_decl, print_lang_type, print_lang_identifier,
	print_lang_statistics, lang_print_xnode): Remove.
objc:
	* objc-act.c (LANG_HOOKS_PRINT_IDENTIFIER,
	LANG_HOOKS_SET_YYDEBUG): Override.
	(lang_print_xnode, print_lang_statistics): Remove.

From-SVN: r46907
2001-11-09 23:30:44 +00:00
Neil Booth
3ac88239fc c-lang.c (LANG_HOOKS_NAME): New.
* c-lang.c (LANG_HOOKS_NAME): New.
	(lang_hooks): Constify.
	(c_init_options): Update.
	(lang_identify): Remove.
	* c-parse.in (language_string): Remove.
	* dbxout.c: Include langhooks.h.
	(dbxout_symbol_location): Update.
	* dwarf2out.c: Include langhooks.h.
	(gen_compile_unit_die): Update.
	* dwarfout.c: Include langhooks.h.
	(prototyped_attribute, output_compile_unit_die): Update.
	* langhooks-def.h (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New members.  Constify.
	* stringpool.c: Don't include toplev.h.
	(set_identifier_size): Remove.
	* toplev.c (toplev_main): Initialize identifier size.
	(print_version): Update.
	* tree.h (language_string, init_lex, lang_identify,
	set_identifier_size): Remove.
	* Makefile.in: Update dependencies.
	* config/darwin.c: Include langhooks.h.
	(func_name_maybe_scoped): Update.
	* config/darwin.h (ASM_END_FILE): Update.
	* config/nextstep.h (ASM_END_FILE): Update.
	* config/nextstep21.h (ASM_END_FILE): Update.
	* config/i386/sun386.h (ASM_END_FILE): Update.
	* config/rs6000/rs6000.c (ASM_END_FILE): Include langhooks.h.
	(rs6000_output_function_epilogue): Update.
ada:
	* misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
	(struct lang_hooks): Constify.
	(language_string, lang_identify): Remove.
	* utils.c (init_decl_processing): Update.
cp:
	* cp-lang.c (LANG_HOOKS_NAME): Override.
	(struct lang_hooks): Constify.
	* lex.c (cxx_init_options): Update.
	(lang_identify): Remove.
	* parse.y (language_string): Remove.
f:
	* com.c (language_string, lang_identify): Remove.
	(struct lang_hooks): Constify.
	(LANG_HOOKS_NAME): Override.
	(init_parse): Update.
java:
	* jcf-parse.c (init_lex): Remove.
	* lang.c (language_string, lang_identify): Remove.
	(struct lang_hooks): Constify.
	(LANG_HOOKS_NAME): Override.
	(init_parse): Update.
objc:
	* objc-act.c (LANG_HOOKS_NAME): Override.
	(struct lang_hooks): Constify.
	(objc_init_options): Update.
	(lang_identify): Remove.

From-SVN: r46874
2001-11-09 07:14:20 +00:00
Neil Booth
d23c55c28c Clean up langhooks
* alias.c:: Include langhooks.h.
	* emit-rtl.c: Similarly.
	* toplev.c: Similarly.
	* tree-inline.c: Similarly.
	* langhooks-def.h: New, the old langhooks.h.  Give the default
	hooks a common prefix.
	* langhooks.h: Contents extracted from toplev.h.
	* toplev.h: Move langhook stuff to langhooks.h.
	* langhooks.c: Give default hooks a common prefix.

	* c-lang.c: Include langhooks-def.h.
	* ada/misc.c: Similarly.
	* cp/cp-lang.c: Similarly.
	* f/com.c: Similarly.
	* java/lang.c: Similarly.
	* objc/objc-act.c: Similarly.

	* Makefile.in: Update.
	* ada/Makefile.in: Similarly.
	* cp/Make-lang.in: Similarly.
	* f/Make-lang.in: Similarly.
	* java/Make-lang.in: Similarly.
	* objc/Make-lang.in: Similarly.

From-SVN: r46813
2001-11-06 21:12:14 +00:00
Richard Kenner
8ac61af705 alias.c (can_address_p): Compnonents are not addressable if the containing type has alias set 0.
* alias.c (can_address_p): Compnonents are not addressable if
	the containing type has alias set 0.
	(get_alias_set): Rework to use STRIP_NOPS.
	Only call front-end routine on object, type, or object with
	NOPs stripped, not inner values.
	Use language hook to call front-end routine.
	* builtins.c (get_memory_rtx): Always call set_mem_attributes.
	(expand_builtin_apply): Call set_mem_align on MEMs we make.
	Don't pass alignment to emit_block_move.
	(expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
	(expand_builtin_memset): Likewise, but for clear_storage.
	* c-common.c (lang_get_alias_set): Renamed to c_common_alias_set
	and remove C++ specific parts.
	* c-common.h (c_common_get_alias_set): Add declaration.
	* c-lang.c (LANG_HOOKS_GET_ALIAS_SET): New macro.
	* calls.c (emit_call_1): Fix typo in sibcall_pop case.
	(save_fixed_argument_area): Call set_mem_align.
	Remove alignment in call to emit_block_move.
	(emit_library_call_value_1, store_one_arg): Likewise.
	(target_for_arg): Remove; disabled long ago.
	* emit-rtl.c (set_mem_attributes): Rework to only call get_mem_attrs
	once and similar cleanups.
	(offset_address): Use proper introductory comment.
	* expr.c (emit_block_move): Use alignment from that of MEM args, not
	from explicit operand; all callers changed.
	(clear_storage): Likewise.
	(expand_assignment): Don't call set_mem_alias_set on to_rtx.
	(store_field): Remove kludge on alias set used for to_rtx.
	(highest_pow2_factor, case *_DIV_EXPR): Never return 0.
	(expand_expr_unaligned): Call set_mem_attributes instead of
	set_mem_alias_set.
	* expr.h (emit_block_move, clear_storage): Remove ALIGN argument.
	* function.c (assign_stack_temp_for_type): Set MEM alignment.
	(expand_function_end): Track MEM attributes of trampolines.
	* ifcvt.c (noce_try_cmove_arith): Set alignment of new MEM.
	* integrate.c (copy_rtx_and_substitute, case CALL): Copy memory
	attributes from original.
	* langhooks.c (lang_hook_default_get_alias_set): New function.
	(hook_get_alias_set_0): New function.
	* langhooks.h (hook_get_alias_set_0): New declaration.
	(lang_hook_default_get_alias_set): Likewise.
	(LANG_HOOKS_GET_ALIAS_SET): New macro; add to initializer.
	* reload1.c (alter_reg): Use adjust_address_nv.
	* rtl.c (get_mode_alignment): Moved to here.
	* rtl.h (MEM_ALIGN): Take default from mode, if not BLKmode, and
	change default if unknown from 1 to BITS_PER_UNIT.
	* stor-layout.c (get_mode_alignment): Remove from here.
	* toplev.h (struct lang_hoks): Add get_alias_set field.
	* tree.h (lang_get_alias_set): Delete declaration.
	* config/arc/arc.c (arc_setup_incoming_varags): Set MEM alignment.
	* config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
	(ix86_va_arg): Likewise.
	* config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
	* config/pa/pa.c (hppa_builtin_saveregs): Likewise.
	* config/sparc/sparc.c (sparc_va_arg): Likewise.
	* config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
	(expand_block_move_mem): Remove dead code.
	* cp/cp-lang.c (cxx_get_alias_set): New function.
	Point LANG_HOOKS_GET_ALIAS_SET to it.
	* f/com.c (LANG_HOOKS_GET_ALIAS_SET): New macro.
	(lang_get_alias_set): Delete.
	* java/lang.c (lang_get_alias_set): Deleted.

From-SVN: r46440
2001-10-23 14:51:18 -04:00
Alexandre Petit-Bianco
c83303d8a4 lang.c (langhooks.h): Included.
2001-10-15  Alexandre Petit-Bianco  <apbianco@redhat.com>

        * lang.c (langhooks.h): Included.
        (LANG_HOOKS_INIT): Redefined.
        (LANG_HOOKS_INIT_OPTIONS): Likewise.
        (LANG_HOOKS_DECODE_OPTION): Likewise.
        (struct lang_hooks lang_hooks): New initialization.

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

From-SVN: r46270
2001-10-15 15:10:56 -07:00
Kaveh R. Ghazi
8b60264b0d builtins.c (expand_builtin_setjmp_receiver): Const-ify.
* builtins.c (expand_builtin_setjmp_receiver): Const-ify.
	* c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length):
	Likewise.
	* c-dump.c (dump_option_value_info): Likewise.
	* c-format.c (format_length_info, format_char_info,
	format_flag_spec, format_flag_pair, format_kind_info): Likewise.
	* collect2.c (names): Likewise.
	* cppdefault.h (default_include): Likewise.
	* cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise.
	* flow.c (life_analysis): Likewise.
	* gcc.c (dir_separator_str, modify_target, option_map,
	target_option_translations, spec_list_1, extra_specs_1,
	init_spec): Likewise.
	* gcov.c (gcov_version_string): Likewise.
	* genattr.c (write_units): Likewise.
	* genattrtab.c (make_length_attrs, write_function_unit_info): Likewise.
	* gengenrtl.c (rtx_definition, defs): Likewise.
	* genrecog.c (pred_table): Likewise.
	* global.c (global_alloc): Likewise.
	* lcm.c (optimize_mode_switching): Likewise.
	* local-alloc.c (find_free_reg): Likewise.
	* params.h (param_info): Likewise.
	* predict.c (predictor_info): Likewise.
	* protoize.c (unexpansion_struct): Likewise.
	* real.c (bmask): Likewise.
	* recog.h (insn_operand_data, insn_data): Likewise.
	* regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise.
	* stmt.c (expand_nl_goto_receiver): Likewise.
	* toplev.c (da, debug_args, lang_opt, documented_lang_options,
	target_switches, target_options): Likewise.
	* tradcif.y (token, tokentab2, yylex): Likewise.
	* tree.h (attribute_spec): Likewise.

	* alpha.c (override_options, alpha_lookup_xfloating_lib_func):
	Likewise.
	* arc.c (arc_output_function_epilogue): Likewise.
	* arm.c (processors, all_cores, all_architectures,
	arm_override_options, isr_attribute_arg, isr_attribute_args,
	arm_isr_value): Likewise.
	* avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc):
	Likewise.
	* c4x.c (c4x_int_reglist): Likewise.
	* d30v.c (override_options): Likewise.
	* h8300.c (shift_insn): Likewise.
	* i386.c (size_cost, i386_cost, i486_cost, pentium_cost,
	pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost,
	ix86_expand_sse_comi, ix86_expand_sse_compare, override_options,
	builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg,
	ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise.
	* i386.h (processor_costs, ix86_cost): Likewise.
	* m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise.
	* m68hc11.h (processor_costs, m68hc11_cost): Likewise.
	* m68k.c (codes_68881, codes_FPA): Likewise.
	* m88k.c (mode_from_align, max_from_align, all_from_align,
	best_from_align, m_options): Likewise.
	* m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
	* mcore.c (mode_from_align): Likewise.
	* mips/elf64.h (UNIQUE_SECTION): Likewise.
	* mips/iris6gld.h (UNIQUE_SECTION): Likewise.
	* mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise.
	* mips.h (mips_regno_to_class): Likewise.
	* ns32k.c (scales): Likewise.
	* pa.c (import_string, magic_milli): Likewise.
	* rs6000.c (alt_reg_names, rs6000_override_options): Likewise.
	* sparc.c (leaf_reg_remap, sparc_override_options,
	reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders):
	Likewise.
	* sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise.

cp:
	* class.c (build_vtable_entry_ref): Const-ify.
	* decl.c (predefined_identifier,
	initialize_predefined_identifiers): Likewise.
	* init.c (build_new_1): Likewise.
	* lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
	Likewise.

f:
	* bad.c (_ffebad_message_, ffebad_messages_): Const-ify.
	* bld.c (ffebld_arity_op_): Likewise.
	* bld.h (ffebld_arity_op_): Likewise.
	* com.c (ffecom_init_0): Likewise.
	* intdoc.c (_ffeintrin_name_, _ffeintrin_gen_, _ffeintrin_spec_,
	_ffeintrin_imp_, names, gens, imps, specs, cc_pair,
	cc_descriptions, cc_summaries): Likewise.
	* intrin.c (_ffeintrin_name_, _ffeintrin_gen_, _ffeintrin_spec_,
	_ffeintrin_imp_, ffeintrin_names_, ffeintrin_gens_,
	ffeintrin_imps_, ffeintrin_specs_): Likewise.

java:
	* jcf-io.c (format_uint): Const-ify.
	* lang.c (java_tree_code_type, java_tree_code_length): Likewise.
	* lex.c (java_get_line_col): Likewise.
	* parse.y (build_incdec): Likewise.

From-SVN: r46062
2001-10-07 16:51:11 +00:00
Kaveh R. Ghazi
fd033052f9 gjavah.c (cxx_keywords): Const-ification.
* gjavah.c (cxx_keywords): Const-ification.
	* keyword.gperf (java_keyword): Likewise.
	* lang.c (java_tree_code_name): Likewise.
	* lex.c (cxx_keywords): Likewise.
	* parse.y (java_parser_context_suspend, merge_string_cste): Likewise.

From-SVN: r45564
2001-09-12 16:21:12 +00:00
Anthony Green
7be5b0e5a4 class.c (O_BINARY): Define if necessary.
* class.c (O_BINARY): Define if necessary.
        (registerResource_libfunc): Declare.
        (init_class_processing): Initilize registerResource_libfunc.
        (compile_resource_file): New function.
        * java-tree.h (resource_name): Declare.
        (compile_resource_file): Declare.
        * jcf-parse.c (yyparse): Handle compiling java resource files.
        * lang.c (java_decode_option): Handle -fcompile-resource option.
        * jvspec.c (lang_specific_driver): Handle -R flag for compiling
        resource files.
        * gcj.texi (Code Generation): Add documentation for -R flag.

From-SVN: r45448
2001-09-06 22:22:44 +00:00
Per Bothner
bc8a5e56c0 jcf-io.c (open_class): Set filename field.
* jcf-io.c (open_class):  Set filename field.

	* jcf-parse,c (parse_class_file):  Set current_function_decl
	for better error message when Code attribute is missing.

	* lang.c (put_decl_node, lang_print_error):  Re-arrange for
	better diagnostics, especially for constructors.

From-SVN: r45299
2001-08-30 14:28:20 -07:00
Tom Tromey
4266d0b272 jcf-dump.c (main): Updated for change to jcf_path_seal.
* jcf-dump.c (main): Updated for change to jcf_path_seal.
	* gjavah.c (main): Updated for change to jcf_path_seal.
	* lang.c (version_flag): New global.
	(java_decode_option): Recognize `-version'.
	(java_init): Update for change to jcf_path_seal.
	* jcf.h (jcf_path_seal): Added `print' argument.
	* jcf-path.c (jcf_path_seal): Added `print' argument.

From-SVN: r44946
2001-08-16 21:52:14 +00:00
Alexandre Petit-Bianco
4009bb7d50 check-init.c (flags.h): Include
2001-08-08  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* check-init.c (flags.h): Include
	(check_init): Don't report uninitialized static class
	initialization flags, don't free bit index when doing static class
	initialization optimization.
	(check_for_initialization): Return type changed to `unsigned int.'
	(attach_initialized_static_class): New function.
	* class.c (add_method_1): Create the initialized static class
	table if necessary.
	(finish_class): Always emit deferred inline methods.
	* decl.c (emit_init_test_initialization): Moved to expr.c
	(complete_start_java_method): Don't traverse
	DECL_FUNCTION_INIT_TEST_TABLE.
	(lang_mark_tree): Mark hash tables in function decls.
	* expr.c (emit_init_test_initialization): Moved from decl.c.
	(build_class_init): Create LAG_DECL_SPECIFIC for the static class
	initialization flag, set DECL_CONTEXT and
	LOCAL_CLASS_INITIALIZATION_FLAG.
	(java_lang_expand_expr): Emit initialization code for static class
	initialized flags when entering block, if necessary.
	* gcj.texi (-fno-optimize-static-class-initialization): Documented.
	* java-tree.h (flag_optimize_sci): New global variable declaration.
	(DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro.
	(DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise.
	(LOCAL_FINAL_P): Fixed typo in comment.
	(FINAL_VARIABLE_P): Likewise.
	(LOCAL_CLASS_INITIALIZATIO_FLAG): New macro.
	(LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise.
	(struct lang_decl): New fields `ict', `smic' and `cif.'
	(check_for_initialization): New returned value for global.
	(attach_initialized_static_class): New global function.
	(STATIC_CLASS_INIT_OPT_P): New macro.
	* lang-options.h (-fno-optimize-static-class-initialization): New flag.
	* lang.c (java_decode_option): Handle
	`-fno-optimize-static-class-initialization'
	* parse.y (start_complete_expand_method): New function.
	(java_expand_method_bodies): Likewise.
	(attach_init_test_initialization_flags): Likewise.
	(adjust_init_test_initialization): Likewise.
	(emit_test_initialization): Likewise.
	(java_complete_expand_methods): Nullify abstract and native method
	bodies.
	(java_complete_expand_method): New locals `fbody', `block_body'
	and `exception_copy.' Reorganized: directly return on empty method
	bodies, call `start_complete_expand_method', remember definitely
	initialized static class in function, don't expand method bodies.
	(java_expand_classes): Call `java_expand_method_bodies' before
	`finish_class' when compiling to native.
	(resolve_expression_name): Use `orig' after building outer class
	field access.
	(patch_invoke): Remember static method invokations.

(http://gcc.gnu.org/ml/gcc-patches/2001-08/msg00454.html)

From-SVN: r44733
2001-08-08 21:19:12 -07:00
Tom Tromey
af418b8cb8 lang.c (flag_assume_compiled): Removed.
* lang.c (flag_assume_compiled): Removed.
	* java-tree.h (flag_assume_compiled): Removed.
	* lang-options.h: Removed -ffile-list-file, -fuse-boehm-gc,
	-fhash-synchronization, -fuse-divide-subroutine,
	-fcheck-references, -femit-class-file, -femit-class-files,
	-fassume-compiled.  Updated --encoding information.  Changed
	-foutput-class-dir to `-d'.

From-SVN: r43799
2001-07-06 04:31:03 +00:00
Gabriel Dos Reis
46f018e138 diagnostic.c (default_print_error_function): Tweak.
* diagnostic.c (default_print_error_function): Tweak.
	(report_error_function): Likewise.
	* toplev.h (default_print_error_function): Move to...
	* diagnostic.h: ...here. Add a `diagnostic_context *' parameter.
	* tree.h (print_error_function): Move to...
	* diagnostic.h: ...here. Add a `diagnostic_context *' parameter.

ch/

	* lang.c: #include diagnostic.h
	(chill_print_error_function): Add a dummy `diagnostic_context *'.
	* Makefile.in (lang.o): Depend on diagnostic.h

cp/

	* error.c (lang_print_error_function): Add a `diagnostic_context *'
	parameter. Tweak.

f/

	* Make-lang.in (f/com.o): Depend on diagnostic.h
	* com.c: #include diagnostic.h
	(lang_print_error_function): Take a 'diagnostic_context *'.

java/

	* lang.c: #include diagnostic.h
	(lang_print_error): Add a `diagnostic_context *' parameter.
	(java_dummy_print): Likewise.
	* Make-lang.in (JAVA_LEX_C): Depend on diagnostic.h

From-SVN: r43638
2001-06-28 12:26:38 +00:00
DJ Delorie
45936a85bc vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX to TARGET_OBJECT_SUFFIX and...
* config/alpha/vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX
to TARGET_OBJECT_SUFFIX and TARGET_EXECUTABLE_SUFFIX.
* config/i386/cygwin.h: Likewise.
* config/i386/mingw32.h: Likewise.
* config/vax/vms.h: Likewise.
* config/i386/djgpp.h: Remove NO_AUTO_EXE_SUFFIX.

* config/alpha/xm-vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX
to HOST_OBJECT_SUFFIX and HOST_EXECUTABLE_SUFFIX.
* config/i386/xm-cygwin.h: Likewise.
* config/i386/xm-djgpp.h: Likewise.
* config/i386/xm-mingw32.h: Likewise.
* config/vax/xm-vms.h: Likewise.

* mkdeps.c (deps_add_default_target): Use TARGET_OBJECT_SUFFIX
instead of OBJECT_SUFFIX.
* collect2.c (find_a_file): Look for files matching the extension
HOST_EXECUTABLE_SUFFIX instead of EXECUTABLE_SUFFIX.
* gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Depend on
TARGET_EXECUTABLE_SUFFIX.
(find_a_file): Use HOST_EXECUTABLE_SUFFIX.
(make_relative_prefix): Likewise.
(convert_filename): Use TARGET_ suffixes throughout.  Remove
NO_AUTO_EXE_SUFFIX.
(process_command): Likewise.
(do_spec_1): Likewise.
* java/lang.c (init_parse): Likewise.

* gcc.texi : Document four new options matching the pattern
(HOST|TARGET)_(OBJECT|EXECUTABLE)_SUFFIX.  Remove documentation
for deleted macros OBJECT_SUFFIX and EXECUTABLE_SUFFIX.  Remove
documentation for NO_AUTO_EXE_SUFFIX.

From-SVN: r41428
2001-04-19 16:28:05 -04:00
Richard Henderson
da7da8f977 decl.c (end_java_method): Do not save and restore flag_non_call_exceptions.
* decl.c (end_java_method): Do not save and restore
        flag_non_call_exceptions.
        * parse.y (source_end_java_method): Likewise.
        * lang.c (flag_exceptions): Don't declare.
        (java_init_options): Set flag_non_call_exceptions.  Set
        flag_exceptions here ...
        (java_init): ... not here.

From-SVN: r40921
2001-03-28 00:38:22 -08:00
Richard Henderson
461fc4de6a Remove flag_new_exceptions.
From-SVN: r40908
2001-03-27 22:11:49 -08:00
Alexandre Petit-Bianco
b124f72e29 re PR java/1213 (gcj should check for incorrect CLASSPATH)
2001-03-22  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* gcj.texi (Input Options): documented the check for attribute
	`gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag.
	* java-tree.h (flag_force_classes_archive_check): Declared extern.
	* jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro.
	(jcf_parse): Check for the right classes archive if necessary.
	* jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it.
	(jcf_parse_fields): Fixed indentation.
	* jcf-write.c (append_gcj_attribute): New function.
	(generate_classfile): Compute the attribute count, invoke
	`append_gcj_attribute'.
	* jcf.h (typedef struct JCF): `seen_in_zip' and `java_source'
	turned into bit fields. New bit field `right_zip.'
	(JCF_ZERO): Set `right_zip' to zero.
	* lang-options.h (-fforce-classes-archive-check): Added flag.
	* lang.c (flag_force_classes_archive_check): New flag.
	(lang_f_options): New entry `force-classes-archive-check.'
	Fixes PR java/1213.

(http://gcc.gnu.org/ml/gcc-patches/2001-03/msg01662.html)

From-SVN: r40788
2001-03-23 11:42:25 -08:00
Andrew Haley
4ff17c6a1a gcj.texi (Configure-time Options): Add -fcheck-references.
2001-02-07  Andrew Haley  <aph@redhat.com>

        * gcj.texi (Configure-time Options): Add -fcheck-references.
        * expr.c (build_java_indirect_ref): New function.
        (build_java_array_length_access): Use build_java_indirect_ref to
        check for null references.
        (build_java_arrayaccess): Likewise.
        (build_get_class): Likewise.
        (build_field_ref): Likewise.
        (invoke_build_dtable): Likewise.
        (build_invokeinterface): Likewise.
        * lang.c (lang_f_options): Add flag_check_references.
        * jvspec.c (jvgenmain_spec): Add flag_check_references.
        * java-tree.h (flag_check_references): New variable.
        * lang.c (flag_check_references): Likewise.

From-SVN: r40780
2001-03-23 14:16:33 +00:00
Per Bothner
fea2d5da9c Handle compiling multiple input files at once, and @FILE syntax. See ChangeLog.
From-SVN: r40024
2001-02-23 19:28:39 -08:00
Per Bothner
2c36c7fd96 * lang.c (put_decl_node): Print method's name.
From-SVN: r39172
2001-01-21 12:42:13 -08:00
Alexandre Petit-Bianco
b1117741f1 lang-options.h (-Wunsupported-jdk11): Removed.
2001-01-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * lang-options.h (-Wunsupported-jdk11): Removed.
        * lang.c (flag_not_overriding): Deleted.
        (flag_static_local_jdk1_1): Likewise.
        (lang_W_options): Removed "unsupported-jdk11" entry.
        * parse.y (java_check_methods): Removed dead code.

(http://gcc.gnu.org/ml/gcc-patches/2001-01/msg01479.html)

From-SVN: r39107
2001-01-17 19:07:01 -08:00
Alexandre Petit-Bianco
761491c8dc [multiple changes]
2001-01-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* java-tree.h (lang_printable_name_wls): New prototype.
	* lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT
	rather than `current_class' to print type name. Don't prepend type
	names when printing constructor names.
	(lang_printable_name_wls): New function.
	* jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to
	`build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE.
	* parse.y (patch_method_invocation): Message tuned for constructors.
	(not_accessible_p): Grant `private' access from within
	enclosing contexts.

2001-01-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (patch_binop): Compute missing type in error situations.

(http://gcc.gnu.org/ml/gcc-patches/2001-01/msg00752.html)

From-SVN: r38870
2001-01-10 09:05:43 -08:00
Neil Booth
ee811cfdfa c-lang.c (lang_hooks): Update.
* c-lang.c (lang_hooks): Update.
        (lang_decode_option): Remove.
        (lang_init_options): Rename c_init_options.
        * toplev.c (main): Use lang_hooks for lang_init_options
        and lang_decode_option.
        * toplev.h (lang_hooks): Add 2 new hooks.
        * tree.h: Remove lang_init_options and lang_decode_option.
        * cp/cp-tree.h (lang_decode_option): Rename cxx_decode_option.
        * cp/decl2.c: Similarly.
        * cp/lex.c (lang_init_options): Rename cxx_init_options.
        (lang_hooks): Update.
        * f/com.c (f_init, f_finish): Rename ffe_init, ffe_finish
        for consistency.
        (lang_init_options): Rename ffe_init_options.
        (lang_hooks): Update.
        (lang_decode_option): Remove.
        * java/lang.c (lang_init_options): Rename java_init_options.
        (lang_decode_option): Rename java_decode_option.
        (lang_hooks): Update.
        * objc/objc-act.c (lang_init_options): Rename objc_init_options.
        (lang_decode_option): Rename objc_decode_option.
        (lang_hooks): Update.

From-SVN: r38856
2001-01-10 07:51:11 +00:00
Neil Booth
13c61421ff c-lang.c (lang_hooks): Update.
* c-lang.c (lang_hooks): Update.
        (lang_init): Rename c_init.
        (lang_finish): Remove.
        * toplev.c (compile_file): Use lang_hooks for lang_init ()
        and lang_finish ().
        * toplev.h (lang_hooks): Add init () and finish ().
        * tree.h (lang_init, lang_finish): Remove.
        * cp/tree.h (lang_init, lang_finish): Remove.
        * cp/decl2.c (cxx_post_options, lang_hooks): Move to cp/lex.c.
        * cp/lex.c (cxx_init, cxx_finish, cxx_post_options,
        lang_hooks): New.
        (lang_init, lang_finish): Remove.
        * f/com.c (lang_init, lang_finish): Rename f_init, f_finish.
        (lang_hooks): Update.
        * java/lang.c (lang_init): Rename java_init.
        (lang_finish): Remove.
        (lang_hooks): Update.
        * objc/objc-act.c (lang_init): Rename objc_init.
        (lang_finish): Remove.
        (lang_hoooks): Update.

From-SVN: r38828
2001-01-09 10:54:01 +00:00
Neil Booth
cd2a3ba227 toplev.c (main): Call the front-end specific post_options hook if one is given.
* toplev.c (main): Call the front-end specific post_options
        hook if one is given.
        * toplev.h (struct_lang_hooks, lang_hooks): New.
        * c-lang.c (c_post_options, lang_hooks): Implement lang_hooks
        for the C front end.
        * cp/decl2.c (cxx_post_options, lang_hooks): Implement
        lang_hooks for the C++ front end.
        * objc/objc-act.c (objc_post_options, lang_hooks): Implement
        lang_hooks for the ObjC front end.
        * f/com.c (lang_hooks): Hooks for the Fortran front end.
        * java/lang.c (lang_hooks): Hooks for the Java front end.

From-SVN: r38757
2001-01-07 03:34:28 +00:00
Neil Booth
a5a4ce3c3c cpp.texi: Update for -MP.
* cpp.texi: Update for -MP.  Clarify behaviour of -MT.
        * cppinit.c (initialize_dependency_output):  Update.
        (cpp_finish): Output dummy targets for -MP.
        (OPT_MP): New.
        (cpp_handle_option): Handle -MP.  Don't quote -MT options.
        * cpplib.h (struct cpp_options): Add deps_phony_targets.
        * gcc.c (cpp_options): Update to handle -MP.
        * mkdeps.c (deps_add_target, deps_add_default_target): Update
        to quote only the default target.
        (deps_phony_targets): Insert a preceding newline.  Rename from
        deps_dummy_targets for consistency.
        * mkdeps.h: Update
java:
        * lang.c (lang_decode_option): Change -MA to -MP.
        * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target):
        Update to new prototype; do quote targets.
        (jcf_dependency_write): Update.

From-SVN: r38707
2001-01-05 07:50:24 +00:00
Tom Tromey
b7436b7288 lang-options.h: Mention -Wout-of-date.
* lang-options.h: Mention -Wout-of-date.
	* jcf-dump.c (flag_newer): New global.
	* gjavah.c (flag_newer): New global.
	* jcf-io.c (find_class): Only warn when flag_newer set.
	* lang.c (flag_newer): New global.
	(struct string_option): New declaration.
	(lang_W_options): New global.
	(process_option_with_no): New function.
	(lang_decode_option): Use it.

From-SVN: r37244
2000-11-04 04:57:33 +00:00
Tom Tromey
316a06a103 jvspec.c (lang_specific_driver): Recognize -MF and -MT.
* jvspec.c (lang_specific_driver): Recognize -MF and -MT.
	* lang-specs.h: Added %{MA}, %{MF*}, %{MT*}.
	* lang-options.h: Added -MA, -MT, -MF..
	* lang.c (lang_decode_option): Recognize -MA, -MT, -MF.
	(DEPEND_TARGET_SET): New macro.
	(DEPEND_FILE_ALREADY_SET): Likewise.
	(init_parse): Handle new flags.
	* jcf.h (jcf_dependency_print_dummies): Declare.
	* Make-lang.in (s-java): Added mkdeps.o.
	* Makefile.in (BACKEND): Added mkdeps.o.
	(../gcjh$(exeext)): Added mkdeps.o.
	(../jcf-dump$(exeext)): Added mkdeps.o.
	* jcf-depend.c: Include mkdeps.h.
	(struct entry, dependencies, targets, MAX_OUTPUT_COLUMNS,
	add_entry): Removed.
	(jcf_dependency_reset): Rewrote.
	(dependencies): New global.
	(jcf_dependency_set_target): Rewrote.
	(jcf_dependency_add_target): Likewise.
	(jcf_dependency_add_file): Likewise.
	(munge): Removed.
	(print_ents): Removed.
	(jcf_dependency_write): Rewrote.
	(print_dummies): New global.
	(jcf_dependency_print_dummies): New function
	(jcf_dependency_write): Call deps_dummy_targets if required.

From-SVN: r36981
2000-10-20 21:19:29 +00:00
Alexandre Petit-Bianco
a93eddcf62 [multiple changes]
2000-10-11  Rodney Brown  <RodneyBrown@mynd.com>

        * java-tree.h: Constify current_encoding.
        * lang.c: Constify current_encoding.

2000-10-10  Jeff Sturm  <jeff.sturm@appnet.com>

        * jvgenmain.c (class_mangling_suffix): Omit `.'.
        (main): Use `$' when NO_DOLLAR_IN_LABEL is not set, otherwise `.'.

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

        * expr.c (java_lang_expand_expr): Reinstall 1999-08-14 Anthony's
        patch. Fixes gcj/340.

(http://gcc.gnu.org/ml/gcc-patches/2000-10/msg00374.html)

From-SVN: r36864
2000-10-13 14:06:45 -07:00
Mark Mitchell
19e223db83 Make-lang.in (JAVA_SRCS): Include java-tree.h.
* Make-lang.in (JAVA_SRCS): Include java-tree.h.
	* Makefile.in (parse.o): Depend on ggc.h.
	(class.o): Likewise.
	(constants.o): Likewise.
	(decl.o): Likewise.
	(expr.o): Likewise.
	(jcf-parse.o): Likewise.
	(jcf-write.o): Likewise.
	(mangle.o): Likewise.
	* class.c: Include ggc.h.
	(build_static_field_ref): Register GC roots.
	(layout_class): Likewise.
	(init_class_processing): Likewise.
	* constants.c: Include ggc.h.
	(current_constant_pool_data_ref): Remove.
	(tag_nodes): Move it to ...
	(get_tag_node): ... here.  Register GC roots.
	* decl.c: Include ggc.h.  Remove many global tree definitions.
	(throw_node): Define.
	(java_global_trees): Likewise.
	(predef_filenames): Make the size a constant.
	(init_decl_processing): Adjust accordingly.
	(init_decl_processing): Call init_jcf_parse.  Register GC roots.
	* expr.c: Include ggc.h.
	(init_expr_processing): Register GC roots.
	(build_invokeinterface): Likewise.
	* java-tree.h: Replace extern tree declarations with macros.
	(java_global_trees): New variable.
	(java_tree_index): New enumeration.
	(init_jcf_parse): Declare.
	* jcf-parse.c: Include ggc.h.
	(current_class): Remove declaration.
	(main_class): Likewise.
	(all_class_list): Likewise.
	(predefined_filename_p): Adjust for constant size of
	predef_filenames.
	(init_jcf_parse): New function.
	* jcf-write.c: Include ggc.h.
	(generate_classfile): Register GC roots.
	(append_synthetic_attribute): Likewise.
	(append_innerclass_attribute_entry): Likewise.
	* lang.c: Include ggc.h.
	(lang_print_error): Register GC roots.
	* parse.h (struct parser_ctxt): Rename fields to avoid conflicts
	with macros.
	* parse.y: Include ggc.h.
	(wfl_operator): Remove.
	(goal): Register GC roots.
	(java_pop_parser_context): Adjust for new field names.
	(java_parser_context_save_global): Likewse.
	(java_parser_context_restore_global): Likewise.
	(java_parser_context_suspend): Likewise.
	(java_parser_context_resume): Likewise.
	(verify_constructor_circularity): Register GC roots.
	(lookup_cl): Likewise.
	(java_reorder_fields): Likewise.
	(build_current_this): Likewise.
	(class_in_current_package): Likewise.
	(argument_types_convertible): Likewise.
	(patch_cast): Rename wfl_op parameter to avoid macro conflicts.

From-SVN: r36581
2000-09-23 17:09:39 +00:00
Tom Tromey
d19cbcb5e3 re GNATS gcj/33 (gcj mangles composed characters)
Fix for PR gcj/33:
	* jv-scan.c (help): Document --encoding.
	(options): Added `encoding' entry.
	(OPT_ENCODING): New define.
	(main): Handle --encoding.
	Include <langinfo.h> if nl_langinfo exists.
	* lang-options.h: Document --classpath, --CLASSPATH, --main, and
	--encoding.
	* jcf-parse.c Include <langinfo.h> if we have nl_langinfo.
	(parse_source_file): Correctly call java_init_lex.  Added `finput'
	argument.  Use nl_langinfo to determine default encoding.
	* java-tree.h (current_encoding): Declare.
	* parse.y (java_parser_context_restore_global): Don't restore
	`finput'.
	(java_parser_context_save_global): Don't set `finput' field.
	(java_pop_parser_context): Don't restore `finput'.  Free old lexer
	if required.
	* lang.c (current_encoding): New global.
	(lang_decode_option): Recognize `-fencoding='.
	(finish_parse): Don't close finput.
	* parse.h (struct parser_ctxt): Removed `finput' and
	`unget_utf8_value' fields.  Added `lexer' field.
	(java_init_lex): Fixed declaration.
	* lex.c (java_new_lexer): New function.
	(java_destroy_lexer): Likewise.
	(java_read_char): Added `lex' argument.  Handle iconv case.
	(java_read_unicode): Added `lex' argument.  Count backslashes in
	lexer structure.
	(java_init_lex): Added `finput' and `encoding' arguments.  Set
	`lexer' field in ctxp.
	(BAD_UTF8_VALUE): Removed.
	(java_lex): Handle seeing UEOF in the middle of a string literal.
	* lex.h: Include <iconv.h> if HAVE_ICONV defined.
	(java_lexer): New structure.
	(UNGETC): Removed.
	(GETC): Removed.
	(DEFAULT_ENCODING): New define.
	(java_destroy_lexer): Declare.

From-SVN: r36377
2000-09-12 22:23:59 +00:00
Greg McGary
6e2aa220c0 lang.c (lang_decode_option): Use ARRAY_SIZE.
* lang.c (lang_decode_option): Use ARRAY_SIZE.
	* parse.y (BINOP_LOOKUP): Likewise.

From-SVN: r35951
2000-08-24 20:34:39 +00:00
Alexandre Petit-Bianco
5f1c312aa0 java-tree.h (flag_extraneous_semicolon): New extern.
2000-08-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* java-tree.h (flag_extraneous_semicolon): New extern.
	* lang-options.h: (-Wextraneous-semicolon): New option.
	* lang.c (flag_redundant): Fixed typo in leading comment.
	(flag_extraneous_semicolon): New global.
	(lang_decode_option): Set `flag_extraneous_semicolon' when
	-Wall. Decode `-Wextraneous-semicolon'.
	* parse.y (type_declaration:): Removed `SC_TK' hack, added
	`empty_statement' rule.
	(class_body_declaration): Likewise.
	(method_body:): Accept `;' as a method body.
	(static_initializer:): Removed `SC_TK' hack.
	(constructor_block_end:): Likewise.
	(empty_statement:): Report deprecated empty declaration. Fixes
	gcj/295

(Fix to gcj/295: http://sources.redhat.com/ml/java-prs/2000-q3/msg00095.html)

From-SVN: r35929
2000-08-23 18:44:00 -07:00
Kaveh R. Ghazi
5ac9118ef9 Warning fixes:
* bb-reorder.c (build_scope_forest): Initialize variable
	`curr_scope'.

	* calls.c (expand_call): Likewise for variables
	`save_pending_stack_adjust' and `save_stack_pointer_delta'.

	* i386.c (function_arg_advance, function_arg): Cast to avoid
	signed/unsigned warnings.

	* i386.h (MEMORY_MOVE_COST): Likewise.

	* ifcvt.c (cond_exec_process_if_block): Initialize variables
	`else_start' and `else_end'.

	* libgcc2.h (__eh_alloc, __eh_free): Prototype.

	* regrename.c (rr_replace_reg): Initialize variable `dest_subregno'.

ch:
	* Makefile.in (EXPR_H): New dependency variable.
	(actions.o, expr.o): Use EXPR_H.
	(lang.o): Depend on RTL_H and EXPR_H.

	* lang.c: Include rtl.h and expr.h.
	(lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.

cp:
	* decl2.c (compare_options): Don't needlessly cast away const-ness.

f:
	* com.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.

java:
	* decl.c (create_primitive_vtable): Prototype.

	* jcf-write.c (generate_bytecode_insns): Initialize variable
	`saved_context'.

	* lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.

From-SVN: r34490
2000-06-11 04:29:49 +00:00
Richard Henderson
2e761e4919 alias.c (lang_get_alias_set): Remove.
gcc/
	* alias.c (lang_get_alias_set): Remove.
	(get_alias_set): Call it directly, not indirectly.
	* c-common.c (lang_get_alias_set): Rename from c_get_alias_set.
	* c-common.h (c_get_alias_set): Don't declare.
	* c-decl.c (init_decl_processing): Don't set lang_get_alias_set.
	* expr.h (lang_get_alias_set): Declare as function, not pointer.

gcc/ch/
	* lang.c (lang_get_alias_set): New.

gcc/cp/
	* decl.c (init_decl_processing): Don't set lang_get_alias_set.

gcc/f/
	* com.c (lang_get_alias_set): New.

gcc/java/
	* lang.c (lang_get_alias_set): New.

From-SVN: r34368
2000-06-02 17:33:00 -07:00
Andrew Cagney
078721e1a2 Add options -Wunused-variable, -Wunused-function, -Wunused-label,
-Wunused-parameter.  Retain existing -Wunused behavour.  Document.

From-SVN: r33953
2000-05-17 08:15:29 +00:00
Zack Weinberg
3b304f5b7d top level:
* Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
	(tree.o): Depend on output.h.

	* c-decl.c (pending_invalid_xref_file,
	current_function_prototype_file): Constify.
	(pushdecl): Constify a local char *.
	(define_label): Constify filename parameter.
	* c-lex.c (init_parse): Constify parameter and return value.
	* c-typeck.c (c_expand_asm_operands): Constify filename parameter.
	* c-tree.h: Update prototypes.
	* c-parse.in: Constify filename member of %union, and if_stmt_file.
	* c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
	objc/objc-parse.c: Regenerate.

	* dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
	* dwarfout.h: Update prototypes.
	* expr.c (expand_expr): Constify a local char *.
	* flags.h: Constify main_input_filename.
	* function.c (expand_function_end): Constify filename parameter.
	* genrecog.c (make_insn_sequence): Use a character array for
	c_test_pos.
	(main): Remove unused variables.
	* input.h: Constify input_filename, main_input_filename, and
	file_stack.name.  Update prototypes.
	* output.h: Declare first_global_object_name and
	weak_global_object_name here, as const char *.
	* stmt.c (expand_asm_operands): Constify filename parameter.
	* toplev.c (compile_file, push_srcloc, debug_start_source_file):
	Constify filename parameter.
	(input_filename, main_input_filename): Constify.
	* toplev.h: Update prototypes.
	* tree.c: Include output.h.  Don't declare
	first_global_object_name or weak_global_object_name.  Clean up string
	bashing in get_file_function_name_long.
	* tree.h (struct tree_decl): Constify filename member.
	(input_filename): Constify.
	Update prototypes.
	* varasm.c (first_global_object_name, weak_global_object_name):
	Constify.
	(assemble_start_function, assemble_variable): Clean up string bashing.

	* gcc.c: Constify all spec-related strings initialized,
	transitively, from string constants.  Constify all strings
	and string variables related to multilibs.
	(set_spec, read_specs): Cast argument to free to PTR.
	(used_arg): Do not modify multilib_matches.  Use strncmp plus
	length comparison to compare multilib switches.
	* genmultilib: Constify everything declared in multilib.h.

ch:
	* ch-tree.h: Update prototypes.  Remove prototypes for
	functions declared elsewhere.
	* decl.c (define_label): Constify filename parameter.
	* grant.c (globalize_decl, set_default_grant_file): Constify
	local char * variables.  Don't declare
	first_global_object_name or asm_out_file.
	* lang.c (chill_real_input_filename): Constify.
	* lex.c (init_parse): Constify parameter and return value.
	* parse.c: Don't declare input_filename.
	(ch_expand_asm_operands): Constify filename parameter.
	(parse_multi_dimension_case_action): Constify local char *.
	* satisfy.c (safe_satisfy_decl): Constify local char *.

cp:
	* cp-tree.h: Constify tree_srcloc.filename, tinst_level.file,
	and pending_inline.filename.  Update prototypes.
	* decl.c (define_label): Constify filename parameter.
	* decl2.c (warn_if_unknown_interface): Constify local char *.
	* input.c Constify input_source.filename. Don't declare
	input_filename or lineno.  Constify filename parameter to feed_input.
	* lex.c (init_parse): Constify parameter and return value.
	(cp_pragma_interface, cp_pragma_implementation): Constify
	filename argument.
	(reinit_parse_for_method, reinit_parse_for_block,
	reinit_parse_for_expr, feed_defarg, handle_cp_pragma):
	Constify local char *.
	* pt.c: Don't declare lineno or input_filename.
	(print_template_context, tsubst_friend_function, tsubst_decl,
	tsubst, instantiate_decl): Constify local char *.
	* semantics.c (expand_body): Constify local char *.
	* tree.c (build_srcloc): Constify filename parameter.
	* typeck.c (c_expand_asm_operands): Constify filename
	parameter.

f:
	* com.c (ffecom_subscript_check_): Constify array_name
	parameter. Clean up string bashing.
	(ffecom_arrayref_, ffecom_char_args_x_): Constify array_name
	parameter.
	(ffecom_do_entry_, ffecom_gen_sfuncdef_, ffecom_start_progunit_,
	ffecom_sym_transform_, ffecom_sym_transform_assign_): Constify
	local char *.
	(init_parse): Constify parameter and return value.
	* lex.c: Include dwarfout.h instead of prototyping dwarfout_*
	functions here.
	(ffelex_file_pop_, ffelex_file_push_): Constify filename parameter.
	(ffelex_hash_, ffelex_include_): Constify local char *.
	* std.c (ffestd_exec_end): Constify local char *.
	* where.c (ffewhere_file_new): Constify filename parameter.
	* where.h: Update prototypes.

java:
	* check_init.c (check_init): Constify local char *.
	* class.c (push_class): Constify local char *.
	* java_tree.h: Update prototypes.
	* jcf-io.c (open_class): Constify filename parameter and
	return value.
	(find_class): Remove redundant string copy.  Cast return from
	open_class.
	* jcf-parse.c (read_class, parse_class_file, yyparse):
	Constify local char *.
	* jcf-write.c (generate_bytecode_insns, generate_classfile):
	Constify local char *.
	* jcf.h (JCF): Constify filename and classname.
	(JCF_FINISH): Cast args to FREE to char * when appropriate.
	* lang.c (init_parse): Constify parameter and return value.
	* lex.c (java_get_line_col): Constify filename parameter.
	* parse.h: Constify parser_ctxt.filename.  Update prototypes.
	* parse.y (java_parser_context_suspend,
	issue_warning_error_from_context, safe_layout_class): Constify
	local char *.
	* parse.c: Regenerate.

From-SVN: r33804
2000-05-09 19:56:01 +00:00
Tom Tromey
7145d9fe6b class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE on native function.
* class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE
	on native function.
	* jcf-parse.c (parse_class_file): Call build_jni_stub for native
	JNI methods.
	* expr.c (build_jni_stub): New function.
	* lang-specs.h: -fjni and -femit-class-file are incompatible.
	* parse.c: Rebuilt.
	* parse.y (java_complete_expand_methods): Expand a native method
	and call build_jni_stub if -fjni given.
	* lang-options.h: Document -fjni.
	* lang.c (flag_jni): New global.
	(lang_f_options): Added `jni' entry.
	* java-tree.h (soft_lookupjnimethod_node,
	soft_getjnienvnewframe_node, soft_jnipopsystemframe_node):
	Declare.
	(flag_jni): Declare.
	(build_jni_stub): Declare.
	(struct lang_decl): Added `native' flag.
	(METHOD_NATIVE): Redefined to use `native' field of lang specific
	structure.
	* decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node,
	soft_jnipopsystemframe_node): New globals.
	(init_decl_processing): Set them.  _Jv_InitClass only takes one
	argument.

	* java-tree.def: Put into `C' mode.

From-SVN: r33615
2000-05-02 20:32:31 +00: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
Alexandre Petit-Bianco
c2952b018a Added Java 1.1 language features.
From-SVN: r32517
2000-03-13 21:01:05 -08: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
Jeff Law
3852e8afcc Fix copyrights
From-SVN: r32182
2000-02-26 13:02:01 -07: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