Craig Burley [Mon, 15 Jun 1998 07:54:39 +0000 (03:54 -0400)]
g77spec.c (lang_specific_driver): Print out egcs version info first...
Sat Jun 13 03:13:18 1998 Craig Burley <burley@gnu.org>
* g77spec.c (lang_specific_driver): Print out egcs
version info first, to be compatible with what some
test facilities expect.
Craig Burley [Mon, 15 Jun 1998 07:52:05 +0000 (03:52 -0400)]
Makefile.in (install): Don't install if $(libsubdir) is empty...
Sat Jun 13 03:46:40 1998 Craig Burley <burley@gnu.org>
* Makefile.in (install): Don't install if $(libsubdir)
is empty; issue a diagnostic saying top-level Makefile
must pass it in instead, and exit.
* Makefile.in (g2c.h): Rename from f2c.h.
* Makefile.in, libF77/Makefile.in, libI77/Makefile.in,
libU77/Makefile.in: Rewrite config and var assignment
sections to be even more minimal than before, and to
more clearly documented what macros are expected to be
set and to what sorts of values. Eliminate CROSS and
related stuff, since there's no such things as CROSS
in egcs. Rename GCC_FOR_TARGET to CC throughout.
* Makefile.in (stamp-libi77, stamp-libf77, stamp-libu77):
Eliminate CROSS.
* configure.in: Eliminate CROSS.
Rename libf2c.a and f2c.h to libg2c.a and g2c.h,
normalize and simplify g77/libg2c build process:
* Makefile.in: Remove all stuff pertaining to
installation, cleaning, and so on. Parent Makefile
does all that now. Pass F2C_H_DIR,
G2C_H_DIR, and GCC_H_DIR, the pathnames for the
directories containing f2c.h, g2c.h, and other
#include files, to subdirectory Makefiles.
(stamp-libf77, stamp-libi77, stamp-libu77):
Don't specify `-f Makefile' anymore, it's not needed
now that subdirectory makefile's from netlib are
renamed to makefile.netlib in g77 source (and to
makefile.ori by configuration process, in case they're
still around somehow).
(stamp-libe77): Don't make libE77 dir unless it doesn't
exist, if it does just delete all objects in it.
Compile using $(GCC_FOR_TARGET), not $(CC).
(rebuilt): Remove this and all subordinate targets,
as parent Makefile now handles all that.
(*clean): Remove.
* configure.in (Pad_UDread, ALWAYS_FLUSH, WANT_LEAD_0):
Remove these and commentary to new f2c.h file.
AC_OUTPUT g2c.h instead of f2c.h. Remove old commentary
regarding concatenation.
* g2c.h.in: Rename from f2c.h.in, add appropriate
commentary.
* f2c.h: New file, a wrapper for g2c.h that does
libg2c-specific stuff.
* libF77/Makefile.in, libI77/Makefile.in, libU77/Makefile.in:
Change $(ALL_CFLAGS) to use F2C_H_DIR, G2C_H_DIR, and GCC_H_DIR
macros. Remove F2C_H macro, replace use with explicit
dependencies on f2c.h and g2c.h.
(*clean): Remove.
Craig Burley [Mon, 15 Jun 1998 07:37:33 +0000 (03:37 -0400)]
Restore circa-0.5.22 capabilities of `g77' driver:
Thu May 28 21:32:18 1998 Craig Burley <burley@gnu.org>
Restore circa-0.5.22 capabilities of `g77' driver:
* Make-lang.in (g77spec.o): Depend on f/version.h.
(g77version.o): New rule to compile g77 version info.
(g77$(exeext)): Depend on and link in g77version.o.
* g77spec.c: Rewrite to be more like 0.5.22 version
of g77.c, making filtering of command line smarter
so mixed Fortran and C (etc.) can be compiled, verbose
version info can be obtained, etc.
* lang-specs.h (f77-version): New "language" to support
"g77 -v" command under new gcc 2.8 regime.
* lex.c (ffelex_file_fixed): If -fnull-version, just
substitute a "source file" that prints out version info.
* top.c, top.h: Support -fnull-version.
* lang-specs.h: Use "%O" instead of OO macro to specify
object extension. Remove old stringizing cruft.
* Make-lang.in (g77.c, g77spec.o, g77.o, g77$(exeext),
g77-cross$(exeext), f771,
$(srcdir)/f/g77.info, $(srcdir)/f/g77.dvi,
$(srcdir)/f/intdoc.texi,
f77.install-common, f77.install-info, f77.install-man,
f77.uninstall, $(G77STAGESTUFF), f77.stage1, f77.stage2,
f77.stage3, f77.stage4, f77.distdir): Don't do anything
unless user specified "f77" or "F77" in $LANGUAGES either
during configuration or explicitly. For convenience of
various tests and to work around lack of the assignment
"LANGUAGES=$(BOOT_LANGUAGES)" in the "make stage1" command
of "make bootstrap" in gcc, use a touch file named "lang-f77"
to communicate whether this is the case.
* Make-lang.in (F77_FLAGS_TO_PASS): Delete this macro,
replace with minimal expansion of its former self in
each of the two instances where it was used.
* Makefile.in (HOST_CC): Delete this definition.
* com.c (index, rindex): Delete these declarations.
* proj.h: (isascii): Delete this.
* Make-lang.in (f77.install-common): Warn if `f77-install-ok'
flag-file exists, since it no longer triggers any activity.
Rename libf2c.a and f2c.h to libg2c.a and g2c.h,
normalize and simplify g77/libg2c build process:
* Make-lang.in: Remove all support for overwriting
/usr/bin/f77 etc., or whatever the actual names are
via $(prefix) and $(local_prefix). (g++ overwrites
/usr/bin/c++, but then it's often the only C++ compiler
on the system; f77 often exists on systems that are
installing g77.)
(f77.realclean): Remove obsolete target.
(g77.c, g77$(exeext)): Minor changes to look more like g++'s
stuff.
(f771): Now built with srcdir=gcc/f, not srcdir=gcc, to be
more like g++ and such.
(f/Makefile): Removed, as g++ doesn't need this rule.
(f77.install-common): No longer install f77, etc.
(f77.install-man): No longer install f77.1.
(f77.uninstall): No longer uninstall f77, f77.1, etc.
(f77.stage1, f77.stage2, f77.stage3, f77.stage4): Do work
only if "f77" appears in $(LANGUAGES).
(Note: gcc's Makefile.in's bootstrap target should set
LANGUAGES=$(BOOT_LANGUAGES) when making the stage1 target.)
* Makefile.in: Update vis-a-vis gcc/cp/Makefile.in.
(none): Remove.
(g77-only): Relocate.
(all.indirect, f771, *.o): Now assumes current directory
is this dir (gcc/f), not the parent directory.
(TAGS): Remove "echo 'parse.y,0' >> TAGS ;" line.
* config-lang.in: Delete commented-out code.
Fix stagestuff definition. Add more stuff to
diff_excludes definition. Don't create any directories.
Set outputs to f/Makefile, to get variable substition
to happen (what does that really do, anyway?!).
* g77spec.c: Rename libf2c to libg2c.
* com.h: Remove all of the gcc back-end decls,
since egcs should have all of them correct.
* com.c: Include "proj.h" before anything else,
as that's how things are supposed to work.
* ste.c: Ditto.
* bad.c: Include "flags.j" here, since some diagnostics
check flag_pedantic_errors.
* Makefile.in (f/*.o): Rebuild dependencies via
deps-kinda.
* output.j: New source file.
* Make-lang.in (F77_SRCS): Update accordingly.
* Makefile.in (OUTPUT_H): Ditto.
(deps-kinda): Ditto.
* com.c: Include "output.j" here.
* lex.c: Ditto.
Mark Mitchell [Sat, 13 Jun 1998 23:48:07 +0000 (23:48 +0000)]
class.c (alter_access): Accept a BINFO explaining how to get from the entity whose accessed is being...
* class.c (alter_access): Accept a BINFO explaining how to get
from the entity whose accessed is being altered to the type doing
the altering.
(handle_using_decl): New function containing code split out from ...
(finish_struct_1): Here.
Mark Mitchell [Sat, 13 Jun 1998 23:45:18 +0000 (23:45 +0000)]
cp-tree.h (complete_type_or_else): Declare.
* cp-tree.h (complete_type_or_else): Declare.
* init.c (build_new_1, build_delete): Use it.
* typeck.c (require_complete_type): Use complete_type, rather than
expanding it inline.
(complete_type_or_else): New function.
(build_component_ref): Use it.
(pointer_int_sum): Make sure the type pointed to is complete.
(pointer_diff): Likewise.
Brendan Kehoe [Fri, 12 Jun 1998 12:56:22 +0000 (12:56 +0000)]
pt.c (check_explicit_specialization): If DECLARATOR turned into an error_mark_node from lookup_template_function...
* pt.c (check_explicit_specialization): If DECLARATOR turned into
an error_mark_node from lookup_template_function, return the same.
(determine_specialization): Also make sure TEMPLATE_ID isn't an
error_mark_node, before we try to read its operands.
* decl.c (grokdeclarator): If we got an error_mark_node from
check_explicit_specialization, just return it right back.
Kaveh R. Ghazi [Fri, 12 Jun 1998 12:06:29 +0000 (12:06 +0000)]
Mips warning fixes:
* mips.c (small_int): Mark parameter `mode' with ATTRIBUTE_UNUSED.
(large_int): Likewise.
(pc_or_label_operand): Likewise.
(call_insn_operand): Likewise.
(consttable_operand): Likewise.
(m16_uimm3_b): Likewise.
(m16_simm4_1): Likewise.
(m16_nsimm4_1): Likewise.
(m16_simm5_1): Likewise.
(m16_nsimm5_1): Likewise.
(m16_uimm5_4): Likewise.
(m16_nuimm5_4): Likewise.
(m16_simm8_1): Likewise.
(m16_nsimm8_1): Likewise.
(m16_uimm8_1): Likewise.
(m16_nuimm8_1): Likewise.
(m16_uimm8_m1_1): Likewise.
(m16_uimm8_4): Likewise.
(m16_nuimm8_4): Likewise.
(m16_simm8_8): Likewise.
(m16_nsimm8_8): Likewise.
(m16_usym8_4): Likewise.
(m16_usym5_4): Likewise.
(mips_move_1word): Change type of variable `i' from int to size_t.
(mips_move_2words): Likewise.
(output_block_move): Mark parameter `libname' with ATTRIBUTE_UNUSED.
(function_arg_advance): Use HOST_PTR_PRINTF to print an address.
(function_arg): Likewise.
(function_arg_partial_nregs): Mark parameter `named' with
ATTRIBUTE_UNUSED.
(override_options): Use ISDIGIT instead of isdigit.
(mips_output_external): Mark parameter `file' with ATTRIBUTE_UNUSED.
(final_prescan_insn): Likewise for parameters `opvec' and `noperands'.
(save_restore_insns): Cast HOST_WIDE_INT arguments passed to
function `fatal' to long before printing. Use
HOST_WIDE_INT_PRINT_DEC in fprintf. Both changes done several
times in this function.
(function_prologue): Mark parameter `size' with ATTRIBUTE_UNUSED.
(function_epilogue): Likewise for parameters `file' and `size'.
Print an int with "%d" not "%ld".
(mips_select_rtx_section): Mark parameter `x' with ATTRIBUTE_UNUSED.
(mips_function_value): Likewise for parameter `func'.
(function_arg_pass_by_reference): Likewise for parameters `cum'
and `named'.
(extend_operator): Likewise for parameter `mode'
(highpart_shift_operator): Likewise.
* mips.md (mul_acc_si): Remove unused variable `macc'.
Mark Mitchell [Fri, 12 Jun 1998 09:47:04 +0000 (09:47 +0000)]
class.c (instantiate_type): Don't treat template-ids that don't specify any template arguments as...
* class.c (instantiate_type): Don't treat template-ids that don't
specify any template arguments as equivalent to ordinary
identifiers. Use OFFSET_REF instead of SCOPE_REF to refer to
pointer-to-members for member templates. Tidy slightly.
* cp-tree.def (TEMPLATE_ID_EXPR): Revise documentation.
* init.c (build_offset_ref): Handle template-ids like ordinary
identifiers, for the most part, but store a TEMPLATE_ID_EXPR in the
offset part of the OFFSET_REF.
* typeck.c (build_unary_op): Change check for unknown types to
look for OFFSET_REFs, not SCOPE_REFs.
Mark Mitchell [Thu, 11 Jun 1998 00:07:24 +0000 (00:07 +0000)]
call.c (convert_default_arg): Make global, not static.
* call.c (convert_default_arg): Make global, not static.
(convert_arg_for_ellipsis): Split out from ...
(build_over_call): Here.
* cp-tree.h (convert_default_arg); Declare.
(convert_arg_to_ellipsis): Likewise.
(do_member_init): Remove.
* init.c (do_member_init): Remove; this code is dead.
(expand_member_init): Remove much of this code; it is dead.
* typeck.c (convert_arguments): Use convert_default_arg and
convert_arg_for_ellipsis, rather than duplicating here.
* call.c (convert_like): Don't fail silently if
build_user_type_conversion fails. Always return error_mark_node
for failure.
Jim Wilson [Wed, 10 Jun 1998 14:55:48 +0000 (14:55 +0000)]
Fix build failure when pointers smaller than integers.
* expr.c (expand_builtin_setjmp): Store const1_rtx in target.
(expand_builtin_longjmp): Abort if value isn't const1_rtx.
Delete code storing value in static_chain_rtx.
(expand_builtin, case BUILT_IN_LONGJMP): Pass NULL_RTX for target
to second expand_expr call.
Dave Brolley [Wed, 10 Jun 1998 12:58:43 +0000 (12:58 +0000)]
Use cpplib for cccp.
Wed Jun 10 13:41:23 1998 Dave Brolley <brolley@cygnus.com>
* cppmain.c (fatal): New function.
* configure.in (cpp_main): New configuration variable.
* configure: Regenerated.
* Makefile.in (CCCP): Use a configuration variable to select base for cccp.
(cppmain$(exeext)): Add @extra_cpp_objs@.
Dave Brolley [Wed, 10 Jun 1998 10:22:54 +0000 (06:22 -0400)]
New interface for lang_decode_option Wed Jun 10 13:07:02 1998 Dave Brolley <brolley@cygnus.com>
New interface for lang_decode_option
Wed Jun 10 13:07:02 1998 Dave Brolley <brolley@cygnus.com>
* objc/objc-act.c: Add cpplib declarations.
(lang_decode_option): Initialize cpplib if necessary.
(lang_decode_option): New argc/argv interface.
Dave Brolley [Wed, 10 Jun 1998 10:18:45 +0000 (10:18 +0000)]
New interface for lang_decode_option.
Wed Jun 10 13:17:32 1998 Dave Brolley <brolley@cygnus.com>
* top.h (ffe_decode_option): New argc/argv interface.
* top.c (ffe_decode_option): New argc/argv interface.
* parse.c (yyparse): New argc/argv interface for ffe_decode_option.
* com.c (lang_decode_option): New argc/argv interface.
Dave Brolley [Wed, 10 Jun 1998 10:16:45 +0000 (10:16 +0000)]
Integrate cpplib into the C++ front end.
1998-06-10 Dave Brolley <brolley@cygnus.com>
* decl2.c (lang_decode_option): New argc/argv interface.
* cp-tree.h (lang_decode_option): New argc/argv interface.
* lang-specs.h (default_compilers): Only call cpp if -E, -M or -MM is
specified for cpplib-enabled compilers.
* lex.c (lang_init): Don't check_newline for cpplib.
(init_parse): Don't initialize cpplib here.
Dave Brolley [Wed, 10 Jun 1998 10:12:36 +0000 (10:12 +0000)]
Integrate cpplib into the C and C++ front ends.
Wed Jun 10 13:07:02 1998 Dave Brolley <brolley@cygnus.com>
* objc/objc-act.c: Add cpplib declarations.
(lang_decode_option): Initialize cpplib if necessary.
(lang_decode_option): New argc/argv interface.
* tree.h (lang_decode_option): New argc/argv interface.
* toplev.c (lang_options): Add cpp options.
(main): New interface for lang_decode_option.
* gcc.c (default_compilers): Don't call cpp for a cpplib-enabled C compiler
unless -E, -M or -MM is specified.
* cpplib.h (cpp_handle_option): New function.
* cpplib.c (cpp_handle_option): New function.
(cpp_handle_options): Now calls cpp_handle_option.
* c-tree.h (c_decode_option): New argc/argv interface.
* c-lex.c (init_parse): cpplib now initialized in c_decode_option.
* c-lang.c (lang_decode_option): New argc/argv interface.
* c-decl.c: Add cpplib declarations.
(c_decode_option): New argc/argv interface.
(c_decode_option): Call cpp_handle_option.
(c_decode_option): Now returns number of strings processed.
Jeffrey A Law [Wed, 10 Jun 1998 09:15:39 +0000 (09:15 +0000)]
mips.c (gpr_mode): New variable.
* mips.c (gpr_mode): New variable.
(override_options): Initialize gpr_mode.
(compute_frame_size): Use "gpr_mode" instead of "word_mode" to
determine size and offset of general purpose registers save slots.
(save_restore_insns, mips_expand_prologue): Similarly.
John Carr [Wed, 10 Jun 1998 06:00:50 +0000 (06:00 +0000)]
reload1.c (reload_cse_simplify_operands): Do not call gen_rtx_REG for each alternative.
Wed Jun 10 08:56:27 1998 John Carr <jfc@mit.edu>
* reload1.c (reload_cse_simplify_operands): Do not call gen_rtx_REG
for each alternative. Do not replace a CONST_INT with a REG unless
the reg is cheaper.
John Carr [Wed, 10 Jun 1998 05:54:23 +0000 (05:54 +0000)]
tree.c (debug_binfo): Make printf format match arguments.
1998-06-10 John Carr <jfc@mit.edu>
* tree.c (debug_binfo): Make printf format match arguments.
* error.c (OB_PUTI): Make printf format match arguments.
* init.c (resolve_offset_ref): Handle default-initialization.
* except.c (build_throw): Handle throwing NULL.
* typeck.c (build_x_function_call): Use resolve_offset_ref.
* search.c (compute_access): Only strip an anonymous union
for a FIELD_DECL.
* call.c (add_builtin_candidates): Tweak.
* cvt.c (build_expr_type_conversion): Restore code for conversion
from class types.
* decl2.c (delete_sanity): Use it. Clean up.
* typeck.c (comp_ptr_ttypes_real): Fix cv-qual comparisons.
* typeck.c (c_expand_return): Don't warn about void expressions on
return statements in functions returning void.
Jeffrey A Law [Wed, 10 Jun 1998 01:14:54 +0000 (01:14 +0000)]
reload.c (find_reloads_toplev): Use gen_lowpart common to convert between constant representations when...
* reload.c (find_reloads_toplev): Use gen_lowpart common to convert
between constant representations when we have (SUBREG (REG)) with
REG equivalent to a constant.
Jeffrey A Law [Tue, 9 Jun 1998 10:34:59 +0000 (10:34 +0000)]
Makefile.in (LIB2FUNCS_EH): Define.
* Makefile.in (LIB2FUNCS_EH): Define. Just "_eh" for now.
(LIBGCC2_CFLAGS): Remove -fexceptions.
(LIB2FUNCS): Remove "_eh".
(libgcc2.a): Iterate over LIB2FUNCS_EH and build everything in
it with -fexceptions.
* Makefile.in (local-alloc.o): Depend on insn-attr.h.
* local-alloc.c (block_alloc): Avoid creating false
dependencies for targets which use instruction scheduling.
Kaveh R. Ghazi [Mon, 8 Jun 1998 18:30:27 +0000 (18:30 +0000)]
Warning fixes:
* Makefile.in (varasm.o): Depend on dbxout.h.
(cse.o): Depend on toplev.h and output.h.
(gcse.o): Depend on output.h.
* mips.c: Include system.h and toplev.h and remove redundant code.
Include output.h after tree.h so all its prototypes get activated.
* mips.md (table_jump): Remove unused variable `dest'.
* sparc.h: Add prototype for `v8plus_regcmp_op'.
* crtstuff.c (fini_dummy, init_dummy): Mark function definitions
with __attribute__ ((__unused__)).
(__frame_dummy): Provide prototype before use, wrap it with
EH_FRAME_SECTION_ASM_OP.
* cse.c: Move inclusion of <setjmp.h> above local headers.
Include toplev.h and output.h.
* dbxout.h: Add prototype for `dbxout_begin_function'.
* final.c (final_scan_insn): Wrap variable `max_skip' in macro
ASM_OUTPUT_MAX_SKIP_ALIGN.
* gcse.c: Include system.h and output.h.
(dump_cuid_table, dump_rd_table, dump_cprop_data, dump_pre_data):
Make extern instead of static.
(compute_can_copy): Only declare variables `reg' and `insn' when
AVOID_CCMODE_COPIES is not defined.
(record_set_info): Mark parameter `setter' with ATTRIBUTE_UNUSED.
(hash_scan_clobber): Likewise for `x' and `insn'.
(hash_scan_call): Likewise.
(record_last_set_info): Likewise for `setter'.
(mark_call): Likewise for `pat'.
(pre_insert_insn): Wrap variable `note' in macro HAVE_cc0.
* libgcc2.c (__bb_init_prg): Replace bzero with memset and fix the
length parameter so that it multiplies the number of elements by
the sizeof(element).
* output.h: Add prototype for `weak_finish'.
* recog.h: Likewise for `validate_replace_src'.
* rtl.h: Likewise for `optimize_save_area_alloca',
`fix_sched_param', `purge_addressof', `gcse_main',
`regmove_optimize', `dbr_schedule', `branch_prob' and
`end_branch_prob'.
* toplev.h: Likewise for `set_float_handler' and
`output_quoted_string'.
* varasm.c: Include dbxout.h.
Kaveh R. Ghazi [Mon, 8 Jun 1998 17:52:39 +0000 (17:52 +0000)]
Warning fixes:
* Makefile.in (decl2.o): Depend on dwarf2out.h and dwarfout.h.
* cp-tree.h: Add prototype for `maybe_print_template_context' and
`maybe_make_one_only'.
* decl.c (auto_function): Remove unused variable `decl'.
* decl2.c: Include dwarf2out.h and dwarfout.h.
* lex.c: Remove redundant declarations of `set_float_handler' and
`asm_out_file'.
Ken Raeburn [Mon, 8 Jun 1998 15:56:47 +0000 (15:56 +0000)]
* Revamped multiply support for MIPS chips.
* mips.c (extend_operator): New function.
(highpart_shift_operator): Likewise.
* mips.h: Declare new functions.
(PREDICATE_CODES): Add support for new predicates.
* mips.md (mulsi3 expander): Simplify.
(mulsi_mult3): Add another constraint alternative. Support
3 operand multiply instructions as found on various mips
parts.
(mulsi3_r4650): Delete pattern, now handled by mulsi_mult3.
(mul_acc_si): New pattern and associated splitters.
(mulsidi3 expander): Rework to use mulsidi3_64bit and
mulsidi3_internal.
(umulsidi3): New expander.
(mulsidi3_internal): Accept either sign or zero extended
operands and generate code as appropriate appropriately.
(mulsidi3_64bit): Similarly.
(smulsi3_highpart): Turn into an expander and generate code
to match new patterns.
(umulsi3_highpart): Likewise.
(xmulsi3_highpart_internal): New pattern.
(maddi patterns): Delete. Replace with:
(mul_acc_di, mul-acc_64bit_di): New patterns.
Co-Authored-By: Jeffrey A Law <law@cygnus.com>
From-SVN: r20337
Andrew MacLeod [Mon, 8 Jun 1998 12:43:28 +0000 (12:43 +0000)]
[multiple changes]
Thu Jun 8 14:16:15 EDT 1998 Andrew MacLeod <amacleod@cygnus.com>
* eh-common.h: Remove NEW_EH_MODEL compile time flag, and replace with
flag_new_exceptions runtime flag.
(struct old_exception_table): New struct which represents what
the exception table looks like without the new model.
(NEW_EH_RUNTIME): New value used as a tag in the exception table to
flag that this is a new style table.
* except.h: Remove compile time flag NEW_EH_MODEL.
(expand_builtin_eh_stub_old): New prototype.
* tree.h (enum built_in_function): Add BUILT_IN_EH_STUB_OLD.
* expr.c (expand_builtin): New builtin func BUILT_IN_EH_STUB_OLD.
* c-decl.c (init_decl_processing): Add new builtin function
__builtin_eh_stub_old.
* final.c (final_scan_insn): Replace compile time flag NEW_EH_MODEL.
* flags.h (flag_new_exceptions): New runtime flag.
* toplev.c (flag_new_exceptions): Initialize default to 0,
-fnew-exceptions sets to 1.
* except.c (output_exception_table_entry): Output New style exception
identifier into table, and replace compile time flag NEW_EH_MODEL
with runtime flag flag_new_exceptions.
(output_exception_table): Replace compile time flag NEW_EH_MODEL.
(expand_builtin_eh_stub_old): Duplicates original functionality of
expand_builtin_eh_stub.
(expand_builtin_eh_stub): Replace compile time flag NEW_EH_MODEL.
* libgcc2.c (find_exception_handler): Remove NEW_EH_MODEL #ifdefs.
(old_find_exception_handler): New func, same as find_exception_handler
except it works on the old style exception table.
(__throw): Replace NEW_EH_MODEL. Detect new model based on presence
of identifier in the exception table, and call appropriate routines.
1998-06-08 Andrew MacLeod <amacleod@cygnus.com>
* except.c (init_exception_processing): Remove NEW_EH_MODEL compile
time flag. Call __cp_eh_info instead of __cp_exception_info.
* exception.cc (struct cp_eh_info): Remove NEW_EH_MODEL flag.
(__cp_exception_info): Return offset into cp_eh_info structure to
match what use to be the start of this structure.
(__cp_eh_info): New function to return a pointer to cp_eh_info struct.
(__cplus_type_matcher, __cp_push_exception): Remove NEW_EH_MODEL
compile time flag.
(__uncatch_exception, __check_eh_spec, std::uncaught_exception): Call
__cp_eh_info instead of __cp_exception_info.
* function.c: Define current_function_cannot_inline.
(push_function_context_to): Save it.
(pop_function_context_from): Restore it.
* function.h (struct function): Provide it a home.
* output.h: Declare it.
* integrate.c (function_cannot_inline_p): Check it.
* decl.c (cp_finish_decl): Disable inlining of extern inlines
with static variables.