aboutsummaryrefslogtreecommitdiff
path: root/gdb/c-valprint.c
diff options
context:
space:
mode:
authorAnton Gorenkov <xgsa@sourceware.org>2012-02-21 13:48:59 +0000
committerAnton Gorenkov <xgsa@sourceware.org>2012-02-21 13:48:59 +0000
commitdfcee124897d3395925bdfbfded468c9c81394a0 (patch)
treeff8b1acd9e1b0763ff5edff8183a73fbc997643e /gdb/c-valprint.c
parent16a87420985f256b5cde070586ebcdfda2225b01 (diff)
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.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/gdb/c-valprint.c b/gdb/c-valprint.c
index 82551e9dc9..25c6688e89 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);