diff options
| author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-15 16:02:26 +0000 |
|---|---|---|
| committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-15 16:02:26 +0000 |
| commit | 5f970ec4b0286f4e87c9e6fd7f1414fc44454c9f (patch) | |
| tree | 0c8eec9b45ad084aa3c15b43318cdbc80835d66f | |
| parent | 7163d04ce8e8db43be124fd50cd5b5fa95bac2b7 (diff) | |
| download | ppe42-gcc-5f970ec4b0286f4e87c9e6fd7f1414fc44454c9f.tar.gz ppe42-gcc-5f970ec4b0286f4e87c9e6fd7f1414fc44454c9f.zip | |
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=.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96499 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ada/lang.opt | 5 | ||||
| -rw-r--r-- | gcc/ada/misc.c | 17 |
2 files changed, 16 insertions, 6 deletions
diff --git a/gcc/ada/lang.opt b/gcc/ada/lang.opt index 7ac89f96426..584220c2ea8 100644 --- a/gcc/ada/lang.opt +++ b/gcc/ada/lang.opt @@ -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 diff --git a/gcc/ada/misc.c b/gcc/ada/misc.c index 81f8249c425..4646c863e8a 100644 --- a/gcc/ada/misc.c +++ b/gcc/ada/misc.c @@ -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; |

