diff options
Diffstat (limited to 'gdb/valops.c')
-rw-r--r-- | gdb/valops.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/gdb/valops.c b/gdb/valops.c index b096a51..66c63c1 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -3601,13 +3601,12 @@ value_rtti_indirect_type (struct value *v, int *full, target = coerce_ref (v); else if (TYPE_CODE (type) == TYPE_CODE_PTR) { - volatile struct gdb_exception except; - TRY_CATCH (except, RETURN_MASK_ERROR) + TRY { target = value_ind (v); } - if (except.reason < 0) + CATCH (except, RETURN_MASK_ERROR) { if (except.error == MEMORY_ERROR) { @@ -3618,6 +3617,7 @@ value_rtti_indirect_type (struct value *v, int *full, } throw_exception (except); } + END_CATCH } else return NULL; @@ -3754,12 +3754,15 @@ struct value * value_of_this_silent (const struct language_defn *lang) { struct value *ret = NULL; - volatile struct gdb_exception except; - TRY_CATCH (except, RETURN_MASK_ERROR) + TRY { ret = value_of_this (lang); } + CATCH (except, RETURN_MASK_ERROR) + { + } + END_CATCH return ret; } |