Commit Graph

152 Commits

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

From-SVN: r59227
2002-11-18 18:13:36 +00:00
Andrew Haley
fc5295fa6a expr.c (build_java_array_length_access): Check for null pointer.
2002-09-26  Andrew Haley  <aph@redhat.com>

	* expr.c (build_java_array_length_access): Check for null pointer.
	* expr.c (expand_java_arrayload): Likewise.

From-SVN: r57591
2002-09-27 18:27:44 +00:00
Kazu Hirata
ee142fe7a8 ChangeLog: Follow spelling conventions.
* ChangeLog: Follow spelling conventions.
	* class.c: Likewise.
	* decl.c: Likewise.
	* expr.c: Likewise.
	* gjavah.c: Likewise.
	* java-tree.h: Likewise.
	* jcf-dump.c: Likewise.
	* jcf-parse.c: Likewise.
	* jvspec.c: Likewise.
	* lang.c: Likewise.
	* mangle.c: Likewise.
	* parse.y: Likewise.

From-SVN: r57378
2002-09-21 02:19:44 +00:00
Andrew Haley
7149627b8e Make-lang.in (java-tree-inline.o): New.
2002-07-30  Andrew Haley  <aph@cambridge.redhat.com>

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

From-SVN: r56377
2002-08-16 10:32:30 +00:00
Geoffrey Keating
6d9f628e05 Index: ChangeLog
2002-08-04  Geoffrey Keating  <geoffk@redhat.com>

	* Makefile.in (sdbout.o): Doesn't need $(OBSTACK_H).
	* collect2.h (permanent_obstack): Delete declaration.
	* collect2.c (permanent_obstack): Delete definition.
	(main): Don't initialise permanent_obstack.  Use xstrdup instead.
	* expr.c: Don't include obstack.h.
	(permanent_obstack): Delete declaration.
	* function.c: Don't include obstack.h.
	(permanent_obstack): Delete declaration.
	* integrate.c: Don't include obstack.h.
	(function_maybepermanent_obstack): Delete declaration.
	* print-tree.c (debug_tree): Use x*alloc not permalloc.
	* sdbout.c (gen_fake_label): Use x*alloc not permalloc.
	* tlink.c (pfgets): Use xstrdup not permanent_obstack.
	* toplev.c (lang_independent_init): Rename init_obstacks to init_ttree.
	* tree.h: Rename init_obstacks to init_ttree.  Remove declarations
	of permalloc, expralloc, perm_calloc.
	* tree.c (permanent_obstack): Delete definition.
	(init_ttree): Rename from init_obstacks.
	(permalloc): Delete.
	(perm_calloc): Delete.
	(dump_tree_statistics): Don't print information about
	permanent_obstack.
	* varasm.c (assemble_start_function): Use xstrdup instead of
	permalloc/strcpy.
	(assemble_variable): Likewise.
	* config/alpha/alpha.c (unicosmk_need_dex): Use xmalloc instead of
	permalloc.
	(unicosmk_add_extern): Likewise.
	* config/c4x/c4x.c (c4x_external_ref): Likewise.
	(c4x_global_label): Likewise.
	* config/frv/frv.c (frv_encode_section_info): Likewise.
	* config/i386/winnt.c (i386_pe_record_external_function): Likewise.
	(i386_pe_record_exported_symbol): Likewise.
	* config/mips/mips.c (mips_output_external): Likewise.
	(mips_output_external_libcall): Likewise.
	* config/pa/pa.c: (permanent_obstack): Delete declaration.
	(output_call): Use ggc_strdup instead of allocating on
	permanent_obstack.
	* config/romp/romp.c: Include ggc.h.
	(get_symref): Don't declare permanent_obstack, use ggc_strdup
	intead of permanent_obstack.
	* config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use concat
	instead of permalloc.
	* config/rs6000/rs6000.c (rs6000_gen_section_name): Use xmalloc
	instead of permalloc
	* config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Use concat
	instead of permalloc.
	* config/vax/vax.c (vms_check_external): Use xmalloc instead of
	permalloc.

Index: cp/ChangeLog
2002-08-04  Geoffrey Keating  <geoffk@redhat.com>

	* cvt.c (ocp_convert): Delete obsolete code.
	* parse.y (permanent_obstack): Delete declaration.
	* pt.c (permanent_obstack): Delete declaration.
	* repo.c (permanent_obstack): Delete declaration.
	(open_repo_file): Use xmalloc instead of permanent_obstack.
	(init_repo): Use xstrdup instead of permanent_obstack.

Index: java/ChangeLog
2002-08-04  Geoffrey Keating  <geoffk@redhat.com>

	* class.c: (permanent_obstack): Delete declaration.
	* constants.c: (permanent_obstack): Delete declaration.
	* except.c: (permanent_obstack): Delete declaration.
	* expr.c: (permanent_obstack): Delete declaration.
	* jcf-parse.c: (permanent_obstack): Delete declaration.
	(saveable_obstack): Delete declaration.
	* parse.h: (permanent_obstack): Delete declaration.
	* typeck.c: (permanent_obstack): Delete declaration.

From-SVN: r56035
2002-08-04 22:45:31 +00:00
Andreas Schwab
b6532e573f * expr.c (JSR): Avoid undefined operation on PC.
From-SVN: r54987
2002-06-25 13:27:19 +00:00
Zack Weinberg
c02ebb1834 java-tree.h, [...]: Remove all #if JAVA_USE_HANDLES blocks...
* java-tree.h, class.c, expr.c, jcf-parse.c, parse.y,
	typeck.c, verify.c: Remove all #if JAVA_USE_HANDLES blocks,
	all mention of CLASS_TO_HANDLE_TYPE or HANDLE_TO_CLASS_TYPE,
	and all now-pointless local variables.  Rename other local
	variables to reflect their not being handles.

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

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

From-SVN: r54261
2002-06-04 20:32:08 +00:00
Geoffrey Keating
e2500fedef Merge from pch-branch up to tag pch-commit-20020603.
From-SVN: r54232
2002-06-04 07:11:05 +00:00
Per Bothner
67f0a6bf01 expr.c (PRE_JSR): Call NOTE_LABEL for return address.
* expr.c (PRE_JSR):  Call NOTE_LABEL for return address.
	* java-tree.h (BCODE_RETURN_TARGET):  Removed - never set.
	(BCODE_TARGET):  Remove BCODE_RETURN_TARGET.

From-SVN: r52735
2002-04-24 15:14:59 -07:00
Bryce McKinlay
b798d8b64d class.c (make_class_data): Set DECL_ALIGN on static class data, for hash synchronization.
* class.c (make_class_data): Set DECL_ALIGN on static class data,
	for hash synchronization.
	* expr.c (java_expand_expr): Set DECL_ALIGN on static array objects.
	* decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for
	class_type_node.

From-SVN: r52448
2002-04-18 00:13:11 +01:00
Neil Booth
78ef5b895f c-common.c (truthvalue_conversion): Rename, update.
* c-common.c (truthvalue_conversion): Rename, update.
	* c-common.h (c_common_truthvalue_conversion): New.
	* c-convert.c (convert): Update.
	* c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
	* c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
	* c-typeck.c (build_binary_op, build_unary_op,
	build_conditional_expr): Update.
	* fold-const.c (constant_boolean_node, fold): Use langhook.
	* langhooks-def.h (LANGHOOK_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New hook.
	* stmt.c (expand_decl_cleanup): Use langhook.
	* tree.h (truthvalue_conversion): Remove.
ada:
	* gigi.h (truthvalue_conversion): Rename.
	* misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
	* trans.c (tree_transform): Update.
	* utils2.c (truthvalue_conversion): Rename, update.
	(build_binary_op, build_unary_op): Update.
cp:
	* cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
	* cvt.c: Update comment.
	* init.c (expand_cleanup_for_base): Update.
	* semantics.c (finish_parenthesized_expr): Update.
	* typeck.c (cp_truthvalue_conversion): Update.
f:
	* com.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
	(truthvalue_conversion): Rename.  Update.  Make static.
	(ffecom_truth_value): Update.
java:
	* expr.c (truthvalue_conversion): Rename.  Update.
	(expand_compare): Update.
	* java-tree.h (java_truthvalue_conversion): New.
	* lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
objc:
	* objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.

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

From-SVN: r51684
2002-04-01 08:46:10 +00:00
Tom Tromey
39bea3744d expr.c (expand_invoke): Don't generate null pointer check if we're calling <init>.
* expr.c (expand_invoke): Don't generate null pointer check if
	we're calling <init>.

From-SVN: r51487
2002-03-27 23:12:05 +00:00
Neil Booth
c9d892a83f c-common.c (c_expand_expr): Fix prototype.
* c-common.c (c_expand_expr): Fix prototype.
	* c-common.h (c_expand_expr): Always declare, update.
	* c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
	* c-objc-common.c (c_objc_common_init): No global hook.
	* expr.c (expand_expr): Use langhook.
	* expr.h (enum expand_modifier): Conditionally declare.
	* langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_expand_expr): New.
	* langhooks.h (struct lang_hooks): New hook.
	* toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
	(lang_independent_init): Don't default hook.
ada:
	* misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
	(gnat_init): Don't set hook.
	(gnat_expand_expr): Fix prototype.
cp:
	* cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
	* cp-tree.h (init_cplus_expand): Remove.
	(cxx_expand_expr): New.
	* expr.c (cplus_expand_expr): Rename cxx_expand_expr,
	fix prototype.
	(init_cplus_expand): Remove.
	* lex.c (cxx_init): Don't call init_cplus_expand.
java:
	* expr.c (java_lang_expand_expr): Rename java_expand_expr,
	fix prototype.
	* java-tree.h (java_lang_expand_expr): Similarly.
	* lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
	(java_init): Don't set hook.
objc:
	* objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.

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

From-SVN: r51438
2002-03-27 08:27:27 +00:00
Tom Tromey
c58408bf8d Andrew Haley <aph@cambridge.redhat.com>
2002-03-22  Tom Tromey  <tromey@redhat.com>

	Andrew Haley  <aph@cambridge.redhat.com>

	* expr.c (build_field_ref): Don't build a check if the field is a
	member of `this'.

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

From-SVN: r50570
2002-03-11 11:15:10 +00:00
Per Bothner
5295f849ca re PR java/5812 (GCJ 3.0.2 segfaults on class file from Sun JDK 1.3 compiler)
Fix for PR java/5812.
	* expr.c (build_java_jsr):  Take pc arguments, and do lookup_label
	gere instead of in JSR macro.  Likewise with load_type_state call.
	Do the latter on if the return_pc has been verified (the jsr returns).
	(JSR):  No just call build_java_jsr.

From-SVN: r50455
2002-03-08 12:59:52 -08:00
Zack Weinberg
ba31d94ee6 emit-rtl.c, [...]: Remove all #ifndef REAL_ARITHMETIC blocks...
* emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
	print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
	tree.c, config/m68k/m68k.c, f/com.c, f/target.h, java/expr.c,
	java/jcf-parse.c, java/lex.c:
	Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
	REAL_ARITHMETIC blocks unconditional.  Delete some further
	#ifdef blocks predicated on REAL_ARITHMETIC.
	* flags.h, toplev.c: Delete remaining references to
	flag_pretend_float.

	* doc/invoke.texi: Remove documentation of -fpretend-float.
	* doc/tm.texi: Describe the various REAL_* macros as provided by
	real.h, not by the target configuration files.

	* config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
	config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
	config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
	config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
	config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
	config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
	config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
	config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
	config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
	config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
	config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
	config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
	config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
	config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
	config/xtensa/xtensa.h:
	Do not define, undefine, or mention in comments any of
	REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
	REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
	REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
	REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
	REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
	REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
	REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
	REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
	REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.

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

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

From-SVN: r49909
2002-02-20 11:53:49 -08:00
Tom Tromey
adc8cb5dea expr.c (build_jni_stub): Ensure storage for `meth' is generated.
* expr.c (build_jni_stub): Ensure storage for `meth' is
	generated.
	* parse.y (java_complete_expand_methods): Set
	current_function_decl before building JNI stub.

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

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

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

From-SVN: r49091
2002-01-22 20:23:46 +00:00
Bryce McKinlay
08514ae4a5 expr.c (build_java_array_length_access): Don't force null pointer check unless flag_check_references is set.
* expr.c (build_java_array_length_access): Don't force null pointer
	check unless flag_check_references is set.

From-SVN: r48219
2001-12-20 22:47:39 +00:00
Joseph Myers
a83f01f040 ChangeLog, [...]: Fix spelling errors.
* ChangeLog, Make-lang.in, class.c, expr.c, gcj.texi, java-tree.h,
	jcf-parse.c, jcf-write.c, lex.c, parse.h, parse.y, verify.c: Fix
	spelling errors.

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

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

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

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

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

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

From-SVN: r47525
2001-12-02 10:44:54 +00:00
Neil Booth
357351e5a7 c-decl.c (duplicate_decls, [...]): Remove trailing period from diagnostics.
* c-decl.c (duplicate_decls, parmlist_tags_warning): Remove
	trailing period from diagnostics.
	* c-lex.c (cb_file_change): Similarly.
	* cppmacro.c (check_trad_stringification): Similarly.
	* gcc.c (do_spec_1): Similarly.
	* genattr.c (main): Similarly.
	* genattrtab.c (main, operate_exp, make_length_attrs): Similarly.
	* gencodes.c (main): Similarly.
	* genconfig.c (main): Similarly.
	* genconstants.c (main): Similarly.
	* genemit.c (main): Similarly.
	* genextract.c (main): Similarly.
	* genopinit.c (main): Similarly.
	* genoutput.c (main): Similarly.
	* genpeep.c (main): Similarly.
	* genrecog.c (main): Similarly.
	* mips-tfile.c (add_file, error): Similarly.
	* profile.c (init_branch_prob): Similarly.
	* reload1.c (spill_failure): Similarly.
	* stmt.c (parse_output_constraint): Similarly.
	* varasm.c (assemble_variable): Similarly.
cp:
	* class.c (finish_struct): Similarly.
	* decl.c (check_tag_decl): Similarly.
	* lex.c (cxx_set_yydebug): Similarly.
	* typeck2.c (friendly_abort): Similarly.
java:
	* expr.c (expand_byte_code): Similarly.
	* jcf-parse.c (load_class, jcf_parse): Similarly.
	* jcf-write.c (generate_classfile): Similarly.
	* lex.c (java_lex): Similarly.

From-SVN: r47517
2001-12-01 18:42:49 +00:00
Bryce McKinlay
961b8e7028 expr.c (expand_java_field_op): Don't special-case references to java.lang.PRIMTYPE.TYPE.
* expr.c (expand_java_field_op): Don't special-case references to
	java.lang.PRIMTYPE.TYPE.
	(build_primtype_type_ref): Removed.
	* java-tree.h (build_primtype_type_ref): Remove prototype.
	* parse.y (maybe_build_primttype_type_ref): Removed.
	(complete_function_arguments): Don't special-case references to
	java.lang.PRIMTYPE.TYPE.
	(patch_assignment): Likewise.
	(array_constructor_check_entry): Likewise.

From-SVN: r46522
2001-10-26 02:53:56 +01:00
Richard Henderson
6723181663 tree.def (FDESC_EXPR): New.
gcc/
        * tree.def (FDESC_EXPR): New.
        * expr.c (expand_expr): Handle it.
        * varasm.c (initializer_constant_valid_p): Likewise.
        (output_constant): Likewise.
        * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
        * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
        (ASM_OUTPUT_FDESC): New.
        * doc/tm.texi: Document the new macros.
gcc/cp/
        * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
        (build_vtbl_initializer): Likewise.
        (build_vfn_ref): New.
        * cp-tree.h: Declare it.
        * call.c (build_over_call): Use it.
        * decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
        * typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
gcc/java/
        * class.c (get_dispatch_table): Handle function descriptors.
        (build_dtable_decl): Likewise.
        * expr.c (build_invokevirtual): Likewise.
gcc/testsuite/
        * g++.old-deja/g++.abi/ptrmem.C: Update for ia64 c++ abi.
        * g++.old-deja/g++.abi/vtable2.C: Likewise.

From-SVN: r45733
2001-09-21 09:58:22 -07:00
Kaveh R. Ghazi
83182544db c-parse.in (yyerror): Const-ification and/or static-ization.
* c-parse.in (yyerror): Const-ification and/or static-ization.
	* c-typeck.c (push_member_name): Likewise.
	* collect2.c (main): Likewise.
	* dbxout.c (dbxout_parms): Likewise.
	* diagnostic.c (format_with_decl): Likewise.
	* dwarf2out.c (output_ranges): Likewise.
	* dwarfout.c (fundamental_type_code): Likewise.
	* except.c (dw2_output_call_site_table): Likewise.
	* gcc.c (do_spec_1): Likewise.
	* genopinit.c (optabs): Likewise.
	* objc/objc-act.c (synth_id_with_class_suffix, start_class,
	gen_declaration_1, handle_impent): Likewise.
	* protoize.c (default_include, in_system_include_dir, abspath):
	Likewise.
	* sched-vis.c (visualize_stall_cycles): Likewise.
	* sdbout.c (plain_type_1, sdbout_end_function,
	sdbout_end_epilogue): Likewise.
	* varasm.c (decode_reg_name): Likewise.

	* 1750a.c (mod_regno_adjust): Likewise.
	* alpha.c (alpha_write_one_linkage,
	unicosmk_output_default_externs): Likewise.
	* arm.c (arm_condition_codes): Likewise.
	* arm.h (arm_condition_codes): Likewise.
	* avr.c (output_movsisf, encode_section_info): Likewise.
	* darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
	Likewise.
	* i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
	* i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
	* m88k.c (output_function_profiler): Likewise.
	* mips.c (mips_output_conditional_branch): Likewise.
	* ns32k.c (ns32k_out_reg_names): Likewise.
	* ns32k.h (ns32k_out_reg_names): Likewise.
	* pj.c (pj_output_rval): Likewise.
	* rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
	* sparc.c (sparc_flat_function_prologue,
	sparc_flat_function_epilogue): Likewise.

cp:
	* decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
	Const-ification.
	* pt.c (tsubst_decl): Likewise.

f:
	* bad.c (ffebad_finish): Const-ification and/or static-ization.
	* intrin.c (ffeintrin_cmp_name_): Likewise.
	* stc.c (ffestc_R904): Likewise.

java:
	* expr.c (expand_invoke): Const-ification.
	* parse.y (patch_method_invocation): Likewise.

From-SVN: r45581
2001-09-13 14:37:29 +00:00
Alexandre Petit-Bianco
171262081c [multiple changes]
2001-08-16  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* jcf-parse.c (load_class): New locals saved and class_loaded. If
	loading a class_or_name fails, try considering an innerclass name
	and load the enclosing context.
	* parse.y (resolve_inner_class): New function.
	(find_as_inner_class): Added leading comment.
	(register_incomplete_type): Keep the current context as enclosing
	context for JDEP_FIELD dependencies.
	(do_resolve_class): Locals new_class_decl and super initialized to
	NULL. Call resolve_inner_class, explore the enclosing context
	superclass if necessary.
	Fixes PR java/4007

2001-08-12  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* decl.c (init_decl_processing): exception_type_node,
	class_not_found_type_node, and no_class_def_found_type_node
	initialized. predef_filenames augmented accordingly.
	instinit_identifier_node initialized.
	* java-tree.def (INSTANCE_INITIALIZERS_EXPR): Entry removed.
	* java-tree.h (enum java_tree_index): New entries
	JTI_EXCEPTION_TYPE_NODE, JTI_CLASS_NOT_FOUND_TYPE_NODE,
	JTI_NO_CLASS_DEF_FOUND_TYPE_NODE, JTI_INSTINIT_IDENTIFIER_NODE.
	(exception_type_node): New macro.
	(class_not_found_type_node): Likewise.
	(no_class_def_found_type_node): Likewise.
	(instinit_identifier_node): Likewise.
	(PREDEF_FILENAMES_SIZE): Adjusted.
	(TYPE_HAS_FINAL_VARIABLE): Fixed typo.
	(struct lang_type): Fixed typo in bitfield name.
	(DECL_INSTINIT_P): New macro.
	(ID_INSTINIT_P): Likewise.
	* jcf-write.c (generate_classfile): instinit$ bears the Synthetic
	attribute.
	* parse.y (encapsulate_with_try_catch): New function.
	(generate_instinit): Likewise.
	(build_instinit_invocation): Likewise.
	(ctors_unchecked_throws_clause_p): Likewise.
	(add_instance_initializer): Deleted.
	(build_instance_initializer): Likewise.
	(in_instance_initializer): Likewise.
	(check_method_redefinition): instinit$ not to be verified.
	(java_complete_expand_methods): Generate instinit$, simplified code.
	(build_dot_class_method): Eliminated unnecessary locals. Use
	encapsulate_with_try_catch, removed unnecessary code.
	(fix_constructors): New local iii. Use build_instinit_invocation.
	(patch_method_invocation): Added comment.
	(maybe_use_access_method): Don't consider instinit$.
	(find_applicable_accessible_methods_list): Shorten the search for
	instinit$ too.
	(java_complete_lhs): case INSTANCE_INITIALIZERS_EXPR removed.
	(patch_return): Use DECL_INSTINIT_P instead of in_instance_initializer.
	(patch_throw_statement): Likewise. Fixed typo.

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

	* expr.c (java_lang_expand_expr): Call `expand_end_bindings' and
	`poplevel' in the right order.

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

From-SVN: r44982
2001-08-17 14:07:07 -07: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
a3cb5122ec expr.c (expand_load_internal): New function.
* expr.c (expand_load_internal): New function.
	(LOAD_INTERNAL): Use it.

From-SVN: r43969
2001-07-12 17:06:40 +00:00
Alexandre Petit-Bianco
0c90837b16 expr.c (force_evaluation_order): Match wrapped ctor calls, locate arguments accordingly.
2001-06-04  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* expr.c (force_evaluation_order): Match wrapped ctor calls, locate
	arguments accordingly.

(http://gcc.gnu.org/ml/gcc-patches/2001-06/msg00214.html)

From-SVN: r42910
2001-06-05 08:48:58 -07:00
Jeff Sturm
8fc6a63c64 expr.c (build_class_init): Move MODIFY_EXPR outside of COND_EXPR.
2000-05-02  Jeff Sturm  <jsturm@one-point.com>

	* expr.c (build_class_init): Move MODIFY_EXPR
	outside of COND_EXPR.  Remove variable `call'.

From-SVN: r42134
2001-05-15 23:41:10 -07:00
Richard Henderson
f17f18980b java-tree.def (JAVA_EXC_OBJ_EXPR): New.
* java-tree.def (JAVA_EXC_OBJ_EXPR): New.
        * expr.c (java_lang_expand_expr): Expand it.
        (process_jvm_instruction): Build JAVA_EXC_OBJ_EXPR instead of
        calling build_exception_object_ref.
        * parse.y (catch_clause_parameter): Likewise.
        (build_dot_class_method): Likewise.
        (try_reference_assignconv): Likewise.
        * check-init.c (check_init): Check JAVA_EXC_OBJ_EXPR not EXC_PTR_EXPR.
        * jcf-write.c (generate_bytecode_insns): Likewise.

From-SVN: r42030
2001-05-12 21:59:33 -07:00
Zack Weinberg
44a2150dce expr.c (pop_type_0): Save the result of the first lang_printable_name call in a scratch buffer...
* expr.c (pop_type_0): Save the result of the first
	lang_printable_name call in a scratch buffer, so it
	won't be clobbered by the second call.

From-SVN: r41032
2001-04-03 01:01:41 +00:00
Kaveh R. Ghazi
80122075e3 expr.c (pop_type_0): Call `concat' rather than building the string manually.
* expr.c (pop_type_0): Call `concat' rather than building the
	string manually.
	(pop_type): Add format specifier in call to `error'.

	* parse.y (patch_method_invocation): Avoid casting away
	const-ness.

From-SVN: r40940
2001-03-28 19:31:43 +00:00
Richard Henderson
52a11cbfcf IA-64 ABI Exception Handling.
From-SVN: r40924
2001-03-28 03:04:51 -08:00
Richard Henderson
ce1c98ea45 java-tree.h (throw_node): Define as a single member of java_global_trees instead of a separate array.
* java-tree.h (throw_node): Define as a single member of
        java_global_trees instead of a separate array.
        (JTI_THROW_NODE): New.
        * decl.c (throw_node): Don't declare.
        (init_decl_processing): Init a scalar throw_node.
        Don't register it for gc.
        * check-init.c (check_init): Reference scalar throw_node.
        * expr.c (build_java_athrow): Likewise.
        * jcf-write.c (generate_bytecode_insns): Likewise.
        * parse.h (BUILD_THROW): Likewise.

From-SVN: r40922
2001-03-28 00:59:30 -08:00
Richard Henderson
531073e70e Make -fsjlj-exceptions a configure option.
From-SVN: r40905
2001-03-27 21:24:24 -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