mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-08 00:37:27 +08:00
[multiple changes]
Thu Sep 17 16:42:16 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and re-align some code. * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>. 1998-09-17 Andrew MacLeod <amacleod@cygnus.com> * exception.cc (__cplus_type_matcher): realign some code. From-SVN: r22462
This commit is contained in:
parent
005dda25ff
commit
7ac2148be5
@ -1,3 +1,9 @@
|
||||
Thu Sep 17 16:42:16 EDT 1998 Andrew MacLeod <amacleod@cygnus.com>
|
||||
|
||||
* except.c (start_catch_handler): Issue 'fatal' instead of 'error' and
|
||||
re-align some code.
|
||||
* libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>.
|
||||
|
||||
Thu Sep 17 12:24:33 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||
|
||||
* regmove.c (copy_src_to_dest): Check that modes match.
|
||||
|
@ -1,3 +1,7 @@
|
||||
1998-09-17 Andrew MacLeod <amacleod@cygnus.com>
|
||||
|
||||
* exception.cc (__cplus_type_matcher): realign some code.
|
||||
|
||||
1998-09-16 Mark Mitchell <mark@markmitchell.com>
|
||||
|
||||
* Make-lang.in (tinfo.o): Use CXXFLAGS when compiling.
|
||||
|
@ -158,8 +158,8 @@ __cplus_type_matcher (cp_eh_info *info, rtimetype match_info,
|
||||
void *ret;
|
||||
|
||||
/* No exception table implies the old style mechanism, so don't check. */
|
||||
if (exception_table != NULL &&
|
||||
exception_table->lang.language != EH_LANG_C_plus_plus)
|
||||
if (exception_table != NULL
|
||||
&& exception_table->lang.language != EH_LANG_C_plus_plus)
|
||||
return NULL;
|
||||
|
||||
if (match_info == CATCH_ALL_TYPE)
|
||||
|
@ -1622,16 +1622,16 @@ start_catch_handler (rtime)
|
||||
rtx call_rtx, rtime_address;
|
||||
|
||||
if (catchstack.top->entry->false_label != NULL_RTX)
|
||||
error ("never issued previous false_label");
|
||||
fatal ("Compiler Bug: Never issued previous false_label");
|
||||
catchstack.top->entry->false_label = gen_exception_label ();
|
||||
|
||||
rtime_address = expand_expr (rtime, NULL_RTX, Pmode, EXPAND_INITIALIZER);
|
||||
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
|
||||
(gen_rtx_SYMBOL_REF (Pmode, "__eh_rtime_match"), NULL_RTX,
|
||||
0, SImode, 1, rtime_address, Pmode);
|
||||
|
||||
/* Did the function return true? */
|
||||
emit_cmp_insn (call_rtx, const0_rtx, EQ, NULL_RTX,
|
||||
|
@ -3058,6 +3058,7 @@ __empty ()
|
||||
/* Include definitions of EH context and table layout */
|
||||
|
||||
#include "eh-common.h"
|
||||
#include <stdio.h>
|
||||
|
||||
/* This is a safeguard for dynamic handler chain. */
|
||||
|
||||
@ -3364,10 +3365,15 @@ __eh_rtime_match (void *rtime)
|
||||
|
||||
info = *(__get_eh_info ());
|
||||
matcher = ((__eh_info *)info)->match_function;
|
||||
if (!matcher)
|
||||
perror ("No runtime type matcher available");
|
||||
#ifndef inhibit_libc
|
||||
if (! matcher)
|
||||
{
|
||||
fprintf (stderr, "Internal Compiler Bug: No runtime type matcher.");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
ret = (*matcher) (info, rtime, (void *)0);
|
||||
return ((int)ret);
|
||||
return (ret != NULL);
|
||||
}
|
||||
|
||||
/* This value identifies the place from which an exception is being
|
||||
|
Loading…
Reference in New Issue
Block a user