aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/init.c')
-rw-r--r--gcc/ada/init.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ada/init.c b/gcc/ada/init.c
index eb10d636..11dc19d 100644
--- a/gcc/ada/init.c
+++ b/gcc/ada/init.c
@@ -1308,6 +1308,12 @@ const int *cond_resignal_table [] = {
0
};
+const int facility_resignal_table [] = {
+ 0x1380000, /* RDB */
+ 0x2220000, /* SQL */
+ 0
+};
+
/* Default GNAT predicate for resignaling conditions. */
static int
@@ -1315,6 +1321,10 @@ __gnat_default_resignal_p (int code)
{
int i, iexcept;
+ for (i = 0; facility_resignal_table [i]; i++)
+ if ((code & 0xfff0000) == facility_resignal_table [i])
+ return 1;
+
for (i = 0, iexcept = 0;
cond_resignal_table [i] &&
!(iexcept = LIB$MATCH_COND (&code, &cond_resignal_table [i]));