diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2013-04-23 16:57:33 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2013-04-23 16:57:33 +0200 |
commit | 3b1d4d82eba3ecffc938d02c0a80b13e62491a38 (patch) | |
tree | cf957920073a82d1d9d8fea9f696b60da3b436c0 /gcc/ada/init.c | |
parent | 6577bef9b85e7a26f4059ec86bced1651ef2046e (diff) | |
download | gcc-3b1d4d82eba3ecffc938d02c0a80b13e62491a38.zip gcc-3b1d4d82eba3ecffc938d02c0a80b13e62491a38.tar.gz gcc-3b1d4d82eba3ecffc938d02c0a80b13e62491a38.tar.bz2 |
[multiple changes]
2013-04-23 Yannick Moy <moy@adacore.com>
* einfo.ads: Minor typo fix.
* sem_ch13.adb (Build_Predicate_Functions): Reject cases where
Static_Predicate is applied to a non-scalar or non-static type.
* sem_prag.adb: Minor typo fix.
2013-04-23 Doug Rupp <rupp@adacore.com>
* init.c (GNAT$STOP) [VMS]: New function.
2013-04-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb: Add exp_pakd to context.
(Constrain_Component_Type): If the component of the parent is
packed, and the record subtype being built is already frozen,
as is the case for an itype, the component type itself will not
be frozen, and the packed array type for it must be constructed
explicitly.
2013-04-23 Thomas Quinot <quinot@adacore.com>
* g-socket.adb, g-socket.ads (Set_Close_On_Exec): New subprogram.
From-SVN: r198196
Diffstat (limited to 'gcc/ada/init.c')
-rw-r--r-- | gcc/ada/init.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ada/init.c b/gcc/ada/init.c index f6f5b2a..68b4035 100644 --- a/gcc/ada/init.c +++ b/gcc/ada/init.c @@ -1286,6 +1286,22 @@ __gnat_handle_vms_condition (int *sigargs, void *mechargs) Raise_From_Signal_Handler (exception, msg); } +#if defined (IN_RTS) && defined (__IA64) +/* Called only from adasigio.b32. This is a band aid to avoid going + through the VMS signal handling code which results in a 0x8000 per + handled exception memory leak in P2 space (see VMS source listing + sys/lis/exception.lis) due to the allocation of working space that + is expected to be deallocated upon return from the condition handler, + which doesn't return in GNAT compiled code. */ +void +GNAT$STOP (int *sigargs) +{ + /* Note that there are no mechargs. We rely on the fact that condtions + raised from DEClib I/O do not require an "adjust". */ + __gnat_handle_vms_condition (sigargs, 0); +} +#endif + void __gnat_install_handler (void) { |