aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/raise-gcc.c
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2012-07-09 12:36:42 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2012-07-09 12:36:42 +0200
commit21791d978bc82abe024f14e89daa8b294640e634 (patch)
treed2e9bd8a5faa86e9021f0ad569650516d8108c88 /gcc/ada/raise-gcc.c
parente714561a2fab73a2592aed0418a00b0c906c0711 (diff)
downloadgcc-21791d978bc82abe024f14e89daa8b294640e634.zip
gcc-21791d978bc82abe024f14e89daa8b294640e634.tar.gz
gcc-21791d978bc82abe024f14e89daa8b294640e634.tar.bz2
[multiple changes]
2012-07-09 Vincent Celier <celier@adacore.com> * lib-writ.ads: Add documentation for the Z lines (implicitly withed units) and Y lines (limited withed units). 2012-07-09 Robert Dewar <dewar@adacore.com> * lib.ads, exp_attr.adb, exp_ch9.adb, sem_dim.adb, sem_ch9.adb, sem_prag.adb, sem_ch12.adb, mlib-utl.adb, freeze.adb, sem_res.adb, sem_attr.adb, sem_case.adb, gnatlink.adb, exp_ch4.adb, sem_ch6.adb, sem_elim.adb, s-dimmks.ads, sem_ch13.adb: Minor code clean ups. 2012-07-09 Eric Botcazou <ebotcazou@adacore.com> * gnat_ugn.texi (Switches for gcc): Document -gnatn[12] only lightly in the summary and more thoroughly in inlining section. (Performance Considerations): Document -gnatn[12] in inlining section. 2012-07-09 Tristan Gingold <gingold@adacore.com> * a-exexpr-gcc.adb (Unhandled_Except_Handler): New procedure. (Unhandled_Others_Value): New const. * raise-gcc.c (GNAT_UNHANDLED_OTHERS): Define. (action_descriptor): Remove ttype_entry. (get_action_description_for): Do not assign ttype_entry. (is_handled_by): Consider GNAT_UNHANDLED_OTHERS. From-SVN: r189367
Diffstat (limited to 'gcc/ada/raise-gcc.c')
-rw-r--r--gcc/ada/raise-gcc.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/ada/raise-gcc.c b/gcc/ada/raise-gcc.c
index 74983ae..26bbd63 100644
--- a/gcc/ada/raise-gcc.c
+++ b/gcc/ada/raise-gcc.c
@@ -475,6 +475,9 @@ extern const int __gnat_others_value;
extern const int __gnat_all_others_value;
#define GNAT_ALL_OTHERS ((_Unwind_Ptr) &__gnat_all_others_value)
+extern const int __gnat_unhandled_others_value;
+#define GNAT_UNHANDLED_OTHERS ((_Unwind_Ptr) &__gnat_unhandled_others_value)
+
/* Describe the useful region data associated with an unwind context. */
typedef struct
@@ -653,7 +656,6 @@ typedef struct
/* If we have a handler matching our exception, these are the filter to
trigger it and the corresponding id. */
_Unwind_Sword ttype_filter;
- _Unwind_Ptr ttype_entry;
} action_descriptor;
@@ -852,8 +854,9 @@ is_handled_by (_Unwind_Ptr choice, _GNAT_Exception * propagated_exception)
bool is_handled =
choice == E
+ || (choice == GNAT_OTHERS && Is_Handled_By_Others (E))
|| choice == GNAT_ALL_OTHERS
- || (choice == GNAT_OTHERS && Is_Handled_By_Others (E));
+ || choice == GNAT_UNHANDLED_OTHERS;
/* In addition, on OpenVMS, Non_Ada_Error matches VMS exceptions, and we
may have different exception data pointers that should match for the
@@ -970,7 +973,6 @@ get_action_description_for (_Unwind_Context *uw_context,
{
action->kind = handler;
action->ttype_filter = ar_filter;
- action->ttype_entry = choice;
return;
}
}