* class.c (layout_class): Don't lay the superclass out if it's
already being laid out.
* jcf-parse.c (handle_innerclass_attribute): New function.
(HANDLE_INNERCLASSES_ATTRIBUTE): Invoke
handle_innerclasses_attribute.
(jcf_parse): Don't load an innerclasses if it's already being
laid out.
* jcf-write.c (append_innerclass_attribute_entry): Static
`anonymous_name' and its initialization deleted. `ocii' and `ini'
to be zero for anonymous classes.
* class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if
necessary.
* jcf-parse.c (set_source_filename): Use
MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary.
* libsupc++/exception_support.cc (__terminate_func): Remove
declaration.
(__terminate_func_ptr): New typedef.
(__terminate, __terminate_set_func): New extern function
prototypes.
(std::terminate): Use __terminate function.
(std::set_terminate): Use __terminate_set_func function.
* exception.cc (__terminate_func): Remove declaration.
(__terminate_func_ptr): New typedef.
(__terminate, __terminate_set_func): New extern function
prototypes.
(std::terminate): Use __terminate function.
(std::set_terminate): Use __terminate_set_func function.
Chris Demetriou [Wed, 24 Jan 2001 03:03:12 +0000 (03:03 +0000)]
libgcc-std.ver (GCC_3.0): Add __terminate_func_set to list of EH symbols.
2001-01-23 Chris Demetriou <cgd@broadcom.com>
* libgcc-std.ver (GCC_3.0): Add __terminate_func_set to list
of EH symbols.
* libgcc2.c (__terminate_func): Make variable static.
(__terminate_set_func): New function to set __terminate_func.
* libgcc2.h (__terminate_func_ptr): New typedef.
(__terminate_set_func): New function.
* integrate.h (struct inline_remap): Add compare_src, compare_mode.
* integrate.c (expand_inline_function): Initialize them.
(subst_constants): If changing COMPARE so that both its arguments
will be VOIDmode and the comparison mode will be lost, note
compare_mode. Use the recorded compare_mode to optimize
IF_THEN_ELSE.
Phil Edwards [Tue, 23 Jan 2001 17:02:28 +0000 (17:02 +0000)]
acinclude.m4: Cosmetic changes only.
2001-01-23 Phil Edwards <pme@sources.redhat.com>
* acinclude.m4: Cosmetic changes only.
* aclocal.m4: Regenerated.
* configure: Regenerated.
* configure.target: Update documented list of changed variables.
* docs/html/install.html: Fix typo.
* docs/html/20_util/howto.html: More notes on auto_ptr.
* docs/html/27_io/howto.html: More notes on streabufs.
* docs/html/faq/index.html: Add rel_ops problem and mention the
DEC as(1) .subsection difficulty.
* docs/html/faq/index.txt: Regenerated.
Andrew Haley [Tue, 23 Jan 2001 13:58:55 +0000 (13:58 +0000)]
libgcc2.c (get_reg_addr): Don't abort if we haven't got a copy of a saved register; return NULL instead.
2001-01-17 Andrew Haley <aph@redhat.com>
* libgcc2.c (get_reg_addr): Don't abort if we haven't got a copy
of a saved register; return NULL instead.
(copy_reg): Take a pointer to a source register rather than a
frame_state.
(next_stack_level): Remember the address in the stack frame of all
saved registers.
Use the saved register pointer array as the source of the CFA.
(throw_helper): Rewrite. Unwind once rather than twice and keep
track of saved registers as we go.
Nathan Sidwell [Tue, 23 Jan 2001 10:44:18 +0000 (10:44 +0000)]
decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC indicates anything special about template depth.
cp:
* decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
indicates anything special about template depth. Make sure we
only count the user visible template classes.
testsuite:
* g++.old-deja/g++.pt/spec37.C: New test.
Nathan Sidwell [Tue, 23 Jan 2001 10:36:26 +0000 (10:36 +0000)]
call.c (build_conv): Typo in comment.
cp:
* call.c (build_conv): Typo in comment.
(add_builtin_candidate): Add more explanation.
Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
when we have enumeral types.
(add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
candidates for relops and eqops.
(joust): Simplify control flow. Allow a non-template user
function to hide a builtin.
testsuite:
* g++.old-deja/g++.pt/overload14.C: New test.
Mark Mitchell [Tue, 23 Jan 2001 08:57:34 +0000 (08:57 +0000)]
ainclude.m4 (GLIBCPP_CHEC_MATH_DECLS_AND_LINKAGE_1): New macro.
* ainclude.m4 (GLIBCPP_CHEC_MATH_DECLS_AND_LINKAGE_1): New macro.
(GLIBCPP_CHECK_MATH_SUPPORT): Use it.
(GLIBCPP_CHECK_TYPE_SUPPORT): Don't autoconf ctype information if
its already provided in config.target.
* aclocal.m4: Regenerated.
* configure: Likewise.
* configure.target: Set ctype_include_dir for lots of systems.
* libsupc++/Makefile.am: Explicitly include --tag disable-shared.
* libsupc++/Makefile.in: Regenerated.
[sorry, missed this the first time around] 2001-01-12 Laurynas Biveinis <lauras@softhome.net>
[sorry, missed this the first time around]
2001-01-12 Laurynas Biveinis <lauras@softhome.net>
* acinclude.m4 (GLIBCPP_CHECK_CTYPE_SUPPORT): check for DJGPP <ctype.h>
(LIB_AC_PROG_CXX): replace [/\\] with [\\/] to work around older
bash bug.
* aclocal.m4: regenerated.
* configure.target: set os_include_dir to config/os/djgpp under DJGPP.
* configure: regenerated.
* config/os/djgpp, config/os/djgpp/bits: new directories.
* config/os/djgpp/bits/ctype_base.h,
config/os/djgpp/bits/ctype_inline.h,
config/os/djgpp/bits/ctype_noninline.h,
config/os/djgpp/bits/os_defines.h: new files.
Franz Sirl [Mon, 22 Jan 2001 22:47:25 +0000 (22:47 +0000)]
rs6000.h (INIT_EXPANDERS): Delete.
2001-01-22 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* rs6000.h (INIT_EXPANDERS): Delete.
(RETURN_ADDR_RTX): Call rs6000_return_addr().
* rs6000.c (rs6000_override_options): Call *_machine_status from
here...
(rs6000_init_expanders): ...instead of here. Delete.
(rs6000_mark_machine_status): New function.
(rs6000_init_machine_status): Use xcalloc.
(rs6000_return_addr): Generate RTX for the return address.
(rs6000_ra_ever_killed): New, check if LR was ever destroyed.
(rs6000_stack_info): Use it.
* c4x.c (c4x_valid_rptb_p, c4x_label_ref_used_p): New functions.
(c4x_rptb_insert): Call c4x_valid_rptb_p to check if repeat block is
valid. If not replace it by equivalent insns.
* c4x.c (c4x_check_legit_addr): Only check CONST. Not if CONST
contains SYMBOL_REF, LABEL_REF and CONST_INT.
(c4x_U_constraint, symbolic_address_operand): Likewise.
(c4x_immed_float_constant): Do not check if CONST_DOUBLE is in
memory.
(c4x_r11_set_p, c4x_check_laj_p): New functions.
* c4x-protos.h (c4x_check_laj_p): Add prototype.
* c4x.md (in_annul_slot_3): Do not allow auto-increment in last
anulling slot because of silicon bug.
(laj, lajv): Call c4x_check_laj_p to check for silicon bug.
Denis Chertykov [Sun, 21 Jan 2001 07:08:46 +0000 (07:08 +0000)]
avr.c (ret_cond_branch): New argument (reverse) added.
* config/avr/avr.c (ret_cond_branch): New argument (reverse) added.
If REVERSE nonzero then condition code in X must be reversed.
(encode_section_info): Optimise if/else.
(avr_function_value): Fix formatting.
Richard Kenner [Sat, 20 Jan 2001 17:47:45 +0000 (17:47 +0000)]
stmt.c (expand_return): Don't return anything if size is zero.
* stmt.c (expand_return): Don't return anything if size is zero.
Delete redundant assignment to BYTES.
* expr.c (move_block_from_reg): Do nothing if NREGS is zero.
avr.h (INIT_TARGET_OPTABS): Remove most of it, was the same as the default library function names.
* config/avr/avr.h (INIT_TARGET_OPTABS): Remove most of it, was
the same as the default library function names.
* config/avr/avr.md: Document special characters after '%'.
(mulqi3, mulhi3, mulsi3): Call libgcc.S functions ourselves,
knowing which of the call-used registers are really clobbered.
(divmodqi4, udivmodqi4, divmodhi4, udivmodhi4, divmodsi4, udivmodsi4):
New. Both quotient and remainder from one libgcc.S call.
* config/avr/libgcc.S: Optimize mul/divmod for the new insns above,
clobber as few registers as possible.
* config/avr/t-avr (LIB1ASMFUNCS): Adjust for the above changes.
* function.c (fixup_var_refs_insns): Break up into
fixup_var_refs_insn [body of loop], fixup_var_refs_insns
[loop over entire insn list], and fixup_var_refs_insns_with_hash
[loop over hash table entries].
(fixup_var_refs): Adjust calls to fixup_var_refs_insns and/or
fixup_var_refs_insns_with_hash, to match above changes.
Richard Kenner [Fri, 19 Jan 2001 18:09:17 +0000 (18:09 +0000)]
regclass.c (max_set_parallel): New variable.
* regclass.c (max_set_parallel): New variable.
(reg_scan): Take it into account in computation of max_parallel.
(reg_scan_mark_refs, case SET): Compute it.
Richard Kenner [Fri, 19 Jan 2001 18:04:23 +0000 (13:04 -0500)]
alias.c (rtx_equal_for_memref_p, [...]): Don't assume args are REG.
* alias.c (rtx_equal_for_memref_p, case ADDRESSOF): Don't assume
args are REG.
* expr.c (store_constructor): Don't look at MEM_ALIAS_SET unless MEM.
* function.c (assign_parms): Use INTVAL for a CONST_INT.