diff options
Diffstat (limited to 'gdb/cp-valprint.c')
-rw-r--r-- | gdb/cp-valprint.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/gdb/cp-valprint.c b/gdb/cp-valprint.c index 1d7147c..4b625d1 100644 --- a/gdb/cp-valprint.c +++ b/gdb/cp-valprint.c @@ -333,12 +333,9 @@ cp_print_value_fields (struct type *type, struct type *real_type, fprintf_filtered (stream, _("<error reading variable: %s>"), ex.message); - else if (v == NULL) - val_print_optimized_out (NULL, stream); - else - cp_print_static_field (TYPE_FIELD_TYPE (type, i), - v, stream, recurse + 1, - options); + cp_print_static_field (TYPE_FIELD_TYPE (type, i), + v, stream, recurse + 1, + options); } else if (i == vptr_fieldno && type == vptr_basetype) { @@ -640,7 +637,13 @@ cp_print_static_field (struct type *type, const struct value_print_options *options) { struct value_print_options opts; - + + if (value_entirely_optimized_out (val)) + { + val_print_optimized_out (val, stream); + return; + } + if (TYPE_CODE (type) == TYPE_CODE_STRUCT) { CORE_ADDR *first_dont_print; |