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-02-28 Alexandre Petit-Bianco <apbianco@redhat.com>
Fix for PR java/5758, java/5632:
* jcf-parse.c (load_class): Renamed local variable, consider `.' an
inner-class separator too.
* parse.y (do_resolve_class): New local `decl_result.'
Progressively build a name for what can have been loaded.
From-SVN: r50228
* 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
* c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
gcc.c, toplev.c: Delete code implementing -traditional mode.
* ada/misc.c, ch/ch-tree.h, ch/decl.c, cp/decl2.c, f/com.c,
f/lex.c, f/top.c, java/builtins.c, java/decl.c: Delete
traditional-mode-related code copied from the C front end
but not used, or used only to permit the compiler to link.
* doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
Document removal of -traditional mode for compilation, and
remove documentation only relevant to that mode.
* config/nextstep.h, config/ptx4.h, config/svr4.h,
config/convex/convex.h, config/d30v/d30v.h,
config/i386/dgux.h, config/i386/osf1elf.h,
config/i386/osfelf.h, config/i386/osfrose.h,
config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
config/m68k/hp310.h, config/m88k/dgux.h,
config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
config/m88k/m88k.h, config/m88k/openbsd.h,
config/mips/abi64.h, config/mips/osfrose.h,
config/mips/svr4-5.h, config/mips/svr4-t.h,
config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
config/stormy16/stormy16.h: Remove all references to
-traditional from target specs. Delete all mention of the
no-longer-necessary TRADITIONAL_RETURN_FLOAT macro. Also
delete a couple of commented-out definitions of
DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
to -traditional.
* system.h: Poison TRADITIONAL_RETURN_FLOAT.
* doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
* testsuite/gcc.c-torture/execute/920730-1t.c,
testsuite/gcc.c-torture/execute/920730-1t.x,
testsuite/gcc.dg/ext-glob.c: Delete test cases, only relevant
to -traditional.
From-SVN: r50110
Fix for PR java/2369:
* jvspec.c (verify_class_name): New function.
(lang_specific_driver): Call it.
(JAVA_START_CHAR_P): New macro.
(JAVA_PART_CHAR_P): Likewise.
From-SVN: r49981
* class.c: Change vtable to be more compatible with g++ v3 abi.
(get_dispatch_table): Prepend offset-to-top (always 0) and
type_info pointer (currently unimplemented hence NULL) to vtable.
Specifically, prepend offset-to-top and typeinfo ptr (currently null).
(make_class_data): Variable dtable_start_offset is sizeof 2 pointers.
Adjust vtable pointers by dtable_start_offse - i.e. skip new words.
(build_dtable_decl): Add declarations for new fields.
From-SVN: r49978
* parse.y (patch_method_invocation): Set CAN_COMPLETE_NORMALLY on call
to finit$ (otherwise generate_bytecode_insns drops it). However, we
don't need to set it on the COMPOUND_EXPR - the caller does that.
From-SVN: r49966
* 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-04 Anthony Green <green@redhat.com>
* output.h (SECTION_OVERRIDE): Define.
* varasm.c (named_section): Obey SECTION_OVERRIDE.
java:
2002-02-04 Anthony Green <green@redhat.com>
* class.c (build_utf8_ref): Put UTF-8 constants into merged
sections if available.
From-SVN: r49469
* class.c (add_field): Mark static fields external.
(build_class_ref): Remove redundant set.
* parse.y (java_expand_classes): Mark static fields of classes
to be compiled as local.
* jcf-parse.c (parse_class_file): Likewise.
From-SVN: r49458
2002-02-01 Craig Rodrigues <rodrigc@gcc.gnu.org>
PR java/5080
* jcf-parse.c : Check for HAVE_LOCALE_H before using
setlocale() with LC_CTYPE as a parameter.
* jv-scan.c: Same.
From-SVN: r49410
gcc:
* gccbug.in: Follow GNU Coding Standards for --version. Use GCC
version rather than GNATS version in --version output.
gcc/f:
* g77spec.c (lang_specific_driver): Follow GNU Coding Standards
for --version.
gcc/java:
* gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
Follow GNU Coding Standards for --version.
libjava:
* gnu/gcj/convert/Convert.java: Only include one copyright year in
--version output.
From-SVN: r49372
* 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
* gjavah.c (print_stub_or_jni): Cause exception to be thrown by
default.
(process_file): Generate include for
java.lang.UnsupportedOperationExceptions.
From-SVN: r48928
* jcf-parse.c (get_constant): Don't swap lo/hi for big
endian targets when HOST_BITS_PER_WIDE_INT >= 64.
Co-Authored-By: Martin Kahlert <martin.kahlert@infineon.com>
From-SVN: r48786
* boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Merge into ..
(get_boehm_type_descriptor): ... here. Arrange for the
TREE_TYPE to get set properly.
From-SVN: r48261
* parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
CAN_COMPLETE_NORMALLY for the node.
* jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
generate code for second branch if first branch can't complete
normally.
(generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
the loop head if the loop body can't complete normally.
From-SVN: r48249
* parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
CAN_COMPLETE_NORMALLY for the node.
* jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
generate code for second branch if first branch can't complete
normally.
(generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
the loop head if the loop body can't complete normally.
From-SVN: r48233
Fixes PR java/5057:
* parse.y (analyze_clinit_body): Added this_class parameter.
Check for more cases where we must keep <clinit>.
(maybe_yank_clinit): Cleaned up flow control.
From-SVN: r48231
Fix for PR java/3417:
* parse.y (patch_assignment): Added special processing for
`return'.
(patch_return): Don't convert booleans to integers, and don't
special-case `null'.
From-SVN: r48208
* Makefile.in (info, $(docdir)/gcc.info, dvi, gcc.dvi): Update
dependencies.
($(docdir)/gccint.info, gccint.dvi): New targets.
(maintainer-clean, install-info, uninstall): Update.
* doc/.cvsignore: Add gccint.info*.
* doc/include/gcc-common.texi: New file.
* doc/gcc.texi: Use it. Adjust to be a user-only manual. Put
copyright notice in a macro. Don't include ISBN unless FSFPRINT
is defined.
* doc/gccint.texi: New file.
* doc/configfiles.texi, doc/extend.texi, doc/invoke.texi,
doc/md.texi, doc/passes.texi, doc/tm.texi, doc/trouble.texi:
Update for separate user and internals manuals.
f:
* g77.texi, invoke.texi: Update links to GCC manual.
java:
* gcj.texi: Update link to GCC manual.
From-SVN: r48119
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
* gcj.texi: Markup for man page generation. Document missing
options printed by <tool> --help.
Terminate description of gij's -ms option with a dot.
* Make-lang.in ($(srcdir)/java/*.1): New targets.
(java.generated-manpages java.install-man, java.uninstall,
java-maintainer-clean) Updated.
From-SVN: r48016
* check-init.c (current_switch_has_default): New static field.
(check_init): Case DEFAULT_EXPR: Set current_switch_has_default.
Case SWITCH_EXPR: Save/restore current_switch_has_default. If no
DEFAULT_EXPR seen, simulate a default alternative that copies state.
From-SVN: r47833
* check-init.c (check_init): Don't allow pre- or post- increment
or decrement of final variable.
(final_assign_error): Minor error message rewording.
From-SVN: r47821
* decl.c (complete_start_java_method): Now generate TRY_FINALLY_EXPR
instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
* jcf-write.c (generate_bytecode_insns): Remove support for
CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used.
* check-init.c (check_init): Likewise.
From-SVN: r47587
* verify.c (subroutine_nesting): New function.
(verify_jvm_instructions): Use it to fix logic for checking that
we're done with the current subroutine.
* verify.c (verify_jvm_instruction): For OPCODE_checkcast and
OPCODE_instanceof use POP_TYPE macro for better diagnostics.
From-SVN: r47572
Fix for PR java/1401:
* jcf-write.c (generate_bytecode_insns) [binop]: Handle case where
arg0 is null.
(generate_bytecode_insns) [MODIFY_EXPR]: Handle `OP=' case
correctly.
From-SVN: r47156
* gjavah.c (method_signature): New global.
(HANDLE_METHOD): Set it.
(decompile_return_statement): New function.
(decompile_method): Use it.
(print_method_info): Removed `synth' argument.
From-SVN: r46999
* configure.in: Add AC_ARG_PROGRAM to support program name
transformation with --program-prefix, --program-suffix and
--program-transform-name.
* Makefile.in (GCC_INSTALL_NAME, CPP_INSTALL_NAME,
PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
GCCBUG_INSTALL_NAME, GCC_CROSS_NAME, CPP_CROSS_NAME,
PROTOIZE_CROSS_NAME, UNPROTOIZE_CROSS_NAME): Handle
program_transform_name the way suggested by autoconf.
(GCC_TARGET_INSTALL_NAME): Define.
(install-driver): Use the transformed target alias name.
* Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
DEMANGLER_CROSS_NAME): Handle program_transform_name the way
suggested by autoconf.
(GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
(c++.install-common): Use the transformed target alias names.
* Make-lang.in (G77_INSTALL_NAME, G77_CROSS_NAME): Handle
program_transform_name the way suggested by autoconf.
* Make-lang.in (JAVA_INSTALL_NAME, JAVA_CROSS_NAME): Handle
program_transform_name the way suggested by autoconf.
(java.install-common): Also transform auxiliary program names with
program_transform_name.
From-SVN: r46856
* parse.y (trap_overflow_corner_case): New rule.
(unary_expression): Use it.
* lex.c (java_init_lex): Don't set minus_seen.
(yylex): Don't use minus_seen. Communicate overflow to parser for
it to handle.
(error_if_numeric_overflow): New function.
* parse.h (minus_seen): Removed field.
(JAVA_RADIX10_FLAG): New define.
From-SVN: r46846
* parse.y (case_label_list): New global.
(goal): Register case_label_list with GC.
(java_complete_lhs): Save new case on case_label_list.
(patch_switch_statement): Check for duplicate case labels.
From-SVN: r46845
* mangle.c (find_compression_record_match): Don't match compression
records for package name elements unless they occur at the start of
the name. Fix for PR java/4717.
From-SVN: r46628
2001-10-24 Alexandre Petit-Bianco <apbianco@redhat.com>
* mangle.c (static tree compression_table): Fixed leading comment.
* parse.h (struct parser_ctxt): Fixed field comment.
* parse.y (check_pkg_class_access): New prototype, fixed leading
comment, new parameter used to emit error only if passed as true.
(parse_check_super): Pass extra argument to check_pkg_class_access.
(do_resolve_class): Likewise.
(process_imports): Likewise.
(read_import_dir): Fixed indentation.
(find_in_imports_on_demand): New local class_type_name. Local
node_to_use deleted. while loop changed into for loop. Report
multiple definition only for accessible classes. Improved error
message.
(start_complete_expand_method): Local `ptr' removed. DECL_ARGUMENTS
assigned to parameter list, fixed indentation. while loop changed
into for loop, restore TREE_CHAIN on local `tem' before the next
iteration.
( http://gcc.gnu.org/ml/gcc-patches/2001-10/msg01323.html )
From-SVN: r46498
* 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
* parse.y (patch_synchronized_statement): Use a TRY_FINALLY_EXPR
rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair.
The former is simpler, and jcf-write.c handles it better.
(java_complete_lhs): No longer need to handle CLEANUP_POINT_EXPR
or WITH_CLEANUP_EXPR.
* jcf-write.c: Revert Alex's change from 2000-10-18. It is no
longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine.
From-SVN: r46209
2001-10-09 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (patch_cast): Call patch_string on the first operand of
the incoming node, update it if necessary. Fixes java/4510.
2001-10-05 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (register_incomplete_type): Set JDEP_SUPER to be given
a NULL enclosing context if appropriate. Fixes java/4466.
2001-09-17 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (patch_method_invocation): Inner class creation context
check not enforced within constructors. Fixes PR java/1873.
( http://gcc.gnu.org/ml/gcc-patches/2001-10/msg00397.html )
From-SVN: r46133
2001-10-03 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (patch_assignment): Use lvalue's original TYPE when
building the final COMPOUND_EXPR.
(try_reference_assignconv): Fixed leading comment.
( http://gcc.gnu.org/ml/java-patches/2001-q4/msg00027.html )
From-SVN: r46004
2001-09-26 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (check_final_variable_indirect_assignment): For
COMPOUND_EXPR, return only if finals were found initialized
properly, if not, keep on checking.
(check_final_variable_global_assignment_flag): New local
error_found, set when appropriate and used to decide whether to
report uninitialized finals. Fixed typo in comment.
( http://gcc.gnu.org/ml/gcc-patches/2001-09/msg01160.html )
From-SVN: r45844
2001-09-19 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.h: (WFL_STRIP_BRACKET): Re-written using
build_type_name_from_array_name.
(STRING_STRIP_BRACKETS): New macro.
* parse.y (build_type_name_from_array_name): New function.
(array_creation_expression:): Accumulate []s instead of [s.
(cast_expression:): Accumulate []s instead of [s after cast type
name.
(build_array_from_name): Local string deleted, use
build_type_name_from_array_name.
(build_unresolved_array_type): Accumulate []s instead of [s after
type name.
(register_fields): Fixed comment.
(resolve_class): Local name, base deleted, new locals tname and
array_dims. Use build_type_name_from_array_name. Use array_dims to
build array type.
(purify_type_name): Use STRING_STRIP_BRACKETS.
( http://gcc.gnu.org/ml/gcc-patches/2001-09/msg00779.html )
From-SVN: r45732
2001-09-13 Alexandre Petit-Bianco <apbianco@redhat.com>
* java-tree.h (TYPE_IMPORT_LIST): New macro.
(TYPE_IMPORT_DEMAND_LIST): Likewise.
(struct lang_type): New fields import_list and import_demand_list.
* parse.y (java_complete_class): Initialize TYPE_IMPORT_LIST and
TYPE_IMPORT_DEMAND_LIST with ctxp counterparts.
(do_resolve_class): New local saved_enclosing_type, initialized,
passed as parameter to find_in_imports and find_in_imports_on_demand.
(find_in_imports): Added paramater enclosing_type, use its
TYPE_IMPORT_LIST when applicable.
(find_in_imports_on_demand): Added parameter enclosing_type, use
its TYPE_IMPORT_DEMAND_LIST when applicable. Reorganized locals
declaration and initialization.
(fold_constant_for_init): Switch/restore current_class to the
appropriate context.
( http://gcc.gnu.org/ml/gcc-patches/2001-09/msg00563.html )
From-SVN: r45619
2001-09-05 Alexandre Petit-Bianco <apbianco@redhat.com>
* jcf-write.c (generate_classfile): Issue an error in case of
field/initial value mismatch.
* parse.y (analyze_clinit_body): Keep <clinit> if an array is
being initialized and we're generating bytecode.
(java_complete_lhs): In MODIFY_EXPR section: added comments,
set DECL_INITIAL properly when appropriate.
Fixes PR java/4230
Fixes PR java/4204
(http://gcc.gnu.org/ml/gcc-patches/2001-09/msg00247.html )
From-SVN: r45474
* parse.y (maybe_yank_clinit): A field without an initializer is not
relevant. All initializers except static final and constant require
<clinit>, regardless of flag_emit_class_files.
From-SVN: r45388
2001-08-30 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (patch_assignment): Don't verify final re-assignment here.
(java_complete_lhs): Verify assignments to finals calling
patch_assignment. Verify re-assignments to finals before calling
patch_assignment.
2001-08-29 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (java_complete_lhs): Allow final locals in CASE_EXPRs.
Fixes PR java/1413
2001-08-28 Alexandre Petit-Bianco <apbianco@redhat.com>
* lex.c (java_lex): new local found_hex_digits. Set and then used
in test to reject invalid hexadecimal numbers.
* parse.y (java_complete_tree): Prevent unwanted cast with
initialized floating point finals.
(patch_binop): Emit a warning when detecting a division by zero,
mark result not constant, don't simplify non integer division.
(http://gcc.gnu.org/ml/java-patches/2001-q3/msg00343.html )
From-SVN: r45345
* 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
* jcf-write.c (generate_classfile): Don't write ConstantValue
attribute if field is not final, for compatibility with jdk.
* jcf-write.c (generate_classfile): Convert ConstantValue values
to correct type. Work-around for front-end bug.
* class.c (set_constant_value): Error if constant has wrong type.
From-SVN: r45298
2001-08-24 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (check_deprecation): Handle TYPE_DECL in a special case,
don't report anything but deprecated class when marked so. Handle
VAR_DECL.
(patch_method_invocation): Check deprecation on methods and types.
(patch_binop): code becomes an enum tree_code, added default: to
switch to handle that. Detect division by zero, try to fold and
return before using a subroutine.
(http://gcc.gnu.org/ml/gcc-patches/2001-08/msg01495.html)
From-SVN: r45187
2001-08-23 Alexandre Petit-Bianco <apbianco@redhat.com>
* jcf-parse.c (yyparse): Set magic to 0, don't issue error for a
file smaller than 4 bytes.
* parse.y (check_inner_circular_reference): New function.
(check_circular_reference): Likewise.
(array_initializer:): Accept {,}.
(java_check_circular_reference): Rewritten using
check_circular_reference and check_inner_circular_reference.
(java_complete_expand_method): Unconditionally save and restore
the unpurged exception list.
(build_dot_class_method_invocation): Unmangle signature parameter.
(http://gcc.gnu.org/ml/gcc-patches/2001-08/msg01417.html)
From-SVN: r45156
* decl.c (init_decl_processing): Add `throws' field to method
descriptor.
* class.c (make_method_value): Compute `throws' field for method.
From-SVN: r45152
* expr.h: Split out optab- and libfunc-related code to...
* optabs.h, libfuncs.h: ... these new headers.
* Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h.
(OPTABS_H): New.
(various .o rules): Add $(OPTABS_H) and/or libfuncs.h to
dependencies.
* mkconfig.sh: Don't include insn-codes.h from config.h.
* reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether
enum insn_code is available. Move reload_in_optab and
reload_out_optab array declarations to optabs.h.
* regmove.c (gen_add3_insn): Move to optabs.c, export from
there, prototype in expr.h.
* gencodes.c: Cleanup: zap global variables, don't use
printf where puts will do, don't bother defining MAX_INSN_CODE
which nothing uses, let CODE_FOR_nothing get its value implicitly.
* genemit.c, genopinit.c: Include optabs.h in generated file.
* genoutput.c: Include insn-codes.h in generated file.
* builtins.c, caller-save.c, combine.c, doloop.c, explow.c,
expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c,
reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c,
config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c,
config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c,
config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c:
Include optabs.h.
* builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c,
optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c,
config/m88k/m88k.c, config/sparc/sparc.c:
Include libfuncs.h.
* reload.c: Include expr.h and optabs.h before reload.h.
* config/alpha/alpha.c: Include tree.h before reload.h.
* config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h,
and reload.h in that order.
* config/sparc/sparc.c: Include debug.h.
* recog.c: Include insn-codes.h.
cp:
* Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
* except.c: Include libfuncs.h.
java:
* Make-lang.in (java/decl.o): Update dependencies.
* decl.c: Include libfuncs.h, don't include toplev.h.
From-SVN: r44858
* toplev.c (set_float_handler): Make static.
* toplev.h: Don't prototype set_float_handler.
* simplify-rtx.c: Don't include setjmp.h.
(simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1):
New functions.
(simplify_unary_operation, simplify_binary_operation): Use them,
via do_float_handler.
* fold-const.c: Don't include setjmp.h.
(exact_real_inverse_1): New function.
(exact_real_inverse): Use it, via do_float_handler.
* varasm.c: Don't include setjmp.h.
(assemble_real_1): New function.
(assemble_real): Use it, via do_float_handler.
Call internal_error if we get a trap here.
* c-parse.in, cse.c, cselib.c, ch/lex.c, config/i386/i386.c,
config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h.
* java/lex.h: Don't include setjmp.h. Don't define
SET_FLOAT_HANDLER or prototype set_float_handler.
From-SVN: r44815
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 Anthony Green <green@redhat.com>
* java/class.c (emit_register_classes): Use assemble_jcr if
possible. Keep the original mechanism as a fallback.
* defaults.h (JCR_SECTION_NAME): Define if we have named section
and weak symbol support.
* crtstuff.c (__JCR_LIST__): Define.
(__JCR_END__): Define.
(_Jv_RegiserClasses): Define weak symbol if possible.
(__do_global_ctors_aux): Register classes for ELF targets with
weak symbol support.
From-SVN: r44731
* varasm.c (assemble_constructor): Take a symbol_ref and a
priority instead of a bare string. Move priority handling
here from cp/decl2.c.
* output.h: Update decls.
* c-decl.c (c_expand_body): Update calls to assemble_constructor
and assemble_destructor.
* profile.c (output_func_start_profiler): Likewise.
* objc/objc-act.c (finish_objc): Likewise.
(build_module_descriptor): Return the symbol not the symbol name.
* ch/grant.c (chill_finish_compile): Pass a symbol_ref and priority
to assemble_constructor.
* cp/decl2.c (finish_objects): Pass a symbol_ref and priority to
assemble_{constructor,destructor}. Remove priority handling.
* java/class.c (emit_register_classes): Pass a symbol_ref and priority
to assemble_constructor.
From-SVN: r44678
2001-08-02 Alexandre Petit-Bianco <apbianco@redhat.com>
* java-tree.h (all_class_filename): New macro.
(enum java_tree_index): New enum `JTI_ALL_CLASS_FILENAME.'
(BUILD_FILENAME_IDENTIFIER_NODE): Fixed leading comment. Link
newly created IDENTIFIER_NODE to `all_class_filename.'
(http://gcc.gnu.org/ml/gcc-patches/2001-08/msg00093.html)
Proxima Estacion Esperanza
From-SVN: r44588
2001-07-18 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (create_interface): Avoid cyclic inheritance report when
syntax error encountered during class definition.
Fixes PR java/2956
2001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.h (INTERFACE_INNER_MODIFIERS): Disallow `private.'
* parse.y (check_class_interface_creation): Allow `private' if the
enclosing is not an interface.
(create_interface): Interface tagged public if the enclosing
context is an interface.
(create_class): Class tagged public if the enclosing context
is an interface.
Fixes PR java/2959
2001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
* class.c (push_class): Set DECL_SIZE to `integer_zero_node.'
Fixes PR java/2665
2001-07-13 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (java_complete_lsh): Set CAN_COMPLETE_NORMALLY and unset
TREE_CONSTANT_OVERFLOW of CASE_EXPR value.
Fixes PR java/3602
(http://gcc.gnu.org/ml/gcc-patches/2001-07/msg02297.html )
From-SVN: r44524
* lex.h: Use HAVE_ICONV, not HAVE_ICONV_H.
* lex.c (java_new_lexer): Use ICONV_CONST.
(java_read_char): Likewise.
* Make-lang.in (jc1$(exeext)): Link against LIBICONV.
(jv-scan$(exeext)): Likewise.
From-SVN: r44120
2001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (patch_method_invocation): Don't override primary if one
is already provided, but let this$<n> be built. Fixed comment.
2001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (empty_statement:): Report empty statement error only
when found at class declaration level.
Fixes PR java/3635
(http://gcc.gnu.org/ml/gcc-patches/2001-07/msg00885.html )
From-SVN: r43993
2001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
* lang-specs.h: Forbit the use if `-femit-class-file{s}' without
`-fsyntax-only.' Fixes PR java/3248
2001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
* jcf-io.c (find_class): Clarified error message. Fixes PR java/2603
2001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.h (INNER_ENCLOSING_SCOPE_CHECK): No `this' is fine if the
current function is static. Fixes PR java/1970
2001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (patch_method_invocation): Add enclosing context to ctor
calls if necessary. Fixes PR java/2953
2001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (resolve_package): Abort if qualified expression member
isn't right.
(qualify_ambiguous_name): Don't qualify as type if `this' in use.
Fixes PR java/1391
(http://gcc.gnu.org/ml/gcc-patches/2001-07/msg00701.html )
From-SVN: r43927
2001-07-04 Daniel Berlin <dan@cgsoftware.com>
* c-lex.c (cb_file_change): Pass line number to
debug_start_source_file.
(cb_undefine): Pass correct line number to debug_undef.
* toplev.c (debug_start_source_file): Add line number to
parameters. Pass it along to dwarf2out_start_source_file.
(decode_g_option): Stop resetting debug level back to normal when
we change debug formats, unless the current level is
none. (Before, -g3 -gdwarf-2 would use debug level 2, rather than
3).
* toplev.h (debug_start_source_file): Add line number to
parameters.
* dwarf2out.h (dwarf2out_start_source_file): Add line number to parameters.
* dwarf2out.c (dwarf2out_start_source_file): Add line number to
parameters.
Output debug_macinfo data for starting file if requested.
(dwarf2out_end_source_file): Output debug_macinfo data for ending
file if requested.
(dwarf2out_define): Output debug_macinfo data for defining a macro if requested.
(dwarf2out_undef): Output debug_macinfo data for undefining a
macro if requested.
(DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name.
(DEBUG_MACINFO_SECTION_LABEL): New. DWARF2 macro info section label.
(macinfo_section_label): New. DWARF2 macro info section label.
(dwarf2out_init): If we want macro info, output the start label
for the section.
(dwarf2out_finish): If we want macro info, add a DW_AT_macro_info
attribute to the compilation unit die pointing to the macro info.
2001-07-04 Daniel Berlin <dan@cgsoftware.com>
* dwarf2out.c (new_loc_list): Move to inside #ifdef
DWARF2_DEBUGGING_INFO.
(add_loc_descr_to_loc_list): Ditto.
(output_loc_list): Ditto.
Also, fix thinko in curr not being initialized.
(gen_internal_sym): Ditto.
From-SVN: r43763
* doc/include: New directory.
* doc/fdl.texi: Move to doc/include/fdl.texi.
* doc/texinfo.tex: Move to doc/include/texinfo.tex.
* doc/include/funding.texi, doc/include/gpl.texi: New files.
* doc/gcc.texi: Use funding.texi and gpl.texi.
* Makefile.in ($(docdir)/cpp.info, $(docdir)/gcc.info,
$(docdir)/cppinternals.info, cpp.dvi. gcc.dvi. cppinternals.dvi):
Update dependencies and use -I $(docdir)/include.
f:
* g77.texi: Use gpl.texi and funding.texi. Remove Look and Feel
section. Add Funding Free Software to invariant sections.
* Make-lang.in ($(srcdir)/f/g77.info, f/g77.dvi): Update
dependencies and use doc/include in search path.
java:
* gcj.texi: Use gpl.texi.
* Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Update
dependencies and use doc/include in search path.
From-SVN: r43757
2001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
* class.c (set_super_info): Call `set_class_decl_access_flags.'
(set_class_decl_access_flags): New function.
* java-tree.h (set_class_decl_access_flags): New prototype.
* jcf-parse.c (handle_innerclass_attribute): Read and set access flags.
(parse_class_file): New local `decl_max_locals.' Take wide types
into account to compute DECL_MAX_LOCALS.
* parse.y (type_import_on_demand_declaration:): Ignore duplicate
imports on demand.
(http://gcc.gnu.org/ml/gcc-patches/2001-06/msg01718.html )
From-SVN: r43618
2001-06-20 Alexandre Petit-Bianco <apbianco@redhat.com>
* class.c (java_hash_tree_node): Fixed indentation in leading comment.
* parse.y (do_resolve_class): Moved comments out to leading comment
section. Removed local `start', New local `_ht' and
`circularity_hash.' Record `enclosing' in hash table and search
it to detect circularity. Use `enclosing' as an argument to
`lookup_cl.' Free the hash table when done.
(http://gcc.gnu.org/ml/gcc-patches/2001-06/msg01318.html )
From-SVN: r43480
2001-03-20 Tom Tromey <tromey@redhat.com>
Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (patch_assignment): Handle the case of a SAVE_EXPR
inside an array reference. Insertion of the array store check
rewritten. Fixes PR java/2299.
(http://gcc.gnu.org/ml/gcc-patches/2001-06/msg00611.html )
Co-Authored-By: Alexandre Petit-Bianco <apbianco@redhat.com>
From-SVN: r43146
* doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi: Move contents
to just after title page.
ch:
* chill.texi: Move contents to just after title page.
f:
* g77.texi: Move contents to just after title page.
java:
* gcj.texi: Move contents to just after title page.
From-SVN: r42808
2001-06-01 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (type_literals:): Use `build_incomplete_class_ref' with
builtin type.
(patch_incomplete_class_ref): Build the class ref, build the class
init if necessary, complete the tree.
Fixes PR java/2605
(http://gcc.gnu.org/ml/gcc-patches/2001-06/msg00044.html )
From-SVN: r42807
* Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on
fdl.texi.
(java/gcj.dvi): Use TEXI2DVI instead of custom tex calls. Create
the dvi file in the java directory.
From-SVN: r42658
* toplev.c (debug_args, f_options, W_options): Mark
descriptions for translation.
(display_help): Translate descriptions on output.
* cp/lang-options.h, f/lang-options.h, java/lang-options.h,
objc/lang-options.h: Mark descriptions for translation.
From-SVN: r42618
* Make-lang.in ($(srcdir)/java/gcj.info): Added `-I..'.
(java/gcj.dvi): Added $(srcdir) to TEXINPUTS.
* gcj.texi: Updated copyright text. Include fdl.texi.
(Top): Link to new node.
From-SVN: r41743
* jcf-io.c (read_zip_member): Cast to long in comparison with
signed value.
* jvspec.c (lang_specific_driver): Initialize variables.
* mangle.c (find_compression_record_match): Likewise.
* typeck.c (build_null_signature): Provide static prototype. Mark
parameter with ATTRIBUTE_UNUSED.
* verify.c (verify_jvm_instructions): Initialize variable.
From-SVN: r41671
* jcf-write.c (generate_bytecode_insns case SWITCH_EXPR):
Fix thinko: If a single case, use if_icmpeq, not ifeq.
* constants.c (find_methodref_with_class_index): New function.
(find_methodref_index): Use find_methodref_with_class_index.
* java-tree.h (find_methodref_with_class_index): New declaration.
* jcf-write.c (generate_bytecode_insns case CALL_EXPR): Don't change
DECL_CONTEXT, instead use new find_methodref_with_class_index function.
If context changed from interface to class, don't use invokeinterface.
From-SVN: r41601
* verify.c (verify_jvm_instructions): For field instructions,
check that field index is valid. For invoke instructions, check that
method index is valid.
From-SVN: r41600
* collect2.c (main): Use concat in lieu of xmalloc/sprintf.
(write_c_file_stat): Likewise.
* dbxout.c (dbxout_init): Likewise.
* profile.c (output_func_start_profiler): Likewise.
cp:
* xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
f:
* com.c (ffecom_subscript_check_): Use concat in lieu of
xmalloc/sprintf.
java:
* jvspec.c (lang_specific_driver): Fix memory allocation
deficit, by using concat in lieu of xmalloc/sprintf.
From-SVN: r41495
2001-04-06 Tom Tromey <tromey@redhat.com>
Alexandre Petit-Bianco <apbianco@redhat.com>
Fix for PR gcj/1404 and PR gcj/2332:
* parse.y (build_array_from_name): If we use the type_wfl then
accumulate dimensions from the original type as well.
(build_unresolved_array_type): Don't modify TYPE_OR_WFL in place.
Co-Authored-By: Alexandre Petit-Bianco <apbianco@redhat.com>
From-SVN: r41178
2001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com>
* java-tree.h (struct lang_decl): New macro
`DECL_FIXED_CONSTRUCTOR_P.' New field `fixed_ctor.'
* parse.y (build_instance_initializer): New function.
(add_instance_initializer): Use it.
(java_fix_constructors): Set `current_class' before fix pass.
(fix_constructors): Just return if already fixed. Move `super()'
invokation ahead. Use `build_instance_initializer.'
Fixes PR java/1315.
(http://gcc.gnu.org/ml/gcc-patches/2001-04/msg00343.html)
From-SVN: r41129
* java-tree.h (CONSTANT_VALUE_P): New macro.
* jcf-write.c (generate_classfile): Use CONSTANT_VALUE_P.
* parse.y (maybe_build_class_init_for_field): New static function.
(resolve_expression_name, resolve_field_access): Use
maybe_build_class_init_for_field instead of build_class_init
This does not do the init if the field is compile-time-constant.
(resolve_field_access): Simplify.
* parse.y (fold_constant_for_init): Merge test into switch.
From-SVN: r41094
2001-03-28 Hans Boehm <boehm@acm.org>
* boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
(get_boehm_type_descriptor): Set type on returned value to be a
pointer length integer.
(http://gcc.gnu.org/ml/java/2001-03/msg00444.html)
From-SVN: r41059
* 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
* 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