# This testcase is part of GDB, the GNU debugger.
-# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007
-# Free Software Foundation, Inc.
+# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007, 2008, 2009,
+# 2010 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
-#
+#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+# along with this program. If not, see <http://www.gnu.org/licenses/>. */
# long_long.exp Test printing of 64-bit things in 32-bit gdb.
# Also test differnet kinds of formats.
# Detect the size of the target's basic types.
-proc get_valueof { fmt exp default } {
- global gdb_prompt
- send_gdb "print${fmt} ${exp}\n"
- gdb_expect {
- -re "\\$\[0-9\]* = (\[-\]*\[0-9\]*).*$gdb_prompt $" {
- set val $expect_out(1,string)
- pass "get value of ${exp} ($val)"
- }
- timeout {
- set size ${default}
- fail "get value of ${exp} (timeout)"
- }
- }
- return ${val}
-}
-
-proc get_sizeof { type default } {
- return [get_valueof "/d" "sizeof (${type})" $default]
-}
-
set sizeof_char [get_sizeof "char" 1]
set sizeof_short [get_sizeof "short" 2]
set sizeof_int [get_sizeof "int" 4]
[istarget "xscale*-*-*"] || \
[istarget "strongarm*-*-*"]) \
&& !([istarget "*-*-*eabi"] || \
+ [istarget "*-*-mingw32ce*"] || \
[istarget "*-*-openbsd*"] || \
[istarget "*-*-symbianelf"]) } then {
# assume the long long represents a floating point double in ARM format
gdb_test_char "p/u *(char *)c" "1"
gdb_test_char "p/o *(char *)c" "01"
gdb_test_char "p/t *(char *)c" "1"
-gdb_test_char "p/a *(char *)c" "0x1"
+gdb_test_char "p/a *(char *)c" "0x1( <.*>)?"
gdb_test_char "p/f *(char *)c" "1"
gdb_test_char "p/c *(char *)c" "1 '.001'"
gdb_test_short "p/u *(short *)s" "" "291" ""
gdb_test_short "p/o *(short *)s" "" "0443" ""
gdb_test_short "p/t *(short *)s" "" "100100011" ""
-gdb_test_short "p/a *(short *)s" "" "0x123" ""
+gdb_test_short "p/a *(short *)s" "" "0x123( <.*>)?" ""
gdb_test_short "p/f *(short *)s" "" "291" ""
gdb_test_short "p/c *(short *)s" "" "35 '.'" ""
gdb_test_int "p/o *(int *)i" "" "0443" "0110642547" ""
gdb_test_int "p/t *(int *)i" "" "100100011" "1001000110100010101100111" ""
gdb_test_int "p/a *(int *)i" "" "" "0x1234567" ""
-gdb_test_int "p/f *(int *)i" "" "291" "2.99881655e-38" ""
+gdb_test_int "p/f *(int *)i" "" "291" "2.99881655e-0?38" ""
gdb_test_int "p/c *(int *)i" "" "35 '.'" "103 'g'" ""
gdb_test_long "p/x *(long *)l" "" "0x123" "0x1234567" "0x123456789abcdef"
gdb_test_long "p/o *(long *)l" "" "0443" "0110642547" "04432126361152746757"
gdb_test_long "p/t *(long *)l" "" "100100011" "1001000110100010101100111" "100100011010001010110011110001001101010111100110111101111"
gdb_test_ptr "p/a *(long *)l" "" "" "0x1234567" "0x123456789abcdef"
-gdb_test_long "p/f *(long *)l" "" "291" "2.99881655e-38" "3.5127005640885037e-303"
+gdb_test_long "p/f *(long *)l" "" "291" "2.99881655e-0?38" "3.5127005640885037e-303"
gdb_test_long "p/c *(long *)l" "" "35 '.'" "103 'g'" "-17 '.*'"
gdb_test_long_long "p/x *(long long *)ll" "" "" "" "0x123456789abcdef"
gdb_test "x/2o g" "04432126361152746757.*01234567123456701234567"
gdb_test "x/2t g" "0000000100100011010001010110011110001001101010111100110111101111.*1010011100101110111001010011100101110111000001010011100101110111"
gdb_test_xptr "x/2a" { b "" } { h "" } { w "0x1234567.*0xa72ee539" } { g "0x123456789abcdef.*0xa72ee53977053977" }
-gdb_test "x/2c b" "1 '.001'.*-89 '.'"
+gdb_test "x/2c b" "1 '.001'.*-89 '.\[0-9\]*'"
if { $sizeof_double == 8 || $sizeof_long_double == 8 } {
gdb_test "x/2f &val.oct" "-5.9822653797615723e-120.*-5.9041889495880968e-100"
} else {
gdb_test "x/2bo b" "01.*0247"
gdb_test "x/2bt b" "00000001.*10100111"
gdb_test_ptr "x/2ba b" "" "" "0x1.*0xffffffa7" "0x1.*0xffffffffffffffa7"
-gdb_test "x/2bc b" "1 '.001'.*-89 '.'"
+gdb_test "x/2bc b" "1 '.001'.*-89 '.\[0-9\]*'"
gdb_test "x/2bf b" "1.*-89"
gdb_test "x/2hx h" "0x0123.*0xa72e"
gdb_test "x/2wt w" "00000001001000110100010101100111.*10100111001011101110010100111001"
gdb_test_ptr "x/2wa w" "" "" "0x1234567.*0xa72ee539" "0x1234567.*0xffffffffa72ee539"
gdb_test "x/2wc w" "103 'g'.*57 '9'"
-gdb_test "x/2wf w" "2.99881655e-38.*-2.42716126e-15"
+gdb_test "x/2wf w" "2.99881655e-0?38.*-2.42716126e-0?15"
gdb_test "x/2gx g" "0x0123456789abcdef.*0xa72ee53977053977"
gdb_test "x/2gd g" "81985529216486895.*-6399925985474168457"
gdb_test "x/2go g" "04432126361152746757.*01234567123456701234567"
gdb_test "x/2gt g" "0000000100100011010001010110011110001001101010111100110111101111.*1010011100101110111001010011100101110111000001010011100101110111"
gdb_test_ptr "x/2ga g" "" "" "0x89abcdef.*0x77053977" "0x123456789abcdef.*0xa72ee53977053977"
-gdb_test "x/2gc g" "-17 '.'.*119 'w'"
+gdb_test "x/2gc g" "-17 '.\[0-9\]*'.*119 'w'"
gdb_test "x/2gf g" "3.5127005640885037e-303.*-5.9822653797615723e-120"
gdb_exit