diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-02-24 18:06:34 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-02-24 18:06:34 +0100 |
commit | 158d55fa393867c794df5aa43b693f61e5916b83 (patch) | |
tree | 7b2b58757fa8dde2e0d1161f993fb42856cfee7f /gcc/ada/raise-gcc.c | |
parent | 5c20e503ba3644e0037b09db9384f70aaa1daaa5 (diff) | |
download | gcc-158d55fa393867c794df5aa43b693f61e5916b83.zip gcc-158d55fa393867c794df5aa43b693f61e5916b83.tar.gz gcc-158d55fa393867c794df5aa43b693f61e5916b83.tar.bz2 |
[multiple changes]
2014-02-24 Robert Dewar <dewar@adacore.com>
* a-tags.adb, s-os_lib.adb: Minor reformatting.
2014-02-24 Thomas Quinot <quinot@adacore.com>
* g-sercom-mingw.adb, g-sercom-linux.adb (Raise_Error): Include
strerror message, not just numeric errno value.
2014-02-24 Doug Rupp <rupp@adacore.com>
* raise-gcc.c (exception_class_eq): Make endian neutral.
2014-02-24 Ed Schonberg <schonberg@adacore.com>
* atree.ads, atree,adb (Copy_Separate_Tree): Remove Syntax_Only
flag, and reset Etype and Analyzed attributes unconditionally
when copying a tree that may be partly analyzed.
* freeze.adb: Change calls to Copy_Separate_Tree accordingly.
* sem_ch6.adb (Check_Inline_Pragma): If the Inline pragma appears
within a subprogram body and applies to it, remove it from the
body before making a copy of it, to prevent spurious errors when
analyzing the copied body.
From-SVN: r208086
Diffstat (limited to 'gcc/ada/raise-gcc.c')
-rw-r--r-- | gcc/ada/raise-gcc.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/gcc/ada/raise-gcc.c b/gcc/ada/raise-gcc.c index fda51cc..f33fd1f 100644 --- a/gcc/ada/raise-gcc.c +++ b/gcc/ada/raise-gcc.c @@ -84,8 +84,13 @@ extern void __gnat_unhandled_except_handler (_Unwind_Exception *); /* The known and handled exception classes. */ +#ifdef __ARM_EABI_UNWINDER__ +#define CXX_EXCEPTION_CLASS "GNUCC++" +#define GNAT_EXCEPTION_CLASS "GNU-Ada" +#else #define CXX_EXCEPTION_CLASS 0x474e5543432b2b00ULL #define GNAT_EXCEPTION_CLASS 0x474e552d41646100ULL +#endif /* Structure of a C++ exception, represented as a C structure... See unwind-cxx.h for the full definition. */ @@ -863,16 +868,10 @@ extern struct Exception_Data Non_Ada_Error; /* Return true iff the exception class of EXCEPT is EC. */ static int -exception_class_eq (const _GNAT_Exception *except, unsigned long long ec) +exception_class_eq (const _GNAT_Exception *except, _Unwind_Exception_Class ec) { #ifdef __ARM_EABI_UNWINDER__ - union { - char exception_class[8]; - unsigned long long ec; - } u; - - u.ec = ec; - return memcmp (except->common.exception_class, u.exception_class, 8) == 0; + return memcmp (except->common.exception_class, ec, 8) == 0; #else return except->common.exception_class == ec; #endif |