e22f8b7c8c
Switch the license of all .f and .f90 files to GPLv3. Switch the license of all .s and .S files to GPLv3.
601 lines
17 KiB
Text
601 lines
17 KiB
Text
# Copyright 1998, 1999, 2000, 2007 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 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, see <http://www.gnu.org/licenses/>.
|
|
|
|
# Please email any bugs, comments, and/or additions to this file to:
|
|
# bug-gdb@prep.ai.mit.edu
|
|
|
|
# This file was written by Elena Zannoni (ezannoni@cygnus.com)
|
|
|
|
# This file is part of the gdb testsuite
|
|
#
|
|
# tests for pointer arithmetic and pointer dereferencing
|
|
# with integer type variables and pointers to integers
|
|
#
|
|
|
|
if $tracelevel then {
|
|
strace $tracelevel
|
|
}
|
|
|
|
#
|
|
# test running programs
|
|
#
|
|
set prms_id 0
|
|
set bug_id 0
|
|
|
|
set testfile "pointers"
|
|
set srcfile ${testfile}.c
|
|
set binfile ${objdir}/${subdir}/${testfile}
|
|
|
|
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}] != "" } {
|
|
untested pointers.exp
|
|
return -1
|
|
}
|
|
|
|
if [get_compiler_info ${binfile}] {
|
|
return -1;
|
|
}
|
|
|
|
gdb_exit
|
|
gdb_start
|
|
gdb_reinitialize_dir $srcdir/$subdir
|
|
gdb_load ${binfile}
|
|
|
|
|
|
#
|
|
# set it up at a breakpoint so we can play with the variable values
|
|
#
|
|
|
|
if ![runto_main] then {
|
|
perror "couldn't run to breakpoint"
|
|
continue
|
|
}
|
|
|
|
gdb_test "next " "more_code.*;" "continuing after dummy()"
|
|
|
|
|
|
#
|
|
# let's see if gdb catches some illegal operations on pointers
|
|
#
|
|
# I must comment these out because strict type checking is not
|
|
# supported in this version of GDB. I do not really know
|
|
# what the expected gdb reply is.
|
|
#
|
|
|
|
#send_gdb "print v_int_pointer2 = &v_int_pointer\n"
|
|
#gdb_expect {
|
|
# -re ".*.*$gdb_prompt $" {
|
|
# pass "illegal pointer assignment rejected"
|
|
# }
|
|
# -re ".*$gdb_prompt $" { fail "illegal pointer assignment rejected" }
|
|
# timeout { fail "(timeout) illegal pointer assignment rejected" }
|
|
# }
|
|
|
|
|
|
#send_gdb "print v_unsigned_int_pointer = &v_int\n"
|
|
#gdb_expect {
|
|
# -re ".*.*$gdb_prompt $" {
|
|
# pass "illegal pointer assignment rejected"
|
|
# }
|
|
# -re ".*$gdb_prompt $" { fail "illegal pointer assignment rejected" }
|
|
# timeout { fail "(timeout) ilegal pointer assignment rejected" }
|
|
# }
|
|
|
|
#send_gdb "print v_unsigned_int_pointer == v_double_pointer\n"
|
|
#gdb_expect {
|
|
# -re ".*.*$gdb_prompt $" {
|
|
# pass "illegal pointer operation (+) rejected"
|
|
# }
|
|
# -re ".*$gdb_prompt $" { fail "illegal pointer operation (+) rejected" }
|
|
# timeout { fail "(timeout) illegal pointer operation (+) rejected" }
|
|
# }
|
|
|
|
|
|
#send_gdb "print v_unsigned_int_pointer * v_double_pointer\n"
|
|
#gdb_expect {
|
|
# -re ".*Argument to arithmetic operation not a number or boolean.*$gdb_prompt $" {
|
|
# pass "illegal pointer operation (*) rejected"
|
|
# }
|
|
# -re ".*$gdb_prompt $" { fail "illegal pointer operation (*) rejected" }
|
|
# timeout { fail "(timeout) illegal pointer operation (*) rejected" }
|
|
# }
|
|
|
|
|
|
#send_gdb "print v_unsigned_int_pointer = v_double_pointer\n"
|
|
#gdb_expect {
|
|
# -re ".*.*$gdb_prompt $" {
|
|
# pass "ilegal pointer assignment rejected"
|
|
# }
|
|
# -re ".*$gdb_prompt $" { fail "illegal pointer assignment rejected" }
|
|
# timeout { fail "(timeout) illegal pointer assignment rejected" }
|
|
# }
|
|
|
|
|
|
#send_gdb "print v_unsigned_int_pointer = v_unsigned_int\n"
|
|
#gdb_expect {
|
|
# -re ".*.*$gdb_prompt $" {
|
|
# pass "illegal pointer assignment rejected"
|
|
# }
|
|
# -re ".*$gdb_prompt $" { fail "illegal pointer assignment rejected" }
|
|
# timeout { fail "(timeout) illegal pointer assignment rejected" }
|
|
# }
|
|
|
|
gdb_test "set variable v_int_pointer=&v_int_array\[0\]" "" "set pointer to beginning of array"
|
|
gdb_test "set variable v_int_pointer2=&v_int_array\[1\]" "" "set pointer to end of array"
|
|
|
|
|
|
send_gdb "print *v_int_pointer\n"
|
|
gdb_expect {
|
|
-re ".*= 6.*$gdb_prompt $" {
|
|
pass "print object pointed to"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print object pointed to" }
|
|
timeout { fail "(timeout) print object pointed to" }
|
|
}
|
|
|
|
send_gdb "print *v_int_pointer2\n"
|
|
gdb_expect {
|
|
-re ".*= 18.*$gdb_prompt $" {
|
|
pass "print object pointed to"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print object pointed to" }
|
|
timeout { fail "(timeout) print object pointed to" }
|
|
}
|
|
|
|
|
|
send_gdb "print v_int_pointer == v_int_pointer2\n"
|
|
gdb_expect {
|
|
-re ".*= $false.*$gdb_prompt $" {
|
|
pass "pointer1==pointer2"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "pointer1==pointer2" }
|
|
timeout { fail "(timeout) pointer1==pointer2" }
|
|
}
|
|
|
|
send_gdb "print v_int_pointer != v_int_pointer2\n"
|
|
gdb_expect {
|
|
-re ".*= $true.*$gdb_prompt $" {
|
|
pass "pointer1!=pointer2"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "pointer1!=pointer2" }
|
|
timeout { fail "(timeout) pointer1!=pointer2" }
|
|
}
|
|
|
|
|
|
send_gdb "print v_int_pointer <= v_int_pointer2\n"
|
|
gdb_expect {
|
|
-re ".*= $true.*$gdb_prompt $" {
|
|
pass "pointer1<=pointer2"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "pointer1<=pointer2" }
|
|
timeout { fail "(timeout) pointer1<=pointer2" }
|
|
}
|
|
|
|
|
|
send_gdb "print v_int_pointer >= v_int_pointer2\n"
|
|
gdb_expect {
|
|
-re ".*= $false.*$gdb_prompt $" {
|
|
pass "pointer1>=pointer2"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "pointer1>=pointer2" }
|
|
timeout { fail "(timeout) pointer1>=pointer2" }
|
|
}
|
|
|
|
|
|
send_gdb "print v_int_pointer < v_int_pointer2\n"
|
|
gdb_expect {
|
|
-re ".*= $true.*$gdb_prompt $" {
|
|
pass "pointer1<pointer2"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "pointer1<pointer2" }
|
|
timeout { fail "(timeout) pointer1<pointer2" }
|
|
}
|
|
|
|
send_gdb "print v_int_pointer > v_int_pointer2\n"
|
|
gdb_expect {
|
|
-re ".*= $false.*$gdb_prompt $" {
|
|
pass "pointer1>pointer2"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "pointer1>pointer2" }
|
|
timeout { fail "(timeout) pointer1>pointer2" }
|
|
}
|
|
|
|
|
|
gdb_test "set variable y = *v_int_pointer++" "" "set y = *v_int_pointer++"
|
|
send_gdb "print y\n"
|
|
gdb_expect {
|
|
-re ".*= 6.*$gdb_prompt $" {
|
|
send_gdb "print *v_int_pointer\n"
|
|
gdb_expect {
|
|
-re ".*= 18.*$gdb_prompt $" {
|
|
pass "pointer assignment and increment"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "pointer assignment and increment" }
|
|
timeout { fail "(timeout) pointer assignment and increment" }
|
|
}
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "pointer assignment and increment" }
|
|
timeout { fail "(timeout) pointer assignment and increment" }
|
|
}
|
|
|
|
|
|
|
|
|
|
gdb_test "set variable y = *--v_int_pointer2" "" "set y = *--v_int_pointer2"
|
|
send_gdb "print y\n"
|
|
gdb_expect {
|
|
-re ".*= 6.*$gdb_prompt $" {
|
|
send_gdb "print *v_int_pointer2\n"
|
|
gdb_expect {
|
|
-re ".*= 6.*$gdb_prompt $" {
|
|
pass "pointer decrement and assignment"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "pointer decrement and assignment" }
|
|
timeout { fail "(timeout) pointer decrement and assignment" }
|
|
}
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "pointer decrement and assignment" }
|
|
timeout { fail "(timeout) pointer decrement and assignment" }
|
|
}
|
|
|
|
gdb_test "set variable y =v_int_pointer-v_int_pointer2" "" "set y =v_int_pointer-v_int_pointer2"
|
|
send_gdb "print y\n"
|
|
gdb_expect {
|
|
-re ".*= 1.*$gdb_prompt $" {
|
|
pass "pointer1-pointer2"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "pointer1-pointer2" }
|
|
timeout { fail "(timeout) pointer1-pointer2" }
|
|
}
|
|
|
|
gdb_test "set variable v_int_pointer=v_int_array" "" "set v_int_pointer=v_int_array"
|
|
send_gdb "print *v_int_pointer\n"
|
|
gdb_expect {
|
|
-re ".*= 6.*$gdb_prompt $" {
|
|
pass "print array element through pointer"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print array element through pointer" }
|
|
timeout { fail "(timeout) print array element through pointer" }
|
|
}
|
|
|
|
|
|
send_gdb "print *(v_int_pointer+1)\n"
|
|
gdb_expect {
|
|
-re ".*= 18.*$gdb_prompt $" {
|
|
pass "print array element through pointer"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print array element through pointer" }
|
|
timeout { fail "(timeout) print array element through pointer" }
|
|
}
|
|
|
|
# test print elements of array through pointers
|
|
|
|
send_gdb "print (*rptr)\[0\]\n"
|
|
gdb_expect {
|
|
-re ".*= 0.*$gdb_prompt $" {
|
|
pass "print array element through pointer"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print array element through pointer" }
|
|
timeout { fail "(timeout) print array element through pointer" }
|
|
}
|
|
|
|
send_gdb "print (*rptr)\[1\]\n"
|
|
gdb_expect {
|
|
-re ".*= 1.*$gdb_prompt $" {
|
|
pass "print array element through pointer"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print array element through pointer" }
|
|
timeout { fail "(timeout) print array element through pointer" }
|
|
}
|
|
|
|
|
|
send_gdb "print (*rptr)\[2\]\n"
|
|
gdb_expect {
|
|
-re ".*= 2.*$gdb_prompt $" {
|
|
pass "print array element through pointer"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print array element through pointer" }
|
|
timeout { fail "(timeout) print array element through pointer" }
|
|
}
|
|
|
|
gdb_test "set variable rptr = rptr+1" "" "increment rptr"
|
|
|
|
send_gdb "print (*rptr)\[0\]\n"
|
|
gdb_expect {
|
|
-re ".*= 3.*$gdb_prompt $" {
|
|
pass "print array element through pointer"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print array element through pointer" }
|
|
timeout { fail "(timeout) print array element through pointer" }
|
|
}
|
|
|
|
|
|
send_gdb "print (*rptr)\[1\]\n"
|
|
gdb_expect {
|
|
-re ".*= 4.*$gdb_prompt $" {
|
|
pass "print array element through pointer"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print array element through pointer" }
|
|
timeout { fail "(timeout) print array element through pointer" }
|
|
}
|
|
|
|
|
|
send_gdb "print (*rptr)\[2\]\n"
|
|
gdb_expect {
|
|
-re ".*= 5.*$gdb_prompt $" {
|
|
pass "print array element through pointer"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print array element through pointer" }
|
|
timeout { fail "(timeout) print array element through pointer" }
|
|
}
|
|
|
|
|
|
send_gdb "print *( *(matrix+1) +2)\n"
|
|
gdb_expect {
|
|
-re ".*= 5.*$gdb_prompt $" {
|
|
pass "print array element w/ pointer arithmetic"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print array element w/ pointer arithemtic" }
|
|
timeout { fail "(timeout) print array element w/ pointer arithmetic" }
|
|
}
|
|
|
|
|
|
send_gdb "print **ptr_to_ptr_to_float\n"
|
|
gdb_expect {
|
|
-re ".*= 100.*$gdb_prompt $" {
|
|
pass "print through ptr to ptr"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print through ptr to ptr" }
|
|
timeout { fail "(timeout) print through ptr to ptr" }
|
|
}
|
|
|
|
# tests for pointers
|
|
# with elementary type variables and pointers.
|
|
#
|
|
|
|
send_gdb "break marker1\n" ; gdb_expect -re ".*$gdb_prompt $"
|
|
|
|
send_gdb "cont\n"
|
|
gdb_expect {
|
|
-re "Break.* marker1 \\(\\) at .*:$decimal.*$gdb_prompt $" {
|
|
pass "continue to marker1"
|
|
send_gdb "up\n"
|
|
gdb_expect {
|
|
-re ".*more_code.*$gdb_prompt $" {
|
|
pass "up from marker1"
|
|
}
|
|
-re ".*$gdb_prompt $" {
|
|
fail "up from marker1"
|
|
}
|
|
timeout { fail "up from marker1 (timeout)" }
|
|
}
|
|
}
|
|
-re "$gdb_prompt $" {
|
|
fail "continue to marker1"
|
|
}
|
|
timeout {
|
|
fail "continue to marker1 (timeout)"
|
|
}
|
|
}
|
|
|
|
|
|
send_gdb "print *pUC\n"
|
|
gdb_expect {
|
|
-re ".\[0-9\]* = 21 \'.025\'.*$gdb_prompt $" {
|
|
pass "print value of *pUC"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print value of *pUC" }
|
|
timeout { fail "(timeout) print value of *pUC" }
|
|
}
|
|
|
|
|
|
send_gdb "ptype pUC\n"
|
|
gdb_expect {
|
|
-re "type = unsigned char \\*.*$gdb_prompt $" { pass "ptype pUC" }
|
|
-re ".*$gdb_prompt $" { fail "ptype pUC" }
|
|
timeout { fail "(timeout) ptype pUC" }
|
|
}
|
|
|
|
send_gdb "print *pS\n"
|
|
gdb_expect {
|
|
-re ".\[0-9\]* = -14.*$gdb_prompt $" {
|
|
pass "print value of *pS"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print value of *pS" }
|
|
timeout { fail "(timeout) print value of *pS" }
|
|
}
|
|
|
|
|
|
send_gdb "ptype pS\n"
|
|
gdb_expect {
|
|
-re "type = short \\*.*$gdb_prompt $" { pass "ptype pS" }
|
|
-re "type = short int \\*.*$gdb_prompt $" { pass "ptype pS" }
|
|
-re ".*$gdb_prompt $" { fail "ptype pS" }
|
|
timeout { fail "(timeout) ptype pS" }
|
|
}
|
|
|
|
send_gdb "print *pUS\n"
|
|
gdb_expect {
|
|
-re ".\[0-9\]* = 7.*$gdb_prompt $" {
|
|
pass "print value of *pUS"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print value of *pUS" }
|
|
timeout { fail "(timeout) print value of *pUS" }
|
|
}
|
|
|
|
|
|
send_gdb "ptype pUS\n"
|
|
gdb_expect {
|
|
-re "type = unsigned short \\*.*$gdb_prompt $" { pass "ptype pUS" }
|
|
-re "type = short unsigned int \\*.*$gdb_prompt $" { pass "ptype pUS" }
|
|
-re ".*$gdb_prompt $" { fail "ptype pUS" }
|
|
timeout { fail "(timeout) ptype pUS" }
|
|
}
|
|
|
|
send_gdb "print *pI\n"
|
|
gdb_expect {
|
|
-re ".\[0-9\]* = 102.*$gdb_prompt $" {
|
|
pass "print value of *pI"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print value of *pI" }
|
|
timeout { fail "(timeout) print value of *pI" }
|
|
}
|
|
|
|
|
|
send_gdb "ptype pI\n"
|
|
gdb_expect {
|
|
-re "type = int \\*.*$gdb_prompt $" { pass "ptype pI" }
|
|
-re ".*$gdb_prompt $" { fail "ptype pI" }
|
|
timeout { fail "(timeout) ptype pI" }
|
|
}
|
|
|
|
send_gdb "print *pUI\n"
|
|
gdb_expect {
|
|
-re ".\[0-9\]* = 1002.*$gdb_prompt $" {
|
|
pass "print value of *pUI"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print value of *pUI" }
|
|
timeout { fail "(timeout) print value of *pUI" }
|
|
}
|
|
|
|
|
|
send_gdb "ptype pUI\n"
|
|
gdb_expect {
|
|
-re "type = unsigned int \\*.*$gdb_prompt $" { pass "ptype pUI" }
|
|
-re ".*$gdb_prompt $" { fail "ptype pUI" }
|
|
timeout { fail "(timeout) ptype pUI" }
|
|
}
|
|
|
|
send_gdb "print *pL\n"
|
|
gdb_expect {
|
|
-re ".\[0-9\]* = -234.*$gdb_prompt $" {
|
|
pass "print value of *pL"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print value of *pL" }
|
|
timeout { fail "(timeout) print value of *pL" }
|
|
}
|
|
|
|
|
|
send_gdb "ptype pL\n"
|
|
gdb_expect {
|
|
-re "type = long \\*.*$gdb_prompt $" { pass "ptype pL" }
|
|
-re "type = long int \\*.*$gdb_prompt $" { pass "ptype pL" }
|
|
-re ".*$gdb_prompt $" { fail "ptype pL" }
|
|
timeout { fail "(timeout) ptype pL" }
|
|
}
|
|
|
|
send_gdb "print *pUL\n"
|
|
gdb_expect {
|
|
-re ".\[0-9\]* = 234.*$gdb_prompt $" {
|
|
pass "print value of *pUL"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print value of *pUL" }
|
|
timeout { fail "(timeout) print value of *pUL" }
|
|
}
|
|
|
|
|
|
send_gdb "ptype pUL\n"
|
|
gdb_expect {
|
|
-re "type = unsigned long \\*.*$gdb_prompt $" { pass "ptype pUL" }
|
|
-re "type = long unsigned int \\*.*$gdb_prompt $" { pass "ptype pUL" }
|
|
-re ".*$gdb_prompt $" { fail "ptype pUL" }
|
|
timeout { fail "(timeout) ptype pUL" }
|
|
}
|
|
|
|
send_gdb "print *pF\n"
|
|
gdb_expect {
|
|
-re ".\[0-9\]* = 1.2\[0-9\]*e\\+10.*$gdb_prompt $" {
|
|
pass "print value of *pF"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print value of *pF" }
|
|
timeout { fail "(timeout) print value of *pF" }
|
|
}
|
|
|
|
|
|
send_gdb "ptype pF\n"
|
|
gdb_expect {
|
|
-re "type = float \\*.*$gdb_prompt $" { pass "ptype pF" }
|
|
-re ".*$gdb_prompt $" { fail "ptype pF" }
|
|
timeout { fail "(timeout) ptype pF" }
|
|
}
|
|
|
|
send_gdb "print *pD\n"
|
|
gdb_expect {
|
|
-re ".\[0-9\]* = -1.2\[0-9\]*e\\-37.*$gdb_prompt $" {
|
|
pass "print value of *pD"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print value of *pD" }
|
|
timeout { fail "(timeout) print value of *pD" }
|
|
}
|
|
|
|
|
|
send_gdb "ptype pD\n"
|
|
gdb_expect {
|
|
-re "type = double \\*.*$gdb_prompt $" { pass "ptype pD" }
|
|
-re ".*$gdb_prompt $" { fail "ptype pD" }
|
|
timeout { fail "(timeout) ptype pD" }
|
|
}
|
|
|
|
send_gdb "print ******ppppppC\n"
|
|
gdb_expect {
|
|
-re ".\[0-9\]* = 65 \'A\'.*$gdb_prompt $" {
|
|
pass "print value of ******ppppppC"
|
|
}
|
|
-re ".*$gdb_prompt $" { fail "print value of ******ppppppC" }
|
|
timeout { fail "(timeout) print value of ******ppppppC" }
|
|
}
|
|
|
|
|
|
send_gdb "ptype pC\n"
|
|
gdb_expect {
|
|
-re "type = char \\*.*$gdb_prompt $" { pass "ptype pC" }
|
|
-re ".*$gdb_prompt $" { fail "ptype pC" }
|
|
timeout { fail "(timeout) ptype pC" }
|
|
}
|
|
|
|
send_gdb "ptype ppC\n"
|
|
gdb_expect {
|
|
-re "type = char \\*\\*.*$gdb_prompt $" { pass "ptype ppC" }
|
|
-re ".*$gdb_prompt $" { fail "ptype ppC" }
|
|
timeout { fail "(timeout) ptype ppC" }
|
|
}
|
|
|
|
send_gdb "ptype pppC\n"
|
|
gdb_expect {
|
|
-re "type = char \\*\\*\\*.*$gdb_prompt $" { pass "ptype pppC" }
|
|
-re ".*$gdb_prompt $" { fail "ptype pppC" }
|
|
timeout { fail "(timeout) ptype pppC" }
|
|
}
|
|
|
|
send_gdb "ptype ppppC\n"
|
|
gdb_expect {
|
|
-re "type = char \\*\\*\\*\\*.*$gdb_prompt $" { pass "ptype ppppC" }
|
|
-re ".*$gdb_prompt $" { fail "ptype ppppC" }
|
|
timeout { fail "(timeout) ptype ppppC" }
|
|
}
|
|
|
|
send_gdb "ptype pppppC\n"
|
|
gdb_expect {
|
|
-re "type = char \\*\\*\\*\\*\\*.*$gdb_prompt $" { pass "ptype pppppC" }
|
|
-re ".*$gdb_prompt $" { fail "ptype pppppC" }
|
|
timeout { fail "(timeout) ptype pppppC" }
|
|
}
|
|
|
|
send_gdb "ptype ppppppC\n"
|
|
gdb_expect {
|
|
-re "type = char \\*\\*\\*\\*\\*\\*.*$gdb_prompt $" { pass "ptype ppppppC" }
|
|
-re ".*$gdb_prompt $" { fail "ptype ppppppC" }
|
|
timeout { fail "(timeout) ptype ppppppC" }
|
|
}
|
|
|