* gdb.base/long_long.exp: Detect size of pointer. Take into

account 2-byte pointers when testing for p/a results.
This commit is contained in:
Stephane Carrez 2001-07-17 22:19:49 +00:00
parent de58f10fe4
commit 7e5a932280
2 changed files with 42 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2001-07-17 Stephane Carrez <Stephane.Carrez@worldnet.fr>
* gdb.base/long_long.exp: Detect size of pointer. Take into
account 2-byte pointers when testing for p/a results.
2001-07-17 Stephane Carrez <Stephane.Carrez@worldnet.fr>
* gdb.base/remote.c (RANDOM_DATA_SIZE): New define, defaults to 48K

View File

@ -85,6 +85,15 @@ gdb_expect {
default { }
}
# Detect targets with 2-byte pointers. Assume all others use 4-bytes.
set sizeof_ptr 4
send_gdb "print sizeof(void*)\n"
gdb_expect {
-re ".* = 2.*$gdb_prompt $" { set sizeof_ptr 2 }
-re ".*$gdb_prompt $" { }
default { }
}
# Detect targets with 4-byte shorts. Assume all others use 2-bytes.
set sizeof_short 2
@ -130,7 +139,11 @@ gdb_test "p/d oct" ".*-6399925985474168457.*"
gdb_test "p/u oct" ".*12046818088235383159.*"
gdb_test "p/o oct" ".*.*"
gdb_test "p/t oct" ".*1010011100101110111001010011100101110111000001010011100101110111.*"
gdb_test "p/a oct" ".*0x.*77053977.*"
if { $sizeof_ptr == 2 } {
gdb_test "p/a oct" ".*0x.*3977.*"
} else {
gdb_test "p/a oct" ".*0x.*77053977.*"
}
gdb_test "p/c oct" ".*'w'.*"
if { $sizeof_double == 8 } {
@ -166,7 +179,13 @@ if { $target_bigendian_p } {
gdb_test "p/u *(int *)&oct" ".*2804868409.*"
gdb_test "p/o *(int *)&oct" ".*024713562471.*"
gdb_test "p/t *(int *)&oct" ".*10100111001011101110010100111001.*"
gdb_test "p/a *(int *)&oct" ".*0xf*a72ee539.*"
if { $sizeof_ptr == 2 } {
gdb_test "p/a *(int *)&oct" ".*0xe539.*"
} else {
gdb_test "p/a *(int *)&oct" ".*0xf*a72ee539.*"
}
gdb_test "p/c *(int *)&oct" ".*57 '9'.*"
gdb_test "p/f *(int *)&oct" ".*-2.42716126e-15.*"
@ -176,7 +195,12 @@ if { $target_bigendian_p } {
gdb_test "p/u *(int *)&oct" ".*42798.*"
gdb_test "p/o *(int *)&oct" ".*0123456.*"
gdb_test "p/t *(int *)&oct" ".*1010011100101110.*"
gdb_test "p/a *(int *)&oct" ".*0xffffa72e.*"
if { $sizeof_ptr == 2 } {
gdb_test "p/a *(int *)&oct" ".*0xa72e.*"
} else {
gdb_test "p/a *(int *)&oct" ".*0xffffa72e.*"
}
gdb_test "p/c *(int *)&oct" ".*46 '.'.*"
gdb_test "p/f *(int *)&oct" ".*-22738.*"
@ -187,7 +211,11 @@ if { $target_bigendian_p } {
gdb_test "p/u *(short *)&oct" ".*42798.*"
gdb_test "p/o *(short *)&oct" ".*0123456.*"
gdb_test "p/t *(short *)&oct" ".*1010011100101110.*"
gdb_test "p/a *(short *)&oct" ".*0xf*ffffa72e.*"
if { $sizeof_ptr == 2 } {
gdb_test "p/a *(short *)&oct" ".*0xa72e.*"
} else {
gdb_test "p/a *(short *)&oct" ".*0xf*ffffa72e.*"
}
gdb_test "p/c *(short *)&oct" ".* 46 '.'.*"
gdb_test "p/f *(short *)&oct" ".*-22738.*"
} else {
@ -205,7 +233,11 @@ if { $target_bigendian_p } {
gdb_test "x/u &oct" ".*2804868409.*"
gdb_test "x/o &oct" ".*024713562471.*"
gdb_test "x/t &oct" ".*10100111001011101110010100111001.*"
gdb_test "x/a &oct" ".*0xa72ee539.*"
if { $sizeof_ptr == 2 } {
gdb_test "x/a &oct" ".*0xa72e.*"
} else {
gdb_test "x/a &oct" ".*0xa72ee539.*"
}
gdb_test "x/c &oct" ".*-89 .*"
# FIXME GDB's output is correct, but this longer match fails.
# gdb_test "x/c &oct" ".*-89 '\\\\247'.*"