2012-12-06 Pedro Alves <palves@redhat.com>
authorTom Tromey <tromey@redhat.com>
Thu, 6 Dec 2012 21:41:07 +0000 (21:41 +0000)
committerTom Tromey <tromey@redhat.com>
Thu, 6 Dec 2012 21:41:07 +0000 (21:41 +0000)
    Tom Tromey  <tromey@redhat.com>
* valops.c (value_cast): Move TYPE_CODE_VOID case earlier.
testsuite
* gdb.base/exprs.exp: Add tests for cast to void.

gdb/ChangeLog
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/exprs.exp
gdb/valops.c

index 4f89004a953f2100a0b0c70d8b229c62e31ef995..7f9ca8fe3566054774be2f8edf038ecbf6800168 100644 (file)
@@ -1,3 +1,8 @@
+2012-12-06  Pedro Alves  <palves@redhat.com>
+           Tom Tromey  <tromey@redhat.com>
+
+       * valops.c (value_cast): Move TYPE_CODE_VOID case earlier.
+
 2012-12-06  Jens Elmenthaler <jens.elmenthaler@advantest.com>
 
        PR mi/14741:
index f05cd87916afb2461009cefb0d96d87d3a37fca6..335ecff6149af9eadd173a2ef8bd1995381df0f0 100644 (file)
@@ -1,3 +1,8 @@
+2012-12-06  Pedro Alves  <palves@redhat.com>
+           Tom Tromey  <tromey@redhat.com>
+
+       * gdb.base/exprs.exp: Add tests for cast to void.
+
 2012-12-06  Jens Elmenthaler <jens.elmenthaler@advantest.com>
 
        * gdb.python/py-mi.exp: Correct expected results for attribute
index c6a07fa47733d42c905b85cc2105e59da3f6ea4e..f3de09e1b9b6e0ce7bf0930d815d3cbd34ebb48a 100644 (file)
@@ -270,3 +270,7 @@ gdb_test {print v_int_array_init[1]@1} { = \{20\}}
 # gdb's {} extension
 gdb_test_no_output "set variable v_short_array\[0\] = 42"
 gdb_test "print {short} v_short_array" "$decimal = 42"
+
+# Regression tests for cast to void.
+gdb_test "print (void) v_int_pointer" " = void"
+gdb_test "print & (void) v_char" "value not located in memory."
index 1dd25799bfceb067f8b8f8face1781dc5a9fdae0..372f1186eeb19bf2639731344c95540dfb67c0c5 100644 (file)
@@ -569,6 +569,10 @@ value_cast (struct type *type, struct value *arg2)
        }
       return val;
     }
+  else if (code1 == TYPE_CODE_VOID)
+    {
+      return value_zero (type, not_lval);
+    }
   else if (TYPE_LENGTH (type) == TYPE_LENGTH (type2))
     {
       if (code1 == TYPE_CODE_PTR && code2 == TYPE_CODE_PTR)
@@ -582,10 +586,6 @@ value_cast (struct type *type, struct value *arg2)
     }
   else if (VALUE_LVAL (arg2) == lval_memory)
     return value_at_lazy (type, value_address (arg2));
-  else if (code1 == TYPE_CODE_VOID)
-    {
-      return value_zero (type, not_lval);
-    }
   else
     {
       error (_("Invalid cast."));