diff options
author | Anton Gorenkov <xgsa@sourceware.org> | 2012-02-21 13:48:59 +0000 |
---|---|---|
committer | Anton Gorenkov <xgsa@sourceware.org> | 2012-02-21 13:48:59 +0000 |
commit | dfcee124897d3395925bdfbfded468c9c81394a0 (patch) | |
tree | ff8b1acd9e1b0763ff5edff8183a73fbc997643e /gdb/c-valprint.c | |
parent | 16a87420985f256b5cde070586ebcdfda2225b01 (diff) | |
download | gdb-dfcee124897d3395925bdfbfded468c9c81394a0.zip gdb-dfcee124897d3395925bdfbfded468c9c81394a0.tar.gz gdb-dfcee124897d3395925bdfbfded468c9c81394a0.tar.bz2 |
gdb/
* c-valprint.c (c_value_print): Use value_rtti_indirect_type
instead of value_rtti_target_type.
* eval.c (evaluate_subexp_standard): Use value_rtti_indirect_type
instead of value_rtti_target_type.
* typeprint.c (whatis_exp): Use value_rtti_indirect_type instead of
value_rtti_target_type.
* valops.c (value_ind): Extract function readjust_indirect_value_type.
(value_rtti_target_type): Rename to ...
(value_rtti_indirect_type): ... here and make it indirect. Update
function comment.
* value.c (readjust_indirect_value_type): New function.
(coerce_ref): Support for enclosing type setting for references
with readjust_indirect_value_type.
* value.h (readjust_value_type): New declaration.
(value_rtti_target_type): Rename to ...
(value_rtti_indirect_type): ... here.
Diffstat (limited to 'gdb/c-valprint.c')
-rw-r--r-- | gdb/c-valprint.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/gdb/c-valprint.c b/gdb/c-valprint.c index 82551e9..25c6688 100644 --- a/gdb/c-valprint.c +++ b/gdb/c-valprint.c @@ -728,22 +728,13 @@ c_value_print (struct value *val, struct ui_file *stream, if (value_entirely_available (val)) { - real_type = value_rtti_target_type (val, &full, &top, &using_enc); + real_type = value_rtti_indirect_type (val, &full, &top, + &using_enc); if (real_type) { /* RTTI entry found. */ - if (TYPE_CODE (type) == TYPE_CODE_PTR) - { - /* Create a pointer type pointing to the real - type. */ - type = lookup_pointer_type (real_type); - } - else - { - /* Create a reference type referencing the real - type. */ - type = lookup_reference_type (real_type); - } + type = real_type; + /* Need to adjust pointer value. */ val = value_from_pointer (type, value_as_address (val) - top); |