mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-14 21:01:22 +08:00
expr.h (eh_rtime_match_libfunc): New extern declaration.
Mon Sep 21 17:15:26 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> * expr.h (eh_rtime_match_libfunc): New extern declaration. * optabs.c (init_optabs): Set eh_rtime_match_libfunc. * except.c (start_catch_handler): Use eh_rtime_match_libfunc. * libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is NULL. Only include <stdio.h> if inhibit_libc is not defined. From-SVN: r22532
This commit is contained in:
parent
7e8524dca9
commit
43566944af
@ -1,3 +1,11 @@
|
||||
Mon Sep 21 17:15:26 EDT 1998 Andrew MacLeod <amacleod@cygnus.com>
|
||||
|
||||
* expr.h (eh_rtime_match_libfunc): New extern declaration.
|
||||
* optabs.c (init_optabs): Set eh_rtime_match_libfunc.
|
||||
* except.c (start_catch_handler): Use eh_rtime_match_libfunc.
|
||||
* libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is
|
||||
NULL. Only include <stdio.h> if inhibit_libc is not defined.
|
||||
|
||||
Mon Sep 21 14:10:51 1998 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* toplev.c (rest_of_compilation): Skip compiling anything with
|
||||
|
@ -1629,9 +1629,8 @@ start_catch_handler (rtime)
|
||||
rtime_address = force_reg (Pmode, rtime_address);
|
||||
|
||||
/* Now issue the call, and branch around handler if needed */
|
||||
call_rtx = emit_library_call_value
|
||||
(gen_rtx_SYMBOL_REF (Pmode, "__eh_rtime_match"), NULL_RTX,
|
||||
0, SImode, 1, rtime_address, Pmode);
|
||||
call_rtx = emit_library_call_value (eh_rtime_match_libfunc, NULL_RTX,
|
||||
0, SImode, 1, rtime_address, Pmode);
|
||||
|
||||
/* Did the function return true? */
|
||||
emit_cmp_insn (call_rtx, const0_rtx, EQ, NULL_RTX,
|
||||
|
@ -442,6 +442,7 @@ extern rtx sjpopnthrow_libfunc;
|
||||
extern rtx terminate_libfunc;
|
||||
extern rtx setjmp_libfunc;
|
||||
extern rtx longjmp_libfunc;
|
||||
extern rtx eh_rtime_match_libfunc;
|
||||
|
||||
extern rtx eqhf2_libfunc;
|
||||
extern rtx nehf2_libfunc;
|
||||
|
@ -3058,7 +3058,9 @@ __empty ()
|
||||
/* Include definitions of EH context and table layout */
|
||||
|
||||
#include "eh-common.h"
|
||||
#ifndef inhibit_libc
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
|
||||
/* This is a safeguard for dynamic handler chain. */
|
||||
|
||||
@ -3365,13 +3367,13 @@ __eh_rtime_match (void *rtime)
|
||||
|
||||
info = *(__get_eh_info ());
|
||||
matcher = ((__eh_info *)info)->match_function;
|
||||
#ifndef inhibit_libc
|
||||
if (! matcher)
|
||||
{
|
||||
#ifndef inhibit_libc
|
||||
fprintf (stderr, "Internal Compiler Bug: No runtime type matcher.");
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
ret = (*matcher) (info, rtime, (void *)0);
|
||||
return (ret != NULL);
|
||||
}
|
||||
|
@ -124,6 +124,7 @@ rtx sjpopnthrow_libfunc;
|
||||
rtx terminate_libfunc;
|
||||
rtx setjmp_libfunc;
|
||||
rtx longjmp_libfunc;
|
||||
rtx eh_rtime_match_libfunc;
|
||||
|
||||
rtx eqhf2_libfunc;
|
||||
rtx nehf2_libfunc;
|
||||
@ -4296,6 +4297,7 @@ init_optabs ()
|
||||
sjthrow_libfunc = gen_rtx_SYMBOL_REF (Pmode, "__sjthrow");
|
||||
sjpopnthrow_libfunc = gen_rtx_SYMBOL_REF (Pmode, "__sjpopnthrow");
|
||||
terminate_libfunc = gen_rtx_SYMBOL_REF (Pmode, "__terminate");
|
||||
eh_rtime_match_libfunc = gen_rtx_SYMBOL_REF (Pmode, "__eh_rtime_match");
|
||||
#ifndef DONT_USE_BUILTIN_SETJMP
|
||||
setjmp_libfunc = gen_rtx_SYMBOL_REF (Pmode, "__builtin_setjmp");
|
||||
longjmp_libfunc = gen_rtx_SYMBOL_REF (Pmode, "__builtin_longjmp");
|
||||
|
Loading…
x
Reference in New Issue
Block a user