aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/raise-gcc.c
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2017-04-27 12:00:42 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2017-04-27 12:00:42 +0200
commit522aa6ee70820727d5be628b0f6b3cc7a185a14b (patch)
treeae207153ba994c3456cf41e612a494ca2c615cdd /gcc/ada/raise-gcc.c
parentf138ea5cbaf8f2a8cec00b741e5b23a8db5c0f83 (diff)
downloadgcc-522aa6ee70820727d5be628b0f6b3cc7a185a14b.zip
gcc-522aa6ee70820727d5be628b0f6b3cc7a185a14b.tar.gz
gcc-522aa6ee70820727d5be628b0f6b3cc7a185a14b.tar.bz2
[multiple changes]
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch8.adb (Find_Direct_Name): Account for the case where a use-visible entity is defined within a nested scope of an instance when giving priority to entities which were visible in the original generic. * sem_util.ads, sem_util.adb (Nearest_Enclosing_Instance): New routine. 2017-04-27 Tristan Gingold <gingold@adacore.com> * raise-gcc.c: Don't use unwind.h while compiling for the frontend, but mimic host behavior. 2017-04-27 Javier Miranda <miranda@adacore.com> * sem_ch3.adb (Build_Discriminated_Subtype): Propagate Has_Pragma_Unreferenced_Objects to the built subtype. 2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Analyze_Global_Item): Do not consider discriminants because they are not "entire objects". Remove the discriminant-related checks because they are obsolete. (Analyze_Input_Output): Do not consider discriminants because they are not "entire objects". 2017-04-27 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Do not perform check if the current scope does not come from source, as is the case for a rewritten task body, because check has been performed already, and may not be doable because of changed visibility. From-SVN: r247309
Diffstat (limited to 'gcc/ada/raise-gcc.c')
-rw-r--r--gcc/ada/raise-gcc.c37
1 files changed, 31 insertions, 6 deletions
diff --git a/gcc/ada/raise-gcc.c b/gcc/ada/raise-gcc.c
index cb35842..1264a726 100644
--- a/gcc/ada/raise-gcc.c
+++ b/gcc/ada/raise-gcc.c
@@ -32,12 +32,20 @@
/* Code related to the integration of the GCC mechanism for exception
handling. */
-#ifndef CERT
-#include "tconfig.h"
-#include "tsystem.h"
+#ifndef IN_RTS
+ /* For gnat1/gnatbind compilation: use host headers. */
+# include "config.h"
+# include "system.h"
+ /* Don't use fancy_abort. */
+# undef abort
#else
-#define ATTRIBUTE_UNUSED __attribute__((unused))
-#define HAVE_GETIPINFO 1
+# ifndef CERT
+# include "tconfig.h"
+# include "tsystem.h"
+# else
+# define ATTRIBUTE_UNUSED __attribute__((unused))
+# define HAVE_GETIPINFO 1
+# endif
#endif
#include <stdarg.h>
@@ -71,7 +79,19 @@ typedef char bool;
(SJLJ or DWARF). We need a consistently named interface to import from
a-except, so wrappers are defined here. */
-#include "unwind.h"
+#ifndef IN_RTS
+ /* For gnat1/gnatbind compilation: cannot use unwind.h, as it is for the
+ target. So mimic configure...
+ This is a hack ???, the real fix is to link gnat1/gnatbind with the
+ runtime of the build compiler. */
+# ifdef EH_MECHANISM_arm
+# include "config/arm/unwind-arm.h"
+# else
+# include "unwind-generic.h"
+# endif
+#else
+# include "unwind.h"
+#endif
#ifdef __cplusplus
extern "C" {
@@ -98,6 +118,11 @@ extern void __gnat_raise_abort (void) __attribute__ ((noreturn));
#include "unwind-pe.h"
+#ifdef __ARM_EABI_UNWINDER__
+/* for memcmp */
+#include <string.h>
+#endif
+
/* The known and handled exception classes. */
#ifdef __ARM_EABI_UNWINDER__