Jim Wilson [Tue, 27 Mar 2001 22:48:03 +0000 (22:48 +0000)]
Fix ia64-linux ICE on bash.
* flow.c (struct reg_cond_life_info): New fields orig_condition
and stores.
(init_propagate_block_info): Set new fields.
(mark_regno_cond_dead): Set and use new fields.
(flush_reg_cond_reg_1): Likewise.
(and_reg_cond, case AND): Check for redundant AND conditions.
(mark_used_reg): Delete unnecessary clears before freeing splay trees.
Set new fields.
Zack Weinberg [Tue, 27 Mar 2001 20:09:27 +0000 (20:09 +0000)]
config.gcc (m68hc11-*-*, [...]): Convert to new tm.h inclusion style.
* config.gcc (m68hc11-*-*, m68hc12-*-*): Convert to new tm.h
inclusion style. xm-m68hc11.h no longer exists.
* config/m68hc11/xm-m68hc11.h: Delete file.
* config/m68hc11/m68hc12.h: Convert to new tm.h inclusion style.
* config/m68hc11/m68hc11.h: Convert to new tm.h inclusion style.
Don't define GCC_VERSION, N_, or PARAMS; don't include
gansidecl.h or stdio.h. Define inhibit_libc here.
Make code conditioned on #if GCC_VERSION > 2095 unconditional.
Delete code conditioned on #if GCC_VERSION == 2095.
* config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c:
Make code conditioned on #if GCC_VERSION > 2095 unconditional.
Delete code conditioned on #if GCC_VERSION == 2095.
Mark Mitchell [Tue, 27 Mar 2001 02:17:48 +0000 (02:17 +0000)]
c-common.h (DECL_NUM_STMTS): New macro.
* c-common.h (DECL_NUM_STMTS): New macro.
* c-decl.c (duplicate_decls): Copy DECL_NUM_STMTS, not
DECL_FRAME_SIZE.
(pushdecl): Likewise.
* c-semantics.c (add_stmt): Update DECL_NUM_STMTS.
* integrate.c (expand_inline_function): Don't check
DECL_FRAME_SIZE.
* print-tree.c (print_node): Don't print it.
* toplev.c (rest_of_compilation): Don't try to inline when
flag_no_inline is on.
* tree.h (DECL_FRAME_SIZE): Remove.
(tree_decl): Adjust accordingly.
* Makefile.in (optimize.o): Depend on params.h.
(duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
(init_decl_processing): Set flag_no_inline when doing
inlining-on-trees.
* optimize.c: Include params.h.
(struct inline_data): Improve documentation of FNS. Add
FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
(INSNS_PER_STMT): New macro.
(remap_block): Use CLONING_P.
(inlinable_function_p): Don't inline big functions.
(expand_call_inline): Keep track of how much inlining we've done.
(optimize_function): Set FIRST_INLINED_FN.
(maybe_clone_body): Set CLONING_P.
* semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
tree nodes.
(genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
rest_of_compilation. Clear DECL_RTL for local variables
afterwards.
(clear_decl_rtl): New function.
Bryce McKinlay [Mon, 26 Mar 2001 22:52:36 +0000 (22:52 +0000)]
configure.in: Make target subdirectory in build dir.
* configure.in: Make target subdirectory in build dir.
* Makefile.am: Override suffix based rules to specify correct output
subdirectory.
* Makefile.in: Rebuilt.
* configure: Rebuilt.
* i386.c (struct machine_function): Add save_varrargs_registers.
(ix86_save_varrargs_registers): New macro.
(ix86_frame_layout): Support 64bit; support red zones and varrargs area.
(ix86_expand_prologue): Likewise.
(ix86_emit_epilogue_esp_adjustement): Likewise.
(ix86_expand_epilogue): Likewise.
* i386.md (pro_epilogue_adjust_stack): Turn to expander; support 64bit.
(pro_epilogue_adjust_stack_1): New insn.
(pro_epilogue_adjust_stack_rex64): Likewise.
* i386.h (MASK_NO_RED_ZONE): New constant.
(TARGET_RED_ZONE): New macro.
(TARGET_OPTIONS): Add "red-zone" and "no-red-zone"
(RED_ZONE_SIZE): New constant.
(RED_ZONE_RESERVE): New constant.
Nathan Sidwell [Mon, 26 Mar 2001 08:37:27 +0000 (08:37 +0000)]
Implement DR 209
cp:
Implement DR 209
* cp-tree.h (skip_type_access_control,
reset_type_access_control): Prototype.
* decl.c (grokdeclarator): Access of friends is not checked.
* parse.y (component_decl_list): Reset type access control.
* semantics.c (decl_type_access_control): Clear
current_type_lookups.
(save_type_access_control): Don't save if not deferring.
(skip_type_access_control, reset_type_access_control): New
functions.
(begin_class_definition): Do type access control for basetypes.
Start deferred access control.
(finish_class_definition): Resume immediate access control if
this is a local class.
testsuite:
* g++.old-deja/g++.other/friend12.C: New test.
* g++.old-deja/g++.other/friend9.C: Expect no errors.
* g++.old-deja/g++.robertl/eb56.C: Make typedef public.
exception.cc (java_eh_info): Make value type jthrowable.
* exception.cc (java_eh_info): Make value type jthrowable.
(_Jv_type_matcher): Remove now unneeded cast.
(_Jv_Throw): Make argument type jthrowable. Munge name
for SJLJ_EXCEPTIONS here ...
* gcj/cni.h: ... not here.
(JvThrow): Remove.
* gcj/javaprims.h (_Jv_Throw, _Jv_Sjlj_Throw): Update declarations.
Phil Edwards [Sun, 25 Mar 2001 00:01:57 +0000 (00:01 +0000)]
howto.html: HTML fixup.
2001-03-24 Phil Edwards <pme@sources.redhat.com>
* docs/html/19_diagnostics/howto.html: HTML fixup. Describe
concept-checking code and current status of same.
* docs/html/ext/howto.html: Ditto.
* docs/html/faq/index.html: Ditto.
* docs/html/faq/index.txt: Regenerated.
Jan Hubicka [Sat, 24 Mar 2001 22:18:11 +0000 (23:18 +0100)]
i386.md (cmpdi): Fix operand predicates.
* i386.md (cmpdi): Fix operand predicates.
(cmpdi_ccno_1_rex64, cmpdi_minus_1_rex64, cmpdi_1_rex64,
cmpdi_1_insn_rex64): New patterns.
(adddi3): Turn to expander.
(adddi3_1, adddi3_carry_rex64, adddi3_cc_rex64): New patterns.
(addsi3_carry_zext): New pattern.
(adddi_?_rex64): New patterns and splitters.
(addsi_?_zext): New patterns.
(subsi3_carry_zext): New pattern.
(subdi_?_rex64): New patterns and splitters.
(iorsi_?_zext): New patterns.
(iordi_?_rex64): New patterns and splitters.
(iorsi_?_zext): New patterns.
(iorsi_?_zext_imm): New patterns.
(xorsi_?_zext): New patterns.
(xordi_?_rex64): New patterns and splitters.
(xorsi_?_zext): New patterns.
(negdi*): New patterns.
(one_cmpldi*): Likewise.
(one_cmplsi*_zext, negsi*_zext): Likewise.
(testqi_ext_3_rex64): New pattern.
Per Bothner [Sat, 24 Mar 2001 01:13:30 +0000 (17:13 -0800)]
re PR java/1208 (Gcj can't compile a class file it generates.)
e
* verify.c (verify_jvm_instructions): Replace 3 pop_type by POP_TYPE
macro for better error pin-pointing.
* java-tree.h: Fix typo in comment.
* jcf-write.c (generate_bytecode_insns): Changes to TRY_FINALLY_EXPR.
Don't include jsr/goto in exception range.
Check if start and end of exception range are the same (also TRY_EXPR).
Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false.
However, do emit the following goto even if try_block is empty.
Defer freeing exception_decl until after the finalizer, to make
sure the local isn't reused in the finalizer. Fixes PR java/1208.
* parse.y (java_complete_lhs): If the try-clause is empty, just
return the finally-clause and vice versa.
Per Bothner [Sat, 24 Mar 2001 00:59:57 +0000 (16:59 -0800)]
natDouble.cc (parseDouble): Cannot use errno to check for errors...
* java/lang/natDouble.cc (parseDouble): Cannot use errno to
check for errors, since we don't want to throw exception on
overflow/underflow. Instead, trim whitespace, and then check that
_strtod_r uses up all the rest of the string.
Per Bothner [Sat, 24 Mar 2001 00:21:24 +0000 (16:21 -0800)]
natClass.cc (_Jv_IsAssignableFrom): Checking the ancestors array is invalid for interfaces...
* java/lang/natClass.cc (_Jv_IsAssignableFrom): Checking the
ancestors array is invalid for interfaces, so do that *after*
check that the target type is not an interface.
* 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.
Jakub Jelinek [Fri, 23 Mar 2001 12:04:11 +0000 (13:04 +0100)]
decl.c (local_names): Define.
* decl.c (local_names): Define.
(push_local_name): New.
(grok_reference_init): Return init if initializing static reference
variable with non-constant instead of emitting it.
Move expand_static_init call to cp_finish_decl.
(layout_var_decl): Call push_local_name.
(maybe_commonize_var): Allow inlining functions even if they have
static local variables, use comdat_linkage for them if flag_weak.
(check_initializer): Call obscure_complex_init if
grok_reference_init returned non-zero.
(save_function_data): Clear x_local_names.
(pop_cp_function_context): Free x_local_names.
(mark_inlined_fns): Remove.
(mark_lang_function): Mark x_local_names.
(lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
Mark inlined_fns as tree, remove call to mark_inlined_fns.
* class.c (alter_access): Ensure DECL_ACCESS is never set if
DECL_DISCRIMINATOR_P.
* cp-tree.h (cp_language_function): Add x_local_names.
(lang_decl_flags): Add discriminator into u2.
(lang_decl_inlined_fns): Remove.
(lang_decl): inlined_fns is now a TREE_VEC.
(DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
* optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
TREE_VEC, not a custom structure.
(optimize_function): Likewise.
* mangle.c (discriminator_for_local_entity): Discriminate among
VAR_DECL local entities.
* search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
is not valid.
Bryce McKinlay [Fri, 23 Mar 2001 05:18:16 +0000 (05:18 +0000)]
re PR libgcj/1736 ([irix 6.5] Cannot create libgcj - Arg list too long)
Fix for PR libgcj/1736. Thanks to Robert Boehne and Alexandre Oliva
for libtool hacking.
* Makefile.am (libgcj.la): New explicit rule. Echo the list of objects
to a temporary file, then invoke libtool with the -objectlist
paramater.
(libgcjx.la): Likewise.
* Makefile.in: Rebuilt.
Add support for Java interface method calls.
* cp-tree.h (struct lang_type): Add java_interface flag.
(TYPE_JAVA_INTERFACE): New macro.
* tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
by setting TYPE_JAVA_INTERFACE.
* call.c (java_iface_lookup_fn): New static.
(build_over_call): If calling a method declared in a
TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
expression which resolves the function address.
(build_java_interface_fn_ref): New function.
Jan Hubicka [Thu, 22 Mar 2001 21:17:42 +0000 (22:17 +0100)]
i386.md (zero_extendsidi2_32): Break out from ...
* i386.md (zero_extendsidi2_32): Break out from ...
(zero_extendsidi2): ... here ; turn to expander.
(zero_extendsidi2_rex64): New.
(extendsidi2_32): Break out from ...
(extendsidi2): ... here ; turn to expander.
(extendsidi2_rex64): New.
(zero_extendhidi2, zero_extendqidi2, extendhidi2, extendqidi2): New.
(trunc?f?f splitters): Add 64bit versions.
* genemit.c, genopinit.c, genoutput.c: Don't include insn-codes.h
or insn-flags.h in the generated code.
* genflags.c (gen_proto): Use "struct rtx_def *" instead of "rtx".
(main): Forward declare struct rtx_def.
Alexandre Oliva [Thu, 22 Mar 2001 18:13:39 +0000 (18:13 +0000)]
ltcf-c.sh: Clear ac_cv_prog_cc_pic for DJGPP.
Re-installed:
2001-01-02 Laurynas Biveinis <lauras@softhome.net>
* ltcf-c.sh: Clear ac_cv_prog_cc_pic for DJGPP. Do not add
'-DPIC' to ac_cv_prog_cc_pic for DJGPP.
* ltcf-cxx.sh: Likewise.
* ltcf-gcj.sh: Likewise.
Jakub Jelinek [Thu, 22 Mar 2001 17:00:28 +0000 (18:00 +0100)]
method.c (do_build_assign_ref): Don't use build_modify_expr for anonymous aggregates...
* method.c (do_build_assign_ref): Don't use build_modify_expr for
anonymous aggregates, since they don't have assignment operator
method.
* decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
assignment operators for anonymous structure fields.
Bryce McKinlay [Thu, 22 Mar 2001 06:37:16 +0000 (06:37 +0000)]
Method.java (getExceptionTypes): Call getType() to initialize if exception_types is null.
* java/lang/reflect/Method.java (getExceptionTypes): Call getType() to
initialize if exception_types is null.
* java/lang/reflect/Constructor.java: Likewise.
* java/lang/reflect/natConstructor.cc (getType): Initialize
exception_types to an empty Object array.
Jason Merrill [Thu, 22 Mar 2001 00:55:13 +0000 (19:55 -0500)]
pt.c (instantiate_decl): Abort if we see a member constant instantiation that doesn't already have its...
* pt.c (instantiate_decl): Abort if we see a member constant
instantiation that doesn't already have its initializer.
Downgrade explicit instantiation without definition to pedwarn.
Jason Merrill [Thu, 22 Mar 2001 00:53:50 +0000 (19:53 -0500)]
collect2.c (is_ctor_dtor): Always use '_' in the file fn names, not '.' or '$'.
* collect2.c (is_ctor_dtor): Always use '_' in the file fn names,
not '.' or '$'.
* tree.c (FILE_FUNCTION_FORMAT): Likewise.
* varasm.c (CHKR_PREFIX): Likewise.
* class.c (layout_class): Fixed push_super_field's second
argument. Fixes PR java/2333.
(jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
too early to lay innerclasses out.