From 2c0c89ac6ebcadf2f65a1ef34af4cb13320996ce Mon Sep 17 00:00:00 2001 From: charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Fri, 17 Feb 2006 16:07:22 +0000 Subject: [PATCH] 2006-02-17 Vasiliy Fofanov <fofanov@adacore.com> * init.c (facility_resignal_table): new array (__gnat_default_resignal_p): enhance default predicate to resignal if VMS condition has one of the predefined facility codes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111189 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/init.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gcc/ada/init.c b/gcc/ada/init.c index eb10d6363f16..11dc19de4f37 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])); -- GitLab