diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2013-04-22 12:44:46 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2013-04-22 12:44:46 +0200 |
commit | f6820c2d0eb622884ac873db8d0e360c2ff4480e (patch) | |
tree | d0a41249d44138bcc6fb4de33ba0fc5937bac577 /gcc/ada/init.c | |
parent | 16d3a85360dde6290cd043d6da3f6b5adb1b98e6 (diff) | |
download | gcc-f6820c2d0eb622884ac873db8d0e360c2ff4480e.zip gcc-f6820c2d0eb622884ac873db8d0e360c2ff4480e.tar.gz gcc-f6820c2d0eb622884ac873db8d0e360c2ff4480e.tar.bz2 |
[multiple changes]
2013-04-22 Pascal Obry <obry@adacore.com>
* gnat_ugn.texi, prj-nmsc.adb, projects.texi: Add check for
Library_Standalone and Library_Kind.
2013-04-22 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb (Expand_Actuals): If the call is to an
inherited operation and the actual is a by-reference type with
predicates, add predicate call to post-call actions.
* sem_util.adb (Is_Inherited_Operation_For_Type): Fix coding
error: a type declaration has a defining identifier, not an Etype.
* sem_res.adb: Restore code removed because of above error.
2013-04-22 Doug Rupp <rupp@adacore.com>
* init.c (__gnat_handle_vms_condition): Also match C$_SIGINT.
From-SVN: r198130
Diffstat (limited to 'gcc/ada/init.c')
-rw-r--r-- | gcc/ada/init.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ada/init.c b/gcc/ada/init.c index 8408225..030cb5c 100644 --- a/gcc/ada/init.c +++ b/gcc/ada/init.c @@ -833,6 +833,7 @@ void (*__gnat_ctrl_c_handler) (void) = 0; /* These codes are in standard message libraries. */ extern int C$_SIGKILL; +extern int C$_SIGINT; extern int SS$_DEBUG; extern int LIB$_KEYNOTFOU; extern int LIB$_ACTIMAGE; @@ -1221,14 +1222,18 @@ __gnat_handle_vms_condition (int *sigargs, void *mechargs) system_cond_except_table, 0}; unsigned int ctrlc = SS$_CONTROLC; + unsigned int *sigint = &C$_SIGINT; int ctrlc_match = LIB$MATCH_COND (&sigargs [1], &ctrlc); + int sigint_match = LIB$MATCH_COND (&sigargs [1], &sigint); extern int SYS$DCLAST (void (*astadr)(), unsigned long long astprm, unsigned int acmode); /* If SS$_CONTROLC has been imported as an exception, it will take - priority over a a Ctrl/C handler. See above. */ - if (ctrlc_match && __gnat_ctrl_c_handler) + priority over a a Ctrl/C handler. See above. SIGINT has a + different condition value due to it's DECCCRTL roots and it's + the condition that gets raised for a "kill -INT". */ + if ((ctrlc_match || sigint_match) && __gnat_ctrl_c_handler) { SYS$DCLAST (__gnat_ctrl_c_handler, 0, 0); return SS$_CONTINUE; |