From: Luis Machado Date: Fri, 16 Nov 2012 02:02:20 +0000 (+0000) Subject: gdb/ X-Git-Tag: gdb_7_5_1-2012-11-29-release~17 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=434ee0d71c24def0d5162dc0e029890d03d4d3dd;p=thirdparty%2Fbinutils-gdb.git gdb/ * value.c (value_actual_type): Check for TYPE_CODE_STRUCT target types. gdb/testsuite/ * gdb.mi/mi-var-create-rtti.c: New file. * gdb.mi/mi-var-create-rtti.exp: New file. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a7dcceff667..d1d4f7858b3 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2012-11-15 Luis Machado + + * value.c (value_actual_type): Check for TYPE_CODE_STRUCT + target types. + 2012-11-10 H.J. Lu PR backtrace/14646 diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 422cebe3f5d..bb9a1dfd1ca 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-11-15 Luis Machado + + * gdb.mi/mi-var-create-rtti.c: New file. + * gdb.mi/mi-var-create-rtti.exp: New file. + 2012-10-15 Jan Kratochvil Doug Evans diff --git a/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp b/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp index 16d8551d161..4860a6b3698 100644 --- a/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp +++ b/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp @@ -25,7 +25,7 @@ standard_testfile .c set opts {debug} if [build_executable $testfile.exp $testfile $srcfile $opts] { - return -1 + return -1; } mi_delete_breakpoints diff --git a/gdb/value.c b/gdb/value.c index a6bb71865bd..218d4d5cbad 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -850,8 +850,12 @@ value_actual_type (struct value *value, int resolve_simple_types, result = value_type (value); if (opts.objectprint) { - if (TYPE_CODE (result) == TYPE_CODE_PTR + /* If result's target type is TYPE_CODE_STRUCT, proceed to + fetch its rtti type. */ + if ((TYPE_CODE (result) == TYPE_CODE_PTR || TYPE_CODE (result) == TYPE_CODE_REF) + && TYPE_CODE (check_typedef (TYPE_TARGET_TYPE (result))) + == TYPE_CODE_STRUCT) { struct type *real_type;