]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gdb/
authorLuis Machado <luisgpm@br.ibm.com>
Fri, 16 Nov 2012 02:02:20 +0000 (02:02 +0000)
committerLuis Machado <luisgpm@br.ibm.com>
Fri, 16 Nov 2012 02:02:20 +0000 (02:02 +0000)
* 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.

gdb/ChangeLog
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.mi/mi-var-create-rtti.exp
gdb/value.c

index a7dcceff66707c0f5151647d5d9edf9f91f1a9fd..d1d4f7858b3c8c57e092d33bcd6584b1362a00e5 100644 (file)
@@ -1,3 +1,8 @@
+2012-11-15  Luis Machado  <lgustavo@codesourcery.com>
+
+       * value.c (value_actual_type): Check for TYPE_CODE_STRUCT
+       target types.
+
 2012-11-10  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR backtrace/14646
index 422cebe3f5daa742a938d4bc03b89dfea26d2be5..bb9a1dfd1ca733f189b65dbdedbca79068c2ee05 100644 (file)
@@ -1,3 +1,8 @@
+2012-11-15  Luis Machado  <lgustavo@codesourcery.com>
+
+       * gdb.mi/mi-var-create-rtti.c: New file.
+       * gdb.mi/mi-var-create-rtti.exp: New file.
+
 2012-10-15  Jan Kratochvil  <jan.kratochvil@redhat.com>
            Doug Evans  <dje@google.com>
 
index 16d8551d16102b732ca3c4b6a1873d2f5c4325ba..4860a6b36988c68974f9a5026497fa084ea40a8c 100644 (file)
@@ -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
index a6bb71865bdc89771fb26e0a0c322c80d81a365f..218d4d5cbadf035deac53abf00cd8fe40233fb3c 100644 (file)
@@ -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;