Don't assume that short is shorter than int.
authorJim Blandy <jimb@codesourcery.com>
Fri, 25 May 2001 00:01:29 +0000 (00:01 +0000)
committerJim Blandy <jimb@codesourcery.com>
Fri, 25 May 2001 00:01:29 +0000 (00:01 +0000)
* gdb.base/exprs.exp ("print unsigned short == (~0)"): Don't
assume that shorts are smaller than ints.  On a 16-bit machine,
this isn't true.
("print unsigned char == (~0)"): Add test that verifies that ~0,
an int, is not equal to ~0 stored in an unsigned char.  This tests
the same thing that the previous test meant to, but works on
16-bit machines, too.
("print unsigned char != (~0)"): Same test, complemented.

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

index 58da1b5b4944d3b7a0c1bd75ff3e25c3f2603a06..fd41d1fbb131e1ba384e16edd6086513c5cd56f2 100644 (file)
@@ -1,3 +1,15 @@
+2001-05-24  Jim Blandy  <jimb@redhat.com>
+
+       Don't assume that short is shorter than int.
+       * gdb.base/exprs.exp ("print unsigned short == (~0)"): Don't
+       assume that shorts are smaller than ints.  On a 16-bit machine,
+       this isn't true. 
+       ("print unsigned char == (~0)"): Add test that verifies that ~0,
+       an int, is not equal to ~0 stored in an unsigned char.  This tests
+       the same thing that the previous test meant to, but works on
+       16-bit machines, too.
+       ("print unsigned char != (~0)"): Same test, complemented.
+
 2001-05-24  Michael Snyder  <msnyder@redhat.com>
 
        * gdb.threads/pthreads.exp (all_threads_running): Add an explicit
index 1bffd0a12f2da81edc10215496e5940f834e643a..d1eb087a51d21f729ec4f0d8ac3fcbe31d600cdd 100644 (file)
@@ -101,11 +101,11 @@ test_expr "set variable v_unsigned_char=127" "print v_unsigned_char > 0" "\\$\[0
 # FIXME:  gdb mishandles the cast (unsigned char) on the i960, so I've
 # set up an expected failure for this case.
 setup_xfail "i960-*-*" 1821
-test_expr "set variable v_unsigned_char=~0" "print v_unsigned_char == 0" "\\$\[0-9\]* = $false"  "print v_unsigned_char == ~0" "\\$\[0-9\]* = $false"  "print v_unsigned_char == (unsigned char)~0" "\\$\[0-9\]* = $true"  "print unsigned char == (~0)"
+test_expr "set variable v_unsigned_char=~0" "print v_unsigned_char == 0" "\\$\[0-9\]* = $false"  "print v_unsigned_char == ~0" "\\$\[0-9\]* = $false"  "print v_unsigned_char == (unsigned char)~0" "\\$\[0-9\]* = $true" "print v_unsigned_char == ~0" "\\$\[0-9\]* = $false"  "print unsigned char == (~0)"
 # FIXME:  gdb mishandles the cast (unsigned char) on the i960, so I've
 # set up an expected failure for this case.
 setup_xfail "i960-*-*" 1821
-test_expr "set variable v_unsigned_char=~0" "print v_unsigned_char != 0" "\\$\[0-9\]* = $true"  "print v_unsigned_char != (unsigned char)~0" "\\$\[0-9\]* = $false"  "print unsigned char != (~0)"
+test_expr "set variable v_unsigned_char=~0" "print v_unsigned_char != 0" "\\$\[0-9\]* = $true"  "print v_unsigned_char != (unsigned char)~0" "\\$\[0-9\]* = $false"  "print v_unsigned_char != ~0" "\\$\[0-9\]* = $true" "print unsigned char != (~0)"
 test_expr "set variable v_unsigned_char=~0" "print v_unsigned_char < 0" "\\$\[0-9\]* = $false"  "print v_unsigned_char < 127" "\\$\[0-9\]* = $false"  "print unsigned char < (~0)"
 test_expr "set variable v_unsigned_char=~0" "print v_unsigned_char > 0" "\\$\[0-9\]* = $true"  "print v_unsigned_char > 127" "\\$\[0-9\]* = $true"  "print unsigned char > (~0)"
 #
@@ -140,7 +140,7 @@ test_expr "set variable v_unsigned_short=0x7FFF" "print v_unsigned_short != 0" "
 test_expr "set variable v_unsigned_short=0x7FFF" "print v_unsigned_short < 0" "\\$\[0-9\]* = $false"  "print v_unsigned_short < 0x7FFF" "\\$\[0-9\]* = $false"  "print unsigned short <"
 test_expr "set variable v_unsigned_short=0x7FFF" "print v_unsigned_short > 0" "\\$\[0-9\]* = $true"  "print v_unsigned_short > 0x7FFF" "\\$\[0-9\]* = $false"  "print unsigned short >"
 # make short a minus
-test_expr "set variable v_unsigned_short=~0" "print v_unsigned_short == 0" "\\$\[0-9\]* = $false"  "print v_unsigned_short == ~0" "\\$\[0-9\]* = $false"  "print v_unsigned_short == (unsigned short)~0" "\\$\[0-9\]* = $true"  "print unsigned short == (~0)"
+test_expr "set variable v_unsigned_short=~0" "print v_unsigned_short == 0" "\\$\[0-9\]* = $false"  "print sizeof (v_unsigned_short) < sizeof (~0) && v_unsigned_short == ~0" "\\$\[0-9\]* = $false"  "print v_unsigned_short == (unsigned short)~0" "\\$\[0-9\]* = $true"  "print unsigned short == (~0)"
 test_expr "set variable v_unsigned_short=~0" "print v_unsigned_short != 0" "\\$\[0-9\]* = $true"  "print v_unsigned_short != (unsigned short)~0" "\\$\[0-9\]* = $false"  "print unsigned short != (~0)"
 test_expr "set variable v_unsigned_short=~0" "print v_unsigned_short < 0" "\\$\[0-9\]* = $false"  "print v_unsigned_short < 0x7FFF" "\\$\[0-9\]* = $false"  "print unsigned short < (~0)"
 test_expr "set variable v_unsigned_short=~0" "print v_unsigned_short > 0" "\\$\[0-9\]* = $true"  "print v_unsigned_short > 0x7FFF" "\\$\[0-9\]* = $true"  "print unsigned short > (~0)"