* 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.
Alexandre Oliva [Fri, 19 Jan 2001 16:32:27 +0000 (16:32 +0000)]
reload1.c (move2add_note_store): Treat all registers about which no information is known as potential bases...
* reload1.c (move2add_note_store): Treat all registers about which
no information is known as potential bases, and treat all
registers directly or indirectly derived from it as members of the
same set of values.
(reload_cse_move2add): Adjust accordingly. Take mode and
offset of base register into account.
* init.c (build_delete): Always call convert_force to strip cv-quals.
* decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
* lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
* g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.