diff options
Diffstat (limited to 'gdb/cp-abi.c')
-rw-r--r-- | gdb/cp-abi.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/gdb/cp-abi.c b/gdb/cp-abi.c index 70a0528..b8af8f0 100644 --- a/gdb/cp-abi.c +++ b/gdb/cp-abi.c @@ -69,18 +69,17 @@ baseclass_offset (struct type *type, int index, const gdb_byte *valaddr, int embedded_offset, CORE_ADDR address, const struct value *val) { - volatile struct gdb_exception ex; int res = 0; gdb_assert (current_cp_abi.baseclass_offset != NULL); - TRY_CATCH (ex, RETURN_MASK_ERROR) + TRY { res = (*current_cp_abi.baseclass_offset) (type, index, valaddr, embedded_offset, address, val); } - if (ex.reason < 0) + CATCH (ex, RETURN_MASK_ERROR) { if (ex.error != NOT_AVAILABLE_ERROR) throw_exception (ex); @@ -89,6 +88,7 @@ baseclass_offset (struct type *type, int index, const gdb_byte *valaddr, _("Cannot determine virtual baseclass offset " "of incomplete object")); } + END_CATCH return res; } @@ -109,16 +109,19 @@ value_rtti_type (struct value *v, int *full, int *top, int *using_enc) { struct type *ret = NULL; - volatile struct gdb_exception e; if ((current_cp_abi.rtti_type) == NULL) return NULL; - TRY_CATCH (e, RETURN_MASK_ERROR) + TRY { ret = (*current_cp_abi.rtti_type) (v, full, top, using_enc); } - if (e.reason < 0) - return NULL; + CATCH (e, RETURN_MASK_ERROR) + { + return NULL; + } + END_CATCH + return ret; } |