aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/init.c
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2013-04-23 16:57:33 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2013-04-23 16:57:33 +0200
commit3b1d4d82eba3ecffc938d02c0a80b13e62491a38 (patch)
treecf957920073a82d1d9d8fea9f696b60da3b436c0 /gcc/ada/init.c
parent6577bef9b85e7a26f4059ec86bced1651ef2046e (diff)
downloadgcc-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.c16
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)
{