aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannes Domani <ssbssa@yahoo.de>2024-06-11 21:30:45 +0200
committerHannes Domani <ssbssa@yahoo.de>2024-06-11 21:30:45 +0200
commit7eceaa69efddc3bfecfeab1179a580309c5a646e (patch)
tree1b2978e9c12e48b029d2b3e2f9cef6735d6a7006
parent3dd8c680a8651aa22c996b1e2d39dd123f204be3 (diff)
downloadgdb-7eceaa69efddc3bfecfeab1179a580309c5a646e.zip
gdb-7eceaa69efddc3bfecfeab1179a580309c5a646e.tar.gz
gdb-7eceaa69efddc3bfecfeab1179a580309c5a646e.tar.bz2
Fix cast types for opencl
The bitshift tests for opencl have these failures: print /x (signed char) 0x0f << 8 No type named signed char. (gdb) FAIL: gdb.base/bitshift.exp: lang=opencl: 8-bit, promoted: print /x (signed char) 0x0f << 8 print (signed char) 0x0f << 8 No type named signed char. (gdb) FAIL: gdb.base/bitshift.exp: lang=opencl: 8-bit, promoted: print (signed char) 0x0f << 8 Apparently opencl doesn't have the 'signed' modifier for types, only the 'unsigned' modifier. Even 'char' is guaranteed to be signed if no modifier is used, so this changes the casts to match this logic. Approved-By: Tom Tromey <tom@tromey.com>
-rw-r--r--gdb/testsuite/gdb.base/bitshift.exp8
1 files changed, 5 insertions, 3 deletions
diff --git a/gdb/testsuite/gdb.base/bitshift.exp b/gdb/testsuite/gdb.base/bitshift.exp
index cab82e1..dccc36b 100644
--- a/gdb/testsuite/gdb.base/bitshift.exp
+++ b/gdb/testsuite/gdb.base/bitshift.exp
@@ -123,10 +123,12 @@ proc make_val_cast {lang signed bits val} {
return "$val as ${sign_prefix}$bits"
} else {
# C-like cast.
- if {$signed} {
+ if {!$signed} {
+ set sign_prefix "unsigned "
+ } elseif {$lang == "opencl"} {
set sign_prefix ""
} else {
- set sign_prefix "un"
+ set sign_prefix "signed "
}
if {$bits == 8} {
set type "char"
@@ -143,7 +145,7 @@ proc make_val_cast {lang signed bits val} {
} else {
error "$lang: unsupported bits"
}
- return "(${sign_prefix}signed $type) $val"
+ return "(${sign_prefix}$type) $val"
}
}