diff options
author | Vasiliy Fofanov <fofanov@adacore.com> | 2006-02-17 17:07:22 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2006-02-17 17:07:22 +0100 |
commit | 721a4f13e6527fec77c40a595c48be71942102f0 (patch) | |
tree | fc19407c92552791ee10bdb393d2aae4ebc91a62 | |
parent | 0e3e1f1559c7608c6b736fe9c6d30c07425dfd83 (diff) | |
download | gcc-721a4f13e6527fec77c40a595c48be71942102f0.zip gcc-721a4f13e6527fec77c40a595c48be71942102f0.tar.gz gcc-721a4f13e6527fec77c40a595c48be71942102f0.tar.bz2 |
init.c (facility_resignal_table): new array
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.
From-SVN: r111189
-rw-r--r-- | gcc/ada/init.c | 10 |
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])); |