mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-29 13:45:52 +08:00
re PR ada/20226 (Error in __gnat_install_SEH_handler breaks bootstrap)
2005-03-08 Pascal Obry <obry@adacore.com> Eric Botcazou <ebotcazou@adacore.com> PR ada/20226 PR ada/20344 * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler() when IN_RTS. This is to work around a bootstrap path problem. * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler) table and pass it to __gnat_install_SEH_handler(). (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS. * lang.opt: Fix specification of -fRTS=. From-SVN: r96499
This commit is contained in:
parent
454ff542f8
commit
9c2d872c6a
@ -57,8 +57,9 @@ nostdlib
|
||||
Ada
|
||||
; Don't look for object files
|
||||
|
||||
fRTS
|
||||
Ada RejectNegative
|
||||
fRTS=
|
||||
Ada Joined RejectNegative
|
||||
; Selects the runtime
|
||||
|
||||
gant
|
||||
Ada Joined Undocumented
|
||||
|
@ -217,18 +217,27 @@ extern char **gnat_argv;
|
||||
|
||||
|
||||
/* Declare functions we use as part of startup. */
|
||||
extern void __gnat_initialize (void *);
|
||||
extern void adainit (void);
|
||||
extern void _ada_gnat1drv (void);
|
||||
extern void __gnat_initialize (void *);
|
||||
extern void __gnat_install_SEH_handler (void *);
|
||||
extern void adainit (void);
|
||||
extern void _ada_gnat1drv (void);
|
||||
|
||||
/* The parser for the language. For us, we process the GNAT tree. */
|
||||
|
||||
static void
|
||||
gnat_parse_file (int set_yydebug ATTRIBUTE_UNUSED)
|
||||
{
|
||||
int seh[2];
|
||||
|
||||
/* call the target specific initializations */
|
||||
__gnat_initialize (NULL);
|
||||
|
||||
/* ??? call the SEH initialization routine, this is to workaround a
|
||||
bootstrap path problem. The call below should be removed at some point and
|
||||
the seh pointer passed to __gnat_initialize() above. */
|
||||
|
||||
__gnat_install_SEH_handler((void *)seh);
|
||||
|
||||
/* Call the front-end elaboration procedures */
|
||||
adainit ();
|
||||
|
||||
@ -289,7 +298,7 @@ gnat_handle_option (size_t scode, const char *arg, int value ATTRIBUTE_UNUSED)
|
||||
gnat_argc++;
|
||||
break;
|
||||
|
||||
case OPT_fRTS:
|
||||
case OPT_fRTS_:
|
||||
gnat_argv[gnat_argc] = xstrdup ("-fRTS");
|
||||
gnat_argc++;
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user