From 21791d978bc82abe024f14e89daa8b294640e634 Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Mon, 9 Jul 2012 12:36:42 +0200 Subject: [multiple changes] 2012-07-09 Vincent Celier * lib-writ.ads: Add documentation for the Z lines (implicitly withed units) and Y lines (limited withed units). 2012-07-09 Robert Dewar * 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 * 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 * 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 --- gcc/ada/raise-gcc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'gcc/ada/raise-gcc.c') 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; } } -- cgit v1.1