aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/raise.c
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2017-04-27 11:48:45 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2017-04-27 11:48:45 +0200
commit6cbfce7e87651d5e7272bad48dfc63e71c1bb27a (patch)
tree1b8bba33017bf56868f71410e9917dde0ac8c621 /gcc/ada/raise.c
parentde3b531c9aa93592f98ebd99c6b35be632e3c1b3 (diff)
downloadgcc-6cbfce7e87651d5e7272bad48dfc63e71c1bb27a.zip
gcc-6cbfce7e87651d5e7272bad48dfc63e71c1bb27a.tar.gz
gcc-6cbfce7e87651d5e7272bad48dfc63e71c1bb27a.tar.bz2
[multiple changes]
2017-04-27 Claire Dross <dross@adacore.com> * a-cfdlli.adb, a-cfdlli.ads (Formal_Model): Adapt to modifications in functional containers. * a-cofuba.ads, a-cofuma.ads, a-cofuse.ads, a-cofuve.ads Reformat to improve readablity. Subprograms are separated between basic operations, constructors and properties. Universally quantified formulas in contracts are factorized in independant functions with a name and a comment. Names of parameters are improved. 2017-04-27 Gary Dismukes <dismukes@adacore.com> * exp_spark.adb, sem_elab.adb: Minor reformatting and typo fix. 2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> * sem_res.adb (Resolve_Type_Conversion): Do not install a predicate check here since this is already done during the expansion phase. Verify whether the operand satisfies the static predicate (if any) of the target type. * sem_ch3.adb (Analyze_Object_Declaration): Do not install a predicate check if the object is initialized by means of a type conversion because the conversion is subjected to the same check. 2017-04-27 Tristan Gingold <gingold@adacore.com> * raise.c (__gnat_builtin_longjmp): Remove. (__gnat_bracktrace): Add a dummy definition for the compiler (__gnat_eh_personality, __gnat_rcheck_04, __gnat_rcheck_10) (__gnat_rcheck_19, __gnat_rcheck_20, __gnat_rcheck_21) (__gnat_rcheck_30, __gnat_rcheck_31, __gnat_rcheck_32): Likewise. * a-exexpr.adb: Renamed from a-exexpr-gcc.adb * a-except.ads, a-except.adb: Renamed from a-except-2005.ads and a-except-2005.adb. * raise-gcc.c: Allow build in compiler, compiled as a C++ file. (__gnat_Unwind_ForcedUnwind): Adjust prototype. (db): Constify msg_format. (get_call_site_action_for): Don't use void arithmetic. * system.ads (Frontend_Exceptions): Set to False. (ZCX_By_Default): Set to True. (GCC_ZC_Support): Set to True. * gcc-interface/Makefile.in: No more variants for a-exexpr.adb and a-except.ad[sb]. * gcc-interface/Make-lang.in: Add support for backend zcx exceptions in gnat1 and gnatbind. * gnat1, gnatbind: link with raise-gcc.o, a-exctra.o, s-addima.o, s-excmac.o, s-imgint.o, s-traceb.o, s-trasym.o, s-wchstw.o * s-excmac.ads, s-excmac.adb: Copy of variants. * a-except.o: Adjust preequisites. Add handling of s-excmac-arm.adb and s-excmac-gcc.adb. From-SVN: r247301
Diffstat (limited to 'gcc/ada/raise.c')
-rw-r--r--gcc/ada/raise.c81
1 files changed, 66 insertions, 15 deletions
diff --git a/gcc/ada/raise.c b/gcc/ada/raise.c
index a61723d..8434b67 100644
--- a/gcc/ada/raise.c
+++ b/gcc/ada/raise.c
@@ -6,7 +6,7 @@
* *
* C Implementation File *
* *
- * Copyright (C) 1992-2012, Free Software Foundation, Inc. *
+ * Copyright (C) 1992-2017, Free Software Foundation, Inc. *
* *
* GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- *
@@ -47,20 +47,6 @@
extern "C" {
#endif
-/* Wrapper to builtin_longjmp. This is for the compiler eh only, as the sjlj
- runtime library interfaces directly to the intrinsic. We can't yet do
- this for the compiler itself, because this capability relies on changes
- made in April 2008 and we need to preserve the possibility to bootstrap
- with an older base version. */
-
-#if defined (IN_GCC) && !defined (IN_RTS)
-void
-_gnat_builtin_longjmp (void *ptr, int flag ATTRIBUTE_UNUSED)
-{
- __builtin_longjmp (ptr, 1);
-}
-#endif
-
/* When an exception is raised for which no handler exists, the procedure
Ada.Exceptions.Unhandled_Exception is called, which performs the call to
adafinal to complete finalization, and then prints out the error messages
@@ -84,6 +70,71 @@ __gnat_unhandled_terminate (void)
__gnat_os_exit (1);
}
+#ifndef IN_RTS
+int
+__gnat_backtrace (void **array ATTRIBUTE_UNUSED,
+ int size ATTRIBUTE_UNUSED,
+ void *exclude_min ATTRIBUTE_UNUSED,
+ void *exclude_max ATTRIBUTE_UNUSED,
+ int skip_frames ATTRIBUTE_UNUSED)
+{
+ return 0;
+}
+
+void
+__gnat_eh_personality (void)
+{
+ abort ();
+}
+
+void
+__gnat_rcheck_04 (void)
+{
+ abort ();
+}
+
+void
+__gnat_rcheck_10 (void)
+{
+ abort ();
+}
+
+void
+__gnat_rcheck_19 (void)
+{
+ abort ();
+}
+
+void
+__gnat_rcheck_20 (void)
+{
+ abort ();
+}
+
+void
+__gnat_rcheck_21 (void)
+{
+ abort ();
+}
+
+void
+__gnat_rcheck_30 (void)
+{
+ abort ();
+}
+
+void
+__gnat_rcheck_31 (void)
+{
+ abort ();
+}
+
+void
+__gnat_rcheck_32 (void)
+{
+ abort ();
+}
+#endif
#ifdef __cplusplus
}
#endif