* gdb.disasm testsuite patch
@ 1999-07-22 18:19 Jimmy Guo
1999-07-22 18:23 ` tools/ tar " Jimmy Guo
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Jimmy Guo @ 1999-07-22 18:19 UTC (permalink / raw)
To: gdb-patches
This patch contains merged gdb.disasm testsuite.
It includes merge changes and some new tests added by HP for pa1.1 / 2.0
/ 2.0w testing. A FSF copyright assignment is on its way.
File renames / moves (a tar file of gdb.disasm has been ftp'd over as
ftp.cygnus.com:/incoming/hp_gdb.disasm.tar, *** since there're binaries
included please apply the actual change from the tar file ***):
Old New
--- ---
pa11
pa11-sed.cmd
pa11.com
pa11.exp
pa11.out
pa11-instr.s
pa20
pa20-instr.s
pa20-long.c
pa20-long.exp
pa20-t2
pa20-t2.com
pa20-t2.exp
pa20-t2.out
pa20-t2.s
pa20.com
pa20.exp
pa20.out
pa20w-instr.s
pa20w-t3
pa20w-t3.com
pa20w-t3.exp
pa20w-t3.out
- Jimmy Guo, guo@cup.hp.com
/opt/gnu/bin/diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm gdb/testsuite/gdb.disasm
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/Makefile.in gdb/testsuite/gdb.disasm/Makefile.in
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/Makefile.in Mon Mar 24 13:48:36 1997
--- gdb/testsuite/gdb.disasm/Makefile.in Thu Jul 22 17:49:43 1999
***************
*** 1,20 ****
- #### host, target, and site specific Makefile frags come in here.
-
VPATH = @srcdir@
srcdir = @srcdir@
! .PHONY: all clean mostlyclean distclean realclean
! all:
! @echo "Nothing to be done for all..."
clean mostlyclean:
! -rm -f *.o *.diff *~ *.bad core sh3 hppa mn10200 mn10300
distclean maintainer-clean realclean: clean
-rm -f Makefile config.status config.log
! Makefile: $(srcdir)/Makefile.in $(srcdir)/configure.in
$(SHELL) ./config.status --recheck
-
-
--- 1,30 ----
VPATH = @srcdir@
srcdir = @srcdir@
! EXECUTABLES = hppa mn10200 mn10300 pa20-long sh3
!
! MISCELLANEOUS = *.dif *.out *.tmp *.tmp2
!
! all:
! @echo "Nothing to be done for all..."
! info:
! install-info:
! dvi:
! install:
! uninstall: force
! installcheck:
! check:
clean mostlyclean:
! -rm -f *~ *.o *.ci
! -rm -f core $(EXECUTABLES)
! -rm -f $(MISCELLANEOUS)
distclean maintainer-clean realclean: clean
-rm -f Makefile config.status config.log
+ -rm -f *-init.exp
+ -rm -fr *.log summary detail *.plog *.sum *.psum site.*
! Makefile : $(srcdir)/Makefile.in $(srcdir)/configure.in
$(SHELL) ./config.status --recheck
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/configure gdb/testsuite/gdb.disasm/configure
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/configure Tue Mar 24 08:44:07 1998
--- gdb/testsuite/gdb.disasm/configure Thu Jul 22 17:49:44 1999
***************
*** 451,457 ****
# A filename unique to this package, relative to the directory that
# configure is in, which we can look for to find out if srcdir is correct.
! ac_unique_file=sh3.s
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
--- 451,457 ----
# A filename unique to this package, relative to the directory that
# configure is in, which we can look for to find out if srcdir is correct.
! ac_unique_file=hppa.exp
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/configure.in gdb/testsuite/gdb.disasm/configure.in
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/configure.in Thu Feb 13 15:16:24 1997
--- gdb/testsuite/gdb.disasm/configure.in Thu Jul 22 17:49:44 1999
***************
*** 5,11 ****
dnl any existing configure script.
AC_PREREQ(2.5)
! AC_INIT(sh3.s)
CC=${CC-cc}
AC_SUBST(CC)
--- 5,11 ----
dnl any existing configure script.
AC_PREREQ(2.5)
! AC_INIT(hppa.exp)
CC=${CC-cc}
AC_SUBST(CC)
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/hppa.exp gdb/testsuite/gdb.disasm/hppa.exp
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/hppa.exp Mon Jul 19 15:46:50 1999
--- gdb/testsuite/gdb.disasm/hppa.exp Thu Jul 22 17:49:44 1999
***************
*** 28,34 ****
verbose "Tests ignored for all but hppa based targets."
return
}
!
set prms_id 0
set bug_id 0
--- 28,37 ----
verbose "Tests ignored for all but hppa based targets."
return
}
! if [istarget "hppa2.0w-*-*"] {
! verbose "Tests ignored for hppa2.0w*."
! return
! }
set prms_id 0
set bug_id 0
***************
*** 55,68 ****
send_gdb "x/8i integer_memory_tests\n"
gdb_expect {
-re "
! .*ldw 0\\(sr0,r4\\),r26.*
! .*ldh 0\\(sr0,r4\\),r26.*
! .*ldb 0\\(sr0,r4\\),r26.*
! .*stw r26,0\\(sr0,r4\\).*
! .*sth r26,0\\(sr0,r4\\).*
! .*stb r26,0\\(sr0,r4\\).*
! .*ldwm 0\\(sr0,r4\\),r26.*
! .*stwm r26,0\\(sr0,r4\\).*
.*$gdb_prompt $" { pass "integer_memory_tests" }
-re "$gdb_prompt $" { fail "integer_memory_tests" }
timeout { fail "(timeout) integer memory_tests" }
--- 58,71 ----
send_gdb "x/8i integer_memory_tests\n"
gdb_expect {
-re "
! .*ldw 0\\(%sr0,%r4\\),%r26.*
! .*ldh 0\\(%sr0,%r4\\),%r26.*
! .*ldb 0\\(%sr0,%r4\\),%r26.*
! .*stw %r26,0\\(%sr0,%r4\\).*
! .*sth %r26,0\\(%sr0,%r4\\).*
! .*stb %r26,0\\(%sr0,%r4\\).*
! .*ldw,ma 0\\(%sr0,%r4\\),%r26.*
! .*stw,ma %r26,0\\(%sr0,%r4\\).*
.*$gdb_prompt $" { pass "integer_memory_tests" }
-re "$gdb_prompt $" { fail "integer_memory_tests" }
timeout { fail "(timeout) integer memory_tests" }
***************
*** 71,96 ****
send_gdb "x/20i integer_indexing_load\n"
gdb_expect {
-re "
! .*ldwx r5\\(sr0,r4\\),r26.*
! .*ldwx,s r5\\(sr0,r4\\),r26.*
! .*ldwx,m r5\\(sr0,r4\\),r26.*
! .*ldwx,sm r5\\(sr0,r4\\),r26.*
! .*ldhx r5\\(sr0,r4\\),r26.*
! .*ldhx,s r5\\(sr0,r4\\),r26.*
! .*ldhx,m r5\\(sr0,r4\\),r26.*
! .*ldhx,sm r5\\(sr0,r4\\),r26.*
! .*ldbx r5\\(sr0,r4\\),r26.*
! .*ldbx,s r5\\(sr0,r4\\),r26.*
! .*ldbx,m r5\\(sr0,r4\\),r26.*
! .*ldbx,sm r5\\(sr0,r4\\),r26.*
! .*ldwax r5\\(r4\\),r26.*
! .*ldwax,s r5\\(r4\\),r26.*
! .*ldwax,m r5\\(r4\\),r26.*
! .*ldwax,sm r5\\(r4\\),r26.*
! .*ldcwx r5\\(sr0,r4\\),r26.*
! .*ldcwx,s r5\\(sr0,r4\\),r26.*
! .*ldcwx,m r5\\(sr0,r4\\),r26.*
! .*ldcwx,sm r5\\(sr0,r4\\),r26.*
.*$gdb_prompt $" { pass "integer_indexing_load" }
-re "$gdb_prompt $" { fail "integer_indexing_load" }
timeout { fail "(timeout) integer_indexing" }
--- 74,99 ----
send_gdb "x/20i integer_indexing_load\n"
gdb_expect {
-re "
! .*ldw %r5\\(%sr0,%r4\\),%r26.*
! .*ldw,s %r5\\(%sr0,%r4\\),%r26.*
! .*ldw,m %r5\\(%sr0,%r4\\),%r26.*
! .*ldw,sm %r5\\(%sr0,%r4\\),%r26.*
! .*ldh %r5\\(%sr0,%r4\\),%r26.*
! .*ldh,s %r5\\(%sr0,%r4\\),%r26.*
! .*ldh,m %r5\\(%sr0,%r4\\),%r26.*
! .*ldh,sm %r5\\(%sr0,%r4\\),%r26.*
! .*ldb %r5\\(%sr0,%r4\\),%r26.*
! .*ldb,s %r5\\(%sr0,%r4\\),%r26.*
! .*ldb,m %r5\\(%sr0,%r4\\),%r26.*
! .*ldb,sm %r5\\(%sr0,%r4\\),%r26.*
! .*ldwa %r5\\(%r4\\),%r26.*
! .*ldwa,s %r5\\(%r4\\),%r26.*
! .*ldwa,m %r5\\(%r4\\),%r26.*
! .*ldwa,sm %r5\\(%r4\\),%r26.*
! .*ldcw %r5\\(%sr0,%r4\\),%r26.*
! .*ldcw,s %r5\\(%sr0,%r4\\),%r26.*
! .*ldcw,m %r5\\(%sr0,%r4\\),%r26.*
! .*ldcw,sm %r5\\(%sr0,%r4\\),%r26.*
.*$gdb_prompt $" { pass "integer_indexing_load" }
-re "$gdb_prompt $" { fail "integer_indexing_load" }
timeout { fail "(timeout) integer_indexing" }
***************
*** 99,119 ****
send_gdb "x/15i integer_load_short_memory\n"
gdb_expect {
-re "
! .*ldws 0\\(sr0,r4\\),r26.*
! .*ldws,mb 0\\(sr0,r4\\),r26.*
! .*ldws,ma 0\\(sr0,r4\\),r26.*
! .*ldhs 0\\(sr0,r4\\),r26.*
! .*ldhs,mb 0\\(sr0,r4\\),r26.*
! .*ldhs,ma 0\\(sr0,r4\\),r26.*
! .*ldbs 0\\(sr0,r4\\),r26.*
! .*ldbs,mb 0\\(sr0,r4\\),r26.*
! .*ldbs,ma 0\\(sr0,r4\\),r26.*
! .*ldwas 0\\(r4\\),r26.*
! .*ldwas,mb 0\\(r4\\),r26.*
! .*ldwas,ma 0\\(r4\\),r26.*
! .*ldcws 0\\(sr0,r4\\),r26.*
! .*ldcws,mb 0\\(sr0,r4\\),r26.*
! .*ldcws,ma 0\\(sr0,r4\\),r26.*
.*$gdb_prompt $" { pass "integer_load_short_memory" }
-re "$gdb_prompt $" { fail "integer_load_short_memory" }
timeout { fail "(timeout) integer_load_short_memory " }
--- 102,122 ----
send_gdb "x/15i integer_load_short_memory\n"
gdb_expect {
-re "
! .*ldw 0\\(%sr0,%r4\\),%r26.*
! .*ldw,mb 0\\(%sr0,%r4\\),%r26.*
! .*ldw 0\\(%sr0,%r4\\),%r26.*
! .*ldh 0\\(%sr0,%r4\\),%r26.*
! .*ldh,mb 0\\(%sr0,%r4\\),%r26.*
! .*ldh 0\\(%sr0,%r4\\),%r26.*
! .*ldb 0\\(%sr0,%r4\\),%r26.*
! .*ldb,mb 0\\(%sr0,%r4\\),%r26.*
! .*ldb 0\\(%sr0,%r4\\),%r26.*
! .*ldwa 0\\(%r4\\),%r26.*
! .*ldwa,mb 0\\(%r4\\),%r26.*
! .*ldwa 0\\(%r4\\),%r26.*
! .*ldcw 0\\(%sr0,%r4\\),%r26.*
! .*ldcw,mb 0\\(%sr0,%r4\\),%r26.*
! .*ldcw 0\\(%sr0,%r4\\),%r26.*
.*$gdb_prompt $" { pass "integer_load_short_memory" }
-re "$gdb_prompt $" { fail "integer_load_short_memory" }
timeout { fail "(timeout) integer_load_short_memory " }
***************
*** 123,145 ****
send_gdb "x/17i integer_store_short_memory\n"
gdb_expect {
-re "
! .*stws r26,0\\(sr0,r4\\).*
! .*stws,mb r26,0\\(sr0,r4\\).*
! .*stws,ma r26,0\\(sr0,r4\\).*
! .*sths r26,0\\(sr0,r4\\).*
! .*sths,mb r26,0\\(sr0,r4\\).*
! .*sths,ma r26,0\\(sr0,r4\\).*
! .*stbs r26,0\\(sr0,r4\\).*
! .*stbs,mb r26,0\\(sr0,r4\\).*
! .*stbs,ma r26,0\\(sr0,r4\\).*
! .*stwas r26,0\\(r4\\).*
! .*stwas,mb r26,0\\(r4\\).*
! .*stwas,ma r26,0\\(r4\\).*
! .*stbys r26,0\\(sr0,r4\\).*
! .*stbys r26,0\\(sr0,r4\\).*
! .*stbys,e r26,0\\(sr0,r4\\).*
! .*stbys,b,m r26,0\\(sr0,r4\\).*
! .*stbys,e,m r26,0\\(sr0,r4\\).*
.*$gdb_prompt $" { pass "integer_store_short_memory" }
-re "$gdb_prompt $" { fail "integer_store_short_memory" }
timeout { fail "(timeout) integer_short_memory " }
--- 126,148 ----
send_gdb "x/17i integer_store_short_memory\n"
gdb_expect {
-re "
! .*stw %r26,0\\(%sr0,%r4\\).*
! .*stw,mb %r26,0\\(%sr0,%r4\\).*
! .*stw %r26,0\\(%sr0,%r4\\).*
! .*sth %r26,0\\(%sr0,%r4\\).*
! .*sth,mb %r26,0\\(%sr0,%r4\\).*
! .*sth %r26,0\\(%sr0,%r4\\).*
! .*stb %r26,0\\(%sr0,%r4\\).*
! .*stb,mb %r26,0\\(%sr0,%r4\\).*
! .*stb %r26,0\\(%sr0,%r4\\).*
! .*stwa %r26,0\\(%r4\\).*
! .*stwa,mb %r26,0\\(%r4\\).*
! .*stwa %r26,0\\(%r4\\).*
! .*stby,b %r26,0\\(%sr0,%r4\\).*
! .*stby,b %r26,0\\(%sr0,%r4\\).*
! .*stby,e %r26,0\\(%sr0,%r4\\).*
! .*stby,b,m %r26,0\\(%sr0,%r4\\).*
! .*stby,e,m %r26,0\\(%sr0,%r4\\).*
.*$gdb_prompt $" { pass "integer_store_short_memory" }
-re "$gdb_prompt $" { fail "integer_store_short_memory" }
timeout { fail "(timeout) integer_short_memory " }
***************
*** 154,162 ****
send_gdb "x/3i immediate_tests\n"
gdb_expect {
-re "
! .*ldo 5\\(r26\\),r26.*
! .*ldil -21524800,r26.*
! .*addil -21524800,r5.*
.*$gdb_prompt $" { pass "immedate_tests" }
-re "$gdb_prompt $" { fail "immedate_tests" }
timeout { fail "(timeout) immedate_tests " }
--- 157,165 ----
send_gdb "x/3i immediate_tests\n"
gdb_expect {
-re "
! .*ldo 5\\(%r26\\),%r26.*
! .*ldil L'-0x21524800,%r26.*
! .*addil L'-0x21524800,%r5.*
.*$gdb_prompt $" { pass "immedate_tests" }
-re "$gdb_prompt $" { fail "immedate_tests" }
timeout { fail "(timeout) immedate_tests " }
***************
*** 171,186 ****
send_gdb "x/10i branch_tests_1\n"
gdb_expect {
-re "
! .*bl.*,rp.*
! .*bl,n.*,rp.*
.*b.*
.*b,n.*
! .*gate.*,rp.*
! .*gate,n.*,rp.*
! .*blr r4,rp.*
! .*blr,n r4,rp.*
! .*blr r4,r0.*
! .*blr,n r4,r0.*
.*$gdb_prompt $" { pass "branch_tests_1" }
-re "$gdb_prompt $" { fail "branch_tests_1" }
timeout { fail "(timeout) branch_tests_1" }
--- 174,189 ----
send_gdb "x/10i branch_tests_1\n"
gdb_expect {
-re "
! .*b,l.*,%rp.*
! .*b,l,n.*,%rp.*
.*b.*
.*b,n.*
! .*b,gate.*,%rp.*
! .*b,gate,n.*,%rp.*
! .*blr %r4,%rp.*
! .*blr,n %r4,%rp.*
! .*blr %r4,%r0.*
! .*blr,n %r4,%r0.*
.*$gdb_prompt $" { pass "branch_tests_1" }
-re "$gdb_prompt $" { fail "branch_tests_1" }
timeout { fail "(timeout) branch_tests_1" }
***************
*** 189,200 ****
send_gdb "x/6i branch_tests_2\n"
gdb_expect {
-re "
! .*bv r0\\(rp\\).*
! .*bv,n r0\\(rp\\).*
! .*be 1234\\(sr1,rp\\).*
! .*be,n 1234\\(sr1,rp\\).*
! .*ble 1234\\(sr1,rp\\).*
! .*ble,n 1234\\(sr1,rp\\).*
.*$gdb_prompt $" { pass "branch_tests_2" }
-re "$gdb_prompt $" { fail "branch_tests_2" }
timeout { fail "(timeout) branch_tests_2" }
--- 192,203 ----
send_gdb "x/6i branch_tests_2\n"
gdb_expect {
-re "
! .*bv %r0\\(%rp\\).*
! .*bv,n %r0\\(%rp\\).*
! .*be 0x1234\\(%sr1,%rp\\).*
! .*be,n 0x1234\\(%sr1,%rp\\).*
! .*be,l 0x1234\\(%sr1,%rp\\).*
! .*be,l,n 0x1234\\(%sr1,%rp\\).*
.*$gdb_prompt $" { pass "branch_tests_2" }
-re "$gdb_prompt $" { fail "branch_tests_2" }
timeout { fail "(timeout) branch_tests_2" }
***************
*** 204,217 ****
send_gdb "x/8i movb_tests\n"
gdb_expect {
-re "
! .*movb r4,r26,.* <movb_tests>.*
! .*movb,= r4,r26,.* <movb_tests>.*
! .*movb,< r4,r26,.* <movb_tests>.*
! .*movb,od r4,r26,.* <movb_tests>.*
! .*movb,tr r4,r26,.* <movb_tests>.*
! .*movb,<> r4,r26,.* <movb_tests>.*
! .*movb,>= r4,r26,.* <movb_tests>.*
! .*movb,ev r4,r26,.* <movb_tests>.*
.*$gdb_prompt $" { pass "movb_tests" }
-re "$gdb_prompt $" { fail "movb_tests" }
timeout { fail "(timeout) movb_tests " }
--- 207,220 ----
send_gdb "x/8i movb_tests\n"
gdb_expect {
-re "
! .*movb %r4,%r26,.* <movb_tests>.*
! .*movb,= %r4,%r26,.* <movb_tests>.*
! .*movb,< %r4,%r26,.* <movb_tests>.*
! .*movb,od %r4,%r26,.* <movb_tests>.*
! .*movb,tr %r4,%r26,.* <movb_tests>.*
! .*movb,<> %r4,%r26,.* <movb_tests>.*
! .*movb,>= %r4,%r26,.* <movb_tests>.*
! .*movb,ev %r4,%r26,.* <movb_tests>.*
.*$gdb_prompt $" { pass "movb_tests" }
-re "$gdb_prompt $" { fail "movb_tests" }
timeout { fail "(timeout) movb_tests " }
***************
*** 220,233 ****
send_gdb "x/8i movb_nullified_tests\n"
gdb_expect {
-re "
! .*movb,n.*r4,r26,.* <movb_tests>.*
! .*movb,=,n.*r4,r26,.* <movb_tests>.*
! .*movb,<,n.*r4,r26,.* <movb_tests>.*
! .*movb,od,n.*r4,r26,.* <movb_tests>.*
! .*movb,tr,n.*r4,r26,.* <movb_tests>.*
! .*movb,<>,n.*r4,r26,.* <movb_tests>.*
! .*movb,>=,n.*r4,r26,.* <movb_tests>.*
! .*movb,ev,n.*r4,r26,.* <movb_tests>.*
.*$gdb_prompt $" { pass "movb_nullified_tests" }
-re "$gdb_prompt $" { fail "movb_nullified_tests" }
timeout { fail "(timeout) movb_nullified_tests " }
--- 223,236 ----
send_gdb "x/8i movb_nullified_tests\n"
gdb_expect {
-re "
! .*movb,n.*%r4,%r26,.* <movb_tests>.*
! .*movb,=,n.*%r4,%r26,.* <movb_tests>.*
! .*movb,<,n.*%r4,%r26,.* <movb_tests>.*
! .*movb,od,n.*%r4,%r26,.* <movb_tests>.*
! .*movb,tr,n.*%r4,%r26,.* <movb_tests>.*
! .*movb,<>,n.*%r4,%r26,.* <movb_tests>.*
! .*movb,>=,n.*%r4,%r26,.* <movb_tests>.*
! .*movb,ev,n.*%r4,%r26,.* <movb_tests>.*
.*$gdb_prompt $" { pass "movb_nullified_tests" }
-re "$gdb_prompt $" { fail "movb_nullified_tests" }
timeout { fail "(timeout) movb_nullified_tests " }
***************
*** 236,249 ****
send_gdb "x/8i movib_tests\n"
gdb_expect {
-re "
! .*movib 5,r26,.* <movib_tests>.*
! .*movib,= 5,r26,.* <movib_tests>.*
! .*movib,< 5,r26,.* <movib_tests>.*
! .*movib,od 5,r26,.* <movib_tests>.*
! .*movib,tr 5,r26,.* <movib_tests>.*
! .*movib,<> 5,r26,.* <movib_tests>.*
! .*movib,>= 5,r26,.* <movib_tests>.*
! .*movib,ev 5,r26,.* <movib_tests>.*
.*$gdb_prompt $" { pass "movib_tests" }
-re "$gdb_prompt $" { fail "movib_tests" }
timeout { fail "(timeout) movib_tests " }
--- 239,252 ----
send_gdb "x/8i movib_tests\n"
gdb_expect {
-re "
! .*movib 5,%r26,.* <movib_tests>.*
! .*movib,= 5,%r26,.* <movib_tests>.*
! .*movib,< 5,%r26,.* <movib_tests>.*
! .*movib,od 5,%r26,.* <movib_tests>.*
! .*movib,tr 5,%r26,.* <movib_tests>.*
! .*movib,<> 5,%r26,.* <movib_tests>.*
! .*movib,>= 5,%r26,.* <movib_tests>.*
! .*movib,ev 5,%r26,.* <movib_tests>.*
.*$gdb_prompt $" { pass "movib_tests" }
-re "$gdb_prompt $" { fail "movib_tests" }
timeout { fail "(timeout) movib_tests " }
***************
*** 252,265 ****
send_gdb "x/8i movib_nullified_tests\n"
gdb_expect {
-re "
! .*movib,n.*5,r26,.* <movib_tests>.*
! .*movib,=,n.*5,r26,.* <movib_tests>.*
! .*movib,<,n.*5,r26,.* <movib_tests>.*
! .*movib,od,n.*5,r26,.* <movib_tests>.*
! .*movib,tr,n.*5,r26,.* <movib_tests>.*
! .*movib,<>,n.*5,r26,.* <movib_tests>.*
! .*movib,>=,n.*5,r26,.* <movib_tests>.*
! .*movib,ev,n.*5,r26,.* <movib_tests>.*
.*$gdb_prompt $" { pass "movib_nullified_tests" }
-re "$gdb_prompt $" { fail "movib_nullified_tests" }
timeout { fail "(timeout) movib_nullified_tests " }
--- 255,268 ----
send_gdb "x/8i movib_nullified_tests\n"
gdb_expect {
-re "
! .*movib,n.*5,%r26,.* <movib_tests>.*
! .*movib,=,n.*5,%r26,.* <movib_tests>.*
! .*movib,<,n.*5,%r26,.* <movib_tests>.*
! .*movib,od,n.*5,%r26,.* <movib_tests>.*
! .*movib,tr,n.*5,%r26,.* <movib_tests>.*
! .*movib,<>,n.*5,%r26,.* <movib_tests>.*
! .*movib,>=,n.*5,%r26,.* <movib_tests>.*
! .*movib,ev,n.*5,%r26,.* <movib_tests>.*
.*$gdb_prompt $" { pass "movib_nullified_tests" }
-re "$gdb_prompt $" { fail "movib_nullified_tests" }
timeout { fail "(timeout) movib_nullified_tests " }
***************
*** 268,281 ****
send_gdb "x/8i comb_tests_1\n"
gdb_expect {
-re "
! .*comb r0,r4,.* <comb_tests_1>.*
! .*comb,= r0,r4,.* <comb_tests_1>.*
! .*comb,< r0,r4,.* <comb_tests_1>.*
! .*comb,<= r0,r4,.* <comb_tests_1>.*
! .*comb,<< r0,r4,.* <comb_tests_1>.*
! .*comb,<<= r0,r4,.* <comb_tests_1>.*
! .*comb,sv r0,r4,.* <comb_tests_1>.*
! .*comb,od r0,r4,.* <comb_tests_1>.*
.*$gdb_prompt $" { pass "comb_tests_1" }
-re "$gdb_prompt $" { fail "comb_tests_1" }
timeout { fail "(timeout) comb_tests_1" }
--- 271,284 ----
send_gdb "x/8i comb_tests_1\n"
gdb_expect {
-re "
! .*cmpb %r0,%r4,.* <comb_tests_1>.*
! .*cmpb,= %r0,%r4,.* <comb_tests_1>.*
! .*cmpb,< %r0,%r4,.* <comb_tests_1>.*
! .*cmpb,<= %r0,%r4,.* <comb_tests_1>.*
! .*cmpb,<< %r0,%r4,.* <comb_tests_1>.*
! .*cmpb,<<= %r0,%r4,.* <comb_tests_1>.*
! .*cmpb,sv %r0,%r4,.* <comb_tests_1>.*
! .*cmpb,od %r0,%r4,.* <comb_tests_1>.*
.*$gdb_prompt $" { pass "comb_tests_1" }
-re "$gdb_prompt $" { fail "comb_tests_1" }
timeout { fail "(timeout) comb_tests_1" }
***************
*** 284,297 ****
send_gdb "x/8i comb_tests_2\n"
gdb_expect {
-re "
! .*combf r0,r4,.* <comb_tests_2>.*
! .*combf,= r0,r4,.* <comb_tests_2>.*
! .*combf,< r0,r4,.* <comb_tests_2>.*
! .*combf,<= r0,r4,.* <comb_tests_2>.*
! .*combf,<< r0,r4,.* <comb_tests_2>.*
! .*combf,<<= r0,r4,.* <comb_tests_2>.*
! .*combf,sv r0,r4,.* <comb_tests_2>.*
! .*combf,od r0,r4,.* <comb_tests_2>.*
.*$gdb_prompt $" { pass "comb_tests_2" }
-re "$gdb_prompt $" { fail "comb_tests_2" }
timeout { fail "(timeout) comb_tests_2" }
--- 287,300 ----
send_gdb "x/8i comb_tests_2\n"
gdb_expect {
-re "
! .*cmpb,tr %r0,%r4,.* <comb_tests_2>.*
! .*cmpb,<> %r0,%r4,.* <comb_tests_2>.*
! .*cmpb,>= %r0,%r4,.* <comb_tests_2>.*
! .*cmpb,> %r0,%r4,.* <comb_tests_2>.*
! .*cmpb,>>= %r0,%r4,.* <comb_tests_2>.*
! .*cmpb,>> %r0,%r4,.* <comb_tests_2>.*
! .*cmpb,nsv %r0,%r4,.* <comb_tests_2>.*
! .*cmpb,ev %r0,%r4,.* <comb_tests_2>.*
.*$gdb_prompt $" { pass "comb_tests_2" }
-re "$gdb_prompt $" { fail "comb_tests_2" }
timeout { fail "(timeout) comb_tests_2" }
***************
*** 300,313 ****
send_gdb "x/8i comb_nullified_tests_1\n"
gdb_expect {
-re "
! .*comb,n r0,r4,.* <comb_tests_1>.*
! .*comb,=,n r0,r4,.* <comb_tests_1>.*
! .*comb,<,n r0,r4,.* <comb_tests_1>.*
! .*comb,<=,n r0,r4,.* <comb_tests_1>.*
! .*comb,<<,n r0,r4,.* <comb_tests_1>.*
! .*comb,<<=,n r0,r4,.* <comb_tests_1>.*
! .*comb,sv,n r0,r4,.* <comb_tests_1>.*
! .*comb,od,n r0,r4,.* <comb_tests_1>.*
.*$gdb_prompt $" { pass "comb_nullified_tests_1" }
-re "$gdb_prompt $" { fail "comb_nullified_tests_1" }
timeout { fail "(timeout) comb_nullified_tests_1" }
--- 303,316 ----
send_gdb "x/8i comb_nullified_tests_1\n"
gdb_expect {
-re "
! .*cmpb,n %r0,%r4,.* <comb_tests_1>.*
! .*cmpb,=,n %r0,%r4,.* <comb_tests_1>.*
! .*cmpb,<,n %r0,%r4,.* <comb_tests_1>.*
! .*cmpb,<=,n %r0,%r4,.* <comb_tests_1>.*
! .*cmpb,<<,n %r0,%r4,.* <comb_tests_1>.*
! .*cmpb,<<=,n %r0,%r4,.* <comb_tests_1>.*
! .*cmpb,sv,n %r0,%r4,.* <comb_tests_1>.*
! .*cmpb,od,n %r0,%r4,.* <comb_tests_1>.*
.*$gdb_prompt $" { pass "comb_nullified_tests_1" }
-re "$gdb_prompt $" { fail "comb_nullified_tests_1" }
timeout { fail "(timeout) comb_nullified_tests_1" }
***************
*** 316,329 ****
send_gdb "x/8i comb_nullified_tests_2\n"
gdb_expect {
-re "
! .*combf,n r0,r4,.* <comb_tests_2>.*
! .*combf,=,n r0,r4,.* <comb_tests_2>.*
! .*combf,<,n r0,r4,.* <comb_tests_2>.*
! .*combf,<=,n r0,r4,.* <comb_tests_2>.*
! .*combf,<<,n r0,r4,.* <comb_tests_2>.*
! .*combf,<<=,n r0,r4,.* <comb_tests_2>.*
! .*combf,sv,n r0,r4,.* <comb_tests_2>.*
! .*combf,od,n r0,r4,.* <comb_tests_2>.*
.*$gdb_prompt $" { pass "comb_nullified_tests_2" }
-re "$gdb_prompt $" { fail "comb_nullified_tests_2" }
timeout { fail "(timeout) comb_nullified_tests_2" }
--- 319,332 ----
send_gdb "x/8i comb_nullified_tests_2\n"
gdb_expect {
-re "
! .*cmpb,tr,n %r0,%r4,.* <comb_tests_2>.*
! .*cmpb,<>,n %r0,%r4,.* <comb_tests_2>.*
! .*cmpb,>=,n %r0,%r4,.* <comb_tests_2>.*
! .*cmpb,>,n %r0,%r4,.* <comb_tests_2>.*
! .*cmpb,>>=,n %r0,%r4,.* <comb_tests_2>.*
! .*cmpb,>>,n %r0,%r4,.* <comb_tests_2>.*
! .*cmpb,nsv,n %r0,%r4,.* <comb_tests_2>.*
! .*cmpb,ev,n %r0,%r4,.* <comb_tests_2>.*
.*$gdb_prompt $" { pass "comb_nullified_tests_2" }
-re "$gdb_prompt $" { fail "comb_nullified_tests_2" }
timeout { fail "(timeout) comb_nullified_tests_2" }
***************
*** 332,345 ****
send_gdb "x/8i comib_tests_1\n"
gdb_expect {
-re "
! .*comib 0,r4,.* <comib_tests_1>.*
! .*comib,= 0,r4,.* <comib_tests_1>.*
! .*comib,< 0,r4,.* <comib_tests_1>.*
! .*comib,<= 0,r4,.* <comib_tests_1>.*
! .*comib,<< 0,r4,.* <comib_tests_1>.*
! .*comib,<<= 0,r4,.* <comib_tests_1>.*
! .*comib,sv 0,r4,.* <comib_tests_1>.*
! .*comib,od 0,r4,.* <comib_tests_1>.*
.*$gdb_prompt $" { pass "comib_tests_1" }
-re "$gdb_prompt $" { fail "comib_tests_1" }
timeout { fail "(timeout) comib_tests_1" }
--- 335,348 ----
send_gdb "x/8i comib_tests_1\n"
gdb_expect {
-re "
! .*cmpib 0,%r4,.* <comib_tests_1>.*
! .*cmpib,= 0,%r4,.* <comib_tests_1>.*
! .*cmpib,< 0,%r4,.* <comib_tests_1>.*
! .*cmpib,<= 0,%r4,.* <comib_tests_1>.*
! .*cmpib,<< 0,%r4,.* <comib_tests_1>.*
! .*cmpib,<<= 0,%r4,.* <comib_tests_1>.*
! .*cmpib,sv 0,%r4,.* <comib_tests_1>.*
! .*cmpib,od 0,%r4,.* <comib_tests_1>.*
.*$gdb_prompt $" { pass "comib_tests_1" }
-re "$gdb_prompt $" { fail "comib_tests_1" }
timeout { fail "(timeout) comib_tests_1" }
***************
*** 348,361 ****
send_gdb "x/8i comib_tests_2\n"
gdb_expect {
-re "
! .*comibf 0,r4,.* <comib_tests_2>.*
! .*comibf,= 0,r4,.* <comib_tests_2>.*
! .*comibf,< 0,r4,.* <comib_tests_2>.*
! .*comibf,<= 0,r4,.* <comib_tests_2>.*
! .*comibf,<< 0,r4,.* <comib_tests_2>.*
! .*comibf,<<= 0,r4,.* <comib_tests_2>.*
! .*comibf,sv 0,r4,.* <comib_tests_2>.*
! .*comibf,od 0,r4,.* <comib_tests_2>.*
.*$gdb_prompt $" { pass "comib_tests_2" }
-re "$gdb_prompt $" { fail "comib_tests_2" }
timeout { fail "(timeout) comib_tests_2" }
--- 351,364 ----
send_gdb "x/8i comib_tests_2\n"
gdb_expect {
-re "
! .*cmpib,tr 0,%r4,.* <comib_tests_2>.*
! .*cmpib,<> 0,%r4,.* <comib_tests_2>.*
! .*cmpib,>= 0,%r4,.* <comib_tests_2>.*
! .*cmpib,> 0,%r4,.* <comib_tests_2>.*
! .*cmpib,>>= 0,%r4,.* <comib_tests_2>.*
! .*cmpib,>> 0,%r4,.* <comib_tests_2>.*
! .*cmpib,nsv 0,%r4,.* <comib_tests_2>.*
! .*cmpib,ev 0,%r4,.* <comib_tests_2>.*
.*$gdb_prompt $" { pass "comib_tests_2" }
-re "$gdb_prompt $" { fail "comib_tests_2" }
timeout { fail "(timeout) comib_tests_2" }
***************
*** 364,377 ****
send_gdb "x/8i comib_nullified_tests_1\n"
gdb_expect {
-re "
! .*comib,n 0,r4,.* <comib_tests_1>.*
! .*comib,=,n 0,r4,.* <comib_tests_1>.*
! .*comib,<,n 0,r4,.* <comib_tests_1>.*
! .*comib,<=,n 0,r4,.* <comib_tests_1>.*
! .*comib,<<,n 0,r4,.* <comib_tests_1>.*
! .*comib,<<=,n 0,r4,.* <comib_tests_1>.*
! .*comib,sv,n 0,r4,.* <comib_tests_1>.*
! .*comib,od,n 0,r4,.* <comib_tests_1>.*
.*$gdb_prompt $" { pass "comib_nullified_tests_1" }
-re "$gdb_prompt $" { fail "comib_nullified_tests_1" }
timeout { fail "(timeout) comib_nullified_tests_1" }
--- 367,380 ----
send_gdb "x/8i comib_nullified_tests_1\n"
gdb_expect {
-re "
! .*cmpib,n 0,%r4,.* <comib_tests_1>.*
! .*cmpib,=,n 0,%r4,.* <comib_tests_1>.*
! .*cmpib,<,n 0,%r4,.* <comib_tests_1>.*
! .*cmpib,<=,n 0,%r4,.* <comib_tests_1>.*
! .*cmpib,<<,n 0,%r4,.* <comib_tests_1>.*
! .*cmpib,<<=,n 0,%r4,.* <comib_tests_1>.*
! .*cmpib,sv,n 0,%r4,.* <comib_tests_1>.*
! .*cmpib,od,n 0,%r4,.* <comib_tests_1>.*
.*$gdb_prompt $" { pass "comib_nullified_tests_1" }
-re "$gdb_prompt $" { fail "comib_nullified_tests_1" }
timeout { fail "(timeout) comib_nullified_tests_1" }
***************
*** 380,393 ****
send_gdb "x/8i comib_nullified_tests_2\n"
gdb_expect {
-re "
! .*comibf,n 0,r4,.* <comib_tests_2>.*
! .*comibf,=,n 0,r4,.* <comib_tests_2>.*
! .*comibf,<,n 0,r4,.* <comib_tests_2>.*
! .*comibf,<=,n 0,r4,.* <comib_tests_2>.*
! .*comibf,<<,n 0,r4,.* <comib_tests_2>.*
! .*comibf,<<=,n 0,r4,.* <comib_tests_2>.*
! .*comibf,sv,n 0,r4,.* <comib_tests_2>.*
! .*comibf,od,n 0,r4,.* <comib_tests_2>.*
.*$gdb_prompt $" { pass "comib_nullified_tests_2" }
-re "$gdb_prompt $" { fail "comib_nullified_tests_2" }
timeout { fail "(timeout) comib_nullified_tests_2" }
--- 383,396 ----
send_gdb "x/8i comib_nullified_tests_2\n"
gdb_expect {
-re "
! .*cmpib,tr,n 0,%r4,.* <comib_tests_2>.*
! .*cmpib,<>,n 0,%r4,.* <comib_tests_2>.*
! .*cmpib,>=,n 0,%r4,.* <comib_tests_2>.*
! .*cmpib,>,n 0,%r4,.* <comib_tests_2>.*
! .*cmpib,>>=,n 0,%r4,.* <comib_tests_2>.*
! .*cmpib,>>,n 0,%r4,.* <comib_tests_2>.*
! .*cmpib,nsv,n 0,%r4,.* <comib_tests_2>.*
! .*cmpib,ev,n 0,%r4,.* <comib_tests_2>.*
.*$gdb_prompt $" { pass "comib_nullified_tests_2" }
-re "$gdb_prompt $" { fail "comib_nullified_tests_2" }
timeout { fail "(timeout) comib_nullified_tests_2" }
***************
*** 396,409 ****
send_gdb "x/8i addb_tests_1\n"
gdb_expect {
-re "
! .*addb r1,r4,.* <addb_tests_1>.*
! .*addb,= r1,r4,.* <addb_tests_1>.*
! .*addb,< r1,r4,.* <addb_tests_1>.*
! .*addb,<= r1,r4,.* <addb_tests_1>.*
! .*addb,nuv r1,r4,.* <addb_tests_1>.*
! .*addb,znv r1,r4,.* <addb_tests_1>.*
! .*addb,sv r1,r4,.* <addb_tests_1>.*
! .*addb,od r1,r4,.* <addb_tests_1>.*
.*$gdb_prompt $" { pass "addb_tests_1" }
-re "$gdb_prompt $" { fail "addb_tests_1" }
timeout { fail "(timeout) addb_tests_1" }
--- 399,412 ----
send_gdb "x/8i addb_tests_1\n"
gdb_expect {
-re "
! .*addb %r1,%r4,.* <addb_tests_1>.*
! .*addb,= %r1,%r4,.* <addb_tests_1>.*
! .*addb,< %r1,%r4,.* <addb_tests_1>.*
! .*addb,<= %r1,%r4,.* <addb_tests_1>.*
! .*addb,nuv %r1,%r4,.* <addb_tests_1>.*
! .*addb,znv %r1,%r4,.* <addb_tests_1>.*
! .*addb,sv %r1,%r4,.* <addb_tests_1>.*
! .*addb,od %r1,%r4,.* <addb_tests_1>.*
.*$gdb_prompt $" { pass "addb_tests_1" }
-re "$gdb_prompt $" { fail "addb_tests_1" }
timeout { fail "(timeout) addb_tests_1" }
***************
*** 412,425 ****
send_gdb "x/8i addb_tests_2\n"
gdb_expect {
-re "
! .*addbf r1,r4,.* <addb_tests_2>.*
! .*addbf,= r1,r4,.* <addb_tests_2>.*
! .*addbf,< r1,r4,.* <addb_tests_2>.*
! .*addbf,<= r1,r4,.* <addb_tests_2>.*
! .*addbf,nuv r1,r4,.* <addb_tests_2>.*
! .*addbf,znv r1,r4,.* <addb_tests_2>.*
! .*addbf,sv r1,r4,.* <addb_tests_2>.*
! .*addbf,od r1,r4,.* <addb_tests_2>.*
.*$gdb_prompt $" { pass "addb_tests_2" }
-re "$gdb_prompt $" { fail "addb_tests_2" }
timeout { fail "(timeout) addb_tests_2" }
--- 415,428 ----
send_gdb "x/8i addb_tests_2\n"
gdb_expect {
-re "
! .*addb,tr %r1,%r4,.* <addb_tests_2>.*
! .*addb,<> %r1,%r4,.* <addb_tests_2>.*
! .*addb,>= %r1,%r4,.* <addb_tests_2>.*
! .*addb,> %r1,%r4,.* <addb_tests_2>.*
! .*addb,uv %r1,%r4,.* <addb_tests_2>.*
! .*addb,vnz %r1,%r4,.* <addb_tests_2>.*
! .*addb,nsv %r1,%r4,.* <addb_tests_2>.*
! .*addb,ev %r1,%r4,.* <addb_tests_2>.*
.*$gdb_prompt $" { pass "addb_tests_2" }
-re "$gdb_prompt $" { fail "addb_tests_2" }
timeout { fail "(timeout) addb_tests_2" }
***************
*** 428,441 ****
send_gdb "x/8i addb_nullified_tests_1\n"
gdb_expect {
-re "
! .*addb,n r1,r4,.* <addb_tests_1>.*
! .*addb,=,n r1,r4,.* <addb_tests_1>.*
! .*addb,<,n r1,r4,.* <addb_tests_1>.*
! .*addb,<=,n r1,r4,.* <addb_tests_1>.*
! .*addb,nuv,n r1,r4,.* <addb_tests_1>.*
! .*addb,znv,n r1,r4,.* <addb_tests_1>.*
! .*addb,sv,n r1,r4,.* <addb_tests_1>.*
! .*addb,od,n r1,r4,.* <addb_tests_1>.*
.*$gdb_prompt $" { pass "addb_nullified_tests_1" }
-re "$gdb_prompt $" { fail "addb_nullified_tests_1" }
timeout { fail "(timeout) addb_nullified_tests_1" }
--- 431,444 ----
send_gdb "x/8i addb_nullified_tests_1\n"
gdb_expect {
-re "
! .*addb,n %r1,%r4,.* <addb_tests_1>.*
! .*addb,=,n %r1,%r4,.* <addb_tests_1>.*
! .*addb,<,n %r1,%r4,.* <addb_tests_1>.*
! .*addb,<=,n %r1,%r4,.* <addb_tests_1>.*
! .*addb,nuv,n %r1,%r4,.* <addb_tests_1>.*
! .*addb,znv,n %r1,%r4,.* <addb_tests_1>.*
! .*addb,sv,n %r1,%r4,.* <addb_tests_1>.*
! .*addb,od,n %r1,%r4,.* <addb_tests_1>.*
.*$gdb_prompt $" { pass "addb_nullified_tests_1" }
-re "$gdb_prompt $" { fail "addb_nullified_tests_1" }
timeout { fail "(timeout) addb_nullified_tests_1" }
***************
*** 444,457 ****
send_gdb "x/8i addb_nullified_tests_2\n"
gdb_expect {
-re "
! .*addbf,n r1,r4,.* <addb_tests_2>.*
! .*addbf,=,n r1,r4,.* <addb_tests_2>.*
! .*addbf,<,n r1,r4,.* <addb_tests_2>.*
! .*addbf,<=,n r1,r4,.* <addb_tests_2>.*
! .*addbf,nuv,n r1,r4,.* <addb_tests_2>.*
! .*addbf,znv,n r1,r4,.* <addb_tests_2>.*
! .*addbf,sv,n r1,r4,.* <addb_tests_2>.*
! .*addbf,od,n r1,r4,.* <addb_tests_2>.*
.*$gdb_prompt $" { pass "addb_nullified_tests_2" }
-re "$gdb_prompt $" { fail "addb_nullified_tests_2" }
timeout { fail "(timeout) addb_nullified_tests_2" }
--- 447,460 ----
send_gdb "x/8i addb_nullified_tests_2\n"
gdb_expect {
-re "
! .*addb,tr,n %r1,%r4,.* <addb_tests_2>.*
! .*addb,<>,n %r1,%r4,.* <addb_tests_2>.*
! .*addb,>=,n %r1,%r4,.* <addb_tests_2>.*
! .*addb,>,n %r1,%r4,.* <addb_tests_2>.*
! .*addb,uv,n %r1,%r4,.* <addb_tests_2>.*
! .*addb,vnz,n %r1,%r4,.* <addb_tests_2>.*
! .*addb,nsv,n %r1,%r4,.* <addb_tests_2>.*
! .*addb,ev,n %r1,%r4,.* <addb_tests_2>.*
.*$gdb_prompt $" { pass "addb_nullified_tests_2" }
-re "$gdb_prompt $" { fail "addb_nullified_tests_2" }
timeout { fail "(timeout) addb_nullified_tests_2" }
***************
*** 460,473 ****
send_gdb "x/8i addib_tests_1\n"
gdb_expect {
-re "
! .*addib -1,r4,.* <addib_tests_1>.*
! .*addib,= -1,r4,.* <addib_tests_1>.*
! .*addib,< -1,r4,.* <addib_tests_1>.*
! .*addib,<= -1,r4,.* <addib_tests_1>.*
! .*addib,nuv -1,r4,.* <addib_tests_1>.*
! .*addib,znv -1,r4,.* <addib_tests_1>.*
! .*addib,sv -1,r4,.* <addib_tests_1>.*
! .*addib,od -1,r4,.* <addib_tests_1>.*
.*$gdb_prompt $" { pass "addib_tests_1" }
-re "$gdb_prompt $" { fail "addib_tests_1" }
timeout { fail "(timeout) addib_tests_1" }
--- 463,476 ----
send_gdb "x/8i addib_tests_1\n"
gdb_expect {
-re "
! .*addib -1,%r4,.* <addib_tests_1>.*
! .*addib,= -1,%r4,.* <addib_tests_1>.*
! .*addib,< -1,%r4,.* <addib_tests_1>.*
! .*addib,<= -1,%r4,.* <addib_tests_1>.*
! .*addib,nuv -1,%r4,.* <addib_tests_1>.*
! .*addib,znv -1,%r4,.* <addib_tests_1>.*
! .*addib,sv -1,%r4,.* <addib_tests_1>.*
! .*addib,od -1,%r4,.* <addib_tests_1>.*
.*$gdb_prompt $" { pass "addib_tests_1" }
-re "$gdb_prompt $" { fail "addib_tests_1" }
timeout { fail "(timeout) addib_tests_1" }
***************
*** 476,489 ****
send_gdb "x/8i addib_tests_2\n"
gdb_expect {
-re "
! .*addibf -1,r4,.* <addib_tests_2>.*
! .*addibf,= -1,r4,.* <addib_tests_2>.*
! .*addibf,< -1,r4,.* <addib_tests_2>.*
! .*addibf,<= -1,r4,.* <addib_tests_2>.*
! .*addibf,nuv -1,r4,.* <addib_tests_2>.*
! .*addibf,znv -1,r4,.* <addib_tests_2>.*
! .*addibf,sv -1,r4,.* <addib_tests_2>.*
! .*addibf,od -1,r4,.* <addib_tests_2>.*
.*$gdb_prompt $" { pass "addib_tests_2" }
-re "$gdb_prompt $" { fail "addib_tests_2" }
timeout { fail "(timeout) addib_tests_2" }
--- 479,492 ----
send_gdb "x/8i addib_tests_2\n"
gdb_expect {
-re "
! .*addib,tr -1,%r4,.* <addib_tests_2>.*
! .*addib,<> -1,%r4,.* <addib_tests_2>.*
! .*addib,>= -1,%r4,.* <addib_tests_2>.*
! .*addib,> -1,%r4,.* <addib_tests_2>.*
! .*addib,uv -1,%r4,.* <addib_tests_2>.*
! .*addib,vnz -1,%r4,.* <addib_tests_2>.*
! .*addib,nsv -1,%r4,.* <addib_tests_2>.*
! .*addib,ev -1,%r4,.* <addib_tests_2>.*
.*$gdb_prompt $" { pass "addib_tests_2" }
-re "$gdb_prompt $" { fail "addib_tests_2" }
timeout { fail "(timeout) addib_tests_2" }
***************
*** 492,505 ****
send_gdb "x/8i addib_nullified_tests_1\n"
gdb_expect {
-re "
! .*addib,n -1,r4,.* <addib_tests_1>.*
! .*addib,=,n -1,r4,.* <addib_tests_1>.*
! .*addib,<,n -1,r4,.* <addib_tests_1>.*
! .*addib,<=,n -1,r4,.* <addib_tests_1>.*
! .*addib,nuv,n -1,r4,.* <addib_tests_1>.*
! .*addib,znv,n -1,r4,.* <addib_tests_1>.*
! .*addib,sv,n -1,r4,.* <addib_tests_1>.*
! .*addib,od,n -1,r4,.* <addib_tests_1>.*
.*$gdb_prompt $" { pass "addb_nullified_tests_1" }
-re "$gdb_prompt $" { fail "addb_nullified_tests_1" }
timeout { fail "(timeout) addb_nullified_tests_1" }
--- 495,508 ----
send_gdb "x/8i addib_nullified_tests_1\n"
gdb_expect {
-re "
! .*addib,n -1,%r4,.* <addib_tests_1>.*
! .*addib,=,n -1,%r4,.* <addib_tests_1>.*
! .*addib,<,n -1,%r4,.* <addib_tests_1>.*
! .*addib,<=,n -1,%r4,.* <addib_tests_1>.*
! .*addib,nuv,n -1,%r4,.* <addib_tests_1>.*
! .*addib,znv,n -1,%r4,.* <addib_tests_1>.*
! .*addib,sv,n -1,%r4,.* <addib_tests_1>.*
! .*addib,od,n -1,%r4,.* <addib_tests_1>.*
.*$gdb_prompt $" { pass "addb_nullified_tests_1" }
-re "$gdb_prompt $" { fail "addb_nullified_tests_1" }
timeout { fail "(timeout) addb_nullified_tests_1" }
***************
*** 508,521 ****
send_gdb "x/8i addib_nullified_tests_2\n"
gdb_expect {
-re "
! .*addibf,n -1,r4,.* <addib_tests_2>.*
! .*addibf,=,n -1,r4,.* <addib_tests_2>.*
! .*addibf,<,n -1,r4,.* <addib_tests_2>.*
! .*addibf,<=,n -1,r4,.* <addib_tests_2>.*
! .*addibf,nuv,n -1,r4,.* <addib_tests_2>.*
! .*addibf,znv,n -1,r4,.* <addib_tests_2>.*
! .*addibf,sv,n -1,r4,.* <addib_tests_2>.*
! .*addibf,od,n -1,r4,.* <addib_tests_2>.*
.*$gdb_prompt $" { pass "addb_nullified_tests_2" }
-re "$gdb_prompt $" { fail "addb_nullified_tests_2" }
timeout { fail "(timeout) addb_nullified_tests_2" }
--- 511,524 ----
send_gdb "x/8i addib_nullified_tests_2\n"
gdb_expect {
-re "
! .*addib,tr,n -1,%r4,.* <addib_tests_2>.*
! .*addib,<>,n -1,%r4,.* <addib_tests_2>.*
! .*addib,>=,n -1,%r4,.* <addib_tests_2>.*
! .*addib,>,n -1,%r4,.* <addib_tests_2>.*
! .*addib,uv,n -1,%r4,.* <addib_tests_2>.*
! .*addib,vnz,n -1,%r4,.* <addib_tests_2>.*
! .*addib,nsv,n -1,%r4,.* <addib_tests_2>.*
! .*addib,ev,n -1,%r4,.* <addib_tests_2>.*
.*$gdb_prompt $" { pass "addb_nullified_tests_2" }
-re "$gdb_prompt $" { fail "addb_nullified_tests_2" }
timeout { fail "(timeout) addb_nullified_tests_2" }
***************
*** 524,605 ****
send_gdb "x/8i bb_tests\n"
gdb_expect {
-re "
! .*bvb,< r4,.* <bb_tests>.*
! .*bvb,>= r4,.* <bb_tests>.*
! .*bvb,<,n r4,.* <bb_tests>.*
! .*bvb,>=,n r4,.* <bb_tests>.*
! .*bb,< r4,5,.* <bb_tests>.*
! .*bb,>= r4,5,.* <bb_tests>.*
! .*bb,<,n r4,5,.* <bb_tests>.*
! .*bb,>=,n r4,5,.* <bb_tests>.*
.*$gdb_prompt $" { pass "bb_tests" }
-re "$gdb_prompt $" { fail "bb_tests" }
timeout { fail "(timeout) bb_tests " }
}
}
proc all_integer_computational_tests { } {
global gdb_prompt
global hex
global decimal
! set add_insns [list {add} {addl} {addo} {addc} {addco} \
! {sh1add} {sh1addl} {sh1addo} \
! {sh2add} {sh2addl} {sh2addo} \
! {sh3add} {sh3addl} {sh3addo} ]
! foreach i $add_insns {
! send_gdb "x/16i $i"; send_gdb "_tests\n"
gdb_expect {
-re "
! .*$i r4,r5,r6.*
! .*$i,= r4,r5,r6.*
! .*$i,< r4,r5,r6.*
! .*$i,<= r4,r5,r6.*
! .*$i,nuv r4,r5,r6.*
! .*$i,znv r4,r5,r6.*
! .*$i,sv r4,r5,r6.*
! .*$i,od r4,r5,r6.*
! .*$i,tr r4,r5,r6.*
! .*$i,<> r4,r5,r6.*
! .*$i,>= r4,r5,r6.*
! .*$i,> r4,r5,r6.*
! .*$i,uv r4,r5,r6.*
! .*$i,vnz r4,r5,r6.*
! .*$i,nsv r4,r5,r6.*
! .*$i,ev r4,r5,r6.*
! .*$gdb_prompt $" { pass "$i tests" }
! -re "$gdb_prompt $" { fail "$i tests" }
! timeout { fail "(timeout) $i tests" }
! }
! }
! set sub_insns [list {sub} {subo} {subb} {subbo} {subt} {subto} \
! {ds} {comclr} ]
!
! foreach i $sub_insns {
! send_gdb "x/16i $i"; send_gdb "_tests\n"
gdb_expect {
-re "
! .*$i r4,r5,r6.*
! .*$i,= r4,r5,r6.*
! .*$i,< r4,r5,r6.*
! .*$i,<= r4,r5,r6.*
! .*$i,<< r4,r5,r6.*
! .*$i,<<= r4,r5,r6.*
! .*$i,sv r4,r5,r6.*
! .*$i,od r4,r5,r6.*
! .*$i,tr r4,r5,r6.*
! .*$i,<> r4,r5,r6.*
! .*$i,>= r4,r5,r6.*
! .*$i,> r4,r5,r6.*
! .*$i,>>= r4,r5,r6.*
! .*$i,>> r4,r5,r6.*
! .*$i,nsv r4,r5,r6.*
! .*$i,ev r4,r5,r6.*
! .*$gdb_prompt $" { pass "$i tests" }
! -re "$gdb_prompt $" { fail "$i tests" }
! timeout { fail "(timeout) $i tests" }
}
}
--- 527,649 ----
send_gdb "x/8i bb_tests\n"
gdb_expect {
-re "
! .*bb,< %r4,.* <bb_tests>.*
! .*bb,>= %r4,.* <bb_tests>.*
! .*bb,<,n %r4,.* <bb_tests>.*
! .*bb,>=,n %r4,.* <bb_tests>.*
! .*bb,< %r4,5,.* <bb_tests>.*
! .*bb,>= %r4,5,.* <bb_tests>.*
! .*bb,<,n %r4,5,.* <bb_tests>.*
! .*bb,>=,n %r4,5,.* <bb_tests>.*
.*$gdb_prompt $" { pass "bb_tests" }
-re "$gdb_prompt $" { fail "bb_tests" }
timeout { fail "(timeout) bb_tests " }
}
}
+ # set add_insns [list {add} {addl} {addo} {addc} {addco} \
+ # {sh1add} {sh1addl} {sh1addo} \
+ # {sh2add} {sh2addl} {sh2addo} \
+ # {sh3add} {sh3addl} {sh3addo} ]
+
proc all_integer_computational_tests { } {
global gdb_prompt
global hex
global decimal
! set test_list [list {add add} {addl add,l} {addc add,c} \
! {addco add,tsv,c} ]
! foreach test_args $test_list {
! set instr [lindex $test_args 0]
! set instr_das [lindex $test_args 1]
! send_gdb "x/16i ${instr}_tests\n"
! gdb_expect {
! -re "
! .*$instr_das %r4,%r5,%r6.*
! .*$instr_das,= %r4,%r5,%r6.*
! .*$instr_das,< %r4,%r5,%r6.*
! .*$instr_das,<= %r4,%r5,%r6.*
! .*$instr_das,nuv %r4,%r5,%r6.*
! .*$instr_das,znv %r4,%r5,%r6.*
! .*$instr_das,sv %r4,%r5,%r6.*
! .*$instr_das,od %r4,%r5,%r6.*
! .*$instr_das,tr %r4,%r5,%r6.*
! .*$instr_das,<> %r4,%r5,%r6.*
! .*$instr_das,>= %r4,%r5,%r6.*
! .*$instr_das,> %r4,%r5,%r6.*
! .*$instr_das,uv %r4,%r5,%r6.*
! .*$instr_das,vnz %r4,%r5,%r6.*
! .*$instr_das,nsv %r4,%r5,%r6.*
! .*$instr_das,ev %r4,%r5,%r6.*
! .*$gdb_prompt $" { pass "test_args $instr_das tests" }
! -re "$gdb_prompt $" { fail "test_args $instr $instr_das tests" }
! timeout { fail "(timeout) test_args $instr $instr_das tests" }
! }
! }
! set test_list [list {sh1add shladd 1} {sh1addl shladd,l 1} \
! {sh1addo shladd,tsv 1} {sh2add shladd 2} \
! {sh2addl shladd,l 2} {sh2addo shladd,tsv 2} \
! {sh3add shladd 3} {sh3addl shladd,l 3} \
! {sh3addl shladd,l 3} {sh3addo shladd,tsv 3} ]
! foreach test_args $test_list {
! set instr [lindex $test_args 0]
! set instr_das [lindex $test_args 1]
! set instr_lit [lindex $test_args 2]
! send_gdb "x/16i ${instr}_tests\n"
gdb_expect {
-re "
! .*$instr_das %r4,$instr_lit,%r5,%r6.*
! .*$instr_das,= %r4,$instr_lit,%r5,%r6.*
! .*$instr_das,< %r4,$instr_lit,%r5,%r6.*
! .*$instr_das,<= %r4,$instr_lit,%r5,%r6.*
! .*$instr_das,nuv %r4,$instr_lit,%r5,%r6.*
! .*$instr_das,znv %r4,$instr_lit,%r5,%r6.*
! .*$instr_das,sv %r4,$instr_lit,%r5,%r6.*
! .*$instr_das,od %r4,$instr_lit,%r5,%r6.*
! .*$instr_das,tr %r4,$instr_lit,%r5,%r6.*
! .*$instr_das,<> %r4,$instr_lit,%r5,%r6.*
! .*$instr_das,>= %r4,$instr_lit,%r5,%r6.*
! .*$instr_das,> %r4,$instr_lit,%r5,%r6.*
! .*$instr_das,uv %r4,$instr_lit,%r5,%r6.*
! .*$instr_das,vnz %r4,$instr_lit,%r5,%r6.*
! .*$instr_das,nsv %r4,$instr_lit,%r5,%r6.*
! .*$instr_das,ev %r4,$instr_lit,%r5,%r6.*
! .*$gdb_prompt $" { pass "test_args $instr_das $instr_lit tests" }
! -re "$gdb_prompt $" { fail "test_args $instr $instr_das $instr_lit tests" }
! timeout { fail "(timeout) test_args $instr $instr_das $instr_lit tests" }
! }
! }
!
!
! set test_list [list {sub sub} {subo sub,tsv} {subt sub,tc} \
! {subto sub,tsv,tc} {ds ds} {comclr cmpclr} ]
! foreach test_args $test_list {
! set instr_asm [lindex $test_args 0]
! set instr_das [lindex $test_args 1]
! send_gdb "x/16i ${instr_asm}_tests\n";
gdb_expect {
-re "
! .*$instr_das %r4,%r5,%r6.*
! .*$instr_das,= %r4,%r5,%r6.*
! .*$instr_das,< %r4,%r5,%r6.*
! .*$instr_das,<= %r4,%r5,%r6.*
! .*$instr_das,<< %r4,%r5,%r6.*
! .*$instr_das,<<= %r4,%r5,%r6.*
! .*$instr_das,sv %r4,%r5,%r6.*
! .*$instr_das,od %r4,%r5,%r6.*
! .*$instr_das,tr %r4,%r5,%r6.*
! .*$instr_das,<> %r4,%r5,%r6.*
! .*$instr_das,>= %r4,%r5,%r6.*
! .*$instr_das,> %r4,%r5,%r6.*
! .*$instr_das,>>= %r4,%r5,%r6.*
! .*$instr_das,>> %r4,%r5,%r6.*
! .*$instr_das,nsv %r4,%r5,%r6.*
! .*$instr_das,ev %r4,%r5,%r6.*
! .*$gdb_prompt $" { pass "$instr_asm tests" }
! -re "$gdb_prompt $" { fail "$instr_asm tests" }
! timeout { fail "(timeout) $instr_asm tests" }
}
}
***************
*** 609,745 ****
send_gdb "x/10i $i"; send_gdb "_tests\n"
gdb_expect {
-re "
! .*$i r4,r5,r6.*
! .*$i,= r4,r5,r6.*
! .*$i,< r4,r5,r6.*
! .*$i,<= r4,r5,r6.*
! .*$i,od r4,r5,r6.*
! .*$i,tr r4,r5,r6.*
! .*$i,<> r4,r5,r6.*
! .*$i,>= r4,r5,r6.*
! .*$i,> r4,r5,r6.*
! .*$i,ev r4,r5,r6.*
.*$gdb_prompt $" { pass "$i tests" }
-re "$gdb_prompt $" { fail "$i tests" }
timeout { fail "(timeout) $i tests" }
}
}
! set unit_insns1 [list {uxor} {uaddcm} {uaddcmt} ]
! foreach i $unit_insns1 {
! send_gdb "x/12i $i"; send_gdb "_tests\n"
gdb_expect {
-re "
! .*$i r4,r5,r6.*
! .*$i,sbz r4,r5,r6.*
! .*$i,shz r4,r5,r6.*
! .*$i,sdc r4,r5,r6.*
! .*$i,sbc r4,r5,r6.*
! .*$i,shc r4,r5,r6.*
! .*$i,tr r4,r5,r6.*
! .*$i,nbz r4,r5,r6.*
! .*$i,nhz r4,r5,r6.*
! .*$i,ndc r4,r5,r6.*
! .*$i,nbc r4,r5,r6.*
! .*$i,nhc r4,r5,r6.*
! .*$gdb_prompt $" { pass "$i tests" }
! -re "$gdb_prompt $" { fail "$i tests" }
! timeout { fail "(timeout) $i tests" }
}
}
- set unit_insns2 [list {dcor} {idcor} ]
! foreach i $unit_insns2 {
! send_gdb "x/12i $i"; send_gdb "_tests\n"
gdb_expect {
-re "
! .*$i r4,r5.*
! .*$i,sbz r4,r5.*
! .*$i,shz r4,r5.*
! .*$i,sdc r4,r5.*
! .*$i,sbc r4,r5.*
! .*$i,shc r4,r5.*
! .*$i,tr r4,r5.*
! .*$i,nbz r4,r5.*
! .*$i,nhz r4,r5.*
! .*$i,ndc r4,r5.*
! .*$i,nbc r4,r5.*
! .*$i,nhc r4,r5.*
! .*$gdb_prompt $" { pass "$i tests" }
! -re "$gdb_prompt $" { fail "$i tests" }
! timeout { fail "(timeout) $i tests" }
}
}
- set addi_insns [list {addi} {addio} {addit} {addito} ]
! foreach i $addi_insns {
! send_gdb "x/16i $i"; send_gdb "_tests\n"
gdb_expect {
-re "
! .*$i 7b,r5,r6.*
! .*$i,= 7b,r5,r6.*
! .*$i,< 7b,r5,r6.*
! .*$i,<= 7b,r5,r6.*
! .*$i,nuv 7b,r5,r6.*
! .*$i,znv 7b,r5,r6.*
! .*$i,sv 7b,r5,r6.*
! .*$i,od 7b,r5,r6.*
! .*$i,tr 7b,r5,r6.*
! .*$i,<> 7b,r5,r6.*
! .*$i,>= 7b,r5,r6.*
! .*$i,> 7b,r5,r6.*
! .*$i,uv 7b,r5,r6.*
! .*$i,vnz 7b,r5,r6.*
! .*$i,nsv 7b,r5,r6.*
! .*$i,ev 7b,r5,r6.*
! .*$gdb_prompt $" { pass "$i tests" }
! -re "$gdb_prompt $" { fail "$i tests" }
! timeout { fail "(timeout) $i tests" }
}
}
- set subi_insns [list {subi} {subio} {comiclr} ]
! foreach i $subi_insns {
! send_gdb "x/16i $i"; send_gdb "_tests\n"
gdb_expect {
-re "
! .*$i 7b,r5,r6.*
! .*$i,= 7b,r5,r6.*
! .*$i,< 7b,r5,r6.*
! .*$i,<= 7b,r5,r6.*
! .*$i,<< 7b,r5,r6.*
! .*$i,<<= 7b,r5,r6.*
! .*$i,sv 7b,r5,r6.*
! .*$i,od 7b,r5,r6.*
! .*$i,tr 7b,r5,r6.*
! .*$i,<> 7b,r5,r6.*
! .*$i,>= 7b,r5,r6.*
! .*$i,> 7b,r5,r6.*
! .*$i,>>= 7b,r5,r6.*
! .*$i,>> 7b,r5,r6.*
! .*$i,nsv 7b,r5,r6.*
! .*$i,ev 7b,r5,r6.*
! .*$gdb_prompt $" { pass "$i tests" }
! -re "$gdb_prompt $" { fail "$i tests" }
! timeout { fail "(timeout) $i tests" }
}
}
send_gdb "x/8i vshd_tests\n"
gdb_expect {
-re "
! .*vshd r4,r5,r6.*
! .*vshd,= r4,r5,r6.*
! .*vshd,< r4,r5,r6.*
! .*vshd,od r4,r5,r6.*
! .*vshd,tr r4,r5,r6.*
! .*vshd,<> r4,r5,r6.*
! .*vshd,>= r4,r5,r6.*
! .*vshd,ev r4,r5,r6.*
.*$gdb_prompt $" { pass "vshd tests" }
-re "$gdb_prompt $" { fail "vshd tests" }
timeout { fail "(timeout) "vshd tests" }
--- 653,815 ----
send_gdb "x/10i $i"; send_gdb "_tests\n"
gdb_expect {
-re "
! .*$i %r4,%r5,%r6.*
! .*$i,= %r4,%r5,%r6.*
! .*$i,< %r4,%r5,%r6.*
! .*$i,<= %r4,%r5,%r6.*
! .*$i,od %r4,%r5,%r6.*
! .*$i,tr %r4,%r5,%r6.*
! .*$i,<> %r4,%r5,%r6.*
! .*$i,>= %r4,%r5,%r6.*
! .*$i,> %r4,%r5,%r6.*
! .*$i,ev %r4,%r5,%r6.*
.*$gdb_prompt $" { pass "$i tests" }
-re "$gdb_prompt $" { fail "$i tests" }
timeout { fail "(timeout) $i tests" }
}
}
! send_gdb "x/6i uxor_tests\n"
! gdb_expect {
! -re "
! .*uxor %r4,%r5,%r6.*
! .*uxor,sbz %r4,%r5,%r6.*
! .*uxor,shz %r4,%r5,%r6.*
! .*uxor,tr %r4,%r5,%r6.*
! .*uxor,nbz %r4,%r5,%r6.*
! .*uxor,nhz %r4,%r5,%r6.*
! .*$gdb_prompt $" { pass "uxor tests" }
! -re "$gdb_prompt $" { fail "uxor tests" }
! timeout { fail "(timeout) uxor tests" }
! }
!
! set test_list [list {uaddcm uaddcm} {uaddcmt uaddcm,tc} ]
! foreach test_args $test_list {
! set instr_asm [lindex $test_args 0]
! set instr_das [lindex $test_args 1]
! send_gdb "x/12i ${instr_asm}_tests\n";
gdb_expect {
-re "
! .*$instr_das %r4,%r5,%r6.*
! .*$instr_das,sbz %r4,%r5,%r6.*
! .*$instr_das,shz %r4,%r5,%r6.*
! .*$instr_das,sdc %r4,%r5,%r6.*
! .*$instr_das,sbc %r4,%r5,%r6.*
! .*$instr_das,shc %r4,%r5,%r6.*
! .*$instr_das,tr %r4,%r5,%r6.*
! .*$instr_das,nbz %r4,%r5,%r6.*
! .*$instr_das,nhz %r4,%r5,%r6.*
! .*$instr_das,ndc %r4,%r5,%r6.*
! .*$instr_das,nbc %r4,%r5,%r6.*
! .*$instr_das,nhc %r4,%r5,%r6.*
! .*$gdb_prompt $" { pass "$instr_asm tests" }
! -re "$gdb_prompt $" { fail "$instr_asm tests" }
! timeout { fail "(timeout) $instr_asm tests" }
}
}
! set test_list [list {dcor dcor} {idcor dcor,i} ]
! foreach test_args $test_list {
! set instr_asm [lindex $test_args 0]
! set instr_das [lindex $test_args 1]
!
! send_gdb "x/12i ${instr_asm}_tests\n"
gdb_expect {
-re "
! .*$instr_das %r4,%r5.*
! .*$instr_das,sbz %r4,%r5.*
! .*$instr_das,shz %r4,%r5.*
! .*$instr_das,sdc %r4,%r5.*
! .*$instr_das,sbc %r4,%r5.*
! .*$instr_das,shc %r4,%r5.*
! .*$instr_das,tr %r4,%r5.*
! .*$instr_das,nbz %r4,%r5.*
! .*$instr_das,nhz %r4,%r5.*
! .*$instr_das,ndc %r4,%r5.*
! .*$instr_das,nbc %r4,%r5.*
! .*$instr_das,nhc %r4,%r5.*
! .*$gdb_prompt $" { pass "$instr_asm tests" }
! -re "$gdb_prompt $" { fail "$instr_asm tests" }
! timeout { fail "(timeout) $instr_asm tests" }
}
}
! set test_list [list {addi addi} {addio addi,tsv} {addit addi,tc} \
! {addito addi,tsv,tc} ]
! foreach test_args $test_list {
! set instr_asm [lindex $test_args 0]
! set instr_das [lindex $test_args 1]
!
! send_gdb "x/16i ${instr_asm}_tests\n"
gdb_expect {
-re "
! .*$instr_das 0x7b,%r5,%r6.*
! .*$instr_das,= 0x7b,%r5,%r6.*
! .*$instr_das,< 0x7b,%r5,%r6.*
! .*$instr_das,<= 0x7b,%r5,%r6.*
! .*$instr_das,nuv 0x7b,%r5,%r6.*
! .*$instr_das,znv 0x7b,%r5,%r6.*
! .*$instr_das,sv 0x7b,%r5,%r6.*
! .*$instr_das,od 0x7b,%r5,%r6.*
! .*$instr_das,tr 0x7b,%r5,%r6.*
! .*$instr_das,<> 0x7b,%r5,%r6.*
! .*$instr_das,>= 0x7b,%r5,%r6.*
! .*$instr_das,> 0x7b,%r5,%r6.*
! .*$instr_das,uv 0x7b,%r5,%r6.*
! .*$instr_das,vnz 0x7b,%r5,%r6.*
! .*$instr_das,nsv 0x7b,%r5,%r6.*
! .*$instr_das,ev 0x7b,%r5,%r6.*
! .*$gdb_prompt $" { pass "$instr_asm tests" }
! -re "$gdb_prompt $" { fail "$instr_asm tests" }
! timeout { fail "(timeout) $instr_asm tests" }
}
}
! set test_list [list {subi subi} {subio subio} {comiclr cmpiclr} ]
! foreach test_args $test_list {
! set instr_asm [lindex $test_args 0]
! set instr_das [lindex $test_args 1]
!
! send_gdb "x/16i ${instr_asm}_tests\n"
gdb_expect {
-re "
! .*$instr_das 0x7b,%r5,%r6.*
! .*$instr_das,= 0x7b,%r5,%r6.*
! .*$instr_das,< 0x7b,%r5,%r6.*
! .*$instr_das,<= 0x7b,%r5,%r6.*
! .*$instr_das,<< 0x7b,%r5,%r6.*
! .*$instr_das,<<= 0x7b,%r5,%r6.*
! .*$instr_das,sv 0x7b,%r5,%r6.*
! .*$instr_das,od 0x7b,%r5,%r6.*
! .*$instr_das,tr 0x7b,%r5,%r6.*
! .*$instr_das,<> 0x7b,%r5,%r6.*
! .*$instr_das,>= 0x7b,%r5,%r6.*
! .*$instr_das,> 0x7b,%r5,%r6.*
! .*$instr_das,>>= 0x7b,%r5,%r6.*
! .*$instr_das,>> 0x7b,%r5,%r6.*
! .*$instr_das,nsv 0x7b,%r5,%r6.*
! .*$instr_das,ev 0x7b,%r5,%r6.*
! .*$gdb_prompt $" { pass "$instr_asm tests" }
! -re "$gdb_prompt $" { fail "$instr_asm tests" }
! timeout { fail "(timeout) $instr_asm tests" }
}
}
send_gdb "x/8i vshd_tests\n"
gdb_expect {
-re "
! .*shrpw %r4,%r5,%sar,%r6.*
! .*shrpw,= %r4,%r5,%sar,%r6.*
! .*shrpw,< %r4,%r5,%sar,%r6.*
! .*shrpw,od %r4,%r5,%sar,%r6.*
! .*shrpw,tr %r4,%r5,%sar,%r6.*
! .*shrpw,<> %r4,%r5,%sar,%r6.*
! .*shrpw,>= %r4,%r5,%sar,%r6.*
! .*shrpw,ev %r4,%r5,%sar,%r6.*
.*$gdb_prompt $" { pass "vshd tests" }
-re "$gdb_prompt $" { fail "vshd tests" }
timeout { fail "(timeout) "vshd tests" }
***************
*** 748,843 ****
send_gdb "x/8i shd_tests\n"
gdb_expect {
-re "
! .*shd r4,r5,5,r6.*
! .*shd,= r4,r5,5,r6.*
! .*shd,< r4,r5,5,r6.*
! .*shd,od r4,r5,5,r6.*
! .*shd,tr r4,r5,5,r6.*
! .*shd,<> r4,r5,5,r6.*
! .*shd,>= r4,r5,5,r6.*
! .*shd,ev r4,r5,5,r6.*
.*$gdb_prompt $" { pass "shd tests" }
-re "$gdb_prompt $" { fail "shd tests" }
timeout { fail "(timeout) "shd tests" }
}
- set extract_insns1 [list {extru} {extrs} {zdep} {dep} ]
! foreach i $extract_insns1 {
! send_gdb "x/8i $i"; send_gdb "_tests\n"
gdb_expect {
-re "
! .*$i r4,5,10,r6.*
! .*$i,= r4,5,10,r6.*
! .*$i,< r4,5,10,r6.*
! .*$i,od r4,5,10,r6.*
! .*$i,tr r4,5,10,r6.*
! .*$i,<> r4,5,10,r6.*
! .*$i,>= r4,5,10,r6.*
! .*$i,ev r4,5,10,r6.*
! .*$gdb_prompt $" { pass "$i tests" }
! -re "$gdb_prompt $" { fail "$i tests" }
! timeout { fail "(timeout) $i tests" }
}
}
- set extract_insns2 [list {vextru} {vextrs} {zvdep} {vdep} ]
! foreach i $extract_insns2 {
! send_gdb "x/8i $i"; send_gdb "_tests\n"
gdb_expect {
-re "
! .*$i r4,5,r6.*
! .*$i,= r4,5,r6.*
! .*$i,< r4,5,r6.*
! .*$i,od r4,5,r6.*
! .*$i,tr r4,5,r6.*
! .*$i,<> r4,5,r6.*
! .*$i,>= r4,5,r6.*
! .*$i,ev r4,5,r6.*
! .*$gdb_prompt $" { pass "$i tests" }
! -re "$gdb_prompt $" { fail "$i tests" }
! timeout { fail "(timeout) $i tests" }
}
}
- set extract_insns3 [list {vdepi} {zvdepi} ]
! foreach i $extract_insns3 {
! send_gdb "x/8i $i"; send_gdb "_tests\n"
gdb_expect {
-re "
! .*$i -1,5,r6.*
! .*$i,= -1,5,r6.*
! .*$i,< -1,5,r6.*
! .*$i,od -1,5,r6.*
! .*$i,tr -1,5,r6.*
! .*$i,<> -1,5,r6.*
! .*$i,>= -1,5,r6.*
! .*$i,ev -1,5,r6.*
! .*$gdb_prompt $" { pass "$i tests" }
! -re "$gdb_prompt $" { fail "$i tests" }
! timeout { fail "(timeout) $i tests" }
}
}
- set extract_insns4 [list {depi} {zdepi} ]
! foreach i $extract_insns4 {
! send_gdb "x/8i $i"; send_gdb "_tests\n"
gdb_expect {
-re "
! .*$i -1,4,10,r6.*
! .*$i,= -1,4,10,r6.*
! .*$i,< -1,4,10,r6.*
! .*$i,od -1,4,10,r6.*
! .*$i,tr -1,4,10,r6.*
! .*$i,<> -1,4,10,r6.*
! .*$i,>= -1,4,10,r6.*
! .*$i,ev -1,4,10,r6.*
! .*$gdb_prompt $" { pass "$i tests" }
! -re "$gdb_prompt $" { fail "$i tests" }
! timeout { fail "(timeout) $i tests" }
}
}
}
--- 818,926 ----
send_gdb "x/8i shd_tests\n"
gdb_expect {
-re "
! .*shrpw %r4,%r5,5,%r6.*
! .*shrpw,= %r4,%r5,5,%r6.*
! .*shrpw,< %r4,%r5,5,%r6.*
! .*shrpw,od %r4,%r5,5,%r6.*
! .*shrpw,tr %r4,%r5,5,%r6.*
! .*shrpw,<> %r4,%r5,5,%r6.*
! .*shrpw,>= %r4,%r5,5,%r6.*
! .*shrpw,ev %r4,%r5,5,%r6.*
.*$gdb_prompt $" { pass "shd tests" }
-re "$gdb_prompt $" { fail "shd tests" }
timeout { fail "(timeout) "shd tests" }
}
! set test_list [list {extru extrw,u} {extrs extrw,s} {zdep depw,z} \
! {dep depw} ]
! foreach test_args $test_list {
! set instr_asm [lindex $test_args 0]
! set instr_das [lindex $test_args 1]
! send_gdb "x/8i ${instr_asm}_tests\n"
gdb_expect {
-re "
! .*$instr_das %r4,1,2,%r6.*
! .*$instr_das,= %r4,1,2,%r6.*
! .*$instr_das,< %r4,1,2,%r6.*
! .*$instr_das,od %r4,1,2,%r6.*
! .*$instr_das,tr %r4,1,2,%r6.*
! .*$instr_das,<> %r4,1,2,%r6.*
! .*$instr_das,>= %r4,1,2,%r6.*
! .*$instr_das,ev %r4,1,2,%r6.*
! .*$gdb_prompt $" { pass "$instr_asm tests" }
! -re "$gdb_prompt $" { fail "$instr_asm tests" }
! timeout { fail "(timeout) $instr_asm tests" }
}
}
! set test_list [list {vextru extrw,u} {vextrs extrw,s} {zvdep depw,z} \
! {vdep depw} ]
! foreach test_args $test_list {
! set instr_asm [lindex $test_args 0]
! set instr_das [lindex $test_args 1]
!
! send_gdb "x/8i ${instr_asm}_tests\n"
gdb_expect {
-re "
! .*$instr_das %r4,%sar,5,%r6.*
! .*$instr_das,= %r4,%sar,5,%r6.*
! .*$instr_das,< %r4,%sar,5,%r6.*
! .*$instr_das,od %r4,%sar,5,%r6.*
! .*$instr_das,tr %r4,%sar,5,%r6.*
! .*$instr_das,<> %r4,%sar,5,%r6.*
! .*$instr_das,>= %r4,%sar,5,%r6.*
! .*$instr_das,ev %r4,%sar,5,%r6.*
! .*$gdb_prompt $" { pass "$instr_asm tests" }
! -re "$gdb_prompt $" { fail "$instr_asm tests" }
! timeout { fail "(timeout) $instr_asm tests" }
}
}
! set test_list [list {vdepi depwi} {zvdepi depwi,z} ]
! foreach test_args $test_list {
! set instr_asm [lindex $test_args 0]
! set instr_das [lindex $test_args 1]
!
! send_gdb "x/8i ${instr_asm}_tests\n"
gdb_expect {
-re "
! .*$instr_das -1,%sar,5,%r6.*
! .*$instr_das,= -1,%sar,5,%r6.*
! .*$instr_das,< -1,%sar,5,%r6.*
! .*$instr_das,od -1,%sar,5,%r6.*
! .*$instr_das,tr -1,%sar,5,%r6.*
! .*$instr_das,<> -1,%sar,5,%r6.*
! .*$instr_das,>= -1,%sar,5,%r6.*
! .*$instr_das,ev -1,%sar,5,%r6.*
! .*$gdb_prompt $" { pass "$instr_asm tests" }
! -re "$gdb_prompt $" { fail "$instr_asm tests" }
! timeout { fail "(timeout) $instr_asm tests" }
}
}
! set test_list [list {depi depwi} {zdepi depwi,z} ]
! foreach test_args $test_list {
! set instr_asm [lindex $test_args 0]
! set instr_das [lindex $test_args 1]
!
! send_gdb "x/8i ${instr_asm}_tests\n"
gdb_expect {
-re "
! .*$instr_das -1,4,5,%r6.*
! .*$instr_das,= -1,4,5,%r6.*
! .*$instr_das,< -1,4,5,%r6.*
! .*$instr_das,od -1,4,5,%r6.*
! .*$instr_das,tr -1,4,5,%r6.*
! .*$instr_das,<> -1,4,5,%r6.*
! .*$instr_das,>= -1,4,5,%r6.*
! .*$instr_das,ev -1,4,5,%r6.*
! .*$gdb_prompt $" { pass "$instr_asm tests" }
! -re "$gdb_prompt $" { fail "$instr_asm tests" }
! timeout { fail "(timeout) $instr_asm tests" }
}
}
}
***************
*** 850,870 ****
send_gdb "x/14i system_control_tests\n"
gdb_expect {
-re "
! .*break 5,c.*
! .*rfi.*
! .*rfir.*
! .*ssm 5,r4.*
! .*rsm 5,r4.*
! .*mtsm r4.*
! .*ldsid \\(sr0,r5\\),r4.*
! .*mtsp r4,sr0.*
! .*mtctl r4,ccr.*
! .*mfsp sr0,r4.*
! .*mfctl ccr,r4.*
! .*sync.*
! .*syncdma.*
! .*diag 4d2.*
! .*$gdb_prompt $" { pass "system_constrol_tests" }
-re "$gdb_prompt $" { fail "system_control_tests" }
timeout { file "(timeout) system_control_tests" }
}
--- 933,940 ----
send_gdb "x/14i system_control_tests\n"
gdb_expect {
-re "
! .*break 5,0xc\r\n.*rfi\r\n.*rfi,r\r\n.*ssm 5,%r4\r\n.*rsm 5,%r4\r\n.*mtsm %r4\r\n.*ldsid \\(%sr0,%r5\\),%r4\r\n.*mtsp %r4,%sr0\r\n.*mtctl %r4,%ccr\r\n.*mfsp %sr0,%r4\r\n.*mfctl %ccr,%r4\r\n.*sync\r\n.*syncdma\r\n.*diag 0x4d2\r\n$gdb_prompt $" \
! { pass "system_constrol_tests" }
-re "$gdb_prompt $" { fail "system_control_tests" }
timeout { file "(timeout) system_control_tests" }
}
***************
*** 872,895 ****
send_gdb "x/4i probe_tests\n"
gdb_expect {
-re "
! .*prober \\(sr0,r5\\),r6,r7.*
! .*proberi \\(sr0,r5\\),1,r7.*
! .*probew \\(sr0,r5\\),r6,r7.*
! .*probewi \\(sr0,r5\\),1,r7.*
.*$gdb_prompt $" { pass "probe_tests" }
-re "$gdb_prompt $" { fail "probe_tests" }
timeout { file "(timeout) probe_tests" }
}
! # lci uses the same bit pattern as lha, so accept lha.
! send_gdb "x/5i lpa_tests\n"
gdb_expect {
-re "
! .*lpa r4\\(sr0,r5\\),r6.*
! .*lpa,m r4\\(sr0,r5\\),r6.*
! .*lha r4\\(sr0,r5\\),r6.*
! .*lha,m r4\\(sr0,r5\\),r6.*
! .*lha r4\\(sr0,r5\\),r6.*
.*$gdb_prompt $" { pass "lpa_tests" }
-re "$gdb_prompt $" { fail "lpa_tests" }
timeout { file "(timeout) lpa_tests" }
--- 942,962 ----
send_gdb "x/4i probe_tests\n"
gdb_expect {
-re "
! .*probe,r \\(%sr0,%r5\\),%r6,%r7.*
! .*probei,r \\(%sr0,%r5\\),1,%r7.*
! .*probe,w \\(%sr0,%r5\\),%r6,%r7.*
! .*probei,w \\(%sr0,%r5\\),1,%r7.*
.*$gdb_prompt $" { pass "probe_tests" }
-re "$gdb_prompt $" { fail "probe_tests" }
timeout { file "(timeout) probe_tests" }
}
! send_gdb "x/3i lpa_tests\n"
gdb_expect {
-re "
! .*lpa %r4\\(%sr0,%r5\\),%r6.*
! .*lpa,m %r4\\(%sr0,%r5\\),%r6.*
! .*lci %r4\\(%sr0,%r5\\),%r6.*
.*$gdb_prompt $" { pass "lpa_tests" }
-re "$gdb_prompt $" { fail "lpa_tests" }
timeout { file "(timeout) lpa_tests" }
***************
*** 898,921 ****
send_gdb "x/18i purge_tests\n"
gdb_expect {
-re "
! .*pdtlb r4\\(sr0,r5\\).*
! .*pdtlb,m r4\\(sr0,r5\\).*
! .*pitlb r4\\(sr0,r5\\).*
! .*pitlb,m r4\\(sr0,r5\\).*
! .*pdtlbe r4\\(sr0,r5\\).*
! .*pdtlbe,m r4\\(sr0,r5\\).*
! .*pitlbe r4\\(sr0,r5\\).*
! .*pitlbe,m r4\\(sr0,r5\\).*
! .*pdc r4\\(sr0,r5\\).*
! .*pdc,m r4\\(sr0,r5\\).*
! .*fdc r4\\(sr0,r5\\).*
! .*fdc,m r4\\(sr0,r5\\).*
! .*fic r4\\(sr0,r5\\).*
! .*fic,m r4\\(sr0,r5\\).*
! .*fdce r4\\(sr0,r5\\).*
! .*fdce,m r4\\(sr0,r5\\).*
! .*fice r4\\(sr0,r5\\).*
! .*fice,m r4\\(sr0,r5\\).*
.*$gdb_prompt $" { pass "purge_tests" }
-re "$gdb_prompt $" { fail "purge_tests" }
timeout { file "(timeout) purge_tests" }
--- 965,988 ----
send_gdb "x/18i purge_tests\n"
gdb_expect {
-re "
! .*pdtlb %r4\\(%sr0,%r5\\).*
! .*pdtlb,m %r4\\(%sr0,%r5\\).*
! .*pitlb %r4\\(%sr0,%r5\\).*
! .*pitlb,m %r4\\(%sr0,%r5\\).*
! .*pdtlbe %r4\\(%sr0,%r5\\).*
! .*pdtlbe,m %r4\\(%sr0,%r5\\).*
! .*pitlbe %r4\\(%sr0,%r5\\).*
! .*pitlbe,m %r4\\(%sr0,%r5\\).*
! .*pdc %r4\\(%sr0,%r5\\).*
! .*pdc,m %r4\\(%sr0,%r5\\).*
! .*fdc %r4\\(%sr0,%r5\\).*
! .*fdc,m %r4\\(%sr0,%r5\\).*
! .*fic %r4\\(%sr0,%r5\\).*
! .*fic,m %r4\\(%sr0,%r5\\).*
! .*fdce %r4\\(%sr0,%r5\\).*
! .*fdce,m %r4\\(%sr0,%r5\\).*
! .*fice %r4\\(%sr0,%r5\\).*
! .*fice,m %r4\\(%sr0,%r5\\).*
.*$gdb_prompt $" { pass "purge_tests" }
-re "$gdb_prompt $" { fail "purge_tests" }
timeout { file "(timeout) purge_tests" }
***************
*** 924,933 ****
send_gdb "x/4i insert_tests\n"
gdb_expect {
-re "
! .*idtlba r4,\\(sr0,r5\\).*
! .*iitlba r4,\\(sr0,r5\\).*
! .*idtlbp r4,\\(sr0,r5\\).*
! .*iitlbp r4,\\(sr0,r5\\).*
.*$gdb_prompt $" { pass "insert_tests" }
-re "$gdb_prompt $" { fail "insert_tests" }
timeout { file "(timeout) insert_tests" }
--- 991,1000 ----
send_gdb "x/4i insert_tests\n"
gdb_expect {
-re "
! .*idtlba %r4,\\(%sr0,%r5\\).*
! .*iitlba %r4,\\(%sr0,%r5\\).*
! .*idtlbp %r4,\\(%sr0,%r5\\).*
! .*iitlbp %r4,\\(%sr0,%r5\\).*
.*$gdb_prompt $" { pass "insert_tests" }
-re "$gdb_prompt $" { fail "insert_tests" }
timeout { file "(timeout) insert_tests" }
***************
*** 943,968 ****
send_gdb "x/20i fpu_memory_indexing_tests\n"
gdb_expect {
-re "
! .*fldwx r4\\(sr0,r5\\),fr6.*
! .*fldwx,s r4\\(sr0,r5\\),fr6.*
! .*fldwx,m r4\\(sr0,r5\\),fr6.*
! .*fldwx,sm r4\\(sr0,r5\\),fr6.*
! .*flddx r4\\(sr0,r5\\),fr6.*
! .*flddx,s r4\\(sr0,r5\\),fr6.*
! .*flddx,m r4\\(sr0,r5\\),fr6.*
! .*flddx,sm r4\\(sr0,r5\\),fr6.*
! .*fstwx fr6,r4\\(sr0,r5\\).*
! .*fstwx,s fr6,r4\\(sr0,r5\\).*
! .*fstwx,m fr6,r4\\(sr0,r5\\).*
! .*fstwx,sm fr6,r4\\(sr0,r5\\).*
! .*fstdx fr6,r4\\(sr0,r5\\).*
! .*fstdx,s fr6,r4\\(sr0,r5\\).*
! .*fstdx,m fr6,r4\\(sr0,r5\\).*
! .*fstdx,sm fr6,r4\\(sr0,r5\\).*
! .*fstqx fr6,r4\\(sr0,r5\\).*
! .*fstqx,s fr6,r4\\(sr0,r5\\).*
! .*fstqx,m fr6,r4\\(sr0,r5\\).*
! .*fstqx,sm fr6,r4\\(sr0,r5\\).*
.*$gdb_prompt $" { pass "fpu_memory_indexing_tests" }
-re "$gdb_prompt $" { fail "fpu_memory_indexing_tests" }
timeout { file "(timeout) fpu_memory_indexing_tests" }
--- 1010,1035 ----
send_gdb "x/20i fpu_memory_indexing_tests\n"
gdb_expect {
-re "
! .*fldw %r4\\(%sr0,%r5\\),%fr6.*
! .*fldw,s %r4\\(%sr0,%r5\\),%fr6.*
! .*fldw,m %r4\\(%sr0,%r5\\),%fr6.*
! .*fldw,sm %r4\\(%sr0,%r5\\),%fr6.*
! .*fldd %r4\\(%sr0,%r5\\),%fr6.*
! .*fldd,s %r4\\(%sr0,%r5\\),%fr6.*
! .*fldd,m %r4\\(%sr0,%r5\\),%fr6.*
! .*fldd,sm %r4\\(%sr0,%r5\\),%fr6.*
! .*fstw %fr6,%r4\\(%sr0,%r5\\).*
! .*fstw,s %fr6,%r4\\(%sr0,%r5\\).*
! .*fstw,m %fr6,%r4\\(%sr0,%r5\\).*
! .*fstw,sm %fr6,%r4\\(%sr0,%r5\\).*
! .*fstd %fr6,%r4\\(%sr0,%r5\\).*
! .*fstd,s %fr6,%r4\\(%sr0,%r5\\).*
! .*fstd,m %fr6,%r4\\(%sr0,%r5\\).*
! .*fstd,sm %fr6,%r4\\(%sr0,%r5\\).*
! .*fstqs %fr6,%r4\\(%sr0,%r5\\).*
! .*fstqs,s %fr6,%r4\\(%sr0,%r5\\).*
! .*fstqs,m %fr6,%r4\\(%sr0,%r5\\).*
! .*fstqs,sm %fr6,%r4\\(%sr0,%r5\\).*
.*$gdb_prompt $" { pass "fpu_memory_indexing_tests" }
-re "$gdb_prompt $" { fail "fpu_memory_indexing_tests" }
timeout { file "(timeout) fpu_memory_indexing_tests" }
***************
*** 971,991 ****
send_gdb "x/15i fpu_short_memory_tests\n"
gdb_expect {
-re "
! .*fldws 0\\(sr0,r5\\),fr6.*
! .*fldws,mb 0\\(sr0,r5\\),fr6.*
! .*fldws,ma 0\\(sr0,r5\\),fr6.*
! .*fldds 0\\(sr0,r5\\),fr6.*
! .*fldds,mb 0\\(sr0,r5\\),fr6.*
! .*fldds,ma 0\\(sr0,r5\\),fr6.*
! .*fstws fr6,0\\(sr0,r5\\).*
! .*fstws,mb fr6,0\\(sr0,r5\\).*
! .*fstws,ma fr6,0\\(sr0,r5\\).*
! .*fstds fr6,0\\(sr0,r5\\).*
! .*fstds,mb fr6,0\\(sr0,r5\\).*
! .*fstds,ma fr6,0\\(sr0,r5\\).*
! .*fstqs fr6,0\\(sr0,r5\\).*
! .*fstqs,mb fr6,0\\(sr0,r5\\).*
! .*fstqs,ma fr6,0\\(sr0,r5\\).*
.*$gdb_prompt $" { pass "fpu_short_memory_tests" }
-re "$gdb_prompt $" { fail "fpu_short_memory_tests" }
timeout { file "(timeout) fpu_short_memory_tests" }
--- 1038,1058 ----
send_gdb "x/15i fpu_short_memory_tests\n"
gdb_expect {
-re "
! .*fldw 0\\(%sr0,%r5\\),%fr6.*
! .*fldw,mb 0\\(%sr0,%r5\\),%fr6.*
! .*fldw 0\\(%sr0,%r5\\),%fr6.*
! .*fldd 0\\(%sr0,%r5\\),%fr6.*
! .*fldd,mb 0\\(%sr0,%r5\\),%fr6.*
! .*fldd 0\\(%sr0,%r5\\),%fr6.*
! .*fstw %fr6,0\\(%sr0,%r5\\).*
! .*fstw,mb %fr6,0\\(%sr0,%r5\\).*
! .*fstw %fr6,0\\(%sr0,%r5\\).*
! .*fstd %fr6,0\\(%sr0,%r5\\).*
! .*fstd,mb %fr6,0\\(%sr0,%r5\\).*
! .*fstd %fr6,0\\(%sr0,%r5\\).*
! .*fstqs %fr6,0\\(%sr0,%r5\\).*
! .*fstqs,mb %fr6,0\\(%sr0,%r5\\).*
! .*fstqs %fr6,0\\(%sr0,%r5\\).*
.*$gdb_prompt $" { pass "fpu_short_memory_tests" }
-re "$gdb_prompt $" { fail "fpu_short_memory_tests" }
timeout { file "(timeout) fpu_short_memory_tests" }
***************
*** 1013,1071 ****
send_gdb "x/5i $i"; send_gdb "_tests\n"
gdb_expect {
-re "
! .*$i,sgl fr5,fr10.*
! .*$i,dbl fr5,fr10.*
! .*$i,quad fr5,fr10.*
! .*$i,sgl fr20,fr24.*
! .*$i,dbl fr20,fr24.*
.*$gdb_prompt $" { pass "$i tests" }
-re "$gdb_prompt $" { fail "$i tests" }
timeout { fail "(timeout) $i tests" }
}
}
- set fpu_conversions [list {fcnvff} {fcnvxf} {fcnvfx} {fcnvfxt} ]
! foreach i $fpu_conversions {
! send_gdb "x/18i $i"; send_gdb "_tests\n"
gdb_expect {
-re "
! .*$i,sgl,sgl fr5,fr10.*
! .*$i,sgl,dbl fr5,fr10.*
! .*$i,sgl,quad fr5,fr10.*
! .*$i,dbl,sgl fr5,fr10.*
! .*$i,dbl,dbl fr5,fr10.*
! .*$i,dbl,quad fr5,fr10.*
! .*$i,quad,sgl fr5,fr10.*
! .*$i,quad,dbl fr5,fr10.*
! .*$i,quad,quad fr5,fr10.*
! .*$i,sgl,sgl fr20,fr24.*
! .*$i,sgl,dbl fr20,fr24.*
! .*$i,sgl,quad fr20,fr24.*
! .*$i,dbl,sgl fr20,fr24.*
! .*$i,dbl,dbl fr20,fr24.*
! .*$i,dbl,quad fr20,fr24.*
! .*$i,quad,sgl fr20,fr24.*
! .*$i,quad,dbl fr20,fr24.*
! .*$i,quad,quad fr20,fr24.*
! .*$gdb_prompt $" { pass "$i tests" }
! -re "$gdb_prompt $" { fail "$i tests" }
! timeout { fail "(timeout) $i tests" }
}
}
set fpu_three_op_insns [list {fadd} {fsub} {fmpy} {fdiv} {frem} ]
foreach i $fpu_three_op_insns {
send_gdb "x/6i $i"; send_gdb "_tests\n"
gdb_expect {
-re "
! .*$i,sgl fr4,fr8,fr12.*
! .*$i,dbl fr4,fr8,fr12.*
! .*$i,quad fr4,fr8,fr12.*
! .*$i,sgl fr20,fr24,fr28.*
! .*$i,dbl fr20,fr24,fr28.*
! .*$i,quad fr20,fr24,fr28.*
.*$gdb_prompt $" { pass "$i tests" }
-re "$gdb_prompt $" { fail "$i tests" }
timeout { fail "(timeout) $i tests" }
--- 1080,1208 ----
send_gdb "x/5i $i"; send_gdb "_tests\n"
gdb_expect {
-re "
! .*$i,sgl %fr5,%fr10.*
! .*$i,dbl %fr5,%fr10.*
! .*$i,quad %fr5,%fr10.*
! .*$i,sgl %fr20,%fr24.*
! .*$i,dbl %fr20,%fr24.*
.*$gdb_prompt $" { pass "$i tests" }
-re "$gdb_prompt $" { fail "$i tests" }
timeout { fail "(timeout) $i tests" }
}
}
! set test_list [list {fcnvff fcnv} ]
! foreach test_args $test_list {
! set instr_asm [lindex $test_args 0]
! set instr_das [lindex $test_args 1]
!
! send_gdb "x/18i ${instr_asm}_tests\n"
gdb_expect {
-re "
! .*$instr_das,sgl,sgl %fr5,%fr10.*
! .*$instr_das,sgl,dbl %fr5,%fr10.*
! .*$instr_das,sgl,quad %fr5,%fr10.*
! .*$instr_das,dbl,sgl %fr5,%fr10.*
! .*$instr_das,dbl,dbl %fr5,%fr10.*
! .*$instr_das,dbl,quad %fr5,%fr10.*
! .*$instr_das,quad,sgl %fr5,%fr10.*
! .*$instr_das,quad,dbl %fr5,%fr10.*
! .*$instr_das,quad,quad %fr5,%fr10.*
! .*$instr_das,sgl,sgl %fr20,%fr24.*
! .*$instr_das,sgl,dbl %fr20,%fr24.*
! .*$instr_das,sgl,quad %fr20,%fr24.*
! .*$instr_das,dbl,sgl %fr20,%fr24.*
! .*$instr_das,dbl,dbl %fr20,%fr24.*
! .*$instr_das,dbl,quad %fr20,%fr24.*
! .*$instr_das,quad,sgl %fr20,%fr24.*
! .*$instr_das,quad,dbl %fr20,%fr24.*
! .*$instr_das,quad,quad %fr20,%fr24.*
! .*$gdb_prompt $" { pass "$instr_asm tests" }
! -re "$gdb_prompt $" { fail "$instr_asm tests" }
! timeout { fail "(timeout) $instr_asm tests" }
! }
! }
!
!
! set test_list [list {fcnvxf fcnv} ]
! foreach test_args $test_list {
! set instr_asm [lindex $test_args 0]
! set instr_das [lindex $test_args 1]
!
! send_gdb "x/18i ${instr_asm}_tests\n"
! gdb_expect {
! -re "
! .*$instr_das,w,sgl %fr5,%fr10.*
! .*$instr_das,w,dbl %fr5,%fr10.*
! .*$instr_das,w,quad %fr5,%fr10.*
! .*$instr_das,dw,sgl %fr5,%fr10.*
! .*$instr_das,dw,dbl %fr5,%fr10.*
! .*$instr_das,dw,quad %fr5,%fr10.*
! .*$instr_das,qw,sgl %fr5,%fr10.*
! .*$instr_das,qw,dbl %fr5,%fr10.*
! .*$instr_das,qw,quad %fr5,%fr10.*
! .*$instr_das,w,sgl %fr20,%fr24.*
! .*$instr_das,w,dbl %fr20,%fr24.*
! .*$instr_das,w,quad %fr20,%fr24.*
! .*$instr_das,dw,sgl %fr20,%fr24.*
! .*$instr_das,dw,dbl %fr20,%fr24.*
! .*$instr_das,dw,quad %fr20,%fr24.*
! .*$instr_das,qw,sgl %fr20,%fr24.*
! .*$instr_das,qw,dbl %fr20,%fr24.*
! .*$instr_das,qw,quad %fr20,%fr24.*
! .*$gdb_prompt $" { pass "$instr_asm tests" }
! -re "$gdb_prompt $" { fail "$instr_asm tests" }
! timeout { fail "(timeout) $instr_asm tests" }
}
}
+
+ set test_list [list {fcnvfx fcnv} {fcnvfxt fcnv,t} ]
+ foreach test_args $test_list {
+ set instr_asm [lindex $test_args 0]
+ set instr_das [lindex $test_args 1]
+
+ send_gdb "x/18i ${instr_asm}_tests\n"
+ gdb_expect {
+ -re "
+ .*$instr_das,sgl,w %fr5,%fr10.*
+ .*$instr_das,sgl,dw %fr5,%fr10.*
+ .*$instr_das,sgl,qw %fr5,%fr10.*
+ .*$instr_das,dbl,w %fr5,%fr10.*
+ .*$instr_das,dbl,dw %fr5,%fr10.*
+ .*$instr_das,dbl,qw %fr5,%fr10.*
+ .*$instr_das,quad,w %fr5,%fr10.*
+ .*$instr_das,quad,dw %fr5,%fr10.*
+ .*$instr_das,quad,qw %fr5,%fr10.*
+ .*$instr_das,sgl,w %fr20,%fr24.*
+ .*$instr_das,sgl,dw %fr20,%fr24.*
+ .*$instr_das,sgl,qw %fr20,%fr24.*
+ .*$instr_das,dbl,w %fr20,%fr24.*
+ .*$instr_das,dbl,dw %fr20,%fr24.*
+ .*$instr_das,dbl,qw %fr20,%fr24.*
+ .*$instr_das,quad,w %fr20,%fr24.*
+ .*$instr_das,quad,dw %fr20,%fr24.*
+ .*$instr_das,quad,qw %fr20,%fr24.*
+ .*$gdb_prompt $" { pass "$instr_asm tests" }
+ -re "$gdb_prompt $" { fail "$instr_asm tests" }
+ timeout { fail "(timeout) $instr_asm tests" }
+ }
+ }
+
+
set fpu_three_op_insns [list {fadd} {fsub} {fmpy} {fdiv} {frem} ]
foreach i $fpu_three_op_insns {
send_gdb "x/6i $i"; send_gdb "_tests\n"
gdb_expect {
-re "
! .*$i,sgl %fr4,%fr8,%fr12.*
! .*$i,dbl %fr4,%fr8,%fr12.*
! .*$i,quad %fr4,%fr8,%fr12.*
! .*$i,sgl %fr20,%fr24,%fr28.*
! .*$i,dbl %fr20,%fr24,%fr28.*
! .*$i,quad %fr20,%fr24,%fr28.*
.*$gdb_prompt $" { pass "$i tests" }
-re "$gdb_prompt $" { fail "$i tests" }
timeout { fail "(timeout) $i tests" }
***************
*** 1075,1084 ****
send_gdb "x/4i fmpy_addsub_tests\n"
gdb_expect {
-re "
! .*fmpyadd,sgl fr16,fr17,fr18,fr19,fr20.*
! .*fmpyadd,dbl fr16,fr17,fr18,fr19,fr20.*
! .*fmpysub,sgl fr16,fr17,fr18,fr19,fr20.*
! .*fmpysub,dbl fr16,fr17,fr18,fr19,fr20.*
.*$gdb_prompt $" { pass "fmpy_addsub_tests" }
-re "$gdb_prompt $" { fail "fmpy_addsub_tests" }
timeout { fail "(timeout) fmpy_addsub_tests" }
--- 1212,1221 ----
send_gdb "x/4i fmpy_addsub_tests\n"
gdb_expect {
-re "
! .*fmpyadd,sgl %fr16,%fr17,%fr18,%fr19,%fr20.*
! .*fmpyadd,dbl %fr16,%fr17,%fr18,%fr19,%fr20.*
! .*fmpysub,sgl %fr16,%fr17,%fr18,%fr19,%fr20.*
! .*fmpysub,dbl %fr16,%fr17,%fr18,%fr19,%fr20.*
.*$gdb_prompt $" { pass "fmpy_addsub_tests" }
-re "$gdb_prompt $" { fail "fmpy_addsub_tests" }
timeout { fail "(timeout) fmpy_addsub_tests" }
***************
*** 1087,1093 ****
send_gdb "x/i xmpyu_tests\n"
gdb_expect {
-re "
! .*xmpyu fr4,fr5,fr6.*
.*$gdb_prompt $" {pass "xmpyu_tests" }
-re "$gdb_prompt $" {fail "xmpyu_tests" }
timeout { fail "(timeout) xmpyu_tests" }
--- 1224,1230 ----
send_gdb "x/i xmpyu_tests\n"
gdb_expect {
-re "
! .*xmpyu %fr4,%fr5,%fr6.*
.*$gdb_prompt $" {pass "xmpyu_tests" }
-re "$gdb_prompt $" {fail "xmpyu_tests" }
timeout { fail "(timeout) xmpyu_tests" }
***************
*** 1106,1119 ****
send_gdb "x/8i fcmp_$i"; send_gdb "_tests_1\n"
gdb_expect {
-re "
! .*fcmp,$i,false\\? fr4,fr5.*
! .*fcmp,$i,false fr4,fr5.*
! .*fcmp,$i,\\? fr4,fr5.*
! .*fcmp,$i,!<=> fr4,fr5.*
! .*fcmp,$i,= fr4,fr5.*
! .*fcmp,$i,=t fr4,fr5.*
! .*fcmp,$i,\\?= fr4,fr5.*
! .*fcmp,$i,!<> fr4,fr5.*
.*$gdb_prompt $" { pass "$i tests (part1) " }
-re "$gdb_prompt $" { fail "fcmp_$i tests (part1) " }
timeout { fail "(timeout) fcmp_$i tests (part1) " }
--- 1243,1256 ----
send_gdb "x/8i fcmp_$i"; send_gdb "_tests_1\n"
gdb_expect {
-re "
! .*fcmp,$i,false\\? %fr4,%fr5.*
! .*fcmp,$i,false %fr4,%fr5.*
! .*fcmp,$i,\\? %fr4,%fr5.*
! .*fcmp,$i,!<=> %fr4,%fr5.*
! .*fcmp,$i,= %fr4,%fr5.*
! .*fcmp,$i,=t %fr4,%fr5.*
! .*fcmp,$i,\\?= %fr4,%fr5.*
! .*fcmp,$i,!<> %fr4,%fr5.*
.*$gdb_prompt $" { pass "$i tests (part1) " }
-re "$gdb_prompt $" { fail "fcmp_$i tests (part1) " }
timeout { fail "(timeout) fcmp_$i tests (part1) " }
***************
*** 1122,1135 ****
send_gdb "x/8i fcmp_$i"; send_gdb "_tests_2\n"
gdb_expect {
-re "
! .*fcmp,$i,!\\?>= fr4,fr5.*
! .*fcmp,$i,< fr4,fr5.*
! .*fcmp,$i,\\?< fr4,fr5.*
! .*fcmp,$i,!>= fr4,fr5.*
! .*fcmp,$i,!\\?> fr4,fr5.*
! .*fcmp,$i,<= fr4,fr5.*
! .*fcmp,$i,\\?<= fr4,fr5.*
! .*fcmp,$i,!> fr4,fr5.*
.*$gdb_prompt $" { pass "$i tests (part2) " }
-re "$gdb_prompt $" { fail "fcmp_$i tests (part2) " }
timeout { fail "(timeout) fcmp_$i tests (part2) " }
--- 1259,1272 ----
send_gdb "x/8i fcmp_$i"; send_gdb "_tests_2\n"
gdb_expect {
-re "
! .*fcmp,$i,!\\?>= %fr4,%fr5.*
! .*fcmp,$i,< %fr4,%fr5.*
! .*fcmp,$i,\\?< %fr4,%fr5.*
! .*fcmp,$i,!>= %fr4,%fr5.*
! .*fcmp,$i,!\\?> %fr4,%fr5.*
! .*fcmp,$i,<= %fr4,%fr5.*
! .*fcmp,$i,\\?<= %fr4,%fr5.*
! .*fcmp,$i,!> %fr4,%fr5.*
.*$gdb_prompt $" { pass "$i tests (part2) " }
-re "$gdb_prompt $" { fail "fcmp_$i tests (part2) " }
timeout { fail "(timeout) fcmp_$i tests (part2) " }
***************
*** 1138,1151 ****
send_gdb "x/8i fcmp_$i"; send_gdb "_tests_3\n"
gdb_expect {
-re "
! .*fcmp,$i,!\\?<= fr4,fr5.*
! .*fcmp,$i,> fr4,fr5.*
! .*fcmp,$i,\\?> fr4,fr5.*
! .*fcmp,$i,!<= fr4,fr5.*
! .*fcmp,$i,!\\?< fr4,fr5.*
! .*fcmp,$i,>= fr4,fr5.*
! .*fcmp,$i,\\?>= fr4,fr5.*
! .*fcmp,$i,!< fr4,fr5.*
.*$gdb_prompt $" { pass "$i tests (part3) " }
-re "$gdb_prompt $" { fail "fcmp_$i tests (part3) " }
timeout { fail "(timeout) fcmp_$i tests (part3) " }
--- 1275,1288 ----
send_gdb "x/8i fcmp_$i"; send_gdb "_tests_3\n"
gdb_expect {
-re "
! .*fcmp,$i,!\\?<= %fr4,%fr5.*
! .*fcmp,$i,> %fr4,%fr5.*
! .*fcmp,$i,\\?> %fr4,%fr5.*
! .*fcmp,$i,!<= %fr4,%fr5.*
! .*fcmp,$i,!\\?< %fr4,%fr5.*
! .*fcmp,$i,>= %fr4,%fr5.*
! .*fcmp,$i,\\?>= %fr4,%fr5.*
! .*fcmp,$i,!< %fr4,%fr5.*
.*$gdb_prompt $" { pass "$i tests (part3) " }
-re "$gdb_prompt $" { fail "fcmp_$i tests (part3) " }
timeout { fail "(timeout) fcmp_$i tests (part3) " }
***************
*** 1154,1167 ****
send_gdb "x/8i fcmp_$i"; send_gdb "_tests_4\n"
gdb_expect {
-re "
! .*fcmp,$i,!\\?= fr4,fr5.*
! .*fcmp,$i,<> fr4,fr5.*
! .*fcmp,$i,!= fr4,fr5.*
! .*fcmp,$i,!=t fr4,fr5.*
! .*fcmp,$i,!\\? fr4,fr5.*
! .*fcmp,$i,<=> fr4,fr5.*
! .*fcmp,$i,true\\? fr4,fr5.*
! .*fcmp,$i,true fr4,fr5.*
.*$gdb_prompt $" { pass "$i tests (part4) " }
-re "$gdb_prompt $" { fail "fcmp_$i tests (part4) " }
timeout { fail "(timeout) fcmp_$i tests (part4) " }
--- 1291,1304 ----
send_gdb "x/8i fcmp_$i"; send_gdb "_tests_4\n"
gdb_expect {
-re "
! .*fcmp,$i,!\\?= %fr4,%fr5.*
! .*fcmp,$i,<> %fr4,%fr5.*
! .*fcmp,$i,!= %fr4,%fr5.*
! .*fcmp,$i,!=t %fr4,%fr5.*
! .*fcmp,$i,!\\? %fr4,%fr5.*
! .*fcmp,$i,<=> %fr4,%fr5.*
! .*fcmp,$i,true\\? %fr4,%fr5.*
! .*fcmp,$i,true %fr4,%fr5.*
.*$gdb_prompt $" { pass "$i tests (part4) " }
-re "$gdb_prompt $" { fail "fcmp_$i tests (part4) " }
timeout { fail "(timeout) fcmp_$i tests (part4) " }
***************
*** 1177,1186 ****
send_gdb "x/4i special_tests\n"
gdb_expect {
-re "
! .*gfw r4\\(sr0,r5\\).*
! .*gfw,m r4\\(sr0,r5\\).*
! .*gfr r4\\(sr0,r5\\).*
! .*gfr,m r4\\(sr0,r5\\).*
.*$gdb_prompt $" { pass "special tests" }
-re "$gdb_prompt $" { fail "special tests" }
timeout { fail "(timeout) special tests " }
--- 1314,1323 ----
send_gdb "x/4i special_tests\n"
gdb_expect {
-re "
! .*gfw %r4\\(%sr0,%r5\\).*
! .*gfw,m %r4\\(%sr0,%r5\\).*
! .*gfr %r4\\(%sr0,%r5\\).*
! .*gfr,m %r4\\(%sr0,%r5\\).*
.*$gdb_prompt $" { pass "special tests" }
-re "$gdb_prompt $" { fail "special tests" }
timeout { fail "(timeout) special tests " }
***************
*** 1196,1218 ****
send_gdb "x/16i sfu_tests\n"
gdb_expect {
-re "
! .*spop0,4,5.*
! .*spop0,4,73.*
! .*spop0,4,5,n.*
! .*spop0,4,73,n.*
! .*spop1,4,5 r5.*
! .*spop1,4,73 r5.*
! .*spop1,4,5,n r5.*
! .*spop1,4,73,n r5.*
! .*spop2,4,5 r5.*
! .*spop2,4,73 r5.*
! .*spop2,4,5,n r5.*
! .*spop2,4,73,n r5.*
! .*spop3,4,5 r5,r6.*
! .*spop3,4,73 r5,r6.*
! .*spop3,4,5,n r5,r6.*
! .*spop3,4,73,n r5,r6.*
! .*$gdb_prompt $" { pass "sfu tests" }
-re "$gdb_prompt $" { fail "sfu tests" }
timeout { fail "(timeout) sfu tests " }
}
--- 1333,1339 ----
send_gdb "x/16i sfu_tests\n"
gdb_expect {
-re "
! .*spop0,4,5.*\r\n.*spop0,4,0x73.*\r\n.*spop0,4,5,n.*\r\n.*spop0,4,0x73,n.*\r\n.*spop1,4,5 %r5.*\r\n.*spop1,4,0x73 %r5.*\r\n.*spop1,4,5,n %r5.*\r\n.*spop1,4,0x73,n %r5.*\r\n.*spop2,4,5 %r5.*\r\n.*spop2,4,0x73 %r5.*\r\n.*spop2,4,5,n %r5.*\r\n.*spop2,4,0x73,n %r5.*\r\n.*spop3,4,5 %r5,%r6.*\r\n.*spop3,4,0x73 %r5,%r6.*\r\n.*spop3,4,5,n %r5,%r6.*\r\n.*spop3,4,0x73,n %r5,%r6.*\r\n$gdb_prompt $" { pass "sfu tests" }
-re "$gdb_prompt $" { fail "sfu tests" }
timeout { fail "(timeout) sfu tests " }
}
***************
*** 1227,1235 ****
gdb_expect {
-re "
.*copr,4,5.*
! .*copr,4,73.*
.*copr,4,5,n.*
! .*copr,4,73,n.*
.*$gdb_prompt $" { pass "copr tests" }
-re "$gdb_prompt $" { fail "copr tests" }
timeout { fail "(timeout) copr tests " }
--- 1348,1356 ----
gdb_expect {
-re "
.*copr,4,5.*
! .*copr,4,0x73.*
.*copr,4,5,n.*
! .*copr,4,0x73,n.*
.*$gdb_prompt $" { pass "copr tests" }
-re "$gdb_prompt $" { fail "copr tests" }
timeout { fail "(timeout) copr tests " }
***************
*** 1244,1257 ****
send_gdb "x/8i copr_indexing_load\n"
gdb_expect {
-re "
! .*cldwx,4 r5\\(sr0,r4\\),r26.*
! .*cldwx,4,s r5\\(sr0,r4\\),r26.*
! .*cldwx,4,m r5\\(sr0,r4\\),r26.*
! .*cldwx,4,sm r5\\(sr0,r4\\),r26.*
! .*clddx,4 r5\\(sr0,r4\\),r26.*
! .*clddx,4,s r5\\(sr0,r4\\),r26.*
! .*clddx,4,m r5\\(sr0,r4\\),r26.*
! .*clddx,4,sm r5\\(sr0,r4\\),r26.*
.*$gdb_prompt $" { pass "copr indexed load tests" }
-re "$gdb_prompt $" { fail "copr indexed load tests" }
timeout { fail "(timeout) copr indexed load tests " }
--- 1365,1378 ----
send_gdb "x/8i copr_indexing_load\n"
gdb_expect {
-re "
! .*cldw,4 %r5\\(%sr0,%r4\\),26.*
! .*cldw,4,s %r5\\(%sr0,%r4\\),26.*
! .*cldw,4,m %r5\\(%sr0,%r4\\),26.*
! .*cldw,4,sm %r5\\(%sr0,%r4\\),26.*
! .*cldd,4 %r5\\(%sr0,%r4\\),26.*
! .*cldd,4,s %r5\\(%sr0,%r4\\),26.*
! .*cldd,4,m %r5\\(%sr0,%r4\\),26.*
! .*cldd,4,sm %r5\\(%sr0,%r4\\),26.*
.*$gdb_prompt $" { pass "copr indexed load tests" }
-re "$gdb_prompt $" { fail "copr indexed load tests" }
timeout { fail "(timeout) copr indexed load tests " }
***************
*** 1260,1273 ****
send_gdb "x/8i copr_indexing_store\n"
gdb_expect {
-re "
! .*cstwx,4 r26,r5\\(sr0,r4\\).*
! .*cstwx,4,s r26,r5\\(sr0,r4\\).*
! .*cstwx,4,m r26,r5\\(sr0,r4\\).*
! .*cstwx,4,sm r26,r5\\(sr0,r4\\).*
! .*cstdx,4 r26,r5\\(sr0,r4\\).*
! .*cstdx,4,s r26,r5\\(sr0,r4\\).*
! .*cstdx,4,m r26,r5\\(sr0,r4\\).*
! .*cstdx,4,sm r26,r5\\(sr0,r4\\).*
.*$gdb_prompt $" { pass "copr indexed store tests" }
-re "$gdb_prompt $" { fail "copr indexed store tests" }
timeout { fail "(timeout) copr indexed load tests " }
--- 1381,1394 ----
send_gdb "x/8i copr_indexing_store\n"
gdb_expect {
-re "
! .*cstw,4 26,%r5\\(%sr0,%r4\\).*
! .*cstw,4,s 26,%r5\\(%sr0,%r4\\).*
! .*cstw,4,m 26,%r5\\(%sr0,%r4\\).*
! .*cstw,4,sm 26,%r5\\(%sr0,%r4\\).*
! .*cstd,4 26,%r5\\(%sr0,%r4\\).*
! .*cstd,4,s 26,%r5\\(%sr0,%r4\\).*
! .*cstd,4,m 26,%r5\\(%sr0,%r4\\).*
! .*cstd,4,sm 26,%r5\\(%sr0,%r4\\).*
.*$gdb_prompt $" { pass "copr indexed store tests" }
-re "$gdb_prompt $" { fail "copr indexed store tests" }
timeout { fail "(timeout) copr indexed load tests " }
***************
*** 1276,1293 ****
send_gdb "x/12i copr_short_memory\n"
gdb_expect {
-re "
! .*cldws,4 0\\(sr0,r4\\),r26.*
! .*cldws,4,mb 0\\(sr0,r4\\),r26.*
! .*cldws,4,ma 0\\(sr0,r4\\),r26.*
! .*cldds,4 0\\(sr0,r4\\),r26.*
! .*cldds,4,mb 0\\(sr0,r4\\),r26.*
! .*cldds,4,ma 0\\(sr0,r4\\),r26.*
! .*cstws,4 r26,0\\(sr0,r4\\).*
! .*cstws,4,mb r26,0\\(sr0,r4\\).*
! .*cstws,4,ma r26,0\\(sr0,r4\\).*
! .*cstds,4 r26,0\\(sr0,r4\\).*
! .*cstds,4,mb r26,0\\(sr0,r4\\).*
! .*cstds,4,ma r26,0\\(sr0,r4\\).*
.*$gdb_prompt $" { pass "copr short memory tests" }
-re "$gdb_prompt $" { fail "copr short memory tests" }
timeout { fail "(timeout) copr short memory tests " }
--- 1397,1414 ----
send_gdb "x/12i copr_short_memory\n"
gdb_expect {
-re "
! .*cldw,4 0\\(%sr0,%r4\\),26.*
! .*cldw,4,mb 0\\(%sr0,%r4\\),26.*
! .*cldw,4 0\\(%sr0,%r4\\),26.*
! .*cldd,4 0\\(%sr0,%r4\\),26.*
! .*cldd,4,mb 0\\(%sr0,%r4\\),26.*
! .*cldd,4 0\\(%sr0,%r4\\),26.*
! .*cstw,4 26,0\\(%sr0,%r4\\).*
! .*cstw,4,mb 26,0\\(%sr0,%r4\\).*
! .*cstw,4 26,0\\(%sr0,%r4\\).*
! .*cstd,4 26,0\\(%sr0,%r4\\).*
! .*cstd,4,mb 26,0\\(%sr0,%r4\\).*
! .*cstd,4 26,0\\(%sr0,%r4\\).*
.*$gdb_prompt $" { pass "copr short memory tests" }
-re "$gdb_prompt $" { fail "copr short memory tests" }
timeout { fail "(timeout) copr short memory tests " }
***************
*** 1302,1319 ****
send_gdb "x/12i fmemLRbug_tests_1\n"
gdb_expect {
-re "
! .*fstws fr6R,0\\(sr0,r26\\).*
! .*fstws fr6,4\\(sr0,r26\\).*
! .*fstws fr6,8\\(sr0,r26\\).*
! .*fstds fr6,0\\(sr0,r26\\).*
! .*fstds fr6,4\\(sr0,r26\\).*
! .*fstds fr6,8\\(sr0,r26\\).*
! .*fldws 0\\(sr0,r26\\),fr6R.*
! .*fldws 4\\(sr0,r26\\),fr6.*
! .*fldws 8\\(sr0,r26\\),fr6.*
! .*fldds 0\\(sr0,r26\\),fr6.*
! .*fldds 4\\(sr0,r26\\),fr6.*
! .*fldds 8\\(sr0,r26\\),fr6.*
.*$gdb_prompt $" { pass "fmem LR register selector tests (part1)" }
-re "$gdb_prompt $" { fail "fmem LR register selector tests (part1)" }
timeout { fail "(timeout) fmem LR register selector tests (part1)" }
--- 1423,1440 ----
send_gdb "x/12i fmemLRbug_tests_1\n"
gdb_expect {
-re "
! .*fstw %fr6R,0\\(%sr0,%r26\\).*
! .*fstw %fr6,4\\(%sr0,%r26\\).*
! .*fstw %fr6,8\\(%sr0,%r26\\).*
! .*fstd %fr6,0\\(%sr0,%r26\\).*
! .*fstd %fr6,4\\(%sr0,%r26\\).*
! .*fstd %fr6,8\\(%sr0,%r26\\).*
! .*fldw 0\\(%sr0,%r26\\),%fr6R.*
! .*fldw 4\\(%sr0,%r26\\),%fr6.*
! .*fldw 8\\(%sr0,%r26\\),%fr6.*
! .*fldd 0\\(%sr0,%r26\\),%fr6.*
! .*fldd 4\\(%sr0,%r26\\),%fr6.*
! .*fldd 8\\(%sr0,%r26\\),%fr6.*
.*$gdb_prompt $" { pass "fmem LR register selector tests (part1)" }
-re "$gdb_prompt $" { fail "fmem LR register selector tests (part1)" }
timeout { fail "(timeout) fmem LR register selector tests (part1)" }
***************
*** 1322,1339 ****
send_gdb "x/12i fmemLRbug_tests_2\n"
gdb_expect {
-re "
! .*fstws fr6R,0\\(sr0,r26\\).*
! .*fstws fr6,4\\(sr0,r26\\).*
! .*fstws fr6,8\\(sr0,r26\\).*
! .*fstds fr6,0\\(sr0,r26\\).*
! .*fstds fr6,4\\(sr0,r26\\).*
! .*fstds fr6,8\\(sr0,r26\\).*
! .*fldws 0\\(sr0,r26\\),fr6R.*
! .*fldws 4\\(sr0,r26\\),fr6.*
! .*fldws 8\\(sr0,r26\\),fr6.*
! .*fldds 0\\(sr0,r26\\),fr6.*
! .*fldds 4\\(sr0,r26\\),fr6.*
! .*fldds 8\\(sr0,r26\\),fr6.*
.*$gdb_prompt $" { pass "fmem LR register selector tests (part2)" }
-re "$gdb_prompt $" { fail "fmem LR register selector tests (part2)" }
timeout { fail "(timeout) fmem LR register selector tests (part2)" }
--- 1443,1460 ----
send_gdb "x/12i fmemLRbug_tests_2\n"
gdb_expect {
-re "
! .*fstw %fr6R,0\\(%sr0,%r26\\).*
! .*fstw %fr6,4\\(%sr0,%r26\\).*
! .*fstw %fr6,8\\(%sr0,%r26\\).*
! .*fstd %fr6,0\\(%sr0,%r26\\).*
! .*fstd %fr6,4\\(%sr0,%r26\\).*
! .*fstd %fr6,8\\(%sr0,%r26\\).*
! .*fldw 0\\(%sr0,%r26\\),%fr6R.*
! .*fldw 4\\(%sr0,%r26\\),%fr6.*
! .*fldw 8\\(%sr0,%r26\\),%fr6.*
! .*fldd 0\\(%sr0,%r26\\),%fr6.*
! .*fldd 4\\(%sr0,%r26\\),%fr6.*
! .*fldd 8\\(%sr0,%r26\\),%fr6.*
.*$gdb_prompt $" { pass "fmem LR register selector tests (part2)" }
-re "$gdb_prompt $" { fail "fmem LR register selector tests (part2)" }
timeout { fail "(timeout) fmem LR register selector tests (part2)" }
***************
*** 1342,1359 ****
send_gdb "x/12i fmemLRbug_tests_3\n"
gdb_expect {
-re "
! .*fstwx fr6R,r25\\(sr0,r26\\).*
! .*fstwx fr6,r25\\(sr0,r26\\).*
! .*fstwx fr6,r25\\(sr0,r26\\).*
! .*fstdx fr6,r25\\(sr0,r26\\).*
! .*fstdx fr6,r25\\(sr0,r26\\).*
! .*fstdx fr6,r25\\(sr0,r26\\).*
! .*fldwx r25\\(sr0,r26\\),fr6R.*
! .*fldwx r25\\(sr0,r26\\),fr6.*
! .*fldwx r25\\(sr0,r26\\),fr6.*
! .*flddx r25\\(sr0,r26\\),fr6.*
! .*flddx r25\\(sr0,r26\\),fr6.*
! .*flddx r25\\(sr0,r26\\),fr6.*
.*$gdb_prompt $" { pass "fmem LR register selector tests (part3)" }
-re "$gdb_prompt $" { fail "fmem LR register selector tests (part3)" }
timeout { fail "(timeout) fmem LR register selector tests (part3)" }
--- 1463,1480 ----
send_gdb "x/12i fmemLRbug_tests_3\n"
gdb_expect {
-re "
! .*fstw %fr6R,%r25\\(%sr0,%r26\\).*
! .*fstw %fr6,%r25\\(%sr0,%r26\\).*
! .*fstw %fr6,%r25\\(%sr0,%r26\\).*
! .*fstd %fr6,%r25\\(%sr0,%r26\\).*
! .*fstd %fr6,%r25\\(%sr0,%r26\\).*
! .*fstd %fr6,%r25\\(%sr0,%r26\\).*
! .*fldw %r25\\(%sr0,%r26\\),%fr6R.*
! .*fldw %r25\\(%sr0,%r26\\),%fr6.*
! .*fldw %r25\\(%sr0,%r26\\),%fr6.*
! .*fldd %r25\\(%sr0,%r26\\),%fr6.*
! .*fldd %r25\\(%sr0,%r26\\),%fr6.*
! .*fldd %r25\\(%sr0,%r26\\),%fr6.*
.*$gdb_prompt $" { pass "fmem LR register selector tests (part3)" }
-re "$gdb_prompt $" { fail "fmem LR register selector tests (part3)" }
timeout { fail "(timeout) fmem LR register selector tests (part3)" }
***************
*** 1362,1379 ****
send_gdb "x/12i fmemLRbug_tests_4\n"
gdb_expect {
-re "
! .*fstwx fr6R,r25\\(sr0,r26\\).*
! .*fstwx fr6,r25\\(sr0,r26\\).*
! .*fstwx fr6,r25\\(sr0,r26\\).*
! .*fstdx fr6,r25\\(sr0,r26\\).*
! .*fstdx fr6,r25\\(sr0,r26\\).*
! .*fstdx fr6,r25\\(sr0,r26\\).*
! .*fldwx r25\\(sr0,r26\\),fr6R.*
! .*fldwx r25\\(sr0,r26\\),fr6.*
! .*fldwx r25\\(sr0,r26\\),fr6.*
! .*flddx r25\\(sr0,r26\\),fr6.*
! .*flddx r25\\(sr0,r26\\),fr6.*
! .*flddx r25\\(sr0,r26\\),fr6.*
.*$gdb_prompt $" { pass "fmem LR register selector tests (part4)" }
-re "$gdb_prompt $" { fail "fmem LR register selector tests (part4)" }
timeout { fail "(timeout) fmem LR register selector tests (part4)" }
--- 1483,1500 ----
send_gdb "x/12i fmemLRbug_tests_4\n"
gdb_expect {
-re "
! .*fstw %fr6R,%r25\\(%sr0,%r26\\).*
! .*fstw %fr6,%r25\\(%sr0,%r26\\).*
! .*fstw %fr6,%r25\\(%sr0,%r26\\).*
! .*fstd %fr6,%r25\\(%sr0,%r26\\).*
! .*fstd %fr6,%r25\\(%sr0,%r26\\).*
! .*fstd %fr6,%r25\\(%sr0,%r26\\).*
! .*fldw %r25\\(%sr0,%r26\\),%fr6R.*
! .*fldw %r25\\(%sr0,%r26\\),%fr6.*
! .*fldw %r25\\(%sr0,%r26\\),%fr6.*
! .*fldd %r25\\(%sr0,%r26\\),%fr6.*
! .*fldd %r25\\(%sr0,%r26\\),%fr6.*
! .*fldd %r25\\(%sr0,%r26\\),%fr6.*
.*$gdb_prompt $" { pass "fmem LR register selector tests (part4)" }
-re "$gdb_prompt $" { fail "fmem LR register selector tests (part4)" }
timeout { fail "(timeout) fmem LR register selector tests (part4)" }
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/hppa.s gdb/testsuite/gdb.disasm/hppa.s
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/hppa.s Sun Aug 4 09:21:21 1996
--- gdb/testsuite/gdb.disasm/hppa.s Thu Jul 22 17:49:44 1999
***************
*** 1,3 ****
--- 1,4 ----
+ .level 1.1
.SPACE $PRIVATE$
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
***************
*** 185,217 ****
integer_load_short_memory
ldws 0(0,%r4),%r26
ldws,mb 0(0,%r4),%r26
! ldws,ma 0(0,%r4),%r26
ldhs 0(0,%r4),%r26
ldhs,mb 0(0,%r4),%r26
! ldhs,ma 0(0,%r4),%r26
ldbs 0(0,%r4),%r26
ldbs,mb 0(0,%r4),%r26
! ldbs,ma 0(0,%r4),%r26
ldwas 0(%r4),%r26
ldwas,mb 0(%r4),%r26
! ldwas,ma 0(%r4),%r26
ldcws 0(0,%r4),%r26
ldcws,mb 0(0,%r4),%r26
! ldcws,ma 0(0,%r4),%r26
integer_store_short_memory
stws %r26,0(0,%r4)
stws,mb %r26,0(0,%r4)
! stws,ma %r26,0(0,%r4)
sths %r26,0(0,%r4)
sths,mb %r26,0(0,%r4)
! sths,ma %r26,0(0,%r4)
stbs %r26,0(0,%r4)
stbs,mb %r26,0(0,%r4)
! stbs,ma %r26,0(0,%r4)
stwas %r26,0(%r4)
stwas,mb %r26,0(%r4)
! stwas,ma %r26,0(%r4)
stbys %r26,0(0,%r4)
stbys,b %r26,0(0,%r4)
stbys,e %r26,0(0,%r4)
--- 186,218 ----
integer_load_short_memory
ldws 0(0,%r4),%r26
ldws,mb 0(0,%r4),%r26
! ldws 0(0,%r4),%r26
ldhs 0(0,%r4),%r26
ldhs,mb 0(0,%r4),%r26
! ldhs 0(0,%r4),%r26
ldbs 0(0,%r4),%r26
ldbs,mb 0(0,%r4),%r26
! ldbs 0(0,%r4),%r26
ldwas 0(%r4),%r26
ldwas,mb 0(%r4),%r26
! ldwas 0(%r4),%r26
ldcws 0(0,%r4),%r26
ldcws,mb 0(0,%r4),%r26
! ldcws 0(0,%r4),%r26
integer_store_short_memory
stws %r26,0(0,%r4)
stws,mb %r26,0(0,%r4)
! stws %r26,0(0,%r4)
sths %r26,0(0,%r4)
sths,mb %r26,0(0,%r4)
! sths %r26,0(0,%r4)
stbs %r26,0(0,%r4)
stbs,mb %r26,0(0,%r4)
! stbs %r26,0(0,%r4)
stwas %r26,0(%r4)
stwas,mb %r26,0(%r4)
! stwas %r26,0(%r4)
stbys %r26,0(0,%r4)
stbys,b %r26,0(0,%r4)
stbys,e %r26,0(0,%r4)
***************
*** 909,923 ****
uxor %r4,%r5,%r6
uxor,sbz %r4,%r5,%r6
uxor,shz %r4,%r5,%r6
- uxor,sdc %r4,%r5,%r6
- uxor,sbc %r4,%r5,%r6
- uxor,shc %r4,%r5,%r6
uxor,tr %r4,%r5,%r6
uxor,nbz %r4,%r5,%r6
uxor,nhz %r4,%r5,%r6
- uxor,ndc %r4,%r5,%r6
- uxor,nbc %r4,%r5,%r6
- uxor,nhc %r4,%r5,%r6
uaddcm_tests
uaddcm %r4,%r5,%r6
--- 910,918 ----
***************
*** 1122,1165 ****
shd,ev %r4,%r5,5,%r6
extru_tests
! extru %r4,5,10,%r6
! extru,= %r4,5,10,%r6
! extru,< %r4,5,10,%r6
! extru,od %r4,5,10,%r6
! extru,tr %r4,5,10,%r6
! extru,<> %r4,5,10,%r6
! extru,>= %r4,5,10,%r6
! extru,ev %r4,5,10,%r6
extrs_tests
! extrs %r4,5,10,%r6
! extrs,= %r4,5,10,%r6
! extrs,< %r4,5,10,%r6
! extrs,od %r4,5,10,%r6
! extrs,tr %r4,5,10,%r6
! extrs,<> %r4,5,10,%r6
! extrs,>= %r4,5,10,%r6
! extrs,ev %r4,5,10,%r6
zdep_tests
! zdep %r4,5,10,%r6
! zdep,= %r4,5,10,%r6
! zdep,< %r4,5,10,%r6
! zdep,od %r4,5,10,%r6
! zdep,tr %r4,5,10,%r6
! zdep,<> %r4,5,10,%r6
! zdep,>= %r4,5,10,%r6
! zdep,ev %r4,5,10,%r6
dep_tests
! dep %r4,5,10,%r6
! dep,= %r4,5,10,%r6
! dep,< %r4,5,10,%r6
! dep,od %r4,5,10,%r6
! dep,tr %r4,5,10,%r6
! dep,<> %r4,5,10,%r6
! dep,>= %r4,5,10,%r6
! dep,ev %r4,5,10,%r6
vextru_tests
vextru %r4,5,%r6
--- 1117,1160 ----
shd,ev %r4,%r5,5,%r6
extru_tests
! extru %r4,1,2,%r6
! extru,= %r4,1,2,%r6
! extru,< %r4,1,2,%r6
! extru,od %r4,1,2,%r6
! extru,tr %r4,1,2,%r6
! extru,<> %r4,1,2,%r6
! extru,>= %r4,1,2,%r6
! extru,ev %r4,1,2,%r6
extrs_tests
! extrs %r4,1,2,%r6
! extrs,= %r4,1,2,%r6
! extrs,< %r4,1,2,%r6
! extrs,od %r4,1,2,%r6
! extrs,tr %r4,1,2,%r6
! extrs,<> %r4,1,2,%r6
! extrs,>= %r4,1,2,%r6
! extrs,ev %r4,1,2,%r6
zdep_tests
! zdep %r4,1,2,%r6
! zdep,= %r4,1,2,%r6
! zdep,< %r4,1,2,%r6
! zdep,od %r4,1,2,%r6
! zdep,tr %r4,1,2,%r6
! zdep,<> %r4,1,2,%r6
! zdep,>= %r4,1,2,%r6
! zdep,ev %r4,1,2,%r6
dep_tests
! dep %r4,1,2,%r6
! dep,= %r4,1,2,%r6
! dep,< %r4,1,2,%r6
! dep,od %r4,1,2,%r6
! dep,tr %r4,1,2,%r6
! dep,<> %r4,1,2,%r6
! dep,>= %r4,1,2,%r6
! dep,ev %r4,1,2,%r6
vextru_tests
vextru %r4,5,%r6
***************
*** 1223,1246 ****
zvdepi,ev -1,5,%r6
depi_tests
! depi -1,4,10,%r6
! depi,= -1,4,10,%r6
! depi,< -1,4,10,%r6
! depi,od -1,4,10,%r6
! depi,tr -1,4,10,%r6
! depi,<> -1,4,10,%r6
! depi,>= -1,4,10,%r6
! depi,ev -1,4,10,%r6
zdepi_tests
! zdepi -1,4,10,%r6
! zdepi,= -1,4,10,%r6
! zdepi,< -1,4,10,%r6
! zdepi,od -1,4,10,%r6
! zdepi,tr -1,4,10,%r6
! zdepi,<> -1,4,10,%r6
! zdepi,>= -1,4,10,%r6
! zdepi,ev -1,4,10,%r6
system_control_tests
--- 1218,1241 ----
zvdepi,ev -1,5,%r6
depi_tests
! depi -1,4,5,%r6
! depi,= -1,4,5,%r6
! depi,< -1,4,5,%r6
! depi,od -1,4,5,%r6
! depi,tr -1,4,5,%r6
! depi,<> -1,4,5,%r6
! depi,>= -1,4,5,%r6
! depi,ev -1,4,5,%r6
zdepi_tests
! zdepi -1,4,5,%r6
! zdepi,= -1,4,5,%r6
! zdepi,< -1,4,5,%r6
! zdepi,od -1,4,5,%r6
! zdepi,tr -1,4,5,%r6
! zdepi,<> -1,4,5,%r6
! zdepi,>= -1,4,5,%r6
! zdepi,ev -1,4,5,%r6
system_control_tests
***************
*** 1268,1275 ****
lpa_tests
lpa %r4(%sr0,%r5),%r6
lpa,m %r4(%sr0,%r5),%r6
! lha %r4(%sr0,%r5),%r6
! lha,m %r4(%sr0,%r5),%r6
lci %r4(%sr0,%r5),%r6
purge_tests
--- 1263,1270 ----
lpa_tests
lpa %r4(%sr0,%r5),%r6
lpa,m %r4(%sr0,%r5),%r6
! ; lha %r4(%sr0,%r5),%r6
! ; lha,m %r4(%sr0,%r5),%r6
lci %r4(%sr0,%r5),%r6
purge_tests
***************
*** 1302,1307 ****
--- 1297,1303 ----
ftest
fpu_memory_indexing_tests
+ .allow quadstore
fldwx %r4(%sr0,%r5),%fr6
fldwx,s %r4(%sr0,%r5),%fr6
fldwx,m %r4(%sr0,%r5),%fr6
***************
*** 1326,1344 ****
fpu_short_memory_tests
fldws 0(%sr0,%r5),%fr6
fldws,mb 0(%sr0,%r5),%fr6
! fldws,ma 0(%sr0,%r5),%fr6
fldds 0(%sr0,%r5),%fr6
fldds,mb 0(%sr0,%r5),%fr6
! fldds,ma 0(%sr0,%r5),%fr6
fstws %fr6,0(%sr0,%r5)
fstws,mb %fr6,0(%sr0,%r5)
! fstws,ma %fr6,0(%sr0,%r5)
fstds %fr6,0(%sr0,%r5)
fstds,mb %fr6,0(%sr0,%r5)
! fstds,ma %fr6,0(%sr0,%r5)
fstqs %fr6,0(%sr0,%r5)
fstqs,mb %fr6,0(%sr0,%r5)
! fstqs,ma %fr6,0(%sr0,%r5)
fcpy_tests
--- 1322,1340 ----
fpu_short_memory_tests
fldws 0(%sr0,%r5),%fr6
fldws,mb 0(%sr0,%r5),%fr6
! fldws 0(%sr0,%r5),%fr6
fldds 0(%sr0,%r5),%fr6
fldds,mb 0(%sr0,%r5),%fr6
! fldds 0(%sr0,%r5),%fr6
fstws %fr6,0(%sr0,%r5)
fstws,mb %fr6,0(%sr0,%r5)
! fstws %fr6,0(%sr0,%r5)
fstds %fr6,0(%sr0,%r5)
fstds,mb %fr6,0(%sr0,%r5)
! fstds %fr6,0(%sr0,%r5)
fstqs %fr6,0(%sr0,%r5)
fstqs,mb %fr6,0(%sr0,%r5)
! fstqs %fr6,0(%sr0,%r5)
fcpy_tests
***************
*** 1610,1615 ****
--- 1606,1612 ----
xmpyu %fr4,%fr5,%fr6
special_tests
+ .allow gflush
gfw %r4(%sr0,%r5)
gfw,m %r4(%sr0,%r5)
gfr %r4(%sr0,%r5)
***************
*** 1620,1637 ****
spop0,4,115
spop0,4,5,n
spop0,4,115,n
! spop1,4,5 5
! spop1,4,115 5
! spop1,4,5,n 5
! spop1,4,115,n 5
! spop2,4,5 5
! spop2,4,115 5
! spop2,4,5,n 5
! spop2,4,115,n 5
! spop3,4,5 5,6
! spop3,4,115 5,6
! spop3,4,5,n 5,6
! spop3,4,115,n 5,6
copr_tests
copr,4,5
--- 1617,1634 ----
spop0,4,115
spop0,4,5,n
spop0,4,115,n
! spop1,4,5 %r5
! spop1,4,115 %r5
! spop1,4,5,n %r5
! spop1,4,115,n %r5
! spop2,4,5 %r5
! spop2,4,115 %r5
! spop2,4,5,n %r5
! spop2,4,115,n %r5
! spop3,4,5 %r5,%r6
! spop3,4,115 %r5,%r6
! spop3,4,5,n %r5,%r6
! spop3,4,115,n %r5,%r6
copr_tests
copr,4,5
***************
*** 1640,1732 ****
copr,4,115,n
copr_indexing_load
! cldwx,4 5(0,4),26
! cldwx,4,s 5(0,4),26
! cldwx,4,m 5(0,4),26
! cldwx,4,sm 5(0,4),26
! clddx,4 5(0,4),26
! clddx,4,s 5(0,4),26
! clddx,4,m 5(0,4),26
! clddx,4,sm 5(0,4),26
copr_indexing_store
! cstwx,4 26,5(0,4)
! cstwx,4,s 26,5(0,4)
! cstwx,4,m 26,5(0,4)
! cstwx,4,sm 26,5(0,4)
! cstdx,4 26,5(0,4)
! cstdx,4,s 26,5(0,4)
! cstdx,4,m 26,5(0,4)
! cstdx,4,sm 26,5(0,4)
copr_short_memory
! cldws,4 0(0,4),26
! cldws,4,mb 0(0,4),26
! cldws,4,ma 0(0,4),26
! cldds,4 0(0,4),26
! cldds,4,mb 0(0,4),26
! cldds,4,ma 0(0,4),26
! cstws,4 26,0(0,4)
! cstws,4,mb 26,0(0,4)
! cstws,4,ma 26,0(0,4)
! cstds,4 26,0(0,4)
! cstds,4,mb 26,0(0,4)
! cstds,4,ma 26,0(0,4)
fmemLRbug_tests_1
fstws %fr6R,0(%r26)
fstws %fr6L,4(%r26)
fstws %fr6,8(%r26)
! fstds %fr6R,0(%r26)
! fstds %fr6L,4(%r26)
fstds %fr6,8(%r26)
fldws 0(%r26),%fr6R
fldws 4(%r26),%fr6L
fldws 8(%r26),%fr6
! fldds 0(%r26),%fr6R
! fldds 4(%r26),%fr6L
fldds 8(%r26),%fr6
fmemLRbug_tests_2
fstws %fr6R,0(%sr0,%r26)
fstws %fr6L,4(%sr0,%r26)
fstws %fr6,8(%sr0,%r26)
! fstds %fr6R,0(%sr0,%r26)
! fstds %fr6L,4(%sr0,%r26)
fstds %fr6,8(%sr0,%r26)
fldws 0(%sr0,%r26),%fr6R
fldws 4(%sr0,%r26),%fr6L
fldws 8(%sr0,%r26),%fr6
! fldds 0(%sr0,%r26),%fr6R
! fldds 4(%sr0,%r26),%fr6L
fldds 8(%sr0,%r26),%fr6
fmemLRbug_tests_3
fstwx %fr6R,%r25(%r26)
fstwx %fr6L,%r25(%r26)
fstwx %fr6,%r25(%r26)
! fstdx %fr6R,%r25(%r26)
! fstdx %fr6L,%r25(%r26)
fstdx %fr6,%r25(%r26)
fldwx %r25(%r26),%fr6R
fldwx %r25(%r26),%fr6L
fldwx %r25(%r26),%fr6
! flddx %r25(%r26),%fr6R
! flddx %r25(%r26),%fr6L
flddx %r25(%r26),%fr6
fmemLRbug_tests_4
fstwx %fr6R,%r25(%sr0,%r26)
fstwx %fr6L,%r25(%sr0,%r26)
fstwx %fr6,%r25(%sr0,%r26)
! fstdx %fr6R,%r25(%sr0,%r26)
! fstdx %fr6L,%r25(%sr0,%r26)
fstdx %fr6,%r25(%sr0,%r26)
fldwx %r25(%sr0,%r26),%fr6R
fldwx %r25(%sr0,%r26),%fr6L
fldwx %r25(%sr0,%r26),%fr6
! flddx %r25(%sr0,%r26),%fr6R
! flddx %r25(%sr0,%r26),%fr6L
flddx %r25(%sr0,%r26),%fr6
ldw 0(0,%r4),%r26
--- 1637,1729 ----
copr,4,115,n
copr_indexing_load
! cldwx,4 %r5(0,%r4),26
! cldwx,4,s %r5(0,%r4),26
! cldwx,4,m %r5(0,%r4),26
! cldwx,4,sm %r5(0,%r4),26
! clddx,4 %r5(0,%r4),26
! clddx,4,s %r5(0,%r4),26
! clddx,4,m %r5(0,%r4),26
! clddx,4,sm %r5(0,%r4),26
copr_indexing_store
! cstwx,4 26,%r5(0,%r4)
! cstwx,4,s 26,%r5(0,%r4)
! cstwx,4,m 26,%r5(0,%r4)
! cstwx,4,sm 26,%r5(0,%r4)
! cstdx,4 26,%r5(0,%r4)
! cstdx,4,s 26,%r5(0,%r4)
! cstdx,4,m 26,%r5(0,%r4)
! cstdx,4,sm 26,%r5(0,%r4)
copr_short_memory
! cldws,4 0(0,%r4),26
! cldws,4,mb 0(0,%r4),26
! cldws,4 0(0,%r4),26
! cldds,4 0(0,%r4),26
! cldds,4,mb 0(0,%r4),26
! cldds,4 0(0,%r4),26
! cstws,4 26,0(0,%r4)
! cstws,4,mb 26,0(0,%r4)
! cstws,4 26,0(0,%r4)
! cstds,4 26,0(0,%r4)
! cstds,4,mb 26,0(0,%r4)
! cstds,4 26,0(0,%r4)
fmemLRbug_tests_1
fstws %fr6R,0(%r26)
fstws %fr6L,4(%r26)
fstws %fr6,8(%r26)
! fstds %fr6,0(%r26)
! fstds %fr6,4(%r26)
fstds %fr6,8(%r26)
fldws 0(%r26),%fr6R
fldws 4(%r26),%fr6L
fldws 8(%r26),%fr6
! fldds 0(%r26),%fr6
! fldds 4(%r26),%fr6
fldds 8(%r26),%fr6
fmemLRbug_tests_2
fstws %fr6R,0(%sr0,%r26)
fstws %fr6L,4(%sr0,%r26)
fstws %fr6,8(%sr0,%r26)
! fstds %fr6,0(%sr0,%r26)
! fstds %fr6,4(%sr0,%r26)
fstds %fr6,8(%sr0,%r26)
fldws 0(%sr0,%r26),%fr6R
fldws 4(%sr0,%r26),%fr6L
fldws 8(%sr0,%r26),%fr6
! fldds 0(%sr0,%r26),%fr6
! fldds 4(%sr0,%r26),%fr6
fldds 8(%sr0,%r26),%fr6
fmemLRbug_tests_3
fstwx %fr6R,%r25(%r26)
fstwx %fr6L,%r25(%r26)
fstwx %fr6,%r25(%r26)
! fstdx %fr6,%r25(%r26)
! fstdx %fr6,%r25(%r26)
fstdx %fr6,%r25(%r26)
fldwx %r25(%r26),%fr6R
fldwx %r25(%r26),%fr6L
fldwx %r25(%r26),%fr6
! flddx %r25(%r26),%fr6
! flddx %r25(%r26),%fr6
flddx %r25(%r26),%fr6
fmemLRbug_tests_4
fstwx %fr6R,%r25(%sr0,%r26)
fstwx %fr6L,%r25(%sr0,%r26)
fstwx %fr6,%r25(%sr0,%r26)
! fstdx %fr6,%r25(%sr0,%r26)
! fstdx %fr6,%r25(%sr0,%r26)
fstdx %fr6,%r25(%sr0,%r26)
fldwx %r25(%sr0,%r26),%fr6R
fldwx %r25(%sr0,%r26),%fr6L
fldwx %r25(%sr0,%r26),%fr6
! flddx %r25(%sr0,%r26),%fr6
! flddx %r25(%sr0,%r26),%fr6
flddx %r25(%sr0,%r26),%fr6
ldw 0(0,%r4),%r26
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa-sed.cmd gdb/testsuite/gdb.disasm/pa-sed.cmd
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa-sed.cmd Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa-sed.cmd Thu Jul 22 17:49:51 1999
***************
*** 0 ****
--- 1 ----
+ s/0x[0123456789abcdef]* </</g
\ No newline at end of file
Binary files ../gdb-19990719/gdb/testsuite/gdb.disasm/pa11 and gdb/testsuite/gdb.disasm/pa11 differ
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa11-instr.s gdb/testsuite/gdb.disasm/pa11-instr.s
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa11-instr.s Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa11-instr.s Thu Jul 22 17:49:46 1999
***************
*** 0 ****
--- 1,874 ----
+ ; assemble as "as -o pa1.exe pa11-instr.s"
+ ;
+ ; PA-RISC assembly-language test program for the debugger.
+ ;
+ ; This test is *not* intended to be executed. Rather, this test serves
+ ; as a comprehensive test for the debugger's PA disassembler.
+ ;
+
+ ; We'd like PA2.0 opcodes to be tested as well as PA1.x, but our PA2.0
+ ; testing strategy is murky at the moment. For now, we'll only test
+ ; PA1.x. (We'll assume we're not running tests on any PA1.0 machines
+ ; any more, so it's safe to specify PA1.1.)
+ .level 1.1
+
+ .code
+ .export main,ENTRY
+ .export mainend,ENTRY
+ .space $TEXT$
+ .subspa $CODE$
+
+ main
+ .proc
+ .callinfo NO_CALLS,FRAME=0
+ .entry
+
+ labela
+ ADD %r1,%r1,%r2
+ ADD,C %r0,%r1,%r2
+ ADD,DC %r0,%r1,%r2
+ ADD,L %r1,%r2,%r3
+ ADD,TSV %r3,%r4,%r5
+ ADD,C,TSV %r3,%r4,%r5
+ ADD,DC,TSV %r3,%r4,%r5
+
+ ADDB,= %r25,%r26,labelb
+ ADDB,=,N %r25,%r26,labelb
+ ADDB,SV %r27,%r28,labela
+ ADDB,OD %r27,%r28,labela
+ ADDB,TR %r27,%r28,labela
+ ADDB,NSV %r27,%r28,labela
+ ADDB,EV %r27,%r28,labela
+ ADDB,<> %r27,%r28,labela
+
+ ADDBF,NUV %r1,%r5,labela
+ ADDBF,<=,N %r10,%r6,labelb
+
+ ADDBT,NUV %r1,%r5,labela
+ ADDBT,<=,N %r10,%r6,labelb
+
+ ADDC %r28,%r29,%r30
+ ADDC,UV %r28,%r29,%r30
+
+ ADDCO %r28,%r29,%r30
+ ADDCO,UV %r28,%r29,%r30
+
+ ADDI 0,%r2,%r0
+ ADDI,> 1,%r3,%r0
+ ADDI,< 2,%r4,%r0
+
+ ADDIB,>= -1,%r5,labela
+ ADDIB,<=,N 10,%r6,labelb
+
+ ADDIBF,NUV -1,%r5,labela
+ ADDIBF,<=,N 10,%r6,labelb
+
+ ADDIBT,NUV -1,%r5,labela
+ ADDIBT,<=,N 10,%r6,labelb
+
+ ADDIL -1,%r3
+ ADDIL 70000,%r3
+
+ ADDIO 4,%r22,%r21
+ ADDIO,< 4,%r22,%r21
+
+ ADDIT 4,%r22,%r21
+ ADDIT,TR 4,%r22,%r21
+
+ ADDITO 934,%r25,%r24
+ ADDITO,<> 1023,%r25,%r24
+
+ ADDO %r28,%r29,%r30
+ ADDO,SV %r28,%r29,%r30
+
+ ADDL %r28,%r29,%r30
+ ADDL,NSV %r28,%r29,%r30
+
+ AND %r30,%r31,%r30
+ AND,< %r30,%r31,%r30
+
+ ANDCM %r26,%r27,%r28
+ ANDCM,> %r26,%r27,%r28
+
+ labelb
+ B labelc
+ B,N labelc
+ B,GATE labelc
+ B,L labelb,%r3
+
+ BB,< %r9,%cr11,labelc
+ BB,>=,N %r9,31,labelc
+
+ BE 100(%sr4,%r11)
+ BE,L 0(%sr4,%r11),%sr0,%r31
+
+ BL labelb,%r3
+ BL,N labelb,%r3
+
+ BLE 12345(%sr0,%r3)
+ BLE,N 12345(%sr0,%r3)
+
+ BLR %r31,%r3
+ BLR,N %r0,%r3
+
+ BREAK 0,1
+ BREAK 31,1000
+
+ BV 0(%r1)
+ BV,N (%r20)
+
+ BVB,< %r3,labela
+ BVB,<,N %r3,labela
+
+ BVE (%r5)
+ BVE,POP (%r5)
+ ; PA2.0 opcodes:
+ ; BVE,L (%r5),%r2
+ ; BVE,L,PUSH (%r5),%r2
+
+ labelc
+ CLDDS,0 0(%sr2,%r0),0
+ CLDDS,1,MA 1(%sr2,%r1),2
+ CLDDS,2,MB 9(%sr2,%r6),3
+
+ CLDDX,0 %r3(%sr2,%r10),0
+ CLDDX,0,S %r3(%sr2,%r20),1
+ CLDDX,1,M %r3(%sr2,%r30),2
+ CLDDX,2,SM %r3(%sr2,%r0),3
+
+ CLDWS,0 0(%sr2,%r0),0
+ CLDWS,1,MA 3(%sr2,%r0),2
+ CLDWS,2,MB 7(%sr2,%r0),3
+
+ CLDWX,0 %r3(%sr2,%r0),0
+ CLDWX,0,S %r3(%sr2,%r0),1
+ CLDWX,1,M %r3(%sr2,%r0),2
+ CLDWX,2,SM %r3(%sr2,%r0),3
+
+ CMPB,< %r11,%r12,labelc
+ CMPB,>=,N %r11,%r12,main
+
+ CMPCLR,<> %r2,%r3,%r4
+
+ CMPIB,<= 0,%r2,labeld
+ CMPIB,NSV,N -16,%r2,labeld
+
+ CMPICLR,OD 1000,%r0,%r31
+
+ COMBF,<= %r0,%r2,labeld
+ COMBF,<<,N %r16,%r2,labeld
+
+ COMBT,<= %r0,%r2,labeld
+ COMBT,<<,N %r16,%r2,labeld
+
+ COMCLR %r11,%r12,%r13
+ COMCLR,>= %r11,%r12,%r13
+
+ COMIBF,<= 0,%r2,labeld
+ COMIBF,<<=,N -16,%r2,labeld
+
+ COMIBT,<= 0,%r2,labeld
+ COMIBT,<,N -16,%r2,labeld
+
+ COMICLR 1,%r3,%r4
+ COMICLR,EV 157,%r3,%r4
+
+ COPR,0,0
+ COPR,7,0
+ COPR,7,255
+
+ COPY %r3,%r4
+
+ CSTDS,0 8,0(%sr1,%r31)
+ CSTDS,7,MA 11,2(%sr1,%r3)
+ CSTDS,4,MB 14,2(%sr1,%r3)
+
+ CSTWS,0 8,0(%sr1,%r31)
+ CSTWS,7,MA 11,2(%sr1,%r3)
+ CSTWS,4,MB 14,2(%sr1,%r3)
+
+ labeld
+ DCOR %r3,%r4
+ DCOR,I %r3,%r4
+ DCOR,SBZ %r4,%r5
+ DCOR,SHZ %r4,%r6
+ DCOR,SDC %r4,%r7
+ DCOR,SBC %r4,%r8
+ DCOR,SHC %r4,%r9
+ DCOR,NBZ %r4,%r10
+ DCOR,NHZ %r4,%r11
+ DCOR,NDC %r4,%r12
+ DCOR,NBC %r4,%r13
+ DCOR,NHC %r4,%r14
+
+ DEP %r21,14,3,%r22
+ DEP,>= %r21,14,3,%r22
+
+ DEPI 1,14,3,%r22
+ DEPI,>= 2,14,3,%r22
+
+ DEPW %r19,1,2,%r1
+ DEPW,Z %r19,1,2,%r1
+ DEPW,Z %r19,%cr11,31,%r1
+ DEPW,Z,< %r19,30,1,%r1
+
+ DEPWI 15,0,1,%r2
+ DEPWI,Z -16,0,1,%r2
+
+ DIAG 123456
+
+ DS %r1,%r2,%r3
+ DS,<> %r1,%r2,%r3
+
+ labele
+ EXTRS %r1,3,4,%r2
+ EXTRS,OD %r1,3,4,%r2
+
+ EXTRU %r1,3,4,%r2
+ EXTRU,EV %r1,3,4,%r2
+
+ EXTRW %r0,3,4,%r1
+ EXTRW,S %r0,3,4,%r1
+ EXTRW,U %r0,3,4,%r1
+ EXTRW,U,EV %r0,3,4,%r1
+ EXTRW,<> %r0,%cr11,4,%r1
+
+ labelf
+ FABS,SGL %fr2,%fr3
+ FABS,DBL %fr2,%fr6
+
+ FADD,SGL %fr2,%fr4,%fr6
+ FADD,DBL %fr2,%fr4,%fr6
+
+ FCMP,SGL %fr3,%fr2
+ FCMP,DBL,false %fr3,%fr2
+ FCMP,DBL,? %fr3,%fr2
+ FCMP,DBL,!<=> %fr3,%fr2
+ FCMP,DBL,= %fr3,%fr2
+ FCMP,DBL,=T %fr3,%fr2
+ FCMP,DBL,?= %fr3,%fr2
+ FCMP,DBL,!<> %fr3,%fr2
+ FCMP,DBL,!?>= %fr3,%fr2
+ FCMP,DBL,< %fr3,%fr2
+ FCMP,DBL,?< %fr3,%fr2
+ FCMP,DBL,!>= %fr3,%fr2
+ FCMP,DBL,!?> %fr3,%fr2
+ FCMP,DBL,<= %fr3,%fr2
+ FCMP,DBL,?<= %fr3,%fr2
+ FCMP,DBL,!> %fr3,%fr2
+ FCMP,DBL,!?<= %fr3,%fr2
+ FCMP,DBL,> %fr3,%fr2
+ FCMP,DBL,?> %fr3,%fr2
+ FCMP,DBL,!<= %fr3,%fr2
+ FCMP,DBL,!?< %fr3,%fr2
+ FCMP,DBL,>= %fr3,%fr2
+ FCMP,DBL,?>= %fr3,%fr2
+ FCMP,DBL,!< %fr3,%fr2
+ FCMP,DBL,!?= %fr3,%fr2
+ FCMP,DBL,<> %fr3,%fr2
+ FCMP,DBL,!= %fr3,%fr2
+ FCMP,DBL,!=T %fr3,%fr2
+ FCMP,DBL,!? %fr3,%fr2
+ FCMP,DBL,<=> %fr3,%fr2
+ FCMP,DBL,true? %fr3,%fr2
+ FCMP,DBL,true %fr3,%fr2
+
+ FCNV,SGL,DBL %fr2,%fr4
+ FCNV,SGL,W %fr2,%fr4
+ FCNV,SGL,DW %fr2,%fr4
+ FCNV,SGL,QUAD %fr2,%fr4
+ FCNV,SGL,QW %fr2,%fr4
+ FCNV,W,SGL %fr2,%fr4
+ FCNV,W,DBL %fr2,%fr4
+ FCNV,W,QUAD %fr2,%fr4
+ FCNV,DBL,SGL %fr2,%fr4
+ FCNV,DBL,W %fr2,%fr4
+ FCNV,DBL,QUAD %fr2,%fr4
+ FCNV,DBL,QW %fr2,%fr4
+ FCNV,QUAD,SGL %fr2,%fr6
+ FCNV,QUAD,DBL %fr2,%fr6
+ FCNV,QUAD,W %fr2,%fr6
+ FCNV,QUAD,QW %fr2,%fr6
+ FCNV,QW,SGL %fr2,%fr4
+ FCNV,QW,DBL %fr2,%fr4
+ FCNV,QW,QUAD %fr2,%fr4
+
+ FCNVFXT,DBL %fr3,%fr4
+
+ FCPY,SGL %fr5,%fr6
+ FCPY,DBL %fr5,%fr6
+
+ FDC %r3(0,%r3)
+ FDC,M 0(0,%r4)
+
+ FDCE,M %r0(%sr3,%r7)
+
+ FDIV,DBL %fr1,%fr0,%fr2
+
+ FIC %r4(0,%r5)
+ FIC,M %r4(%sr2,%r5)
+
+ FICE,M %r0(%sr1,%r8)
+
+ FID
+
+ FLDD 0(0,%r1),%fr1
+ FLDD,MA 10(0,%r1),%fr1
+ FLDD,MB 0(0,%r1),%fr1
+ FLDD,O 0(0,%r1),%fr1
+ FLDD,MA,SL 4(0,%r1),%fr1
+
+ FLDDS 0(0,%r1),%fr1
+ FLDDS,MA 10(0,%r1),%fr1
+ FLDDS,MB 0(0,%r1),%fr1
+
+ FLDDX 0(0,%r1),%fr1
+ FLDDX,S %r10(0,%r1),%fr1
+ FLDDX,M 0(0,%r1),%fr1
+ FLDDX,SM 0(0,%r1),%fr1
+
+ FLDW %r1(0,%r1),%fr1
+ FLDW,MA 10(0,%r1),%fr1
+ FLDW,MB 0(0,%r1),%fr1
+ FLDW,O 0(0,%r1),%fr1
+ FLDW,MA,SL 4(0,%r1),%fr1
+
+ FLDWS %r1(0,%r1),%fr1
+ FLDWS,MA 10(0,%r1),%fr1
+ FLDWS,MB 0(0,%r1),%fr1
+
+ FLDWX %r1(0,%r1),%fr1
+ FLDWX,S %r10(0,%r1),%fr1
+ FLDWX,M 0(0,%r1),%fr1
+ FLDWX,SM 0(0,%r1),%fr1
+
+ FMPY,SGL %fr6,%fr8,%fr10
+ FMPY,DBL %fr6,%fr8,%fr10
+
+ FMPYADD,SGL %fr16,%fr17,%fr18,%fr19,%fr20
+ FMPYADD,DBL %fr4,%fr7,%fr7,%fr5,%fr6
+
+ FMPYFADD,DBL %fr10,%fr11,%fr12,%fr13
+
+ FMPYNFADD,DBL %fr10,%fr11,%fr12,%fr13
+
+ FMPYSUB,SGL %fr16,%fr17,%fr18,%fr19,%fr30
+
+ ; PA2.0 opcodes:
+ ; FNEG,DBL %fr10,%fr1
+
+ ; PA2.0 opcodes:
+ ; FNEGABS,SGL %fr1,%fr1
+
+ FRND,DBL %fr2,%fr3
+
+ FSQRT,SGL %fr16,%fr17
+
+ FSTD %fr3,0(0,%r2)
+ FSTD,MA %fr3,8(0,%r2)
+ FSTD,MB %fr3,0(0,%r2)
+ FSTD,O %fr3,0(0,%r2)
+ FSTD,MA,SL %fr3,4(0,%r2)
+
+ FSTDS %fr3,0(0,%r2)
+ FSTDS,MA %fr3,8(0,%r2)
+ FSTDS,MB %fr3,0(0,%r2)
+
+ FSTDX %fr3,0(0,%r2)
+ FSTDX,S %fr3,%r8(0,%r2)
+ FSTDX,M %fr3,0(0,%r2)
+ FSTDX,SM %fr3,0(0,%r2)
+
+ FSTW %fr3,0(0,%r2)
+ FSTW,MA %fr3,8(0,%r2)
+ FSTW,MB %fr3,0(0,%r2)
+ FSTW,O %fr3,0(0,%r2)
+ FSTW,MA,SL %fr3,4(0,%r2)
+
+ FSTWS %fr3,0(0,%r2)
+ FSTWS,MA %fr3,8(0,%r2)
+ FSTWS,MB %fr3,0(0,%r2)
+
+ FSTWX %fr3,0(0,%r2)
+ FSTWX,S %fr3,%r8(0,%r2)
+ FSTWX,M %fr3,0(0,%r2)
+ FSTWX,SM %fr3,0(0,%r2)
+
+ FSUB,DBL %fr5,%fr2,%fr0
+
+ FTEST
+ FTEST,ACC
+ FTEST,ACC8
+ FTEST,ACC6
+ FTEST,ACC4
+ FTEST,ACC2
+ FTEST,REJ
+ FTEST,REJ8
+
+ labelg
+ GATE labelg,%r3
+ GATE,N labelu,%r3
+
+ labelh
+ ; PA2.0 opcodes:
+ ; HADD %r2,%r3,%r4
+ ; HADD,S %r2,%r3,%r4
+ ; HADD,U %r2,%r3,%r4
+
+ labeli
+ IDCOR %r4,%r17
+ IDCOR,SBZ %r4,%r17
+ IDCOR,SHZ %r4,%r17
+ IDCOR,SDC %r4,%r17
+ IDCOR,SBC %r4,%r17
+ IDCOR,SHC %r4,%r17
+ IDCOR,TR %r4,%r17
+ IDCOR,NBZ %r4,%r17
+ IDCOR,NHZ %r4,%r17
+ IDCOR,NDC %r4,%r17
+ IDCOR,NBC %r4,%r17
+ IDCOR,NHC %r4,%r17
+
+ ; PA2.0 opcodes:
+ ; IDTLBT %r1,%r2
+
+ IDTLBA %r5,(%sr2,%r4)
+
+ IDTLBP %r5,(%sr2,%r4)
+
+ ; PA2.0 opcodes:
+ ; IITLBT %r2,%r3
+
+ IITLBA %r5,(%sr2,%r4)
+
+ IITLBP %r5,(%sr2,%r4)
+
+ labelj
+ labelk
+ labell
+ LCI %r0(0,%r1),%r2
+
+ LDB %r1(0,%r1),%r1
+ LDB,MA 10(0,%r1),%r1
+ LDB,MB 0(0,%r1),%r1
+ LDB,O 0(0,%r1),%r1
+ LDB,MA,SL 4(0,%r1),%r1
+
+ LDBS %r1(0,%r1),%r1
+ LDBS,MA 10(0,%r1),%r1
+ LDBS,MB 0(0,%r1),%r1
+ LDBS,O 0(0,%r1),%r1
+ LDBS,MA,SL 4(0,%r1),%r1
+
+ LDBX %r1(0,%r1),%r1
+ LDBX,S %r10(0,%r1),%r1
+ LDBX,M 0(0,%r1),%r1
+ LDBX,SM 0(0,%r1),%r1
+
+ ; PA2.0 opcodes:
+ ; LDCD 0(0,%r1),%r1
+
+ LDCW %r1(0,%r1),%r1
+ LDCW,MA 10(0,%r1),%r1
+ LDCW,MB 0(0,%r1),%r1
+ LDCW,O 0(0,%r1),%r1
+ LDCW,MA,CO 4(0,%r1),%r1
+
+ LDCWS %r1(0,%r1),%r1
+ LDCWS,MA 10(0,%r1),%r1
+ LDCWS,MB 0(0,%r1),%r1
+ LDCWS,O 0(0,%r1),%r1
+ LDCWS,MA,CO 4(0,%r1),%r1
+
+ LDCWX %r1(0,%r1),%r1
+ LDCWX,S %r3(0,%r1),%r1
+ LDCWX,M 0(0,%r1),%r1
+ LDCWX,SM 0(0,%r1),%r1
+
+ LDH %r1(0,%r1),%r1
+ LDH,MA 10(0,%r1),%r1
+ LDH,MB 0(0,%r1),%r1
+ LDH,O 0(0,%r1),%r1
+ LDH,MA,SL 4(0,%r1),%r1
+
+ LDHS %r1(0,%r1),%r1
+ LDHS,MA 10(0,%r1),%r1
+ LDHS,MB 0(0,%r1),%r1
+ LDHS,O 0(0,%r1),%r1
+ LDHS,MA,SL 4(0,%r1),%r1
+
+ LDHX %r1(0,%r1),%r1
+ LDHX,S %r10(0,%r1),%r1
+ LDHX,M 0(0,%r1),%r1
+ LDHX,SM 0(0,%r1),%r1
+
+ LDIL 23456,%r6
+
+ LDO 100(%r3),%r20
+
+ LDSID (0,%r0),%r3
+
+ LDW %r1(0,%r1),%r1
+ LDW,MA 10(0,%r1),%r1
+ LDW,MB 0(0,%r1),%r1
+ LDW,O 0(0,%r1),%r1
+ LDW,MA,SL 4(0,%r1),%r1
+
+ LDWA %r1(%r3),%r2
+ LDWA,MA 8(%r3),%r2
+ LDWA,MB 0(%r3),%r2
+ LDWA,O 0(%r3),%r2
+ LDWA,MA,SL 8(%r3),%r2
+
+ LDWAS %r1(%r3),%r2
+ LDWAS,MA 8(%r3),%r2
+ LDWAS,MB 0(%r3),%r2
+ LDWAS,O 0(%r3),%r2
+ LDWAS,MA,SL 8(%r3),%r2
+
+ LDWAX %r1(%r3),%r2
+ LDWAX,S %r8(%r3),%r2
+ LDWAX,M 0(%r3),%r2
+ LDWAX,SM 0(%r3),%r2
+
+ LDWM 8(%sr1,%r3),%r4
+
+ LDWS %r1(0,%r1),%r1
+ LDWS,MA 10(0,%r1),%r1
+ LDWS,MB 0(0,%r1),%r1
+ LDWS,O 0(0,%r1),%r1
+ LDWS,MA,SL 4(0,%r1),%r1
+
+ LDWX %r1(%r3),%r2
+ LDWX,S %r8(%r3),%r2
+ LDWX,M 0(%r3),%r2
+ LDWX,SM 0(%r3),%r2
+
+ LPA %r0(0,%r3),%r19
+ LPA,M %r0(%sr2,%r3),%r19
+
+ labelm
+ MFCTL %cr0,%r4
+ MFCTL %cr12,%r4
+
+ ; PA2.0 opcodes:
+ ; MFIA %r25
+
+ MFSP %sr4,%r29
+
+ ; PA2.0 opcodes:
+ ; MIXH,L %r1,%r2,%r3
+
+ MOVB %r1,%r2,labelk
+ MOVB,N %r1,%r2,labelj
+ MOVB,>=,N %r1,%r2,labela
+
+ MOVIB 15,%r3,main
+ MOVIB,< 15,%r3,main
+ MOVIB,<>,N 15,%r3,main
+
+ MTCTL %r0,%cr17
+
+ MTSAR %r3
+
+ ; PA2.0 opcodes:
+ ; MTSARCM %r7
+
+ MTSM %r2
+
+ MTSP %r19,%sr3
+
+ labeln
+ NOP
+
+ labelo
+ OR %r1,%r0,%r3
+ OR,EV %r1,%r0,%r3
+
+ labelp
+ PDC %r0(0,%r1)
+ PDC,M %r0(0,%r1)
+
+ PDTLB %r8(%sr2,%r2)
+ PDTLB,M %r8(%sr2,%r2)
+ ; PA2.0 opcodes:
+ ; PDTLB,L %r8(%sr2,%r2)
+ ; PDTLB,L,M %r8(%sr2,%r2)
+
+ PDTLBE %r4(%sr1,%r21)
+ PDTLBE,M %r4(%sr1,%r21)
+
+ PITLB %r6(%sr0,%r30)
+ PITLB,M %r6(%sr0,%r30)
+
+ PITLBE %r6(%sr0,%r30)
+ PITLBE,M %r6(%sr0,%r30)
+
+ PROBE,R (%sr0,%r26),%r0,%r30
+ PROBE,W (%sr0,%r26),%r0,%r30
+
+ PROBEI,R (%sr0,%r26),10,%r30
+ PROBEI,W (%sr0,%r26),7,%r30
+
+ labelq
+ labelr
+ RFI
+ RFI,R
+
+ RFIR
+
+ RSM 31,%r24
+
+ labels
+ SH1ADD %r14,%r15,%r16
+ SH1ADD,NUV %r14,%r15,%r16
+ SH1ADD,ZNV %r14,%r15,%r16
+ SH1ADD,SV %r14,%r15,%r16
+ SH1ADD,UV %r14,%r15,%r16
+ SH1ADD,VNZ %r14,%r15,%r16
+ SH1ADD,NSV %r14,%r15,%r16
+
+ SH1ADDL %r14,%r15,%r16
+ SH1ADDL,NUV %r14,%r15,%r16
+ SH1ADDL,ZNV %r14,%r15,%r16
+ SH1ADDL,SV %r14,%r15,%r16
+ SH1ADDL,UV %r14,%r15,%r16
+ SH1ADDL,VNZ %r14,%r15,%r16
+ SH1ADDL,NSV %r14,%r15,%r16
+
+ SH1ADDO %r14,%r15,%r16
+ SH1ADDO,NUV %r14,%r15,%r16
+ SH1ADDO,ZNV %r14,%r15,%r16
+ SH1ADDO,SV %r14,%r15,%r16
+ SH1ADDO,UV %r14,%r15,%r16
+ SH1ADDO,VNZ %r14,%r15,%r16
+ SH1ADDO,NSV %r14,%r15,%r16
+
+ SH2ADD %r14,%r15,%r16
+ SH2ADD,NUV %r14,%r15,%r16
+ SH2ADD,ZNV %r14,%r15,%r16
+ SH2ADD,SV %r14,%r15,%r16
+ SH2ADD,UV %r14,%r15,%r16
+ SH2ADD,VNZ %r14,%r15,%r16
+ SH2ADD,NSV %r14,%r15,%r16
+
+ SH2ADDL %r14,%r15,%r16
+ SH2ADDL,NUV %r14,%r15,%r16
+ SH2ADDL,ZNV %r14,%r15,%r16
+ SH2ADDL,SV %r14,%r15,%r16
+ SH2ADDL,UV %r14,%r15,%r16
+ SH2ADDL,VNZ %r14,%r15,%r16
+ SH2ADDL,NSV %r14,%r15,%r16
+
+ SH2ADDO %r14,%r15,%r16
+ SH2ADDO,NUV %r14,%r15,%r16
+ SH2ADDO,ZNV %r14,%r15,%r16
+ SH2ADDO,SV %r14,%r15,%r16
+ SH2ADDO,UV %r14,%r15,%r16
+ SH2ADDO,VNZ %r14,%r15,%r16
+ SH2ADDO,NSV %r14,%r15,%r16
+
+ SH3ADD %r14,%r15,%r16
+ SH3ADD,NUV %r14,%r15,%r16
+ SH3ADD,ZNV %r14,%r15,%r16
+ SH3ADD,SV %r14,%r15,%r16
+ SH3ADD,UV %r14,%r15,%r16
+ SH3ADD,VNZ %r14,%r15,%r16
+ SH3ADD,NSV %r14,%r15,%r16
+
+ SH3ADDL %r14,%r15,%r16
+ SH3ADDL,NUV %r14,%r15,%r16
+ SH3ADDL,ZNV %r14,%r15,%r16
+ SH3ADDL,SV %r14,%r15,%r16
+ SH3ADDL,UV %r14,%r15,%r16
+ SH3ADDL,VNZ %r14,%r15,%r16
+ SH3ADDL,NSV %r14,%r15,%r16
+
+ SH3ADDO %r14,%r15,%r16
+ SH3ADDO,NUV %r14,%r15,%r16
+ SH3ADDO,ZNV %r14,%r15,%r16
+ SH3ADDO,SV %r14,%r15,%r16
+ SH3ADDO,UV %r14,%r15,%r16
+ SH3ADDO,VNZ %r14,%r15,%r16
+ SH3ADDO,NSV %r14,%r15,%r16
+
+ SHD %r3,%r2,15,%r0
+ SHD,<> %r3,%r2,15,%r0
+
+ SHLADD %r1,2,%r3,%r6
+ SHLADD,TSV %r1,2,%r3,%r6
+ SHLADD,L %r1,2,%r3,%r6
+ SHLADD,= %r1,2,%r3,%r6
+ SHLADD,< %r1,2,%r3,%r6
+ SHLADD,<= %r1,2,%r3,%r6
+ SHLADD,NUV %r1,2,%r3,%r6
+ SHLADD,ZNV %r1,2,%r3,%r6
+ SHLADD,SV %r1,2,%r3,%r6
+ SHLADD,OD %r1,2,%r3,%r6
+ SHLADD,TR %r1,2,%r3,%r6
+ SHLADD,<> %r1,2,%r3,%r6
+ SHLADD,>= %r1,2,%r3,%r6
+ SHLADD,> %r1,2,%r3,%r6
+ SHLADD,UV %r1,2,%r3,%r6
+ SHLADD,VNZ %r1,2,%r3,%r6
+ SHLADD,NSV %r1,2,%r3,%r6
+ SHLADD,EV %r1,2,%r3,%r6
+
+ SHRPW %r1,%r2,1,%r3
+
+ SPOP0,0,35
+
+ SPOP1,3,35 %r6
+
+ SPOP2,3,35 %r6
+
+ SPOP3,3,35 %r6,%r7
+
+ SSM 127,%r1
+
+ STB %r0,8(%sr1,%r3)
+ STB,BC %r0,8(%sr1,%r3)
+ STB,SL %r0,8(%sr1,%r3)
+
+ STBS %r0,8(%sr1,%r3)
+ STBS,BC %r0,8(%sr1,%r3)
+ STBS,SL %r0,8(%sr1,%r3)
+
+ STBY %r7,6(%sr1,%r30)
+ STBY,B %r7,6(%sr1,%r30)
+ STBY,E %r7,6(%sr1,%r30)
+ STBY,M %r7,6(%sr1,%r30)
+ STBY,B,BC %r7,6(%sr1,%r30)
+ STBY,E,SL %r7,6(%sr1,%r30)
+
+ STBYS %r7,6(%sr1,%r30)
+ STBYS,B,M %r7,6(%sr1,%r30)
+ STBYS,E,M %r7,6(%sr1,%r30)
+ STBYS,M %r7,6(%sr1,%r30)
+ STBYS,B,BC %r7,6(%sr1,%r30)
+ STBYS,E,SL %r7,6(%sr1,%r30)
+
+ ; PA2.0 opcodes:
+ ; STD %r18,0(%sr3,%r29)
+
+ STH %r18,0(%sr3,%r29)
+
+ STHS %r18,0(%sr3,%r29)
+
+ STW %r17,3(0,%r1)
+
+ STWA %r16,0(%r6)
+
+ STWM %r16,0(%sr3,%r6)
+
+ STWAS,MA %r16,2(%r6)
+
+ STWS %r16,0(%r6)
+
+ SUB %r1,%r0,%r3
+ SUB,B %r1,%r0,%r3
+ SUB,DB %r1,%r0,%r3
+ SUB,TC %r1,%r0,%r3
+ SUB,TSV %r1,%r0,%r3
+ SUB,TSV,TC %r1,%r0,%r3
+ SUB,B,TSV %r1,%r0,%r3
+ SUB,B,TSV,< %r1,%r0,%r3
+
+ SUBB %r8,%r9,%r10
+ SUBB,<<= %r8,%r9,%r10
+ SUBB,>>= %r8,%r9,%r10
+ SUBB,NSV %r8,%r9,%r10
+
+ SUBBO %r8,%r9,%r10
+ SUBBO,<<= %r8,%r9,%r10
+ SUBBO,>>= %r8,%r9,%r10
+ SUBBO,NSV %r8,%r9,%r10
+
+ SUBI 9,%r3,%r5
+ SUBI,TSV 2,%r3,%r5
+
+ SUBIO 5,%r27,%r26
+ SUBIO,< 5,%r27,%r26
+
+ SUBO %r8,%r9,%r10
+ SUBO,<<= %r8,%r9,%r10
+ SUBO,>>= %r8,%r9,%r10
+ SUBO,NSV %r8,%r9,%r10
+
+ SUBT %r8,%r9,%r10
+ SUBT,<= %r8,%r9,%r10
+ SUBT,>= %r8,%r9,%r10
+ SUBT,NSV %r8,%r9,%r10
+
+ SUBTO %r8,%r9,%r10
+ SUBTO,<<= %r8,%r9,%r10
+ SUBTO,>>= %r8,%r9,%r10
+ SUBTO,NSV %r8,%r9,%r10
+
+ SYNC
+
+ SYNCDMA
+
+ labelt
+ labelu
+ UADDCM %r3,%r4,%r5
+ UADDCM,TC %r3,%r4,%r5
+
+ UADDCMT %r3,%r4,%r5
+ UADDCMT,SHC %r3,%r4,%r5
+
+ UXOR %r19,%r3,%r20
+ UXOR,SHZ %r19,%r3,%r20
+
+ labelv
+ VDEP %r7,3,%r8
+ VDEP,TR %r2,3,%r8
+
+ VDEPI 7,3,%r8
+ VDEPI,= 2,3,%r8
+
+ VEXTRS %r4,30,%r4
+ VEXTRS,< %r4,30,%r4
+
+ VEXTRU %r4,30,%r4
+ VEXTRU,>= %r4,30,%r4
+
+ VSHD %r3,%r2,%r0
+ VSHD,< %r3,%r2,%r0
+
+ labelw
+ labelx
+ XMPYU %fr3,%fr4,%fr5
+
+ XOR %r0,%r1,%r2
+ XOR,TR %r0,%r1,%r2
+ XOR,>= %r0,%r1,%r2
+
+ labely
+ labelz
+ ZDEP %r18,1,2,%r2
+ ZDEP,<> %r18,2,3,%r2
+
+ ZDEPI 1,1,2,%r2
+ ZDEPI,EV 3,2,3,%r2
+
+ ZVDEP %r18,30,%r2
+ ZVDEP,< %r18,8,%r2
+
+ ZVDEPI 15,30,%r2
+ ZVDEPI,OD 8,8,%r2
+
+ .exit
+ .procend
+
+ mainend
+ .proc
+ .callinfo NO_CALLS,FRAME=0
+ .entry
+
+ NOP
+
+ .exit
+ .procend
+
+ .end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa11.com gdb/testsuite/gdb.disasm/pa11.com
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa11.com Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa11.com Thu Jul 22 17:49:51 1999
***************
*** 0 ****
--- 1 ----
+ x/583i main
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa11.exp gdb/testsuite/gdb.disasm/pa11.exp
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa11.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa11.exp Thu Jul 22 17:49:50 1999
***************
*** 0 ****
--- 1,72 ----
+ # pa11.exp Test gdb disassembly operations
+ #
+ if ![istarget "hppa*-*-*"] {
+ verbose "Tests ignored for all but hppa based targets."
+ return
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ set prms_id 0
+ set bug_id 0
+
+ # use this to debug:
+ #log_user 1
+
+ set testfile pa11
+ set srcfile ${srcdir}/${subdir}/pa11-instr.s
+ set binfile ${srcdir}/${subdir}/${testfile}
+ set outfile ${srcdir}/${subdir}/${testfile}.out
+ set comfile ${srcdir}/${subdir}/${testfile}.com
+ set tmpfile ${objdir}/${subdir}/${testfile}.tmp
+ set sedfile ${srcdir}/${subdir}/pa-sed.cmd
+ set diffile ${objdir}/${subdir}/${testfile}.dif
+ set tmp2file ${objdir}/${subdir}/${testfile}.tmp2
+ set out2file ${srcdir}/${subdir}/${testfile}.out.with_bug
+
+ # Clean up for test
+ #
+ gdb_exit
+ remote_exec build "rm -f ${tmpfile} ${tmp2file} ${diffile}"
+
+ # To build a pa 1.1 executable
+ #
+ # as -o pa11 pa11-instr.s
+ # or
+ # cc -g -o pa11 pa11-instr.s
+ #
+ ##if { [gdb_compile "${srcfile}" "${binfile}" executable {debug additional_flags="+DA1.1"}] != "" } {
+ ## gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ ##}
+
+ # This non-standard start-up sequence is taken from that for
+ # the standard "gdb_start" in
+ # /CLO/Components/WDB/Src/gdb/gdb/testsuite/lib/gdb.exp.
+ # We use it so we can run gdb in non-interactive mode.
+ #
+ global GDB
+ if { [which $GDB] == 0 } {
+ perror "$GDB does not exist."
+ exit 1
+ }
+
+ remote_exec build "${srcdir}/tools/redirect_cmd ${tmpfile} $GDB -nx -batch -silent -se ${binfile} -command ${comfile}"
+
+ # Remove actual addresses, which may vary from one OS release to another.
+ #
+ remote_exec build "${srcdir}/tools/redirect_cmd ${tmp2file} sed -f ${sedfile} ${tmpfile}"
+
+ # Should be no differences in the output.
+ #
+ remote_exec build "${srcdir}/tools/redirect_cmd ${diffile} diff ${outfile} ${tmp2file}"
+ set exec_output [remote_exec build "wc -l ${diffile}"]
+
+ if [ regexp "^0 {0 ${diffile}" ${exec_output} ] {
+ pass "Disassembly"
+ } else {
+ fail "Disassembly"
+ }
+
+ return 0
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa11.out gdb/testsuite/gdb.disasm/pa11.out
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa11.out Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa11.out Thu Jul 22 17:49:50 1999
***************
*** 0 ****
--- 1,583 ----
+ <main>: add %r1,%r1,%rp
+ <main+4>: add,c %r0,%r1,%rp
+ <main+8>: add,dc %r0,%r1,%rp
+ <main+12>: add,l %r1,%rp,%r3
+ <main+16>: add,tsv %r3,%r4,%r5
+ <main+20>: add,tsv,c %r3,%r4,%r5
+ <main+24>: add,tsv,dc %r3,%r4,%r5
+ <main+28>: addb,= %r25,%r26,<labelb>
+ <main+32>: addb,=,n %r25,%r26,<labelb>
+ <main+36>: addb,sv %dp,%ret0,<main>
+ <main+40>: addb,od %dp,%ret0,<main>
+ <main+44>: addb,tr %dp,%ret0,<main>
+ <main+48>: addb,nsv %dp,%ret0,<main>
+ <main+52>: addb,ev %dp,%ret0,<main>
+ <main+56>: addb,<> %dp,%ret0,<main>
+ <main+60>: addb,uv %r1,%r5,<main>
+ <main+64>: addb,>,n %r10,%r6,<labelb>
+ <main+68>: addb,nuv %r1,%r5,<main>
+ <main+72>: addb,<=,n %r10,%r6,<labelb>
+ <main+76>: add,c %ret0,%ret1,%sp
+ <main+80>: add,c,uv %ret0,%ret1,%sp
+ <main+84>: add,tsv,c %ret0,%ret1,%sp
+ <main+88>: add,tsv,c,uv %ret0,%ret1,%sp
+ <main+92>: addi 0,%rp,%r0
+ <main+96>: addi,> 1,%r3,%r0
+ <main+100>: addi,< 2,%r4,%r0
+ <main+104>: addib,>= -1,%r5,<main>
+ <main+108>: addib,<=,n 0xa,%r6,<labelb>
+ <main+112>: addib,uv -1,%r5,<main>
+ <main+116>: addib,>,n 0xa,%r6,<labelb>
+ <main+120>: addib,nuv -1,%r5,<main>
+ <main+124>: addib,<=,n 0xa,%r6,<labelb>
+ <main+128>: addil L'-0x800,%r3,%r1
+ <main+132>: addil L'0x88b8000,%r3,%r1
+ <main+136>: addi,tsv 4,%r22,%r21
+ <main+140>: addi,tsv,< 4,%r22,%r21
+ <main+144>: addi,tc 4,%r22,%r21
+ <main+148>: addi,tc,tr 4,%r22,%r21
+ <main+152>: addi,tsv,tc 0x3a6,%r25,%r24
+ <main+156>: addi,tsv,tc,<> 0x3ff,%r25,%r24
+ <main+160>: add,tsv %ret0,%ret1,%sp
+ <main+164>: add,tsv,sv %ret0,%ret1,%sp
+ <main+168>: add,l %ret0,%ret1,%sp
+ <main+172>: add,l,nsv %ret0,%ret1,%sp
+ <main+176>: and %sp,%r31,%sp
+ <main+180>: and,< %sp,%r31,%sp
+ <main+184>: andcm %r26,%dp,%ret0
+ <main+188>: andcm,> %r26,%dp,%ret0
+ <labelb>: b <labelc>
+ <labelb+4>: b,n <labelc>
+ <labelb+8>: b,gate <labelc>,%r0
+ <labelb+12>: b,l <labelb>,%r3
+ <labelb+16>: bb,< %r9,%sar,<labelc>
+ <labelb+20>: bb,>=,n %r9,0x1f,<labelc>
+ <labelb+24>: be 0x64(%sr4,%r11)
+ <labelb+28>: be,l 0(%sr4,%r11)
+ <labelb+32>: b,l <labelb>,%r3
+ <labelb+36>: b,l,n <labelb>,%r3
+ <labelb+40>: be,l 0x3038(%sr0,%r3)
+ <labelb+44>: be,l,n 0x3038(%sr0,%r3)
+ <labelb+48>: blr %r31,%r3
+ <labelb+52>: blr,n %r0,%r3
+ <labelb+56>: break 0,1
+ <labelb+60>: break 0x1f,0x3e8
+ <labelb+64>: bv %r0(%r1)
+ <labelb+68>: bv,n %r0(%r20)
+ <labelb+72>: bb,< %r3,%sar,<main>
+ <labelb+76>: bb,<,n %r3,%sar,<main>
+ <labelb+80>: bve (%r5)
+ <labelb+84>: bve,pop (%r5)
+ <labelc>: fldd 0(%sr2,%r0),%fr0
+ <labelc+4>: cldd,1,ma 1(%sr2,%r1),2
+ <labelc+8>: cldd,2,mb 9(%sr2,%r6),3
+ <labelc+12>: fldd %r3(%sr2,%r10),%fr0
+ <labelc+16>: fldd,s %r3(%sr2,%r20),%fr1
+ <labelc+20>: cldd,1,m %r3(%sr2,%sp),2
+ <labelc+24>: cldd,2,sm %r3(%sr2,%r0),3
+ <labelc+28>: fldw 0(%sr2,%r0),%fr0
+ <labelc+32>: fldw,ma 3(%sr2,%r0),%fr2R
+ <labelc+36>: cldw,2,mb 7(%sr2,%r0),3
+ <labelc+40>: fldw %r3(%sr2,%r0),%fr0
+ <labelc+44>: fldw,s %r3(%sr2,%r0),%fr1
+ <labelc+48>: fldw,m %r3(%sr2,%r0),%fr2R
+ <labelc+52>: cldw,2,sm %r3(%sr2,%r0),3
+ <labelc+56>: cmpb,< %r11,%r12,<labelc>
+ <labelc+60>: cmpb,>=,n %r11,%r12,<main>
+ <labelc+64>: cmpclr,<> %rp,%r3,%r4
+ <labelc+68>: cmpib,<= 0,%rp,<labeld>
+ <labelc+72>: cmpib,nsv,n -0x10,%rp,<labeld>
+ <labelc+76>: cmpiclr,od 0x3e8,%r0,%r31
+ <labelc+80>: cmpb,> %r0,%rp,<labeld>
+ <labelc+84>: cmpb,>>=,n %r16,%rp,<labeld>
+ <labelc+88>: cmpb,<= %r0,%rp,<labeld>
+ <labelc+92>: cmpb,<<,n %r16,%rp,<labeld>
+ <labelc+96>: cmpclr %r11,%r12,%r13
+ <labelc+100>: cmpclr,>= %r11,%r12,%r13
+ <labelc+104>: cmpib,> 0,%rp,<labeld>
+ <labelc+108>: cmpib,>>,n -0x10,%rp,<labeld>
+ <labelc+112>: cmpib,<= 0,%rp,<labeld>
+ <labelc+116>: cmpib,<,n -0x10,%rp,<labeld>
+ <labelc+120>: cmpiclr 1,%r3,%r4
+ <labelc+124>: cmpiclr,ev 0x9d,%r3,%r4
+ <labelc+128>: fid
+ <labelc+132>: copr,7,0
+ <labelc+136>: copr,7,0xff
+ <labelc+140>: copy %r3,%r4
+ <labelc+144>: fstd %fr8,0(%sr1,%r31)
+ <labelc+148>: cstd,7,ma 11,2(%sr1,%r3)
+ <labelc+152>: cstd,4,mb 14,2(%sr1,%r3)
+ <labelc+156>: fstw %fr8,0(%sr1,%r31)
+ <labelc+160>: cstw,7,ma 11,2(%sr1,%r3)
+ <labelc+164>: cstw,4,mb 14,2(%sr1,%r3)
+ <labeld>: dcor %r3,%r4
+ <labeld+4>: dcor,i %r3,%r4
+ <labeld+8>: dcor,sbz %r4,%r5
+ <labeld+12>: dcor,shz %r4,%r6
+ <labeld+16>: dcor,sdc %r4,%r7
+ <labeld+20>: dcor,sbc %r4,%r8
+ <labeld+24>: dcor,shc %r4,%r9
+ <labeld+28>: dcor,nbz %r4,%r10
+ <labeld+32>: dcor,nhz %r4,%r11
+ <labeld+36>: dcor,ndc %r4,%r12
+ <labeld+40>: dcor,nbc %r4,%r13
+ <labeld+44>: dcor,nhc %r4,%r14
+ <labeld+48>: depw %r21,14,3,%r22
+ <labeld+52>: depw,>= %r21,14,3,%r22
+ <labeld+56>: depwi 1,14,3,%r22
+ <labeld+60>: depwi,>= 2,14,3,%r22
+ <labeld+64>: depw %r19,1,2,%r1
+ <labeld+68>: depw,z %r19,1,2,%r1
+ <labeld+72>: depw,z %r19,%sar,31,%r1
+ <labeld+76>: depw,z,< %r19,30,1,%r1
+ <labeld+80>: depwi 0xf,0,1,%rp
+ <labeld+84>: depwi,z -0x10,0,1,%rp
+ <labeld+88>: diag 0x1e240
+ <labeld+92>: ds %r1,%rp,%r3
+ <labeld+96>: ds,<> %r1,%rp,%r3
+ <labeld+100>: extrw,s %r1,3,4,%rp
+ <labeld+104>: extrw,s,od %r1,3,4,%rp
+ <labeld+108>: extrw,u %r1,3,4,%rp
+ <labeld+112>: extrw,u,ev %r1,3,4,%rp
+ <labeld+116>: extrw,s %r0,3,4,%r1
+ <labeld+120>: extrw,s %r0,3,4,%r1
+ <labeld+124>: extrw,u %r0,3,4,%r1
+ <labeld+128>: extrw,u,ev %r0,3,4,%r1
+ <labeld+132>: extrw,s,<> %r0,%sar,4,%r1
+ <labeld+136>: fabs,sgl %fr2,%fr3
+ <labeld+140>: fabs,dbl %fr2,%fr6
+ <labeld+144>: fadd,sgl %fr2,%fr4,%fr6
+ <labeld+148>: fadd,dbl %fr2,%fr4,%fr6
+ <labeld+152>: fcmp,sgl,false? %fr3,%fr2
+ <labeld+156>: fcmp,dbl,false %fr3,%fr2
+ <labeld+160>: fcmp,dbl,? %fr3,%fr2
+ <labeld+164>: fcmp,dbl,!<=> %fr3,%fr2
+ <labeld+168>: fcmp,dbl,= %fr3,%fr2
+ <labeld+172>: fcmp,dbl,=t %fr3,%fr2
+ <labeld+176>: fcmp,dbl,?= %fr3,%fr2
+ <labeld+180>: fcmp,dbl,!<> %fr3,%fr2
+ <labeld+184>: fcmp,dbl,!?>= %fr3,%fr2
+ <labeld+188>: fcmp,dbl,< %fr3,%fr2
+ <labeld+192>: fcmp,dbl,?< %fr3,%fr2
+ <labeld+196>: fcmp,dbl,!>= %fr3,%fr2
+ <labeld+200>: fcmp,dbl,!?> %fr3,%fr2
+ <labeld+204>: fcmp,dbl,<= %fr3,%fr2
+ <labeld+208>: fcmp,dbl,?<= %fr3,%fr2
+ <labeld+212>: fcmp,dbl,!> %fr3,%fr2
+ <labeld+216>: fcmp,dbl,!?<= %fr3,%fr2
+ <labeld+220>: fcmp,dbl,> %fr3,%fr2
+ <labeld+224>: fcmp,dbl,?> %fr3,%fr2
+ <labeld+228>: fcmp,dbl,!<= %fr3,%fr2
+ <labeld+232>: fcmp,dbl,!?< %fr3,%fr2
+ <labeld+236>: fcmp,dbl,>= %fr3,%fr2
+ <labeld+240>: fcmp,dbl,?>= %fr3,%fr2
+ <labeld+244>: fcmp,dbl,!< %fr3,%fr2
+ <labeld+248>: fcmp,dbl,!?= %fr3,%fr2
+ <labeld+252>: fcmp,dbl,<> %fr3,%fr2
+ <labeld+256>: fcmp,dbl,!= %fr3,%fr2
+ <labeld+260>: fcmp,dbl,!=t %fr3,%fr2
+ <labeld+264>: fcmp,dbl,!? %fr3,%fr2
+ <labeld+268>: fcmp,dbl,<=> %fr3,%fr2
+ <labeld+272>: fcmp,dbl,true? %fr3,%fr2
+ <labeld+276>: fcmp,dbl,true %fr3,%fr2
+ <labeld+280>: fcnv,sgl,dbl %fr2,%fr4
+ <labeld+284>: fcnv,sgl,w %fr2,%fr4
+ <labeld+288>: fcnv,sgl,dw %fr2,%fr4
+ <labeld+292>: fcnv,sgl,quad %fr2,%fr4
+ <labeld+296>: fcnv,sgl,qw %fr2,%fr4
+ <labeld+300>: fcnv,w,sgl %fr2,%fr4
+ <labeld+304>: fcnv,w,dbl %fr2,%fr4
+ <labeld+308>: fcnv,w,quad %fr2,%fr4
+ <labeld+312>: fcnv,dbl,sgl %fr2,%fr4
+ <labeld+316>: fcnv,dbl,w %fr2,%fr4
+ <labeld+320>: fcnv,dbl,quad %fr2,%fr4
+ <labeld+324>: fcnv,dbl,qw %fr2,%fr4
+ <labeld+328>: fcnv,quad,sgl %fr2,%fr6
+ <labeld+332>: fcnv,quad,dbl %fr2,%fr6
+ <labeld+336>: fcnv,quad,w %fr2,%fr6
+ <labeld+340>: fcnv,quad,qw %fr2,%fr6
+ <labeld+344>: fcnv,qw,sgl %fr2,%fr4
+ <labeld+348>: fcnv,qw,dbl %fr2,%fr4
+ <labeld+352>: fcnv,qw,quad %fr2,%fr4
+ <labeld+356>: fcnv,t,dbl,w %fr3,%fr4
+ <labeld+360>: fcpy,sgl %fr5,%fr6
+ <labeld+364>: fcpy,dbl %fr5,%fr6
+ <labeld+368>: fdc %r3(%sr0,%r3)
+ <labeld+372>: fdc,m %r0(%sr0,%r4)
+ <labeld+376>: fdce,m %r0(%sr3,%r7)
+ <labeld+380>: fdiv,dbl %fr1,%fr0,%fr2
+ <labeld+384>: fic %r4(%sr0,%r5)
+ <labeld+388>: fic,m %r4(%sr2,%r5)
+ <labeld+392>: fice,m %r0(%sr1,%r8)
+ <labeld+396>: fid
+ <labeld+400>: fldd 0(%sr0,%r1),%fr1
+ <labeld+404>: fldd,ma 0xa(%sr0,%r1),%fr1
+ <labeld+408>: fldd,mb 0(%sr0,%r1),%fr1
+ <labeld+412>: fldd,o 0(%sr0,%r1),%fr1
+ <labeld+416>: fldd,ma,sl 4(%sr0,%r1),%fr1
+ <labeld+420>: fldd 0(%sr0,%r1),%fr1
+ <labeld+424>: fldd,ma 0xa(%sr0,%r1),%fr1
+ <labeld+428>: fldd,mb 0(%sr0,%r1),%fr1
+ <labeld+432>: fldd %r0(%sr0,%r1),%fr1
+ <labeld+436>: fldd,s %r10(%sr0,%r1),%fr1
+ <labeld+440>: fldd,m %r0(%sr0,%r1),%fr1
+ <labeld+444>: fldd,sm %r0(%sr0,%r1),%fr1
+ <labeld+448>: fldw %r1(%sr0,%r1),%fr1
+ <labeld+452>: fldw,ma 0xa(%sr0,%r1),%fr1
+ <labeld+456>: fldw,mb 0(%sr0,%r1),%fr1
+ <labeld+460>: fldw,o 0(%sr0,%r1),%fr1
+ <labeld+464>: fldw,ma,sl 4(%sr0,%r1),%fr1
+ <labeld+468>: fldw 1(%sr0,%r1),%fr1
+ <labeld+472>: fldw,ma 0xa(%sr0,%r1),%fr1
+ <labeld+476>: fldw,mb 0(%sr0,%r1),%fr1
+ <labeld+480>: fldw %r1(%sr0,%r1),%fr1
+ <labeld+484>: fldw,s %r10(%sr0,%r1),%fr1
+ <labeld+488>: fldw,m %r0(%sr0,%r1),%fr1
+ <labeld+492>: fldw,sm %r0(%sr0,%r1),%fr1
+ <labeld+496>: fmpy,sgl %fr6,%fr8,%fr10
+ <labeld+500>: fmpy,dbl %fr6,%fr8,%fr10
+ <labeld+504>: fmpyadd,sgl %fr16,%fr17,%fr18,%fr19,%fr20
+ <labeld+508>: fmpyadd,dbl %fr4,%fr7,%fr7,%fr5,%fr6
+ <labeld+512>: fmpyfadd,dbl %fr10,%fr11,%fr12,%fr13
+ <labeld+516>: fmpynfadd,dbl %fr10,%fr11,%fr12,%fr13
+ <labeld+520>: fmpysub,sgl %fr16,%fr17,%fr18,%fr19,%fr30
+ <labeld+524>: frnd,dbl %fr2,%fr3
+ <labeld+528>: fsqrt,sgl %fr16,%fr17
+ <labeld+532>: fstd %fr3,0(%sr0,%rp)
+ <labeld+536>: fstd,ma %fr3,8(%sr0,%rp)
+ <labeld+540>: fstd,mb %fr3,0(%sr0,%rp)
+ <labeld+544>: fstd,o %fr3,0(%sr0,%rp)
+ <labeld+548>: fstd,ma,sl %fr3,4(%sr0,%rp)
+ <labeld+552>: fstd %fr3,0(%sr0,%rp)
+ <labeld+556>: fstd,ma %fr3,8(%sr0,%rp)
+ <labeld+560>: fstd,mb %fr3,0(%sr0,%rp)
+ <labeld+564>: fstd %fr3,%r0(%sr0,%rp)
+ <labeld+568>: fstd,s %fr3,%r8(%sr0,%rp)
+ <labeld+572>: fstd,m %fr3,%r0(%sr0,%rp)
+ <labeld+576>: fstd,sm %fr3,%r0(%sr0,%rp)
+ <labeld+580>: fstw %fr3,0(%sr0,%rp)
+ <labeld+584>: fstw,ma %fr3,8(%sr0,%rp)
+ <labeld+588>: fstw,mb %fr3,0(%sr0,%rp)
+ <labeld+592>: fstw,o %fr3,0(%sr0,%rp)
+ <labeld+596>: fstw,ma,sl %fr3,4(%sr0,%rp)
+ <labeld+600>: fstw %fr3,0(%sr0,%rp)
+ <labeld+604>: fstw,ma %fr3,8(%sr0,%rp)
+ <labeld+608>: fstw,mb %fr3,0(%sr0,%rp)
+ <labeld+612>: fstw %fr3,%r0(%sr0,%rp)
+ <labeld+616>: fstw,s %fr3,%r8(%sr0,%rp)
+ <labeld+620>: fstw,m %fr3,%r0(%sr0,%rp)
+ <labeld+624>: fstw,sm %fr3,%r0(%sr0,%rp)
+ <labeld+628>: fsub,dbl %fr5,%fr2,%fr0
+ <labeld+632>: ftest
+ <labeld+636>: ftest,acc
+ <labeld+640>: ftest,acc8
+ <labeld+644>: ftest,acc6
+ <labeld+648>: ftest,acc4
+ <labeld+652>: ftest,acc2
+ <labeld+656>: ftest,rej
+ <labeld+660>: ftest,rej8
+ <labelg>: b,gate <labelg>,%r3
+ <labelg+4>: b,gate,n <labelu>,%r3
+ <labelg+8>: dcor,i %r4,%r17
+ <labelg+12>: dcor,i,sbz %r4,%r17
+ <labelg+16>: dcor,i,shz %r4,%r17
+ <labelg+20>: dcor,i,sdc %r4,%r17
+ <labelg+24>: dcor,i,sbc %r4,%r17
+ <labelg+28>: dcor,i,shc %r4,%r17
+ <labelg+32>: dcor,i,tr %r4,%r17
+ <labelg+36>: dcor,i,nbz %r4,%r17
+ <labelg+40>: dcor,i,nhz %r4,%r17
+ <labelg+44>: dcor,i,ndc %r4,%r17
+ <labelg+48>: dcor,i,nbc %r4,%r17
+ <labelg+52>: dcor,i,nhc %r4,%r17
+ <labelg+56>: idtlba %r5,(%sr2,%r4)
+ <labelg+60>: idtlbp %r5,(%sr2,%r4)
+ <labelg+64>: iitlba %r5,(%sr2,%r4)
+ <labelg+68>: iitlbp %r5,(%sr2,%r4)
+ <labelk>: lci %r0(%sr0,%r1),%rp
+ <labelk+4>: ldb %r1(%sr0,%r1),%r1
+ <labelk+8>: ldb,ma 0xa(%sr0,%r1),%r1
+ <labelk+12>: ldb,mb 0(%sr0,%r1),%r1
+ <labelk+16>: ldb,o 0(%sr0,%r1),%r1
+ <labelk+20>: ldb,ma,sl 4(%sr0,%r1),%r1
+ <labelk+24>: ldb 1(%sr0,%r1),%r1
+ <labelk+28>: ldb,ma 0xa(%sr0,%r1),%r1
+ <labelk+32>: ldb,mb 0(%sr0,%r1),%r1
+ <labelk+36>: ldb,o 0(%sr0,%r1),%r1
+ <labelk+40>: ldb,ma,sl 4(%sr0,%r1),%r1
+ <labelk+44>: ldb %r1(%sr0,%r1),%r1
+ <labelk+48>: ldb,s %r10(%sr0,%r1),%r1
+ <labelk+52>: ldb,m %r0(%sr0,%r1),%r1
+ <labelk+56>: ldb,sm %r0(%sr0,%r1),%r1
+ <labelk+60>: ldcw %r1(%sr0,%r1),%r1
+ <labelk+64>: ldcw,ma 0xa(%sr0,%r1),%r1
+ <labelk+68>: ldcw,mb 0(%sr0,%r1),%r1
+ <labelk+72>: ldcw,o 0(%sr0,%r1),%r1
+ <labelk+76>: ldcw,ma,co 4(%sr0,%r1),%r1
+ <labelk+80>: ldcw 1(%sr0,%r1),%r1
+ <labelk+84>: ldcw,ma 0xa(%sr0,%r1),%r1
+ <labelk+88>: ldcw,mb 0(%sr0,%r1),%r1
+ <labelk+92>: ldcw,o 0(%sr0,%r1),%r1
+ <labelk+96>: ldcw,ma,co 4(%sr0,%r1),%r1
+ <labelk+100>: ldcw %r1(%sr0,%r1),%r1
+ <labelk+104>: ldcw,s %r3(%sr0,%r1),%r1
+ <labelk+108>: ldcw,m %r0(%sr0,%r1),%r1
+ <labelk+112>: ldcw,sm %r0(%sr0,%r1),%r1
+ <labelk+116>: ldh %r1(%sr0,%r1),%r1
+ <labelk+120>: ldh,ma 0xa(%sr0,%r1),%r1
+ <labelk+124>: ldh,mb 0(%sr0,%r1),%r1
+ <labelk+128>: ldh,o 0(%sr0,%r1),%r1
+ <labelk+132>: ldh,ma,sl 4(%sr0,%r1),%r1
+ <labelk+136>: ldh 1(%sr0,%r1),%r1
+ <labelk+140>: ldh,ma 0xa(%sr0,%r1),%r1
+ <labelk+144>: ldh,mb 0(%sr0,%r1),%r1
+ <labelk+148>: ldh,o 0(%sr0,%r1),%r1
+ <labelk+152>: ldh,ma,sl 4(%sr0,%r1),%r1
+ <labelk+156>: ldh %r1(%sr0,%r1),%r1
+ <labelk+160>: ldh,s %r10(%sr0,%r1),%r1
+ <labelk+164>: ldh,m %r0(%sr0,%r1),%r1
+ <labelk+168>: ldh,sm %r0(%sr0,%r1),%r1
+ <labelk+172>: ldil L'0x2dd0000,%r6
+ <labelk+176>: ldo 0x64(%r3),%r20
+ <labelk+180>: ldsid (%sr0,%r0),%r3
+ <labelk+184>: ldw %r1(%sr0,%r1),%r1
+ <labelk+188>: ldw,ma 0xa(%sr0,%r1),%r1
+ <labelk+192>: ldw,mb 0(%sr0,%r1),%r1
+ <labelk+196>: ldw,o 0(%sr0,%r1),%r1
+ <labelk+200>: ldw,ma,sl 4(%sr0,%r1),%r1
+ <labelk+204>: ldwa %r1(%r3),%rp
+ <labelk+208>: ldwa,ma 8(%r3),%rp
+ <labelk+212>: ldwa,mb 0(%r3),%rp
+ <labelk+216>: ldwa,o 0(%r3),%rp
+ <labelk+220>: ldwa,ma,sl 8(%r3),%rp
+ <labelk+224>: ldwa 1(%r3),%rp
+ <labelk+228>: ldwa,ma 8(%r3),%rp
+ <labelk+232>: ldwa,mb 0(%r3),%rp
+ <labelk+236>: ldwa,o 0(%r3),%rp
+ <labelk+240>: ldwa,ma,sl 8(%r3),%rp
+ <labelk+244>: ldwa %r1(%r3),%rp
+ <labelk+248>: ldwa,s %r8(%r3),%rp
+ <labelk+252>: ldwa,m %r0(%r3),%rp
+ <labelk+256>: ldwa,sm %r0(%r3),%rp
+ <labelk+260>: ldw,ma 8(%sr1,%r3),%r4
+ <labelk+264>: ldw 1(%sr0,%r1),%r1
+ <labelk+268>: ldw,ma 0xa(%sr0,%r1),%r1
+ <labelk+272>: ldw,mb 0(%sr0,%r1),%r1
+ <labelk+276>: ldw,o 0(%sr0,%r1),%r1
+ <labelk+280>: ldw,ma,sl 4(%sr0,%r1),%r1
+ <labelk+284>: ldw %r1(%sr0,%r3),%rp
+ <labelk+288>: ldw,s %r8(%sr0,%r3),%rp
+ <labelk+292>: ldw,m %r0(%sr0,%r3),%rp
+ <labelk+296>: ldw,sm %r0(%sr0,%r3),%rp
+ <labelk+300>: lpa %r0(%sr0,%r3),%r19
+ <labelk+304>: lpa,m %r0(%sr2,%r3),%r19
+ <labelk+308>: mfctl %rctr,%r4
+ <labelk+312>: mfctl %pidr3,%r4
+ <labelk+316>: mfsp %sr4,%ret1
+ <labelk+320>: movb %r1,%rp,<labelk>
+ <labelk+324>: movb,n %r1,%rp,<labelk>
+ <labelk+328>: movb,>=,n %r1,%rp,<main>
+ <labelk+332>: movib 0xf,%r3,<main>
+ <labelk+336>: movib,< 0xf,%r3,<main>
+ <labelk+340>: movib,<>,n 0xf,%r3,<main>
+ <labelk+344>: mtctl %r0,%pcsq
+ <labelk+348>: mtsar %r3
+ <labelk+352>: mtsm %rp
+ <labelk+356>: mtsp %r19,%sr3
+ <labelk+360>: nop
+ <labelk+364>: or %r1,%r0,%r3
+ <labelk+368>: or,ev %r1,%r0,%r3
+ <labelk+372>: pdc %r0(%sr0,%r1)
+ <labelk+376>: pdc,m %r0(%sr0,%r1)
+ <labelk+380>: pdtlb %r8(%sr2,%rp)
+ <labelk+384>: pdtlb,m %r8(%sr2,%rp)
+ <labelk+388>: pdtlbe %r4(%sr1,%r21)
+ <labelk+392>: pdtlbe,m %r4(%sr1,%r21)
+ <labelk+396>: pitlb %r6(%sr0,%sp)
+ <labelk+400>: pitlb,m %r6(%sr0,%sp)
+ <labelk+404>: pitlbe %r6(%sr0,%sp)
+ <labelk+408>: pitlbe,m %r6(%sr0,%sp)
+ <labelk+412>: probe,r (%sr0,%r26),%r0,%sp
+ <labelk+416>: probe,w (%sr0,%r26),%r0,%sp
+ <labelk+420>: probei,r (%sr0,%r26),0xa,%sp
+ <labelk+424>: probei,w (%sr0,%r26),7,%sp
+ <labelk+428>: rfi
+ <labelk+432>: rfi,r
+ <labelk+436>: rfi,r
+ <labelk+440>: rsm 0x1f,%r24
+ <labelk+444>: shladd %r14,1,%r15,%r16
+ <labelk+448>: shladd,nuv %r14,1,%r15,%r16
+ <labelk+452>: shladd,znv %r14,1,%r15,%r16
+ <labelk+456>: shladd,sv %r14,1,%r15,%r16
+ <labelk+460>: shladd,uv %r14,1,%r15,%r16
+ <labelk+464>: shladd,vnz %r14,1,%r15,%r16
+ <labelk+468>: shladd,nsv %r14,1,%r15,%r16
+ <labelk+472>: shladd,l %r14,1,%r15,%r16
+ <labelk+476>: shladd,l,nuv %r14,1,%r15,%r16
+ <labelk+480>: shladd,l,znv %r14,1,%r15,%r16
+ <labelk+484>: shladd,l,sv %r14,1,%r15,%r16
+ <labelk+488>: shladd,l,uv %r14,1,%r15,%r16
+ <labelk+492>: shladd,l,vnz %r14,1,%r15,%r16
+ <labelk+496>: shladd,l,nsv %r14,1,%r15,%r16
+ <labelk+500>: shladd,tsv %r14,1,%r15,%r16
+ <labelk+504>: shladd,tsv,nuv %r14,1,%r15,%r16
+ <labelk+508>: shladd,tsv,znv %r14,1,%r15,%r16
+ <labelk+512>: shladd,tsv,sv %r14,1,%r15,%r16
+ <labelk+516>: shladd,tsv,uv %r14,1,%r15,%r16
+ <labelk+520>: shladd,tsv,vnz %r14,1,%r15,%r16
+ <labelk+524>: shladd,tsv,nsv %r14,1,%r15,%r16
+ <labelk+528>: shladd %r14,2,%r15,%r16
+ <labelk+532>: shladd,nuv %r14,2,%r15,%r16
+ <labelk+536>: shladd,znv %r14,2,%r15,%r16
+ <labelk+540>: shladd,sv %r14,2,%r15,%r16
+ <labelk+544>: shladd,uv %r14,2,%r15,%r16
+ <labelk+548>: shladd,vnz %r14,2,%r15,%r16
+ <labelk+552>: shladd,nsv %r14,2,%r15,%r16
+ <labelk+556>: shladd,l %r14,2,%r15,%r16
+ <labelk+560>: shladd,l,nuv %r14,2,%r15,%r16
+ <labelk+564>: shladd,l,znv %r14,2,%r15,%r16
+ <labelk+568>: shladd,l,sv %r14,2,%r15,%r16
+ <labelk+572>: shladd,l,uv %r14,2,%r15,%r16
+ <labelk+576>: shladd,l,vnz %r14,2,%r15,%r16
+ <labelk+580>: shladd,l,nsv %r14,2,%r15,%r16
+ <labelk+584>: shladd,tsv %r14,2,%r15,%r16
+ <labelk+588>: shladd,tsv,nuv %r14,2,%r15,%r16
+ <labelk+592>: shladd,tsv,znv %r14,2,%r15,%r16
+ <labelk+596>: shladd,tsv,sv %r14,2,%r15,%r16
+ <labelk+600>: shladd,tsv,uv %r14,2,%r15,%r16
+ <labelk+604>: shladd,tsv,vnz %r14,2,%r15,%r16
+ <labelk+608>: shladd,tsv,nsv %r14,2,%r15,%r16
+ <labelk+612>: shladd %r14,3,%r15,%r16
+ <labelk+616>: shladd,nuv %r14,3,%r15,%r16
+ <labelk+620>: shladd,znv %r14,3,%r15,%r16
+ <labelk+624>: shladd,sv %r14,3,%r15,%r16
+ <labelk+628>: shladd,uv %r14,3,%r15,%r16
+ <labelk+632>: shladd,vnz %r14,3,%r15,%r16
+ <labelk+636>: shladd,nsv %r14,3,%r15,%r16
+ <labelk+640>: shladd,l %r14,3,%r15,%r16
+ <labelk+644>: shladd,l,nuv %r14,3,%r15,%r16
+ <labelk+648>: shladd,l,znv %r14,3,%r15,%r16
+ <labelk+652>: shladd,l,sv %r14,3,%r15,%r16
+ <labelk+656>: shladd,l,uv %r14,3,%r15,%r16
+ <labelk+660>: shladd,l,vnz %r14,3,%r15,%r16
+ <labelk+664>: shladd,l,nsv %r14,3,%r15,%r16
+ <labelk+668>: shladd,tsv %r14,3,%r15,%r16
+ <labelk+672>: shladd,tsv,nuv %r14,3,%r15,%r16
+ <labelk+676>: shladd,tsv,znv %r14,3,%r15,%r16
+ <labelk+680>: shladd,tsv,sv %r14,3,%r15,%r16
+ <labelk+684>: shladd,tsv,uv %r14,3,%r15,%r16
+ <labelk+688>: shladd,tsv,vnz %r14,3,%r15,%r16
+ <labelk+692>: shladd,tsv,nsv %r14,3,%r15,%r16
+ <labelk+696>: shrpw %r3,%rp,15,%r0
+ <labelk+700>: shrpw,<> %r3,%rp,15,%r0
+ <labelk+704>: shladd %r1,2,%r3,%r6
+ <labelk+708>: shladd,tsv %r1,2,%r3,%r6
+ <labelk+712>: shladd,l %r1,2,%r3,%r6
+ <labelk+716>: shladd,= %r1,2,%r3,%r6
+ <labelk+720>: shladd,< %r1,2,%r3,%r6
+ <labelk+724>: shladd,<= %r1,2,%r3,%r6
+ <labelk+728>: shladd,nuv %r1,2,%r3,%r6
+ <labelk+732>: shladd,znv %r1,2,%r3,%r6
+ <labelk+736>: shladd,sv %r1,2,%r3,%r6
+ <labelk+740>: shladd,od %r1,2,%r3,%r6
+ <labelk+744>: shladd,tr %r1,2,%r3,%r6
+ <labelk+748>: shladd,<> %r1,2,%r3,%r6
+ <labelk+752>: shladd,>= %r1,2,%r3,%r6
+ <labelk+756>: shladd,> %r1,2,%r3,%r6
+ <labelk+760>: shladd,uv %r1,2,%r3,%r6
+ <labelk+764>: shladd,vnz %r1,2,%r3,%r6
+ <labelk+768>: shladd,nsv %r1,2,%r3,%r6
+ <labelk+772>: shladd,ev %r1,2,%r3,%r6
+ <labelk+776>: shrpw %r1,%rp,1,%r3
+ <labelk+780>: spop0,0,0x23
+ <labelk+784>: spop1,3,0x23 %r6
+ <labelk+788>: spop2,3,0x23 %r6
+ <labelk+792>: spop3,3,0x23 %r6,%r7
+ <labelk+796>: ssm 0x7f,%r1
+ <labelk+800>: stb %r0,8(%sr1,%r3)
+ <labelk+804>: stb,bc %r0,8(%sr1,%r3)
+ <labelk+808>: stb,sl %r0,8(%sr1,%r3)
+ <labelk+812>: stb %r0,8(%sr1,%r3)
+ <labelk+816>: stb,bc %r0,8(%sr1,%r3)
+ <labelk+820>: stb,sl %r0,8(%sr1,%r3)
+ <labelk+824>: stby,b %r7,6(%sr1,%sp)
+ <labelk+828>: stby,b %r7,6(%sr1,%sp)
+ <labelk+832>: stby,e %r7,6(%sr1,%sp)
+ <labelk+836>: stby,b,m %r7,6(%sr1,%sp)
+ <labelk+840>: stby,b,bc %r7,6(%sr1,%sp)
+ <labelk+844>: stby,e,sl %r7,6(%sr1,%sp)
+ <labelk+848>: stby,b %r7,6(%sr1,%sp)
+ <labelk+852>: stby,b,m %r7,6(%sr1,%sp)
+ <labelk+856>: stby,e,m %r7,6(%sr1,%sp)
+ <labelk+860>: stby,b,m %r7,6(%sr1,%sp)
+ <labelk+864>: stby,b,bc %r7,6(%sr1,%sp)
+ <labelk+868>: stby,e,sl %r7,6(%sr1,%sp)
+ <labelk+872>: sth %r18,0(%sr3,%ret1)
+ <labelk+876>: sth %r18,0(%sr3,%ret1)
+ <labelk+880>: stw %r17,3(%sr0,%r1)
+ <labelk+884>: stwa %r16,0(%r6)
+ <labelk+888>: stw,ma %r16,0(%sr3,%r6)
+ <labelk+892>: stwa,ma %r16,2(%r6)
+ <labelk+896>: stw %r16,0(%sr0,%r6)
+ <labelk+900>: sub %r1,%r0,%r3
+ <labelk+904>: sub,b %r1,%r0,%r3
+ <labelk+908>: sub,db* %r1,%r0,%r3
+ <labelk+912>: sub,tc %r1,%r0,%r3
+ <labelk+916>: sub,tsv %r1,%r0,%r3
+ <labelk+920>: sub,tsv,tc %r1,%r0,%r3
+ <labelk+924>: sub,tsv,b %r1,%r0,%r3
+ <labelk+928>: sub,tsv,b,< %r1,%r0,%r3
+ <labelk+932>: sub,b %r8,%r9,%r10
+ <labelk+936>: sub,b,<<= %r8,%r9,%r10
+ <labelk+940>: sub,b,>>= %r8,%r9,%r10
+ <labelk+944>: sub,b,nsv %r8,%r9,%r10
+ <labelk+948>: sub,tsv,b %r8,%r9,%r10
+ <labelk+952>: sub,tsv,b,<<= %r8,%r9,%r10
+ <labelk+956>: sub,tsv,b,>>= %r8,%r9,%r10
+ <labelk+960>: sub,tsv,b,nsv %r8,%r9,%r10
+ <labelk+964>: subi 9,%r3,%r5
+ <labelk+968>: subio 2,%r3,%r5
+ <labelk+972>: subio 5,%dp,%r26
+ <labelk+976>: subio,< 5,%dp,%r26
+ <labelk+980>: sub,tsv %r8,%r9,%r10
+ <labelk+984>: sub,tsv,<<= %r8,%r9,%r10
+ <labelk+988>: sub,tsv,>>= %r8,%r9,%r10
+ <labelk+992>: sub,tsv,nsv %r8,%r9,%r10
+ <labelk+996>: sub,tc %r8,%r9,%r10
+ <labelk+1000>: sub,tc,<= %r8,%r9,%r10
+ <labelk+1004>: sub,tc,>= %r8,%r9,%r10
+ <labelk+1008>: sub,tc,nsv %r8,%r9,%r10
+ <labelk+1012>: sub,tsv,tc %r8,%r9,%r10
+ <labelk+1016>: sub,tsv,tc,<<= %r8,%r9,%r10
+ <labelk+1020>: sub,tsv,tc,>>= %r8,%r9,%r10
+ <labelk+1024>: sub,tsv,tc,nsv %r8,%r9,%r10
+ <labelk+1028>: sync
+ <labelk+1032>: syncdma
+ <labelu>: uaddcm %r3,%r4,%r5
+ <labelu+4>: uaddcm,tc %r3,%r4,%r5
+ <labelu+8>: uaddcm,tc %r3,%r4,%r5
+ <labelu+12>: uaddcm,tc,shc %r3,%r4,%r5
+ <labelu+16>: uxor %r19,%r3,%r20
+ <labelu+20>: uxor,shz %r19,%r3,%r20
+ <labelu+24>: depw %r7,%sar,3,%r8
+ <labelu+28>: depw,tr %rp,%sar,3,%r8
+ <labelu+32>: depwi 7,%sar,3,%r8
+ <labelu+36>: depwi,= 2,%sar,3,%r8
+ <labelu+40>: extrw,s %r4,%sar,30,%r4
+ <labelu+44>: extrw,s,< %r4,%sar,30,%r4
+ <labelu+48>: extrw,u %r4,%sar,30,%r4
+ <labelu+52>: extrw,u,>= %r4,%sar,30,%r4
+ <labelu+56>: shrpw %r3,%rp,%sar,%r0
+ <labelu+60>: shrpw,< %r3,%rp,%sar,%r0
+ <labelu+64>: xmpyu %fr3,%fr4,%fr5
+ <labelu+68>: xor %r0,%r1,%rp
+ <labelu+72>: xor,tr %r0,%r1,%rp
+ <labelu+76>: xor,>= %r0,%r1,%rp
+ <labelu+80>: depw,z %r18,1,2,%rp
+ <labelu+84>: depw,z,<> %r18,2,3,%rp
+ <labelu+88>: depwi,z 1,1,2,%rp
+ <labelu+92>: depwi,z,ev 3,2,3,%rp
+ <labelu+96>: depw,z %r18,%sar,30,%rp
+ <labelu+100>: depw,z,< %r18,%sar,8,%rp
+ <labelu+104>: depwi,z 0xf,%sar,30,%rp
+ <labelu+108>: depwi,z,od 8,%sar,8,%rp
Binary files ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20 and gdb/testsuite/gdb.disasm/pa20 differ
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20-instr.s gdb/testsuite/gdb.disasm/pa20-instr.s
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20-instr.s Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa20-instr.s Thu Jul 22 17:49:46 1999
***************
*** 0 ****
--- 1,1028 ----
+ ; assemble as "as -o pa2.exe pa20-instr.s"
+ ; or
+ ; cc -g -o +DA2.0N
+ ;
+ ; PA-RISC assembly-language test program for the debugger.
+ ;
+ ; This test is *not* intended to be executed. Rather, this test serves
+ ; as a comprehensive test for the debugger's PA disassembler.
+ ;
+
+ ; Some instructions are PA1.x, some PA2.0
+
+ .level 2.0
+
+ .code
+ .export main,ENTRY
+ .export mainend,ENTRY
+ .space $TEXT$
+ .subspa $CODE$
+
+ main
+ .proc
+ .callinfo NO_CALLS,FRAME=0
+ .entry
+
+ labela
+ PDC %r5(0,%r6)
+ PDC,M %r5(%r6)
+ FDC %r5(0,%r6)
+ FDC,M %r5(0,%r6)
+ ;;
+ ;; This gets an assembly error--it may be format in the draft manual only
+ ;; FDC 5(0,%r6)
+
+ FIC %r5(0,%r6)
+ FIC,M %r5(0,%r6)
+
+ FCNV,SGL,DBL %fr4,%fr6
+ ;;
+ ;; I don't know the magic to get the truncate flag to work
+ ;; FCNV,T,DBL,SGL %fr4,%fr6
+
+ FNEG %fr4,%fr6
+ FNEG,SGL %fr4,%fr6
+ FNEG,DBL %fr4,%fr6
+ FNEG,QUAD %fr4,%fr6
+
+ FNEGABS %fr4,%fr6
+ FNEGABS,SGL %fr4,%fr6
+ FNEGABS,DBL %fr4,%fr6
+ FNEGABS,QUAD %fr4,%fr6
+
+ FMPYFADD %fr2,%fr4,%fr6,%fr8
+ FMPYFADD,SGL %fr2,%fr4,%fr6,%fr8
+ FMPYFADD,DBL %fr2,%fr4,%fr6,%fr8
+ FMPYFADD,QUAD %fr2,%fr4,%fr6,%fr8
+
+ FMPYNFADD %fr2,%fr4,%fr6,%fr8
+ FMPYNFADD,SGL %fr2,%fr4,%fr6,%fr8
+ FMPYNFADD,DBL %fr2,%fr4,%fr6,%fr8
+ FMPYNFADD,QUAD %fr2,%fr4,%fr6,%fr8
+
+ FCMP,SGL,true %fr2,%fr4,3
+ FTEST 3
+
+ PMENB
+ PMDIS
+ PMDIS,N
+
+ MTSARCM %r5
+ IDTLBT %r5,%r6
+ IITLBT %r5,%r6
+
+ FLDD 512(%r4),%fr5
+ FLDD,MA 512(%r4),%fr5
+ FLDD,O 0(%r4),%fr5
+
+ FLDW 1024(0,%r4),%fr5
+ FLDW,MA 1024(0,%r4),%fr5
+ FLDW,MB 1024(0,%r4),%fr5
+
+ FSTD %fr5,1024(0,%r4)
+ FSTD,O %fr5,0(0,%r4)
+ FSTD,MA %fr5,1024(0,%r4)
+ FSTD,MB %fr5,1024(0,%r4)
+
+ MIXW %r4,%r5,%r6
+ MIXW,L %r4,%r5,%r6
+ MIXW,R %r4,%r5,%r6
+
+ MIXH %r4,%r5,%r6
+ MIXH,L %r4,%r5,%r6
+ MIXH,R %r4,%r5,%r6
+
+ HADD %r1,%r2,%r3
+ HADD,US %r3,%r4,%r5
+ HADD,SS %r6,%r7,%r8
+
+ HSUB %r1,%r2,%r3
+ HSUB,US %r3,%r4,%r5
+ HSUB,SS %r6,%r7,%r8
+
+ HAVG %r6,%r7,%r8
+
+ HSHLADD %r3,3,%r4,%r5
+ HSHRADD %r3,1,%r4,%r5
+
+ HSHL %r3,11,%r4
+ HSHR %r3,11,%r4
+ HSHR,U %r3,11,%r4
+ HSHR,S %r3,11,%r4
+
+ PERMH,1230 %r1,%r3
+
+ DEPDI 12,%cr11,17,%r3
+ DEPDI,Z 12,%cr11,17,%r3
+ DEPDI,Z,= 12,%cr11,17,%r3
+
+ EXTRD,< %r3,12,13,%r4
+ EXTRD,U,= %r3,%cr11,19,%r4
+
+ BB,< %r9,%cr11,labelc
+ BB,>=,N %r9,31,labelc
+
+ SHRPD,>= %r5,%r6,41,%r7
+ SHRPD,= %r1,%r2,%cr11,%r3
+ SHRPD,OD %r6,%r7,%cr11,%r3
+
+ BVE (%r6)
+ BVE,N (%r6)
+ BVE,L (%r5),%r2
+ BVE,L,PUSH (%r5),%r2
+ BVE,POP (%r5)
+
+ PUSHNOM
+ CLRBTS
+ POPBTS 6
+ PUSHBTS %r4
+
+ LDD %r1(0,%r2),%r3
+ LDD,MA 10(0,%r2),%r3
+ LDD,MB 0(0,%r2),%r3
+ LDD,O 0(0,%r2),%r3
+ LDD,MA,SL 4(0,%r2),%r3
+
+ LDDA %r1(%r2),%r3
+ LDDA,MA 8(%r2),%r3
+ LDDA,MB 0(%r2),%r3
+ LDDA,O 0(%r2),%r3
+ LDDA,MA,SL 8(%r2),%r3
+
+ STD %r1,(0,%r2)
+ STD,MA %r1,10(0,%r2)
+ STD,MB %r1,0(0,%r2)
+ STD,O %r1,0(0,%r2)
+ STD,MA,SL %r1,4(0,%r2)
+
+ STDA %r1,(%r2)
+ STDA,MA %r1,10(%r2)
+ STDA,MB %r1,0(%r2)
+ STDA,O %r1,0(%r2)
+ STDA,MA,SL %r1,4(%r2)
+
+ LDCD %r1(0,%r2),%r3
+ LDCD,M %r1(0,%r2),%r3
+ LDCD,MA 10(0,%r2),%r3
+ LDCD,MB 0(0,%r2),%r3
+ LDCD,O 0(0,%r2),%r3
+ LDCD,MA 4(0,%r2),%r3
+
+ STDBY %r1,5(0,%r2)
+ STDBY,B %r1,5(%r2)
+ STDBY,B,M %r1,5(%r2)
+ STDBY,E,M %r1,5(%r2)
+ STDBY,E %r1,5(%r2)
+
+ LDD %r1(0,%r2),%r3
+ LDD 10(0,%r2),%r3
+ ADD %r1,%r2,%r3
+ ADD,C %r0,%r1,%r2
+ ADD,DC %r0,%r1,%r2
+ ADD,L %r1,%r2,%r3
+ ADD,TSV %r3,%r4,%r5
+ ADD,C,TSV %r3,%r4,%r5
+ ADD,DC,TSV %r3,%r4,%r5
+
+ ADDB,= %r25,%r26,labelb
+ ADDB,=,N %r25,%r26,labelb
+ ADDB,SV %r27,%r28,labela
+ ADDB,OD %r27,%r28,labela
+ ADDB,TR %r27,%r28,labela
+ ADDB,NSV %r27,%r28,labela
+ ADDB,EV %r27,%r28,labela
+ ADDB,<> %r27,%r28,labela
+
+ ADDBF,NUV %r1,%r5,labela
+ ADDBF,<=,N %r10,%r6,labelb
+
+ ADDBT,NUV %r1,%r5,labela
+ ADDBT,<=,N %r10,%r6,labelb
+
+ ADDC %r28,%r29,%r30
+ ADDC,UV %r28,%r29,%r30
+
+ ADDCO %r28,%r29,%r30
+ ADDCO,UV %r28,%r29,%r30
+
+ ADDI 0,%r2,%r0
+ ADDI,> 1,%r3,%r0
+ ADDI,< 2,%r4,%r0
+
+ ADDIB,>= -1,%r5,labela
+ ADDIB,<=,N 10,%r6,labelb
+
+ ADDIBF,NUV -1,%r5,labela
+ ADDIBF,<=,N 10,%r6,labelb
+
+ ADDIBT,NUV -1,%r5,labela
+ ADDIBT,<=,N 10,%r6,labelb
+
+ ADDIL -1,%r3
+ ADDIL 70000,%r3
+
+ ADDIO 4,%r22,%r21
+ ADDIO,< 4,%r22,%r21
+
+ ADDIT 4,%r22,%r21
+ ADDIT,TR 4,%r22,%r21
+
+ ADDITO 934,%r25,%r24
+ ADDITO,<> 1023,%r25,%r24
+
+ ADDO %r28,%r29,%r30
+ ADDO,SV %r28,%r29,%r30
+
+ ADDL %r28,%r29,%r30
+ ADDL,NSV %r28,%r29,%r30
+
+ AND %r30,%r31,%r30
+ AND,< %r30,%r31,%r30
+
+ ANDCM %r26,%r27,%r28
+ ANDCM,> %r26,%r27,%r28
+
+ labelb
+ B labelc
+ B,N labelc
+ B,GATE labelc
+ B,L labelb,%r3
+
+ BB,< %r9,%cr11,labelc
+ BB,>=,N %r9,31,labelc
+
+ BE 100(%sr4,%r11)
+ BE,L 0(%sr4,%r11),%sr0,%r31
+
+ BL labelb,%r3
+ BL,N labelb,%r3
+
+ BLE 12345(%sr0,%r3)
+ BLE,N 12345(%sr0,%r3)
+
+ BLR %r31,%r3
+ BLR,N %r0,%r3
+
+ BREAK 0,1
+ BREAK 31,1000
+
+ BV 0(%r1)
+ BV,N (%r20)
+
+ BVB,< %r3,labela
+ BVB,<,N %r3,labela
+
+ BVE (%r5)
+ BVE,POP (%r5)
+ ; PA2.0 opcodes:
+ BVE,L (%r5),%r2
+ BVE,L,PUSH (%r5),%r2
+
+ labelc
+ CLDDS,0 0(%sr2,%r0),0
+ CLDDS,1,MA 1(%sr2,%r1),2
+ CLDDS,2,MB 9(%sr2,%r6),3
+
+ CLDDX,0 %r3(%sr2,%r10),0
+ CLDDX,0,S %r3(%sr2,%r20),1
+ CLDDX,1,M %r3(%sr2,%r30),2
+ CLDDX,2,SM %r3(%sr2,%r0),3
+
+ CLDWS,0 0(%sr2,%r0),0
+ CLDWS,1,MA 3(%sr2,%r0),2
+ CLDWS,2,MB 7(%sr2,%r0),3
+
+ CLDWX,0 %r3(%sr2,%r0),0
+ CLDWX,0,S %r3(%sr2,%r0),1
+ CLDWX,1,M %r3(%sr2,%r0),2
+ CLDWX,2,SM %r3(%sr2,%r0),3
+
+ CMPB,< %r11,%r12,labelc
+ CMPB,>=,N %r11,%r12,main
+
+ CMPCLR,<> %r2,%r3,%r4
+
+ CMPIB,<= 0,%r2,labeld
+ CMPIB,NSV,N -16,%r2,labeld
+
+ CMPICLR,OD 1000,%r0,%r31
+
+ COMBF,<= %r0,%r2,labeld
+ COMBF,<<,N %r16,%r2,labeld
+
+ COMBT,<= %r0,%r2,labeld
+ COMBT,<<,N %r16,%r2,labeld
+
+ COMCLR %r11,%r12,%r13
+ COMCLR,>= %r11,%r12,%r13
+
+ COMIBF,<= 0,%r2,labeld
+ COMIBF,<<=,N -16,%r2,labeld
+
+ COMIBT,<= 0,%r2,labeld
+ COMIBT,<,N -16,%r2,labeld
+
+ COMICLR 1,%r3,%r4
+ COMICLR,EV 157,%r3,%r4
+
+ COPR,0,0
+ COPR,7,0
+ COPR,7,255
+
+ COPY %r3,%r4
+
+ CSTDS,0 8,0(%sr1,%r31)
+ CSTDS,7,MA 11,2(%sr1,%r3)
+ CSTDS,4,MB 14,2(%sr1,%r3)
+
+ CSTWS,0 8,0(%sr1,%r31)
+ CSTWS,7,MA 11,2(%sr1,%r3)
+ CSTWS,4,MB 14,2(%sr1,%r3)
+
+ labeld
+ DCOR %r3,%r4
+ DCOR,I %r3,%r4
+ DCOR,SBZ %r4,%r5
+ DCOR,SHZ %r4,%r6
+ DCOR,SDC %r4,%r7
+ DCOR,SBC %r4,%r8
+ DCOR,SHC %r4,%r9
+ DCOR,NBZ %r4,%r10
+ DCOR,NHZ %r4,%r11
+ DCOR,NDC %r4,%r12
+ DCOR,NBC %r4,%r13
+ DCOR,NHC %r4,%r14
+
+ DEP %r21,14,3,%r22
+ DEP,>= %r21,14,3,%r22
+
+ DEPI 1,14,3,%r22
+ DEPI,>= 2,14,3,%r22
+
+ DEPW %r19,1,2,%r1
+ DEPW,Z %r19,1,2,%r1
+ DEPW,Z %r19,%cr11,31,%r1
+ DEPW,Z,< %r19,30,1,%r1
+
+ DEPWI 15,0,1,%r2
+ DEPWI,Z -16,0,1,%r2
+
+ DIAG 123456
+
+ DS %r1,%r2,%r3
+ DS,<> %r1,%r2,%r3
+
+ labele
+ EXTRS %r1,3,4,%r2
+ EXTRS,OD %r1,3,4,%r2
+
+ EXTRU %r1,3,4,%r2
+ EXTRU,EV %r1,3,4,%r2
+
+ EXTRW %r0,3,4,%r1
+ EXTRW,S %r0,3,4,%r1
+ EXTRW,U %r0,3,4,%r1
+ EXTRW,U,EV %r0,3,4,%r1
+ EXTRW,<> %r0,%cr11,4,%r1
+
+ labelf
+ FABS,SGL %fr2,%fr3
+ FABS,DBL %fr2,%fr6
+
+ FADD,SGL %fr2,%fr4,%fr6
+ FADD,DBL %fr2,%fr4,%fr6
+
+ FCMP,SGL %fr3,%fr2
+ FCMP,DBL,false %fr3,%fr2
+ FCMP,DBL,? %fr3,%fr2
+ FCMP,DBL,!<=> %fr3,%fr2
+ FCMP,DBL,= %fr3,%fr2
+ FCMP,DBL,=T %fr3,%fr2
+ FCMP,DBL,?= %fr3,%fr2
+ FCMP,DBL,!<> %fr3,%fr2
+ FCMP,DBL,!?>= %fr3,%fr2
+ FCMP,DBL,< %fr3,%fr2
+ FCMP,DBL,?< %fr3,%fr2
+ FCMP,DBL,!>= %fr3,%fr2
+ FCMP,DBL,!?> %fr3,%fr2
+ FCMP,DBL,<= %fr3,%fr2
+ FCMP,DBL,?<= %fr3,%fr2
+ FCMP,DBL,!> %fr3,%fr2
+ FCMP,DBL,!?<= %fr3,%fr2
+ FCMP,DBL,> %fr3,%fr2
+ FCMP,DBL,?> %fr3,%fr2
+ FCMP,DBL,!<= %fr3,%fr2
+ FCMP,DBL,!?< %fr3,%fr2
+ FCMP,DBL,>= %fr3,%fr2
+ FCMP,DBL,?>= %fr3,%fr2
+ FCMP,DBL,!< %fr3,%fr2
+ FCMP,DBL,!?= %fr3,%fr2
+ FCMP,DBL,<> %fr3,%fr2
+ FCMP,DBL,!= %fr3,%fr2
+ FCMP,DBL,!=T %fr3,%fr2
+ FCMP,DBL,!? %fr3,%fr2
+ FCMP,DBL,<=> %fr3,%fr2
+ FCMP,DBL,true? %fr3,%fr2
+ FCMP,DBL,true %fr3,%fr2
+
+ FCNV,SGL,DBL %fr2,%fr4
+ FCNV,SGL,W %fr2,%fr4
+ FCNV,SGL,DW %fr2,%fr4
+ FCNV,SGL,QUAD %fr2,%fr4
+ FCNV,SGL,QW %fr2,%fr4
+ FCNV,W,SGL %fr2,%fr4
+ FCNV,W,DBL %fr2,%fr4
+ FCNV,W,QUAD %fr2,%fr4
+ FCNV,DBL,SGL %fr2,%fr4
+ FCNV,DBL,W %fr2,%fr4
+ FCNV,DBL,QUAD %fr2,%fr4
+ FCNV,DBL,QW %fr2,%fr4
+ FCNV,QUAD,SGL %fr2,%fr6
+ FCNV,QUAD,DBL %fr2,%fr6
+ FCNV,QUAD,W %fr2,%fr6
+ FCNV,QUAD,QW %fr2,%fr6
+ FCNV,QW,SGL %fr2,%fr4
+ FCNV,QW,DBL %fr2,%fr4
+ FCNV,QW,QUAD %fr2,%fr4
+
+ FCNVFXT,DBL %fr3,%fr4
+
+ FCPY,SGL %fr5,%fr6
+ FCPY,DBL %fr5,%fr6
+
+ FDC %r3(0,%r3)
+ FDC,M 0(0,%r4)
+
+ FDCE %r0(%sr3,%r7)
+ FDCE,M %r0(%sr3,%r7)
+
+ FDIV,DBL %fr1,%fr0,%fr2
+
+ FIC %r4(0,%r5)
+ FIC,M %r4(%sr2,%r5)
+
+ FICE %r0(%sr1,%r8)
+ FICE,M %r0(%sr1,%r8)
+
+ DIAG 512
+
+ FID
+
+ FLDD 0(0,%r1),%fr1
+ FLDD,MA 10(0,%r1),%fr1
+ FLDD,MB 0(0,%r1),%fr1
+ FLDD,O 0(0,%r1),%fr1
+ FLDD,MA,SL 4(0,%r1),%fr1
+
+ FLDDS 0(0,%r1),%fr1
+ FLDDS,MA 10(0,%r1),%fr1
+ FLDDS,MB 0(0,%r1),%fr1
+
+ FLDDX 0(0,%r1),%fr1
+ FLDDX,S %r10(0,%r1),%fr1
+ FLDDX,M 0(0,%r1),%fr1
+ FLDDX,SM 0(0,%r1),%fr1
+
+ FLDW %r1(0,%r1),%fr1
+ FLDW,MA 10(0,%r1),%fr1
+ FLDW,MB 0(0,%r1),%fr1
+ FLDW,O 0(0,%r1),%fr1
+ FLDW,MA,SL 4(0,%r1),%fr1
+
+ FLDWS %r1(0,%r1),%fr1
+ FLDWS,MA 10(0,%r1),%fr1
+ FLDWS,MB 0(0,%r1),%fr1
+
+ FLDWX %r1(0,%r1),%fr1
+ FLDWX,S %r10(0,%r1),%fr1
+ FLDWX,M 0(0,%r1),%fr1
+ FLDWX,SM 0(0,%r1),%fr1
+
+ FMPY,SGL %fr6,%fr8,%fr10
+ FMPY,DBL %fr6,%fr8,%fr10
+
+ FMPYADD,SGL %fr16,%fr17,%fr18,%fr19,%fr20
+ FMPYADD,DBL %fr4,%fr7,%fr7,%fr5,%fr6
+
+ FMPYFADD,DBL %fr10,%fr11,%fr12,%fr13
+
+ FMPYNFADD,DBL %fr10,%fr11,%fr12,%fr13
+
+ FMPYSUB,SGL %fr16,%fr17,%fr18,%fr19,%fr30
+
+ ; PA2.0 opcodes:
+ FNEG,DBL %fr10,%fr1
+
+ ; PA2.0 opcodes:
+ FNEGABS,SGL %fr1,%fr1
+
+ FRND,DBL %fr2,%fr3
+
+ FSQRT,SGL %fr16,%fr17
+
+ FSTD %fr3,0(0,%r2)
+ FSTD,MA %fr3,8(0,%r2)
+ FSTD,MB %fr3,0(0,%r2)
+ FSTD,O %fr3,0(0,%r2)
+ FSTD,MA,SL %fr3,4(0,%r2)
+
+ FSTDS %fr3,0(0,%r2)
+ FSTDS,MA %fr3,8(0,%r2)
+ FSTDS,MB %fr3,0(0,%r2)
+
+ FSTDX %fr3,0(0,%r2)
+ FSTDX,S %fr3,%r8(0,%r2)
+ FSTDX,M %fr3,0(0,%r2)
+ FSTDX,SM %fr3,0(0,%r2)
+
+ FSTW %fr3,0(0,%r2)
+ FSTW,MA %fr3,8(0,%r2)
+ FSTW,MB %fr3,0(0,%r2)
+ FSTW,O %fr3,0(0,%r2)
+ FSTW,MA,SL %fr3,4(0,%r2)
+
+ FSTWS %fr3,0(0,%r2)
+ FSTWS,MA %fr3,8(0,%r2)
+ FSTWS,MB %fr3,0(0,%r2)
+
+ FSTWX %fr3,0(0,%r2)
+ FSTWX,S %fr3,%r8(0,%r2)
+ FSTWX,M %fr3,0(0,%r2)
+ FSTWX,SM %fr3,0(0,%r2)
+
+ FSUB,DBL %fr5,%fr2,%fr0
+
+ FTEST
+ FTEST,ACC
+ FTEST,ACC8
+ FTEST,ACC6
+ FTEST,ACC4
+ FTEST,ACC2
+ FTEST,REJ
+ FTEST,REJ8
+
+ labelg
+ GATE labelg,%r3
+ GATE,N labelu,%r3
+
+ labelh
+ ; PA2.0 opcodes:
+ HADD %r2,%r3,%r4
+
+ labeli
+ IDCOR %r4,%r17
+ IDCOR,SBZ %r4,%r17
+ IDCOR,SHZ %r4,%r17
+ IDCOR,SDC %r4,%r17
+ IDCOR,SBC %r4,%r17
+ IDCOR,SHC %r4,%r17
+ IDCOR,TR %r4,%r17
+ IDCOR,NBZ %r4,%r17
+ IDCOR,NHZ %r4,%r17
+ IDCOR,NDC %r4,%r17
+ IDCOR,NBC %r4,%r17
+ IDCOR,NHC %r4,%r17
+
+ ; PA2.0 opcodes:
+ IDTLBT %r1,%r2
+
+ ; IDTLBA %r5,(%sr2,%r4)
+
+ ; IDTLBP %r5,(%sr2,%r4)
+
+ ; PA2.0 opcodes:
+ IITLBT %r2,%r3
+
+ ; IITLBA %r5,(%sr2,%r4)
+
+ ; IITLBP %r5,(%sr2,%r4)
+
+ labelj
+ labelk
+ labell
+ LCI %r0(0,%r1),%r2
+
+ LDB %r1(0,%r1),%r1
+ LDB,MA 10(0,%r1),%r1
+ LDB,MB 0(0,%r1),%r1
+ LDB,O 0(0,%r1),%r1
+ LDB,MA,SL 4(0,%r1),%r1
+
+ LDBS %r1(0,%r1),%r1
+ LDBS,MA 10(0,%r1),%r1
+ LDBS,MB 0(0,%r1),%r1
+ LDBS,O 0(0,%r1),%r1
+ LDBS,MA,SL 4(0,%r1),%r1
+
+ LDBX %r1(0,%r1),%r1
+ LDBX,S %r10(0,%r1),%r1
+ LDBX,M 0(0,%r1),%r1
+ LDBX,SM 0(0,%r1),%r1
+
+ ; PA2.0 opcodes:
+ LDCD 0(0,%r1),%r1
+
+ LDCW %r1(0,%r1),%r1
+ LDCW,MA 10(0,%r1),%r1
+ LDCW,MB 0(0,%r1),%r1
+ LDCW,O 0(0,%r1),%r1
+ LDCW,MA,CO 4(0,%r1),%r1
+
+ LDCWS %r1(0,%r1),%r1
+ LDCWS,MA 10(0,%r1),%r1
+ LDCWS,MB 0(0,%r1),%r1
+ LDCWS,O 0(0,%r1),%r1
+ LDCWS,MA,CO 4(0,%r1),%r1
+
+ LDCWX %r1(0,%r1),%r1
+ LDCWX,S %r3(0,%r1),%r1
+ LDCWX,M 0(0,%r1),%r1
+ LDCWX,SM 0(0,%r1),%r1
+
+ LDH %r1(0,%r1),%r1
+ LDH,MA 10(0,%r1),%r1
+ LDH,MB 0(0,%r1),%r1
+ LDH,O 0(0,%r1),%r1
+ LDH,MA,SL 4(0,%r1),%r1
+
+ LDHS %r1(0,%r1),%r1
+ LDHS,MA 10(0,%r1),%r1
+ LDHS,MB 0(0,%r1),%r1
+ LDHS,O 0(0,%r1),%r1
+ LDHS,MA,SL 4(0,%r1),%r1
+
+ LDHX %r1(0,%r1),%r1
+ LDHX,S %r10(0,%r1),%r1
+ LDHX,M 0(0,%r1),%r1
+ LDHX,SM 0(0,%r1),%r1
+
+ LDIL 23456,%r6
+
+ LDO 100(%r3),%r20
+
+ LDSID (0,%r0),%r3
+
+ LDW %r1(0,%r1),%r1
+ LDW,MA 10(0,%r1),%r1
+ LDW,MB 0(0,%r1),%r1
+ LDW,O 0(0,%r1),%r1
+ LDW,MA,SL 4(0,%r1),%r1
+
+ LDWA %r1(%r3),%r2
+ LDWA,MA 8(%r3),%r2
+ LDWA,MB 0(%r3),%r2
+ LDWA,O 0(%r3),%r2
+ LDWA,MA,SL 8(%r3),%r2
+
+ LDWAS %r1(%r3),%r2
+ LDWAS,MA 8(%r3),%r2
+ LDWAS,MB 0(%r3),%r2
+ LDWAS,O 0(%r3),%r2
+ LDWAS,MA,SL 8(%r3),%r2
+
+ LDWAX %r1(%r3),%r2
+ LDWAX,S %r8(%r3),%r2
+ LDWAX,M 0(%r3),%r2
+ LDWAX,SM 0(%r3),%r2
+
+ LDWM 8(%sr1,%r3),%r4
+
+ LDWS %r1(0,%r1),%r1
+ LDWS,MA 10(0,%r1),%r1
+ LDWS,MB 0(0,%r1),%r1
+ LDWS,O 0(0,%r1),%r1
+ LDWS,MA,SL 4(0,%r1),%r1
+
+ LDWX %r1(%r3),%r2
+ LDWX,S %r8(%r3),%r2
+ LDWX,M 0(%r3),%r2
+ LDWX,SM 0(%r3),%r2
+
+ LPA %r0(0,%r3),%r19
+ LPA,M %r0(%sr2,%r3),%r19
+
+ labelm
+ MFCTL %cr0,%r4
+ MFCTL %cr12,%r4
+
+ ; PA2.0 opcodes:
+ MFIA %r25
+
+ MFSP %sr4,%r29
+
+ ; PA2.0 opcodes:
+ MIXH,L %r1,%r2,%r3
+
+ MOVB %r1,%r2,labelk
+ MOVB,N %r1,%r2,labelj
+ MOVB,>=,N %r1,%r2,labela
+
+ MOVIB 15,%r3,main
+ MOVIB,< 15,%r3,main
+ MOVIB,<>,N 15,%r3,main
+
+ MTCTL %r0,%cr17
+
+ MTSAR %r3
+
+ ; PA2.0 opcodes:
+ MTSARCM %r7
+
+ MTSM %r2
+
+ MTSP %r19,%sr3
+
+ labeln
+ NOP
+
+ labelo
+ OR %r1,%r0,%r3
+ OR,EV %r1,%r0,%r3
+
+ labelp
+ PDC %r0(0,%r1)
+ PDC,M %r0(0,%r1)
+
+ PDTLB %r8(%sr2,%r2)
+ PDTLB,M %r8(%sr2,%r2)
+ ; PA2.0 opcodes:
+ PDTLB,L %r8(%sr2,%r2)
+ PDTLB,L,M %r8(%sr2,%r2)
+
+ PDTLBE %r4(%sr1,%r21)
+ PDTLBE,M %r4(%sr1,%r21)
+
+ PITLB %r6(%sr0,%r30)
+ PITLB,M %r6(%sr0,%r30)
+
+ PITLBE %r6(%sr0,%r30)
+ PITLBE,M %r6(%sr0,%r30)
+
+ PROBE,R (%sr0,%r26),%r0,%r30
+ PROBE,W (%sr0,%r26),%r0,%r30
+
+ PROBEI,R (%sr0,%r26),10,%r30
+ PROBEI,W (%sr0,%r26),7,%r30
+
+ labelq
+ labelr
+ RFI
+ RFI,R
+
+ RFIR
+
+ RSM 31,%r24
+
+ labels
+ SH1ADD %r14,%r15,%r16
+ SH1ADD,NUV %r14,%r15,%r16
+ SH1ADD,ZNV %r14,%r15,%r16
+ SH1ADD,SV %r14,%r15,%r16
+ SH1ADD,UV %r14,%r15,%r16
+ SH1ADD,VNZ %r14,%r15,%r16
+ SH1ADD,NSV %r14,%r15,%r16
+
+ SH1ADDL %r14,%r15,%r16
+ SH1ADDL,NUV %r14,%r15,%r16
+ SH1ADDL,ZNV %r14,%r15,%r16
+ SH1ADDL,SV %r14,%r15,%r16
+ SH1ADDL,UV %r14,%r15,%r16
+ SH1ADDL,VNZ %r14,%r15,%r16
+ SH1ADDL,NSV %r14,%r15,%r16
+
+ SH1ADDO %r14,%r15,%r16
+ SH1ADDO,NUV %r14,%r15,%r16
+ SH1ADDO,ZNV %r14,%r15,%r16
+ SH1ADDO,SV %r14,%r15,%r16
+ SH1ADDO,UV %r14,%r15,%r16
+ SH1ADDO,VNZ %r14,%r15,%r16
+ SH1ADDO,NSV %r14,%r15,%r16
+
+ SH2ADD %r14,%r15,%r16
+ SH2ADD,NUV %r14,%r15,%r16
+ SH2ADD,ZNV %r14,%r15,%r16
+ SH2ADD,SV %r14,%r15,%r16
+ SH2ADD,UV %r14,%r15,%r16
+ SH2ADD,VNZ %r14,%r15,%r16
+ SH2ADD,NSV %r14,%r15,%r16
+
+ SH2ADDL %r14,%r15,%r16
+ SH2ADDL,NUV %r14,%r15,%r16
+ SH2ADDL,ZNV %r14,%r15,%r16
+ SH2ADDL,SV %r14,%r15,%r16
+ SH2ADDL,UV %r14,%r15,%r16
+ SH2ADDL,VNZ %r14,%r15,%r16
+ SH2ADDL,NSV %r14,%r15,%r16
+
+ SH2ADDO %r14,%r15,%r16
+ SH2ADDO,NUV %r14,%r15,%r16
+ SH2ADDO,ZNV %r14,%r15,%r16
+ SH2ADDO,SV %r14,%r15,%r16
+ SH2ADDO,UV %r14,%r15,%r16
+ SH2ADDO,VNZ %r14,%r15,%r16
+ SH2ADDO,NSV %r14,%r15,%r16
+
+ SH3ADD %r14,%r15,%r16
+ SH3ADD,NUV %r14,%r15,%r16
+ SH3ADD,ZNV %r14,%r15,%r16
+ SH3ADD,SV %r14,%r15,%r16
+ SH3ADD,UV %r14,%r15,%r16
+ SH3ADD,VNZ %r14,%r15,%r16
+ SH3ADD,NSV %r14,%r15,%r16
+
+ SH3ADDL %r14,%r15,%r16
+ SH3ADDL,NUV %r14,%r15,%r16
+ SH3ADDL,ZNV %r14,%r15,%r16
+ SH3ADDL,SV %r14,%r15,%r16
+ SH3ADDL,UV %r14,%r15,%r16
+ SH3ADDL,VNZ %r14,%r15,%r16
+ SH3ADDL,NSV %r14,%r15,%r16
+
+ SH3ADDO %r14,%r15,%r16
+ SH3ADDO,NUV %r14,%r15,%r16
+ SH3ADDO,ZNV %r14,%r15,%r16
+ SH3ADDO,SV %r14,%r15,%r16
+ SH3ADDO,UV %r14,%r15,%r16
+ SH3ADDO,VNZ %r14,%r15,%r16
+ SH3ADDO,NSV %r14,%r15,%r16
+
+ SHD %r3,%r2,15,%r0
+ SHD,<> %r3,%r2,15,%r0
+
+ SHLADD %r1,2,%r3,%r6
+ SHLADD,TSV %r1,2,%r3,%r6
+ SHLADD,L %r1,2,%r3,%r6
+ SHLADD,= %r1,2,%r3,%r6
+ SHLADD,< %r1,2,%r3,%r6
+ SHLADD,<= %r1,2,%r3,%r6
+ SHLADD,NUV %r1,2,%r3,%r6
+ SHLADD,ZNV %r1,2,%r3,%r6
+ SHLADD,SV %r1,2,%r3,%r6
+ SHLADD,OD %r1,2,%r3,%r6
+ SHLADD,TR %r1,2,%r3,%r6
+ SHLADD,<> %r1,2,%r3,%r6
+ SHLADD,>= %r1,2,%r3,%r6
+ SHLADD,> %r1,2,%r3,%r6
+ SHLADD,UV %r1,2,%r3,%r6
+ SHLADD,VNZ %r1,2,%r3,%r6
+ SHLADD,NSV %r1,2,%r3,%r6
+ SHLADD,EV %r1,2,%r3,%r6
+
+ SHRPW %r1,%r2,1,%r3
+
+ SPOP0,0,35
+
+ SPOP1,3,35 %r6
+
+ SPOP2,3,35 %r6
+
+ SPOP3,3,35 %r6,%r7
+
+ SSM 127,%r1
+
+ STB %r0,8(%sr1,%r3)
+ STB,BC %r0,8(%sr1,%r3)
+ STB,SL %r0,8(%sr1,%r3)
+
+ STBS %r0,8(%sr1,%r3)
+ STBS,BC %r0,8(%sr1,%r3)
+ STBS,SL %r0,8(%sr1,%r3)
+
+ STBY %r7,6(%sr1,%r30)
+ STBY,B %r7,6(%sr1,%r30)
+ STBY,E %r7,6(%sr1,%r30)
+ STBY,M %r7,6(%sr1,%r30)
+ STBY,B,BC %r7,6(%sr1,%r30)
+ STBY,E,SL %r7,6(%sr1,%r30)
+
+ STBYS %r7,6(%sr1,%r30)
+ STBYS,B,M %r7,6(%sr1,%r30)
+ STBYS,E,M %r7,6(%sr1,%r30)
+ STBYS,M %r7,6(%sr1,%r30)
+ STBYS,B,BC %r7,6(%sr1,%r30)
+ STBYS,E,SL %r7,6(%sr1,%r30)
+
+ ; PA2.0 opcodes:
+ STD %r18,0(%sr3,%r29)
+
+ STH %r18,0(%sr3,%r29)
+
+ STHS %r18,0(%sr3,%r29)
+
+ STW %r17,3(0,%r1)
+
+ STWA %r16,0(%r6)
+
+ STWM %r16,0(%sr3,%r6)
+
+ STWAS,MA %r16,2(%r6)
+
+ STWS %r16,0(%r6)
+
+ SUB %r1,%r0,%r3
+ SUB,B %r1,%r0,%r3
+ SUB,DB %r1,%r0,%r3
+ SUB,TC %r1,%r0,%r3
+ SUB,TSV %r1,%r0,%r3
+ SUB,TSV,TC %r1,%r0,%r3
+ SUB,B,TSV %r1,%r0,%r3
+ SUB,B,TSV,< %r1,%r0,%r3
+
+ SUBB %r8,%r9,%r10
+ SUBB,<<= %r8,%r9,%r10
+ SUBB,>>= %r8,%r9,%r10
+ SUBB,NSV %r8,%r9,%r10
+
+ SUBBO %r8,%r9,%r10
+ SUBBO,<<= %r8,%r9,%r10
+ SUBBO,>>= %r8,%r9,%r10
+ SUBBO,NSV %r8,%r9,%r10
+
+ SUBI 9,%r3,%r5
+ SUBI,TSV 2,%r3,%r5
+
+ SUBIO 5,%r27,%r26
+ SUBIO,< 5,%r27,%r26
+
+ SUBO %r8,%r9,%r10
+ SUBO,<<= %r8,%r9,%r10
+ SUBO,>>= %r8,%r9,%r10
+ SUBO,NSV %r8,%r9,%r10
+
+ SUBT %r8,%r9,%r10
+ SUBT,<= %r8,%r9,%r10
+ SUBT,>= %r8,%r9,%r10
+ SUBT,NSV %r8,%r9,%r10
+
+ SUBTO %r8,%r9,%r10
+ SUBTO,<<= %r8,%r9,%r10
+ SUBTO,>>= %r8,%r9,%r10
+ SUBTO,NSV %r8,%r9,%r10
+
+ SYNC
+
+ SYNCDMA
+
+ labelt
+ labelu
+ UADDCM %r3,%r4,%r5
+ UADDCM,TC %r3,%r4,%r5
+
+ UADDCMT %r3,%r4,%r5
+ UADDCMT,SHC %r3,%r4,%r5
+
+ UXOR %r19,%r3,%r20
+ UXOR,SHZ %r19,%r3,%r20
+
+ labelv
+ VDEP %r7,3,%r8
+ VDEP,TR %r2,3,%r8
+
+ VDEPI 7,3,%r8
+ VDEPI,= 2,3,%r8
+
+ VEXTRS %r4,30,%r4
+ VEXTRS,< %r4,30,%r4
+
+ VEXTRU %r4,30,%r4
+ VEXTRU,>= %r4,30,%r4
+
+ VSHD %r3,%r2,%r0
+ VSHD,< %r3,%r2,%r0
+
+ labelw
+ labelx
+ XMPYU %fr3,%fr4,%fr5
+
+ XOR %r0,%r1,%r2
+ XOR,TR %r0,%r1,%r2
+ XOR,>= %r0,%r1,%r2
+
+ labely
+ labelz
+ ZDEP %r18,1,2,%r2
+ ZDEP,<> %r18,2,3,%r2
+
+ ZDEPI 1,1,2,%r2
+ ZDEPI,EV 3,2,3,%r2
+
+ ZVDEP %r18,30,%r2
+ ZVDEP,< %r18,8,%r2
+
+ ZVDEPI 15,30,%r2
+ ZVDEPI,OD 8,8,%r2
+
+ .exit
+ .procend
+
+ mainend
+ .proc
+ .callinfo NO_CALLS,FRAME=0
+ .entry
+
+ NOP
+
+ .exit
+ .procend
+
+ .end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20-long.c gdb/testsuite/gdb.disasm/pa20-long.c
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20-long.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa20-long.c Thu Jul 22 17:49:46 1999
***************
*** 0 ****
--- 1,18 ----
+
+ #include <stdlib.h>
+
+ int sub1()
+ {
+ return 8;
+ }
+
+ main()
+ {
+ int i;
+
+ i = sub1();
+ if (i)
+ i = sub1();
+
+ return i;
+ }
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20-long.exp gdb/testsuite/gdb.disasm/pa20-long.exp
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20-long.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa20-long.exp Thu Jul 22 17:49:46 1999
***************
*** 0 ****
--- 1,42 ----
+ # pa20-long.exp Test that addresses longer than 32 bits are printed
+ # This test exposes a particular problem where addresses
+ # larger than 32 bits were not being printed correctly.
+ #
+ if ![istarget "hppa2.0w*-*-*"] {
+ verbose "Tests ignored for all but hppa2.0w based targets."
+ return
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ set prms_id 0
+ set bug_id 0
+
+ # use this to debug:
+ #log_user 1
+
+ set testfile pa20-long
+ set srcfile ${srcdir}/${subdir}/pa20-long.c
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ set comp_output [gdb_compile "${srcfile}" "${binfile}" executable ""];
+ if { $comp_output != "" } {
+ if [ regexp "Opcode not defined - DIAG" $comp_output] {
+ warning "HP assembler in use--skipping disasm tests"
+ return
+ } else {
+ perror "Couldn't compile ${srcfile}"
+ return -1
+ }
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ gdb_test "disassemble main" ".*b,l 0x4............... <sub1>,%r2.*"
+
+ return 0
Binary files ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20-t2 and gdb/testsuite/gdb.disasm/pa20-t2 differ
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20-t2.com gdb/testsuite/gdb.disasm/pa20-t2.com
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20-t2.com Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa20-t2.com Thu Jul 22 17:49:47 1999
***************
*** 0 ****
--- 1,3 ----
+ set height 0
+ set width 0
+ x/1213i main
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20-t2.exp gdb/testsuite/gdb.disasm/pa20-t2.exp
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20-t2.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa20-t2.exp Thu Jul 22 17:49:47 1999
***************
*** 0 ****
--- 1,104 ----
+ # pa20-t2.exp Tests gdb disassembly operations for PA2.0 code
+ #
+ if ![istarget "hppa*-*-*"] {
+ verbose "Tests ignored for all but hppa based targets."
+ return
+ }
+ if [istarget "hppa2.0w-*-*"] {
+ verbose "Tests ignored for hppa2.0w*."
+ return
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ gdb_exit
+
+ set prms_id 0
+ set bug_id 0
+
+ #
+ # use this to debug:
+ #log_user 1
+
+ set testfile pa20-t2
+ set srcfile ${srcdir}/${subdir}/pa20-t2.s
+ set binfile ${srcdir}/${subdir}/${testfile}
+ set outfile ${srcdir}/${subdir}/${testfile}.out
+ set comfile ${srcdir}/${subdir}/${testfile}.com
+ set tmpfile ${objdir}/${subdir}/${testfile}.tmp
+ set tmp2file ${objdir}/${subdir}/${testfile}.tmp2
+ set diffile ${objdir}/${subdir}/${testfile}.dif
+ set sedfile ${srcdir}/${subdir}/pa-sed.cmd
+
+ # To build a pa 2.0 executable
+ #
+ # as -o pa20 pa20-t2.s
+ # or
+ # cc -g -o pa20 pa20-t2.s
+ #
+ # The +DA2.0N flag doesn't seem to be needed.
+ #
+ # Don't reject if there are warnings, as we expect this warning:
+ #
+ # (Warning) At least one PA 2.0 object file (pa20-t2.o) was detected.
+ # The linked output may not run on a PA 1.x system.
+ #
+ # and this one:
+ #
+ # /CLO/BUILD_ENV/usr/ccs/bin/ld: Unsatisfied symbols:
+ # test (code)
+ # Short (code)
+ #
+ # It's ok, we don't care. However, since we don't want addresses
+ # and the like to change, unless the binary file is deleted, we want
+ # to use the old one. So it's an element.
+ #
+ # if ![file exists $binfile] then {
+ # compile "${srcfile} -g -o ${binfile}"
+ # }
+
+ remote_exec build "rm -f ${tmpfile} ${tmp2file} ${diffile}"
+
+
+ # This non-standard start-up sequence is taken from that for
+ # the standard "gdb_start" in
+ # /CLO/Components/WDB/Src/gdb/gdb/testsuite/lib/gdb.exp
+ #
+ # We use a non-standard form because we want to pass a command file.
+ # Incidentially, this causes passing a command file to be tested
+ # by implication.
+ #
+ global GDB
+ if { [which $GDB] == 0 } {
+ perror "$GDB does not exist."
+ exit 1
+ }
+
+ remote_exec build "${srcdir}/tools/redirect_cmd ${tmpfile} $GDB -n -batch -silent -se ${binfile} -x ${comfile}"
+
+ # Remove actual addresses, which may vary.
+ #
+ remote_exec build "${srcdir}/tools/redirect_cmd ${tmp2file} sed -f ${sedfile} ${tmpfile} "
+
+ # Should be no differences.
+ #
+ remote_exec build "${srcdir}/tools/redirect_cmd ${diffile} diff ${outfile} ${tmp2file} "
+ set exec_output [remote_exec build "wc -l ${diffile}"]
+ remote_exec build "echo exec_output is ${exec_output}"
+
+ if [ regexp "^0 \{0 ${diffile}.*" ${exec_output} ] {
+ pass "Disassembly"
+ } else {
+ if [ regexp "^26 ${diffile}" ${exec_output} ] {
+ setup_xfail hppa*-*-* CHFts23204
+ fail "Disassembly"
+ } else {
+ fail "Disassembly"
+ }
+ }
+
+ remote_exec build "rm -f ${binfile}.ci"
+
+ return 0
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20-t2.out gdb/testsuite/gdb.disasm/pa20-t2.out
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20-t2.out Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa20-t2.out Thu Jul 22 17:49:48 1999
***************
*** 0 ****
--- 1,1213 ----
+ <main>: ssm 1,%r1
+ <main+4>: rsm 2,%r1
+ <main+8>: ssm 4,%r1
+ <main+12>: rsm 8,%r1
+ <main+16>: ssm 0x10,%r1
+ <main+20>: rsm 0x20,%r1
+ <main+24>: ssm 0x40,%r1
+ <main+28>: rsm 0x80,%r1
+ <main+32>: ssm 0x100,%r1
+ <main+36>: rsm 0x200,%r1
+ <main+40>: ssm 0x3ff,%r1
+ <main+44>: rsm 0,%r1
+ <main+48>: depw,<> %r14,%sar,20,%r7
+ <main+52>: depw %r14,%sar,20,%r7
+ <main+56>: depwi,<> 0xe,%sar,20,%r7
+ <main+60>: depwi 0xe,%sar,20,%r7
+ <main+64>: extrw,s,<> %r14,%sar,20,%r7
+ <main+68>: extrw,s %r14,%sar,20,%r7
+ <main+72>: extrd,s,<> %r14,%sar,20,%r7
+ <main+76>: extrd,s,<> %r14,%sar,20,%r7
+ <main+80>: extrd,s %r14,%sar,20,%r7
+ <CLDST>: b <CLDST>
+ <CLDST+4>: fldd,s,sl %r5(%sr2,%r6),%fr6
+ <CLDST+8>: cldd,1,ma,sl 8(%sr2,%r7),7
+ <CLDST+12>: cldd,2,m %r8(%sr3,%r9),8
+ <CLDST+16>: cldd,3,mb -8(%sr0,%r10),9
+ <CLDST+20>: cldd,4,sl %r11(%sr0,%r12),10
+ <CLDST+24>: cldd,5,sl 0(%sr0,%r13),11
+ <CLDST+28>: cldd,6 %r14(%sr0,%r15),12
+ <CLDST+32>: cldd,7 8(%sr0,%r15),13
+ <CLDST+36>: fldw,s,sl %r5(%sr2,%r6),%fr14
+ <CLDST+40>: fldw,ma,sl 8(%sr2,%r7),%fr15R
+ <CLDST+44>: cldw,2,m %r8(%sr3,%r9),16
+ <CLDST+48>: cldw,3,mb -8(%sr0,%r10),17
+ <CLDST+52>: cldw,4,sl %r11(%sr0,%r12),18
+ <CLDST+56>: cldw,5,sl 0(%sr0,%r13),19
+ <CLDST+60>: cldw,6 %r14(%sr0,%r15),20
+ <CLDST+64>: cldw,7 8(%sr0,%r15),21
+ <CLDST+68>: fstd,s,sl %fr6,%r5(%sr2,%r6)
+ <CLDST+72>: cstd,1,ma,sl 7,8(%sr2,%r7)
+ <CLDST+76>: cstd,2,m 8,%r8(%sr3,%r9)
+ <CLDST+80>: cstd,3,mb 9,-8(%sr0,%r10)
+ <CLDST+84>: cstd,4,bc 10,%r11(%sr0,%r12)
+ <CLDST+88>: cstd,5,sl 11,0(%sr0,%r13)
+ <CLDST+92>: cstd,6 12,%r14(%sr0,%r15)
+ <CLDST+96>: cstd,7 13,8(%sr0,%r15)
+ <CLDST+100>: fstw,s,sl %fr14,%r5(%sr2,%r6)
+ <CLDST+104>: fstw,ma,sl %fr15R,8(%sr2,%r7)
+ <CLDST+108>: cstw,2,m 16,%r8(%sr3,%r9)
+ <CLDST+112>: cstw,3,mb 17,-8(%sr0,%r10)
+ <CLDST+116>: cstw,4,sl 18,%r11(%sr0,%r12)
+ <CLDST+120>: cstw,5,bc 19,0(%sr0,%r13)
+ <CLDST+124>: cstw,6 20,%r14(%sr0,%r15)
+ <CLDST+128>: cstw,7 21,8(%sr0,%r15)
+ <LDtest>: b <LDtest>
+ <LDtest+4>: ldd -0x18(%sr0,%r12),%r31
+ <LDtest+8>: ldd -0x10(%sr0,%r12),%r31
+ <LDtest+12>: ldd -8(%sr0,%r12),%r31
+ <LDtest+16>: ldd 0(%sr0,%r12),%r31
+ <LDtest+20>: ldd 0(%sr0,%r12),%r31
+ <LDtest+24>: ldd %r6(%sr0,%r12),%r31
+ <LDtest+28>: ldd 8(%sr0,%r12),%r31
+ <LDtest+32>: ldd 0x10(%sr0,%r12),%r31
+ <LDtest+36>: ldd 0x18(%sr0,%r12),%r31
+ <LDtest+40>: ldw -0x18(%sr0,%r12),%r31
+ <LDtest+44>: ldw -0x10(%sr0,%r12),%r31
+ <LDtest+48>: ldw -8(%sr0,%r12),%r31
+ <LDtest+52>: ldw 0(%sr0,%r12),%r31
+ <LDtest+56>: ldw 0(%sr0,%r12),%r31
+ <LDtest+60>: ldw %r6(%sr0,%r12),%r31
+ <LDtest+64>: ldw 8(%sr0,%r12),%r31
+ <LDtest+68>: ldw 0x10(%sr0,%r12),%r31
+ <LDtest+72>: ldw 0x18(%sr0,%r12),%r31
+ <LDtest+76>: ldh -0x18(%sr0,%r12),%r31
+ <LDtest+80>: ldh -0x10(%sr0,%r12),%r31
+ <LDtest+84>: ldh -8(%sr0,%r12),%r31
+ <LDtest+88>: ldh 0(%sr0,%r12),%r31
+ <LDtest+92>: ldh 0(%sr0,%r12),%r31
+ <LDtest+96>: ldh %r6(%sr0,%r12),%r31
+ <LDtest+100>: ldh 8(%sr0,%r12),%r31
+ <LDtest+104>: ldh 0x10(%sr0,%r12),%r31
+ <LDtest+108>: ldh 0x18(%sr0,%r12),%r31
+ <LDtest+112>: ldb -0x18(%sr0,%r12),%r31
+ <LDtest+116>: ldb -0x10(%sr0,%r12),%r31
+ <LDtest+120>: ldb -8(%sr0,%r12),%r31
+ <LDtest+124>: ldb 0(%sr0,%r12),%r31
+ <LDtest+128>: ldb 0(%sr0,%r12),%r31
+ <LDtest+132>: ldb %r6(%sr0,%r12),%r31
+ <LDtest+136>: ldb 8(%sr0,%r12),%r31
+ <LDtest+140>: ldb 0x10(%sr0,%r12),%r31
+ <LDtest+144>: ldb 0x18(%sr0,%r12),%r31
+ <LDtest+148>: ldda -0x10(%r12),%r31
+ <LDtest+152>: ldda -8(%r12),%r31
+ <LDtest+156>: ldda 0(%r12),%r31
+ <LDtest+160>: ldda 0(%r12),%r31
+ <LDtest+164>: ldda %r6(%r12),%r31
+ <LDtest+168>: ldda 8(%r12),%r31
+ <LDtest+172>: ldwa -0x10(%r12),%r31
+ <LDtest+176>: ldwa -8(%r12),%r31
+ <LDtest+180>: ldwa 0(%r12),%r31
+ <LDtest+184>: ldwa 0(%r12),%r31
+ <LDtest+188>: ldwa %r6(%r12),%r31
+ <LDtest+192>: ldwa 8(%r12),%r31
+ <LDtest+196>: ldcd -0x10(%sr0,%r12),%r31
+ <LDtest+200>: ldcd -8(%sr0,%r12),%r31
+ <LDtest+204>: ldcd 0(%sr0,%r12),%r31
+ <LDtest+208>: ldcd 0(%sr0,%r12),%r31
+ <LDtest+212>: ldcd %r6(%sr0,%r12),%r31
+ <LDtest+216>: ldcd 8(%sr0,%r12),%r31
+ <LDtest+220>: ldcw -0x10(%sr0,%r12),%r31
+ <LDtest+224>: ldcw -8(%sr0,%r12),%r31
+ <LDtest+228>: ldcw 0(%sr0,%r12),%r31
+ <LDtest+232>: ldcw 0(%sr0,%r12),%r31
+ <LDtest+236>: ldcw %r6(%sr0,%r12),%r31
+ <LDtest+240>: ldcw 8(%sr0,%r12),%r31
+ <LDtest_with_MA>: b <LDtest_with_MA>
+ <LDtest_with_MA+4>: ldd,ma -0x18(%sr0,%r12),%r31
+ <LDtest_with_MA+8>: ldd,ma -0x10(%sr0,%r12),%r31
+ <LDtest_with_MA+12>: ldd,ma -8(%sr0,%r12),%r31
+ <LDtest_with_MA+16>: ldd,ma 8(%sr0,%r12),%r31
+ <LDtest_with_MA+20>: ldd,ma 0x10(%sr0,%r12),%r31
+ <LDtest_with_MA+24>: ldd,ma 0x18(%sr0,%r12),%r31
+ <LDtest_with_MA+28>: ldw -0x18(%sr0,%r12),%r31
+ <LDtest_with_MA+32>: ldw,ma -0x10(%sr0,%r12),%r31
+ <LDtest_with_MA+36>: ldw,ma -8(%sr0,%r12),%r31
+ <LDtest_with_MA+40>: ldw,ma 8(%sr0,%r12),%r31
+ <LDtest_with_MA+44>: ldw,ma 0x10(%sr0,%r12),%r31
+ <LDtest_with_MA+48>: ldw,ma 0x18(%sr0,%r12),%r31
+ <LDtest_with_MA+52>: ldh,ma -0x10(%sr0,%r12),%r31
+ <LDtest_with_MA+56>: ldh,ma -8(%sr0,%r12),%r31
+ <LDtest_with_MA+60>: ldh,ma 8(%sr0,%r12),%r31
+ <LDtest_with_MA+64>: ldb,ma -0x10(%sr0,%r12),%r31
+ <LDtest_with_MA+68>: ldb,ma -8(%sr0,%r12),%r31
+ <LDtest_with_MA+72>: ldb,ma 8(%sr0,%r12),%r31
+ <LDtest_with_MA+76>: ldda,ma -0x10(%r12),%r31
+ <LDtest_with_MA+80>: ldda,ma -8(%r12),%r31
+ <LDtest_with_MA+84>: ldda,ma 8(%r12),%r31
+ <LDtest_with_MA+88>: ldwa,ma -0x10(%r12),%r31
+ <LDtest_with_MA+92>: ldwa,ma -8(%r12),%r31
+ <LDtest_with_MA+96>: ldwa,ma 8(%r12),%r31
+ <LDtest_with_MA+100>: ldcd,ma -0x10(%sr0,%r12),%r31
+ <LDtest_with_MA+104>: ldcd,ma -8(%sr0,%r12),%r31
+ <LDtest_with_MA+108>: ldcd,ma 8(%sr0,%r12),%r31
+ <LDtest_with_MA+112>: ldcw,ma -0x10(%sr0,%r12),%r31
+ <LDtest_with_MA+116>: ldcw,ma -8(%sr0,%r12),%r31
+ <LDtest_with_MA+120>: ldcw,ma 8(%sr0,%r12),%r31
+ <LDtest_with_MB>: b <LDtest_with_MB>
+ <LDtest_with_MB+4>: ldd,mb -0x18(%sr0,%r12),%r31
+ <LDtest_with_MB+8>: ldd,mb -0x10(%sr0,%r12),%r31
+ <LDtest_with_MB+12>: ldd,mb -8(%sr0,%r12),%r31
+ <LDtest_with_MB+16>: ldd,mb 0(%sr0,%r12),%r31
+ <LDtest_with_MB+20>: ldd,mb 0(%sr0,%r12),%r31
+ <LDtest_with_MB+24>: ldd,mb 8(%sr0,%r12),%r31
+ <LDtest_with_MB+28>: ldd,mb 0x10(%sr0,%r12),%r31
+ <LDtest_with_MB+32>: ldd,mb 0x18(%sr0,%r12),%r31
+ <LDtest_with_MB+36>: ldw,ma -0x18(%sr0,%r12),%r31
+ <LDtest_with_MB+40>: ldw,mb -0x10(%sr0,%r12),%r31
+ <LDtest_with_MB+44>: ldw,mb -8(%sr0,%r12),%r31
+ <LDtest_with_MB+48>: ldw,mb 0(%sr0,%r12),%r31
+ <LDtest_with_MB+52>: ldw,mb 0(%sr0,%r12),%r31
+ <LDtest_with_MB+56>: ldw,mb 8(%sr0,%r12),%r31
+ <LDtest_with_MB+60>: ldw 0x10(%sr0,%r12),%r31
+ <LDtest_with_MB+64>: ldw 0x18(%sr0,%r12),%r31
+ <LDtest_with_MB+68>: ldh,mb -0x10(%sr0,%r12),%r31
+ <LDtest_with_MB+72>: ldh,mb -8(%sr0,%r12),%r31
+ <LDtest_with_MB+76>: ldh,mb 0(%sr0,%r12),%r31
+ <LDtest_with_MB+80>: ldh,mb 0(%sr0,%r12),%r31
+ <LDtest_with_MB+84>: ldh,mb 8(%sr0,%r12),%r31
+ <LDtest_with_MB+88>: ldb,mb -0x10(%sr0,%r12),%r31
+ <LDtest_with_MB+92>: ldb,mb -8(%sr0,%r12),%r31
+ <LDtest_with_MB+96>: ldb,mb 0(%sr0,%r12),%r31
+ <LDtest_with_MB+100>: ldb,mb 0(%sr0,%r12),%r31
+ <LDtest_with_MB+104>: ldb,mb 8(%sr0,%r12),%r31
+ <LDtest_with_MB+108>: ldda,mb -0x10(%r12),%r31
+ <LDtest_with_MB+112>: ldda,mb -8(%r12),%r31
+ <LDtest_with_MB+116>: ldda,mb 0(%r12),%r31
+ <LDtest_with_MB+120>: ldda,mb 0(%r12),%r31
+ <LDtest_with_MB+124>: ldda,mb 8(%r12),%r31
+ <LDtest_with_MB+128>: ldwa,mb -0x10(%r12),%r31
+ <LDtest_with_MB+132>: ldwa,mb -8(%r12),%r31
+ <LDtest_with_MB+136>: ldwa,mb 0(%r12),%r31
+ <LDtest_with_MB+140>: ldwa,mb 0(%r12),%r31
+ <LDtest_with_MB+144>: ldwa,mb 8(%r12),%r31
+ <LDtest_with_MB+148>: ldcd,mb -0x10(%sr0,%r12),%r31
+ <LDtest_with_MB+152>: ldcd,mb -8(%sr0,%r12),%r31
+ <LDtest_with_MB+156>: ldcd,mb 0(%sr0,%r12),%r31
+ <LDtest_with_MB+160>: ldcd,mb 0(%sr0,%r12),%r31
+ <LDtest_with_MB+164>: ldcd,mb 8(%sr0,%r12),%r31
+ <LDtest_with_MB+168>: ldcw,mb -0x10(%sr0,%r12),%r31
+ <LDtest_with_MB+172>: ldcw,mb -8(%sr0,%r12),%r31
+ <LDtest_with_MB+176>: ldcw,mb 0(%sr0,%r12),%r31
+ <LDtest_with_MB+180>: ldcw,mb 0(%sr0,%r12),%r31
+ <LDtest_with_MB+184>: ldcw,mb 8(%sr0,%r12),%r31
+ <LDtest_with_O>: b <LDtest_with_O>
+ <LDtest_with_O+4>: ldd,o 0(%sr0,%r12),%r31
+ <LDtest_with_O+8>: ldd,o 0(%sr0,%r12),%r31
+ <LDtest_with_O+12>: ldw,o 0(%sr0,%r12),%r31
+ <LDtest_with_O+16>: ldw,o 0(%sr0,%r12),%r31
+ <LDtest_with_O+20>: ldh,o 0(%sr0,%r12),%r31
+ <LDtest_with_O+24>: ldh,o 0(%sr0,%r12),%r31
+ <LDtest_with_O+28>: ldb,o 0(%sr0,%r12),%r31
+ <LDtest_with_O+32>: ldb,o 0(%sr0,%r12),%r31
+ <LDtest_with_O+36>: ldda,o 0(%r12),%r31
+ <LDtest_with_O+40>: ldda,o 0(%r12),%r31
+ <LDtest_with_O+44>: ldwa,o 0(%r12),%r31
+ <LDtest_with_O+48>: ldwa,o 0(%r12),%r31
+ <LDtest_with_O+52>: ldcd,o 0(%sr0,%r12),%r31
+ <LDtest_with_O+56>: ldcd,o 0(%sr0,%r12),%r31
+ <LDtest_with_O+60>: ldcw,o 0(%sr0,%r12),%r31
+ <LDtest_with_O+64>: ldcw,o 0(%sr0,%r12),%r31
+ <STtest>: b <STtest>
+ <STtest+4>: std %r31,-0x18(%sr0,%r12)
+ <STtest+8>: std %r31,-0x10(%sr0,%r12)
+ <STtest+12>: std %r31,-8(%sr0,%r12)
+ <STtest+16>: std %r31,0(%sr0,%r12)
+ <STtest+20>: std %r31,0(%sr0,%r12)
+ <STtest+24>: std %r31,8(%sr0,%r12)
+ <STtest+28>: std %r31,0x10(%sr0,%r12)
+ <STtest+32>: std %r31,0x18(%sr0,%r12)
+ <STtest+36>: stw %r31,-0x18(%sr0,%r12)
+ <STtest+40>: stw %r31,-0x10(%sr0,%r12)
+ <STtest+44>: stw %r31,-8(%sr0,%r12)
+ <STtest+48>: stw %r31,0(%sr0,%r12)
+ <STtest+52>: stw %r31,0(%sr0,%r12)
+ <STtest+56>: stw %r31,8(%sr0,%r12)
+ <STtest+60>: stw %r31,0x10(%sr0,%r12)
+ <STtest+64>: stw %r31,0x18(%sr0,%r12)
+ <STtest+68>: sth %r31,-0x18(%sr0,%r12)
+ <STtest+72>: sth %r31,-0x10(%sr0,%r12)
+ <STtest+76>: sth %r31,-8(%sr0,%r12)
+ <STtest+80>: sth %r31,0(%sr0,%r12)
+ <STtest+84>: sth %r31,0(%sr0,%r12)
+ <STtest+88>: sth %r31,8(%sr0,%r12)
+ <STtest+92>: sth %r31,0x10(%sr0,%r12)
+ <STtest+96>: sth %r31,0x18(%sr0,%r12)
+ <STtest+100>: stb %r31,-0x18(%sr0,%r12)
+ <STtest+104>: stb %r31,-0x10(%sr0,%r12)
+ <STtest+108>: stb %r31,-8(%sr0,%r12)
+ <STtest+112>: stb %r31,0(%sr0,%r12)
+ <STtest+116>: stb %r31,0(%sr0,%r12)
+ <STtest+120>: stb %r31,8(%sr0,%r12)
+ <STtest+124>: stb %r31,0x10(%sr0,%r12)
+ <STtest+128>: stb %r31,0x18(%sr0,%r12)
+ <STtest+132>: stda %r31,-0x10(%r12)
+ <STtest+136>: stda %r31,-8(%r12)
+ <STtest+140>: stda %r31,0(%r12)
+ <STtest+144>: stda %r31,0(%r12)
+ <STtest+148>: stda %r31,8(%r12)
+ <STtest+152>: stwa %r31,-0x10(%r12)
+ <STtest+156>: stwa %r31,-8(%r12)
+ <STtest+160>: stwa %r31,0(%r12)
+ <STtest+164>: stwa %r31,0(%r12)
+ <STtest+168>: stwa %r31,8(%r12)
+ <STtest+172>: stdby,b %r31,-0x10(%sr0,%r12)
+ <STtest+176>: stdby,b %r31,-8(%sr0,%r12)
+ <STtest+180>: stdby,b %r31,0(%sr0,%r12)
+ <STtest+184>: stdby,b %r31,0(%sr0,%r12)
+ <STtest+188>: stdby,b %r31,8(%sr0,%r12)
+ <STtest+192>: stby,b %r31,-0x10(%sr0,%r12)
+ <STtest+196>: stby,b %r31,-8(%sr0,%r12)
+ <STtest+200>: stby,b %r31,0(%sr0,%r12)
+ <STtest+204>: stby,b %r31,0(%sr0,%r12)
+ <STtest+208>: stby,b %r31,8(%sr0,%r12)
+ <STtest_with_MA>: b <STtest_with_MA>
+ <STtest_with_MA+4>: std,ma %r31,-0x18(%sr0,%r12)
+ <STtest_with_MA+8>: std,ma %r31,-0x10(%sr0,%r12)
+ <STtest_with_MA+12>: std,ma %r31,-8(%sr0,%r12)
+ <STtest_with_MA+16>: std,ma %r31,8(%sr0,%r12)
+ <STtest_with_MA+20>: std,ma %r31,0x10(%sr0,%r12)
+ <STtest_with_MA+24>: std,ma %r31,0x18(%sr0,%r12)
+ <STtest_with_MA+28>: stw -0x18(%sr0,%r12),%r31
+ <STtest_with_MA+32>: stw,ma %r31,-0x10(%sr0,%r12)
+ <STtest_with_MA+36>: stw,ma %r31,-8(%sr0,%r12)
+ <STtest_with_MA+40>: stw,ma %r31,8(%sr0,%r12)
+ <STtest_with_MA+44>: stw,ma %r31,0x10(%sr0,%r12)
+ <STtest_with_MA+48>: stw,ma %r31,0x18(%sr0,%r12)
+ <STtest_with_MA+52>: sth,ma %r31,-0x10(%sr0,%r12)
+ <STtest_with_MA+56>: sth,ma %r31,-8(%sr0,%r12)
+ <STtest_with_MA+60>: sth,ma %r31,8(%sr0,%r12)
+ <STtest_with_MA+64>: stb,ma %r31,-0x10(%sr0,%r12)
+ <STtest_with_MA+68>: stb,ma %r31,-8(%sr0,%r12)
+ <STtest_with_MA+72>: stb,ma %r31,8(%sr0,%r12)
+ <STtest_with_MA+76>: stda,ma %r31,-0x10(%r12)
+ <STtest_with_MA+80>: stda,ma %r31,-8(%r12)
+ <STtest_with_MA+84>: stda,ma %r31,8(%r12)
+ <STtest_with_MA+88>: stwa,ma %r31,-0x10(%r12)
+ <STtest_with_MA+92>: stwa,ma %r31,-8(%r12)
+ <STtest_with_MA+96>: stwa,ma %r31,8(%r12)
+ <STtest_with_MB>: b <STtest_with_MB>
+ <STtest_with_MB+4>: std,mb %r31,-0x18(%sr0,%r12)
+ <STtest_with_MB+8>: std,mb %r31,-0x10(%sr0,%r12)
+ <STtest_with_MB+12>: std,mb %r31,-8(%sr0,%r12)
+ <STtest_with_MB+16>: std,mb %r31,0(%sr0,%r12)
+ <STtest_with_MB+20>: std,mb %r31,0(%sr0,%r12)
+ <STtest_with_MB+24>: std,mb %r31,8(%sr0,%r12)
+ <STtest_with_MB+28>: std,mb %r31,0x10(%sr0,%r12)
+ <STtest_with_MB+32>: std,mb %r31,0x18(%sr0,%r12)
+ <STtest_with_MB+36>: stw,ma %r31,-0x18(%sr0,%r12)
+ <STtest_with_MB+40>: stw,mb %r31,-0x10(%sr0,%r12)
+ <STtest_with_MB+44>: stw,mb %r31,-8(%sr0,%r12)
+ <STtest_with_MB+48>: stw,mb %r31,0(%sr0,%r12)
+ <STtest_with_MB+52>: stw,mb %r31,0(%sr0,%r12)
+ <STtest_with_MB+56>: stw,mb %r31,8(%sr0,%r12)
+ <STtest_with_MB+60>: stw 0x10(%sr0,%r12),%r31
+ <STtest_with_MB+64>: stw 0x18(%sr0,%r12),%r31
+ <STtest_with_MB+68>: sth,mb %r31,-0x10(%sr0,%r12)
+ <STtest_with_MB+72>: sth,mb %r31,-8(%sr0,%r12)
+ <STtest_with_MB+76>: sth,mb %r31,0(%sr0,%r12)
+ <STtest_with_MB+80>: sth,mb %r31,0(%sr0,%r12)
+ <STtest_with_MB+84>: sth,mb %r31,8(%sr0,%r12)
+ <STtest_with_MB+88>: stb,mb %r31,-0x10(%sr0,%r12)
+ <STtest_with_MB+92>: stb,mb %r31,-8(%sr0,%r12)
+ <STtest_with_MB+96>: stb,mb %r31,0(%sr0,%r12)
+ <STtest_with_MB+100>: stb,mb %r31,0(%sr0,%r12)
+ <STtest_with_MB+104>: stb,mb %r31,8(%sr0,%r12)
+ <STtest_with_MB+108>: stda,mb %r31,-0x10(%r12)
+ <STtest_with_MB+112>: stda,mb %r31,-8(%r12)
+ <STtest_with_MB+116>: stda,mb %r31,0(%r12)
+ <STtest_with_MB+120>: stda,mb %r31,0(%r12)
+ <STtest_with_MB+124>: stda,mb %r31,8(%r12)
+ <STtest_with_MB+128>: stwa,mb %r31,-0x10(%r12)
+ <STtest_with_MB+132>: stwa,mb %r31,-8(%r12)
+ <STtest_with_MB+136>: stwa,mb %r31,0(%r12)
+ <STtest_with_MB+140>: stwa,mb %r31,0(%r12)
+ <STtest_with_MB+144>: stwa,mb %r31,8(%r12)
+ <STtest_with_O>: b <STtest_with_O>
+ <STtest_with_O+4>: std,o %r31,0(%sr0,%r12)
+ <STtest_with_O+8>: std,o %r31,0(%sr0,%r12)
+ <STtest_with_O+12>: stw,o %r31,0(%sr0,%r12)
+ <STtest_with_O+16>: stw,o %r31,0(%sr0,%r12)
+ <STtest_with_O+20>: sth,o %r31,0(%sr0,%r12)
+ <STtest_with_O+24>: sth,o %r31,0(%sr0,%r12)
+ <STtest_with_O+28>: stb,o %r31,0(%sr0,%r12)
+ <STtest_with_O+32>: stb,o %r31,0(%sr0,%r12)
+ <STtest_with_O+36>: stda,o %r31,0(%r12)
+ <STtest_with_O+40>: stda,o %r31,0(%r12)
+ <STtest_with_O+44>: stwa,o %r31,0(%r12)
+ <STtest_with_O+48>: stwa,o %r31,0(%r12)
+ <FLDtest>: b <FLDtest>
+ <FLDtest+4>: fldd -0x18(%sr0,%r12),%fr8
+ <FLDtest+8>: fldd -0x10(%sr0,%r12),%fr8
+ <FLDtest+12>: fldd -8(%sr0,%r12),%fr8
+ <FLDtest+16>: fldd 0(%sr0,%r12),%fr8
+ <FLDtest+20>: fldd 0(%sr0,%r12),%fr8
+ <FLDtest+24>: fldd %r6(%sr0,%r12),%fr8
+ <FLDtest+28>: fldd 8(%sr0,%r12),%fr8
+ <FLDtest+32>: fldd 0x10(%sr0,%r12),%fr8
+ <FLDtest+36>: fldd 0x18(%sr0,%r12),%fr8
+ <FLDtest+40>: fldw -0x18(%sr0,%r12),%fr8
+ <FLDtest+44>: fldw -0x10(%sr0,%r12),%fr8
+ <FLDtest+48>: fldw -8(%sr0,%r12),%fr8
+ <FLDtest+52>: fldw 0(%sr0,%r12),%fr8
+ <FLDtest+56>: fldw 0(%sr0,%r12),%fr8
+ <FLDtest+60>: fldw %r6(%sr0,%r12),%fr8
+ <FLDtest+64>: fldw 8(%sr0,%r12),%fr8
+ <FLDtest+68>: fldw 0x10(%sr0,%r12),%fr8
+ <FLDtest+72>: fldw 0x18(%sr0,%r12),%fr8
+ <FLDtest+76>: b <FLDtest>
+ <FLDtest+80>: fldd,ma -0x18(%sr0,%r12),%fr8
+ <FLDtest+84>: fldd,ma -0x10(%sr0,%r12),%fr8
+ <FLDtest+88>: fldd,ma -8(%sr0,%r12),%fr8
+ <FLDtest+92>: fldd,ma 8(%sr0,%r12),%fr8
+ <FLDtest+96>: fldd,ma 0x10(%sr0,%r12),%fr8
+ <FLDtest+100>: fldd,ma 0x18(%sr0,%r12),%fr8
+ <FLDtest+104>: fldw,ma -0x18(%sr0,%r12),%fr8
+ <FLDtest+108>: fldw,ma -0x10(%sr0,%r12),%fr8
+ <FLDtest+112>: fldw,ma -8(%sr0,%r12),%fr8
+ <FLDtest+116>: fldw,ma 8(%sr0,%r12),%fr8
+ <FLDtest+120>: fldw,ma 0x10(%sr0,%r12),%fr8
+ <FLDtest+124>: fldw,ma 0x18(%sr0,%r12),%fr8
+ <FLDtest+128>: b <FLDtest>
+ <FLDtest+132>: fldd,mb -0x18(%sr0,%r12),%fr8
+ <FLDtest+136>: fldd,mb -0x10(%sr0,%r12),%fr8
+ <FLDtest+140>: fldd,mb -8(%sr0,%r12),%fr8
+ <FLDtest+144>: fldd,mb 0(%sr0,%r12),%fr8
+ <FLDtest+148>: fldd,mb 0(%sr0,%r12),%fr8
+ <FLDtest+152>: fldd,mb 8(%sr0,%r12),%fr8
+ <FLDtest+156>: fldd,mb 0x10(%sr0,%r12),%fr8
+ <FLDtest+160>: fldd,mb 0x18(%sr0,%r12),%fr8
+ <FLDtest+164>: fldw,mb -0x18(%sr0,%r12),%fr8
+ <FLDtest+168>: fldw,mb -0x10(%sr0,%r12),%fr8
+ <FLDtest+172>: fldw,mb -8(%sr0,%r12),%fr8
+ <FLDtest+176>: fldw,mb 0(%sr0,%r12),%fr8
+ <FLDtest+180>: fldw,mb 0(%sr0,%r12),%fr8
+ <FLDtest+184>: fldw,mb 8(%sr0,%r12),%fr8
+ <FLDtest+188>: fldw,mb 0x10(%sr0,%r12),%fr8
+ <FLDtest+192>: fldw,mb 0x18(%sr0,%r12),%fr8
+ <FLDtest_with_O>: b <FLDtest_with_O>
+ <FLDtest_with_O+4>: fldd,o 0(%sr0,%r12),%fr8
+ <FLDtest_with_O+8>: fldd,o 0(%sr0,%r12),%fr8
+ <FLDtest_with_O+12>: fldw,o 0(%sr0,%r12),%fr8
+ <FLDtest_with_O+16>: fldw,o 0(%sr0,%r12),%fr8
+ <FSTtest>: b <FSTtest>
+ <FSTtest+4>: fstd %fr8,-0x18(%sr0,%r12)
+ <FSTtest+8>: fstd %fr8,-0x10(%sr0,%r12)
+ <FSTtest+12>: fstd %fr8,-8(%sr0,%r12)
+ <FSTtest+16>: fstd %fr8,0(%sr0,%r12)
+ <FSTtest+20>: fstd %fr8,0(%sr0,%r12)
+ <FSTtest+24>: fstd %fr8,%r6(%sr0,%r12)
+ <FSTtest+28>: fstd %fr8,8(%sr0,%r12)
+ <FSTtest+32>: fstd %fr8,0x10(%sr0,%r12)
+ <FSTtest+36>: fstd %fr8,0x18(%sr0,%r12)
+ <FSTtest+40>: fstw %fr8,-0x18(%sr0,%r12)
+ <FSTtest+44>: fstw %fr8,-0x10(%sr0,%r12)
+ <FSTtest+48>: fstw %fr8,-8(%sr0,%r12)
+ <FSTtest+52>: fstw %fr8,0(%sr0,%r12)
+ <FSTtest+56>: fstw %fr8,0(%sr0,%r12)
+ <FSTtest+60>: fstw %fr8,%r6(%sr0,%r12)
+ <FSTtest+64>: fstw %fr8,8(%sr0,%r12)
+ <FSTtest+68>: fstw %fr8,0x10(%sr0,%r12)
+ <FSTtest+72>: fstw %fr8,0x18(%sr0,%r12)
+ <FSTtest_with_MA>: b <FSTtest_with_MA>
+ <FSTtest_with_MA+4>: fstd,ma %fr8,-0x18(%sr0,%r12)
+ <FSTtest_with_MA+8>: fstd,ma %fr8,-0x10(%sr0,%r12)
+ <FSTtest_with_MA+12>: fstd,ma %fr8,-8(%sr0,%r12)
+ <FSTtest_with_MA+16>: fstd,ma %fr8,8(%sr0,%r12)
+ <FSTtest_with_MA+20>: fstd,ma %fr8,0x10(%sr0,%r12)
+ <FSTtest_with_MA+24>: fstd,ma %fr8,0x18(%sr0,%r12)
+ <FSTtest_with_MA+28>: fstw,ma %fr8,-0x18(%sr0,%r12)
+ <FSTtest_with_MA+32>: fstw,ma %fr8,-0x10(%sr0,%r12)
+ <FSTtest_with_MA+36>: fstw,ma %fr8,-8(%sr0,%r12)
+ <FSTtest_with_MA+40>: fstw,ma %fr8,8(%sr0,%r12)
+ <FSTtest_with_MA+44>: fstw,ma %fr8,0x10(%sr0,%r12)
+ <FSTtest_with_MA+48>: fstw,ma %fr8,0x18(%sr0,%r12)
+ <FSTtest_with_MB>: b <FSTtest_with_MB>
+ <FSTtest_with_MB+4>: fstd,mb %fr8,-0x18(%sr0,%r12)
+ <FSTtest_with_MB+8>: fstd,mb %fr8,-0x10(%sr0,%r12)
+ <FSTtest_with_MB+12>: fstd,mb %fr8,-8(%sr0,%r12)
+ <FSTtest_with_MB+16>: fstd,mb %fr8,0(%sr0,%r12)
+ <FSTtest_with_MB+20>: fstd,mb %fr8,0(%sr0,%r12)
+ <FSTtest_with_MB+24>: fstd,mb %fr8,8(%sr0,%r12)
+ <FSTtest_with_MB+28>: fstd,mb %fr8,0x10(%sr0,%r12)
+ <FSTtest_with_MB+32>: fstd,mb %fr8,0x18(%sr0,%r12)
+ <FSTtest_with_MB+36>: fstw,mb %fr8,-0x18(%sr0,%r12)
+ <FSTtest_with_MB+40>: fstw,mb %fr8,-0x10(%sr0,%r12)
+ <FSTtest_with_MB+44>: fstw,mb %fr8,-8(%sr0,%r12)
+ <FSTtest_with_MB+48>: fstw,mb %fr8,0(%sr0,%r12)
+ <FSTtest_with_MB+52>: fstw,mb %fr8,0(%sr0,%r12)
+ <FSTtest_with_MB+56>: fstw,mb %fr8,8(%sr0,%r12)
+ <FSTtest_with_MB+60>: fstw,mb %fr8,0x10(%sr0,%r12)
+ <FSTtest_with_MB+64>: fstw,mb %fr8,0x18(%sr0,%r12)
+ <FSTtest_with_O>: b <FSTtest_with_O>
+ <FSTtest_with_O+4>: fstd,o %fr8,0(%sr0,%r12)
+ <FSTtest_with_O+8>: fstd,o %fr8,0(%sr0,%r12)
+ <FSTtest_with_O+12>: fstw,o %fr8,0(%sr0,%r12)
+ <FSTtest_with_O+16>: fstw,o %fr8,0(%sr0,%r12)
+ <FSTtest_with_O+20>: b <FCNVtest>
+ <FCNVtest>: fcnv,sgl,w %fr4,%fr5
+ <FCNVtest+4>: fcnv,sgl,w %fr4,%fr5R
+ <FCNVtest+8>: fcnv,sgl,w %fr4R,%fr5
+ <FCNVtest+12>: fcnv,sgl,w %fr4R,%fr5R
+ <FCNVtest+16>: fcnv,sgl,uw %fr4,%fr5
+ <FCNVtest+20>: fcnv,sgl,uw %fr4,%fr5R
+ <FCNVtest+24>: fcnv,sgl,uw %fr4R,%fr5
+ <FCNVtest+28>: fcnv,sgl,uw %fr4R,%fr5R
+ <FCNVtest+32>: fcnv,sgl,dbl %fr4,%fr5
+ <FCNVtest+36>: fcnv,sgl,dbl %fr4R,%fr5
+ <FCNVtest+40>: fcnv,sgl,dw %fr4,%fr5
+ <FCNVtest+44>: fcnv,sgl,dw %fr4R,%fr5
+ <FCNVtest+48>: fcnv,sgl,udw %fr4,%fr5
+ <FCNVtest+52>: fcnv,sgl,udw %fr4R,%fr5
+ <FCNVtest+56>: fcnv,sgl,quad %fr4,%fr5
+ <FCNVtest+60>: fcnv,sgl,qw %fr4,%fr5
+ <FCNVtest+64>: fcnv,sgl,uqw %fr4,%fr5
+ <FCNVtest+68>: fcnv,w,sgl %fr4,%fr5
+ <FCNVtest+72>: fcnv,w,sgl %fr4,%fr5R
+ <FCNVtest+76>: fcnv,w,sgl %fr4R,%fr5
+ <FCNVtest+80>: fcnv,w,sgl %fr4R,%fr5R
+ <FCNVtest+84>: fcnv,w,dbl %fr4,%fr5
+ <FCNVtest+88>: fcnv,w,dbl %fr4R,%fr5
+ <FCNVtest+92>: fcnv,w,quad %fr4,%fr5
+ <FCNVtest+96>: fcnv,uw,sgl %fr4,%fr5
+ <FCNVtest+100>: fcnv,uw,sgl %fr4,%fr5R
+ <FCNVtest+104>: fcnv,uw,sgl %fr4R,%fr5
+ <FCNVtest+108>: fcnv,uw,sgl %fr4R,%fr5R
+ <FCNVtest+112>: fcnv,uw,dbl %fr4,%fr5
+ <FCNVtest+116>: fcnv,uw,dbl %fr4R,%fr5
+ <FCNVtest+120>: fcnv,uw,quad %fr4,%fr5
+ <FCNVtest+124>: fcnv,dbl,sgl %fr4,%fr5
+ <FCNVtest+128>: fcnv,dlb,sgl %fr4,%fr5R
+ <FCNVtest+132>: fcnv,dbl,w %fr4,%fr5
+ <FCNVtest+136>: fcnv,dbl,w %fr4,%fr5R
+ <FCNVtest+140>: fcnv,dbl,uw %fr4,%fr5
+ <FCNVtest+144>: fcnv,dbl,uw %fr4,%fr5R
+ <FCNVtest+148>: fcnv,dbl,dw %fr4,%fr5
+ <FCNVtest+152>: fcnv,dbl,udw %fr4,%fr5
+ <FCNVtest+156>: fcnv,dbl,quad %fr4,%fr5
+ <FCNVtest+160>: fcnv,dbl,qw %fr4,%fr5
+ <FCNVtest+164>: fcnv,dbl,uqw %fr4,%fr5
+ <FCNVtest+168>: fcnv,dw,sgl %fr4,%fr5
+ <FCNVtest+172>: fcnv,dw,sgl %fr4,%fr5R
+ <FCNVtest+176>: fcnv,dw,dbl %fr4,%fr5
+ <FCNVtest+180>: fcnv,dw,quad %fr4,%fr5
+ <FCNVtest+184>: fcnv,udw,sgl %fr4,%fr5
+ <FCNVtest+188>: fcnv,udw,sgl %fr4,%fr5R
+ <FCNVtest+192>: fcnv,udw,dbl %fr4,%fr5
+ <FCNVtest+196>: fcnv,udw,quad %fr4,%fr5
+ <FCNVtest+200>: fcnv,quad,sgl %fr4,%fr5
+ <FCNVtest+204>: fcnv,quad,w %fr4,%fr5
+ <FCNVtest+208>: fcnv,quad,uw %fr4,%fr5
+ <FCNVtest+212>: fcnv,quad,dbl %fr4,%fr5
+ <FCNVtest+216>: fcnv,quad,dw %fr4,%fr5
+ <FCNVtest+220>: fcnv,quad,udw %fr4,%fr5
+ <FCNVtest+224>: fcnv,quad,qw %fr4,%fr5
+ <FCNVtest+228>: fcnv,quad,uqw %fr4,%fr5
+ <FCNVtest+232>: fcnv,qw,sgl %fr4,%fr5
+ <FCNVtest+236>: fcnv,qw,dbl %fr4,%fr5
+ <FCNVtest+240>: fcnv,qw,quad %fr4,%fr5
+ <FCNVtest+244>: fcnv,uqw,sgl %fr4,%fr5
+ <FCNVtest+248>: fcnv,uqw,dbl %fr4,%fr5
+ <FCNVtest+252>: fcnv,uqw,quad %fr4,%fr5
+ <FCNVtest+256>: b <FCNV_with_T>
+ <FCNV_with_T>: fcnv,t,sgl,w %fr4,%fr5
+ <FCNV_with_T+4>: fcnv,t,sgl,w %fr4,%fr5R
+ <FCNV_with_T+8>: fcnv,t,sgl,w %fr4R,%fr5
+ <FCNV_with_T+12>: fcnv,t,sgl,w %fr4R,%fr5R
+ <FCNV_with_T+16>: fcnv,t,sgl,uw %fr4,%fr5
+ <FCNV_with_T+20>: fcnv,t,sgl,uw %fr4,%fr5R
+ <FCNV_with_T+24>: fcnv,t,sgl,uw %fr4R,%fr5
+ <FCNV_with_T+28>: fcnv,t,sgl,uw %fr4R,%fr5R
+ <FCNV_with_T+32>: fcnv,t,sgl,dw %fr4,%fr5
+ <FCNV_with_T+36>: fcnv,t,sgl,dw %fr4R,%fr5
+ <FCNV_with_T+40>: fcnv,t,sgl,udw %fr4,%fr5
+ <FCNV_with_T+44>: fcnv,t,sgl,udw %fr4R,%fr5
+ <FCNV_with_T+48>: fcnv,t,sgl,qw %fr4,%fr5
+ <FCNV_with_T+52>: fcnv,t,sgl,uqw %fr4,%fr5
+ <FCNV_with_T+56>: fcnv,t,dbl,w %fr4,%fr5
+ <FCNV_with_T+60>: fcnv,t,dbl,w %fr4,%fr5R
+ <FCNV_with_T+64>: fcnv,t,dbl,uw %fr4,%fr5
+ <FCNV_with_T+68>: fcnv,t,dbl,uw %fr4,%fr5R
+ <FCNV_with_T+72>: fcnv,t,dbl,dw %fr4,%fr5
+ <FCNV_with_T+76>: fcnv,t,dbl,udw %fr4,%fr5
+ <FCNV_with_T+80>: fcnv,t,dbl,qw %fr4,%fr5
+ <FCNV_with_T+84>: fcnv,t,dbl,uqw %fr4,%fr5
+ <FCNV_with_T+88>: fcnv,t,quad,w %fr4,%fr5
+ <FCNV_with_T+92>: fcnv,t,quad,uw %fr4,%fr5
+ <FCNV_with_T+96>: fcnv,t,quad,dw %fr4,%fr5
+ <FCNV_with_T+100>: fcnv,t,quad,udw %fr4,%fr5
+ <FCNV_with_T+104>: fcnv,t,quad,qw %fr4,%fr5
+ <FCNV_with_T+108>: fcnv,t,quad,uqw %fr4,%fr5
+ <FCNV_with_T+112>: b <BBWtest>
+ <BBWtest>: bb,< %r8,0,<BBWtest>
+ <BBWtest+4>: bb,< %r8,1,<BBWtest>
+ <BBWtest+8>: bb,<,n %r8,0x1e,<BBWtest>
+ <BBWtest+12>: bb,>=,n %r8,0x1f,<BBWtest>
+ <BBWtest+16>: bb,< %r8,%sar,<BBWtest>
+ <BBWtest+20>: bb,>= %r8,%sar,<BBWtest>
+ <BBWtest+24>: bb,<,n %r8,%sar,<BBWtest>
+ <BBWtest+28>: bb,>=,n %r8,%sar,<BBWtest>
+ <BBWtest+32>: b <BBWtest>
+ <BBDtest>: bb,od %r8,0,<BBDtest>
+ <BBDtest+4>: bb,ev %r8,1,<BBDtest>
+ <BBDtest+8>: bb,od,n %r8,0x1e,<BBDtest>
+ <BBDtest+12>: bb,od,n %r8,0x1f,<BBDtest>
+ <BBDtest+16>: bb,>=,n %r8,0,<BBDtest>
+ <BBDtest+20>: bb,>=,n %r8,1,<BBDtest>
+ <BBDtest+24>: bb,<,n %rp,0x1c,<BBDtest>
+ <BBDtest+28>: bb,<,n %r8,0x1e,<BBDtest>
+ <BBDtest+32>: bb,>=,n %r8,0x1f,<BBDtest>
+ <BBDtest+36>: bb,od %r8,%sar,<BBDtest>
+ <BBDtest+40>: bb,ev %r8,%sar,<BBDtest>
+ <BBDtest+44>: bb,od,n %r8,%sar,<BBDtest>
+ <BBDtest+48>: bb,ev,n %r8,%sar,<BBDtest>
+ <BBDtest+52>: b <systst>
+ <systst>: rfi
+ <systst+4>: rfi,r
+ <systst+8>: probe,r (%sr2,%r9),%r8,%r7
+ <systst+12>: probe,w (%sr2,%r9),%r8,%r7
+ <systst+16>: probei,r (%sr2,%r9),0xa,%r7
+ <systst+20>: probei,w (%sr2,%r9),0xa,%r7
+ <systst+24>: lpa %r3(%sr0,%r31),%r8
+ <systst+28>: lpa,m %r3(%sr0,%r31),%r8
+ <systst+32>: pdtlb %r5(%sr2,%r9)
+ <systst+36>: pdtlb,l %r5(%sr2,%r9)
+ <systst+40>: pitlb %r5(%sr2,%r9)
+ <systst+44>: pitlb,l %r5(%sr2,%r9)
+ <systst+48>: pdtlb,m %r5(%sr2,%r9)
+ <systst+52>: pdtlb,l,m %r5(%sr2,%r9)
+ <systst+56>: pdtlb,l,m %r5(%sr2,%r9)
+ <systst+60>: pitlb,m %r5(%sr2,%r9)
+ <systst+64>: pitlb,l,m %r5(%sr2,%r9)
+ <systst+68>: pitlb,l,m %r5(%sr2,%r9)
+ <systst+72>: pdtlbe %r5(%sr0,%r9)
+ <systst+76>: pdtlbe,m %r5(%sr0,%r9)
+ <systst+80>: fic %r5(%sr0,%r9)
+ <systst+84>: fic %r5(%sr2,%r9)
+ <systst+88>: fic %r5(%sr2,%r9)
+ <systst+92>: idtlbt %r5,%r9
+ <systst+96>: iitlbt %r5,%r9
+ <systst+100>: b <DShifts>
+ <DShifts>: shrpd %r9,%r10,4,%r10
+ <DShifts+4>: shrpd %r9,%r10,%sar,%r10
+ <DShifts+8>: extrd,s %r9,8,4,%r10
+ <DShifts+12>: extrd,u %r9,8,4,%r10
+ <DShifts+16>: extrd,s %r9,8,4,%r10
+ <DShifts+20>: extrd,s %r9,%sar,8,%r10
+ <DShifts+24>: extrd,u %r9,%sar,8,%r10
+ <DShifts+28>: extrd,s %r9,%sar,8,%r10
+ <DShifts+32>: depd %r9,8,4,%r10
+ <DShifts+36>: depd,z %r9,8,4,%r10
+ <DShifts+40>: depd %r9,%sar,8,%r10
+ <DShifts+44>: depd,z %r9,%sar,8,%r10
+ <DShifts+48>: depdi 4,8,4,%r10
+ <DShifts+52>: depdi,z 4,8,4,%r10
+ <DShifts+56>: depdi 4,%sar,8,%r10
+ <DShifts+60>: depdi,z 4,%sar,8,%r10
+ <DShifts+64>: b <WShifts>
+ <WShifts>: shrpw %r9,%r10,4,%r10
+ <WShifts+4>: shrpw %r9,%r10,%sar,%r10
+ <WShifts+8>: extrw,s %r9,8,4,%r10
+ <WShifts+12>: extrw,u %r9,8,4,%r10
+ <WShifts+16>: extrw,s %r9,8,4,%r10
+ <WShifts+20>: extrw,s %r9,%sar,8,%r10
+ <WShifts+24>: extrw,u %r9,%sar,8,%r10
+ <WShifts+28>: extrw,s %r9,%sar,8,%r10
+ <WShifts+32>: depw %r9,8,4,%r10
+ <WShifts+36>: depw,z %r9,8,4,%r10
+ <WShifts+40>: depw %r9,%sar,8,%r10
+ <WShifts+44>: depw,z %r9,%sar,8,%r10
+ <WShifts+48>: depwi 4,8,4,%r10
+ <WShifts+52>: depwi,z 4,8,4,%r10
+ <WShifts+56>: depwi 4,%sar,8,%r10
+ <WShifts+60>: depwi,z 4,%sar,8,%r10
+ <WShifts+64>: b <dcortst>
+ <dcortst>: dcor %r5,%r6
+ <dcortst+4>: dcor,shz %r5,%r6
+ <dcortst+8>: dcor,i %r5,%r6
+ <dcortst+12>: dcor,i,shz %r5,%r6
+ <dcortst+16>: dcor,i,shz %r5,%r6
+ <dcortst+20>: b <uaddtst>
+ <uaddtst>: uaddcm %r4,%r5,%r6
+ <uaddtst+4>: uaddcm,sdc %r4,%r5,%r6
+ <uaddtst+8>: uaddcm,tc %r4,%r5,%r6
+ <uaddtst+12>: uaddcm,tc,sdc %r4,%r5,%r6
+ <uaddtst+16>: b <cmpbtst>
+ <cmpbtst>: cmpb %r4,%r5,<cmpbtst>
+ <cmpbtst+4>: cmpb,= %r4,%r5,<cmpbtst>
+ <cmpbtst+8>: cmpb,< %r4,%r5,<cmpbtst>
+ <cmpbtst+12>: cmpb,<= %r4,%r5,<cmpbtst>
+ <cmpbtst+16>: cmpb,<< %r4,%r5,<cmpbtst>
+ <cmpbtst+20>: cmpb,<<= %r4,%r5,<cmpbtst>
+ <cmpbtst+24>: cmpb,sv %r4,%r5,<cmpbtst>
+ <cmpbtst+28>: cmpb,od %r4,%r5,<cmpbtst>
+ <cmpbtst+32>: cmpb,tr %r4,%r5,<cmpbtst>
+ <cmpbtst+36>: cmpb,<> %r4,%r5,<cmpbtst>
+ <cmpbtst+40>: cmpb,>= %r4,%r5,<cmpbtst>
+ <cmpbtst+44>: cmpb,> %r4,%r5,<cmpbtst>
+ <cmpbtst+48>: cmpb,>>= %r4,%r5,<cmpbtst>
+ <cmpbtst+52>: cmpb,>> %r4,%r5,<cmpbtst>
+ <cmpbtst+56>: cmpb,nsv %r4,%r5,<cmpbtst>
+ <cmpbtst+60>: cmpb,ev %r4,%r5,<cmpbtst>
+ <cmpbtst+64>: cmpb* %r4,%r5,<cmpbtst>
+ <cmpbtst+68>: cmpb,*= %r4,%r5,<cmpbtst>
+ <cmpbtst+72>: cmpb,*< %r4,%r5,<cmpbtst>
+ <cmpbtst+76>: cmpb,*<= %r4,%r5,<cmpbtst>
+ <cmpbtst+80>: cmpb,*<< %r4,%r5,<cmpbtst>
+ <cmpbtst+84>: cmpb,*<<= %r4,%r5,<cmpbtst>
+ <cmpbtst+88>: cmpb,*sv %r4,%r5,<cmpbtst>
+ <cmpbtst+92>: cmpb,*od %r4,%r5,<cmpbtst>
+ <cmpbtst+96>: cmpb,*tr %r4,%r5,<cmpbtst>
+ <cmpbtst+100>: cmpb,*<> %r4,%r5,<cmpbtst>
+ <cmpbtst+104>: cmpb,*>= %r4,%r5,<cmpbtst>
+ <cmpbtst+108>: cmpb,*> %r4,%r5,<cmpbtst>
+ <cmpbtst+112>: cmpb,*>>= %r4,%r5,<cmpbtst>
+ <cmpbtst+116>: cmpb,*>> %r4,%r5,<cmpbtst>
+ <cmpbtst+120>: cmpb,*nsv %r4,%r5,<cmpbtst>
+ <cmpbtst+124>: cmpb,*ev %r4,%r5,<cmpbtst>
+ <cmpbtst+128>: b <cmpibtst>
+ <cmpibtst>: cmpib 4,%r5,<cmpibtst>
+ <cmpibtst+4>: cmpib,= 4,%r5,<cmpibtst>
+ <cmpibtst+8>: cmpib,< 4,%r5,<cmpibtst>
+ <cmpibtst+12>: cmpib,<= 4,%r5,<cmpibtst>
+ <cmpibtst+16>: cmpib,<< 4,%r5,<cmpibtst>
+ <cmpibtst+20>: cmpib,<<= 4,%r5,<cmpibtst>
+ <cmpibtst+24>: cmpib,sv 4,%r5,<cmpibtst>
+ <cmpibtst+28>: cmpib,od 4,%r5,<cmpibtst>
+ <cmpibtst+32>: cmpib,tr 4,%r5,<cmpibtst>
+ <cmpibtst+36>: cmpib,<> 4,%r5,<cmpibtst>
+ <cmpibtst+40>: cmpib,>= 4,%r5,<cmpibtst>
+ <cmpibtst+44>: cmpib,> 4,%r5,<cmpibtst>
+ <cmpibtst+48>: cmpib,>>= 4,%r5,<cmpibtst>
+ <cmpibtst+52>: cmpib,>> 4,%r5,<cmpibtst>
+ <cmpibtst+56>: cmpib,nsv 4,%r5,<cmpibtst>
+ <cmpibtst+60>: cmpib,ev 4,%r5,<cmpibtst>
+ <cmpibtst+64>: cmpib ,*<<%r8,%r5,<cmpibtst>
+ <cmpibtst+68>: cmpib ,*=%r8,%r5,<cmpibtst>
+ <cmpibtst+72>: cmpib ,*<%r8,%r5,<cmpibtst>
+ <cmpibtst+76>: cmpib ,*<=%r8,%r5,<cmpibtst>
+ <cmpibtst+80>: cmpib ,*>>=%r8,%r5,<cmpibtst>
+ <cmpibtst+84>: cmpib ,*<>%r8,%r5,<cmpibtst>
+ <cmpibtst+88>: cmpib ,*>=%r8,%r5,<cmpibtst>
+ <cmpibtst+92>: cmpib ,*>%r8,%r5,<cmpibtst>
+ <cmpibtst+96>: b <cmpclrtst>
+ <cmpclrtst>: cmpclr %r4,%r5,%r6
+ <cmpclrtst+4>: cmpclr,= %r4,%r5,%r6
+ <cmpclrtst+8>: cmpclr,< %r4,%r5,%r6
+ <cmpclrtst+12>: cmpclr,<= %r4,%r5,%r6
+ <cmpclrtst+16>: cmpclr,<< %r4,%r5,%r6
+ <cmpclrtst+20>: cmpclr,<<= %r4,%r5,%r6
+ <cmpclrtst+24>: cmpclr,sv %r4,%r5,%r6
+ <cmpclrtst+28>: cmpclr,od %r4,%r5,%r6
+ <cmpclrtst+32>: cmpclr,tr %r4,%r5,%r6
+ <cmpclrtst+36>: cmpclr,<> %r4,%r5,%r6
+ <cmpclrtst+40>: cmpclr,>= %r4,%r5,%r6
+ <cmpclrtst+44>: cmpclr,> %r4,%r5,%r6
+ <cmpclrtst+48>: cmpclr,>>= %r4,%r5,%r6
+ <cmpclrtst+52>: cmpclr,>> %r4,%r5,%r6
+ <cmpclrtst+56>: cmpclr,nsv %r4,%r5,%r6
+ <cmpclrtst+60>: cmpclr,ev %r4,%r5,%r6
+ <cmpclrtst+64>: comclr* %r4,%r5,%r6
+ <cmpclrtst+68>: comclr,*= %r4,%r5,%r6
+ <cmpclrtst+72>: comclr,*< %r4,%r5,%r6
+ <cmpclrtst+76>: comclr,*<= %r4,%r5,%r6
+ <cmpclrtst+80>: comclr,*<< %r4,%r5,%r6
+ <cmpclrtst+84>: comclr,*<<= %r4,%r5,%r6
+ <cmpclrtst+88>: comclr,*sv %r4,%r5,%r6
+ <cmpclrtst+92>: comclr,*od %r4,%r5,%r6
+ <cmpclrtst+96>: comclr,*tr %r4,%r5,%r6
+ <cmpclrtst+100>: comclr,*<> %r4,%r5,%r6
+ <cmpclrtst+104>: comclr,*>= %r4,%r5,%r6
+ <cmpclrtst+108>: comclr,*> %r4,%r5,%r6
+ <cmpclrtst+112>: comclr,*>>= %r4,%r5,%r6
+ <cmpclrtst+116>: comclr,*>> %r4,%r5,%r6
+ <cmpclrtst+120>: comclr,*nsv %r4,%r5,%r6
+ <cmpclrtst+124>: comclr,*ev %r4,%r5,%r6
+ <cmpclrtst+128>: b <cmpiclrtst>
+ <cmpiclrtst>: cmpiclr 4,%r5,%r6
+ <cmpiclrtst+4>: cmpiclr,= 4,%r5,%r6
+ <cmpiclrtst+8>: cmpiclr,< 4,%r5,%r6
+ <cmpiclrtst+12>: cmpiclr,<= 4,%r5,%r6
+ <cmpiclrtst+16>: cmpiclr,<< 4,%r5,%r6
+ <cmpiclrtst+20>: cmpiclr,<<= 4,%r5,%r6
+ <cmpiclrtst+24>: cmpiclr,sv 4,%r5,%r6
+ <cmpiclrtst+28>: cmpiclr,od 4,%r5,%r6
+ <cmpiclrtst+32>: cmpiclr,tr 4,%r5,%r6
+ <cmpiclrtst+36>: cmpiclr,<> 4,%r5,%r6
+ <cmpiclrtst+40>: cmpiclr,>= 4,%r5,%r6
+ <cmpiclrtst+44>: cmpiclr,> 4,%r5,%r6
+ <cmpiclrtst+48>: cmpiclr,>>= 4,%r5,%r6
+ <cmpiclrtst+52>: cmpiclr,>> 4,%r5,%r6
+ <cmpiclrtst+56>: cmpiclr,nsv 4,%r5,%r6
+ <cmpiclrtst+60>: cmpiclr,ev 4,%r5,%r6
+ <cmpiclrtst+64>: comiclr* 4,%r5,%r6
+ <cmpiclrtst+68>: comiclr,*= 4,%r5,%r6
+ <cmpiclrtst+72>: comiclr,*< 4,%r5,%r6
+ <cmpiclrtst+76>: comiclr,*<= 4,%r5,%r6
+ <cmpiclrtst+80>: comiclr,*<< 4,%r5,%r6
+ <cmpiclrtst+84>: comiclr,*<<= 4,%r5,%r6
+ <cmpiclrtst+88>: comiclr,*sv 4,%r5,%r6
+ <cmpiclrtst+92>: comiclr,*od 4,%r5,%r6
+ <cmpiclrtst+96>: comiclr,*tr 4,%r5,%r6
+ <cmpiclrtst+100>: comiclr,*<> 4,%r5,%r6
+ <cmpiclrtst+104>: comiclr,*>= 4,%r5,%r6
+ <cmpiclrtst+108>: comiclr,*> 4,%r5,%r6
+ <cmpiclrtst+112>: comiclr,*>>= 4,%r5,%r6
+ <cmpiclrtst+116>: comiclr,*>> 4,%r5,%r6
+ <cmpiclrtst+120>: comiclr,*nsv 4,%r5,%r6
+ <cmpiclrtst+124>: comiclr,*ev 4,%r5,%r6
+ <cmpiclrtst+128>: b <coprtst>
+ <coprtst>: fid
+ <coprtst+4>: fid
+ <coprtst+8>: copr,7,0,n
+ <coprtst+12>: copr,1,0
+ <coprtst+16>: copr,7,0x1f
+ <coprtst+20>: copr,7,0x20
+ <coprtst+24>: copr,7,0x40
+ <coprtst+28>: copr,7,0x80
+ <coprtst+32>: copr,7,0x100
+ <coprtst+36>: copr,7,0x200
+ <coprtst+40>: copr,7,0x400
+ <coprtst+44>: copr,7,0x800
+ <coprtst+48>: copr,7,0x1000
+ <coprtst+52>: copr,7,0x2000
+ <coprtst+56>: copr,7,0x4000
+ <coprtst+60>: copr,7,0x8000
+ <coprtst+64>: copr,7,0x10000
+ <coprtst+68>: copr,7,0x20000
+ <coprtst+72>: copr,7,0x40000
+ <coprtst+76>: copr,7,0x80000
+ <coprtst+80>: copr,7,0x100000
+ <coprtst+84>: copr,7,0x200000
+ <coprtst+88>: b <spop0tst>
+ <spop0tst>: spop0,7,0
+ <spop0tst+4>: spop0,7,0,n
+ <spop0tst+8>: spop0,1,0
+ <spop0tst+12>: spop0,7,0x1f
+ <spop0tst+16>: spop0,7,0x20
+ <spop0tst+20>: spop0,7,0x40
+ <spop0tst+24>: spop0,7,0x80
+ <spop0tst+28>: spop0,7,0x100
+ <spop0tst+32>: spop0,7,0x200
+ <spop0tst+36>: spop0,7,0x400
+ <spop0tst+40>: spop0,7,0x800
+ <spop0tst+44>: spop0,7,0x1000
+ <spop0tst+48>: spop0,7,0x2000
+ <spop0tst+52>: spop0,7,0x4000
+ <spop0tst+56>: spop0,7,0x8000
+ <spop0tst+60>: spop0,7,0x10000
+ <spop0tst+64>: spop0,7,0x20000
+ <spop0tst+68>: spop0,7,0x40000
+ <spop0tst+72>: spop0,7,0x80000
+ <spop0tst+76>: b <spop1tst>
+ <spop1tst>: spop1,7,0 %r5
+ <spop1tst+4>: spop1,7,0,n %r5
+ <spop1tst+8>: spop1,1,0 %r5
+ <spop1tst+12>: spop1,7,0x1f %r5
+ <spop1tst+16>: spop1,7,0x20 %r5
+ <spop1tst+20>: spop1,7,0x40 %r5
+ <spop1tst+24>: spop1,7,0x80 %r5
+ <spop1tst+28>: spop1,7,0x100 %r5
+ <spop1tst+32>: spop1,7,0x200 %r5
+ <spop1tst+36>: spop1,7,0x400 %r5
+ <spop1tst+40>: spop1,7,0x800 %r5
+ <spop1tst+44>: spop1,7,0x1000 %r5
+ <spop1tst+48>: spop1,7,0x2000 %r5
+ <spop1tst+52>: spop1,7,0x4000 %r5
+ <spop1tst+56>: b <spop2tst>
+ <spop2tst>: spop2,7,0 %r5
+ <spop2tst+4>: spop2,7,0,n %r5
+ <spop2tst+8>: spop2,1,0 %r5
+ <spop2tst+12>: spop2,7,0x1f %r5
+ <spop2tst+16>: spop2,7,0x20 %r5
+ <spop2tst+20>: spop2,7,0x40 %r5
+ <spop2tst+24>: spop2,7,0x80 %r5
+ <spop2tst+28>: spop2,7,0x100 %r5
+ <spop2tst+32>: spop2,7,0x200 %r5
+ <spop2tst+36>: spop2,7,0x400 %r5
+ <spop2tst+40>: spop2,7,0x800 %r5
+ <spop2tst+44>: spop2,7,0x1000 %r5
+ <spop2tst+48>: spop2,7,0x2000 %r5
+ <spop2tst+52>: spop2,7,0x4000 %r5
+ <spop2tst+56>: b <spop3tst>
+ <spop3tst>: spop3,7,0 %r5,%r8
+ <spop3tst+4>: spop3,7,0,n %r5,%r8
+ <spop3tst+8>: spop3,1,0 %r5,%r8
+ <spop3tst+12>: spop3,7,0x1f %r5,%r8
+ <spop3tst+16>: spop3,7,0x20 %r5,%r8
+ <spop3tst+20>: spop3,7,0x40 %r5,%r8
+ <spop3tst+24>: spop3,7,0x80 %r5,%r8
+ <spop3tst+28>: spop3,7,0x100 %r5,%r8
+ <spop3tst+32>: spop3,7,0x200 %r5,%r8
+ <spop3tst+36>: b <additst>
+ <additst>: addi 4,%r5,%r6
+ <additst+4>: addi,tsv 4,%r5,%r6
+ <additst+8>: addi,tc 4,%r5,%r6
+ <additst+12>: addi,tsv,tc 4,%r5,%r6
+ <additst+16>: addi,= 4,%r5,%r6
+ <additst+20>: addi,tsv,= 4,%r5,%r6
+ <additst+24>: addi,tc,= 4,%r5,%r6
+ <additst+28>: addi,tsv,tc,= 4,%r5,%r6
+ <additst+32>: b <subitst>
+ <subitst>: subi 4,%r5,%r6
+ <subitst+4>: subio 4,%r5,%r6
+ <subitst+8>: subi,= 4,%r5,%r6
+ <subitst+12>: subio,= 4,%r5,%r6
+ <subitst+16>: b <addtst>
+ <addtst>: add %r4,%r5,%r6
+ <addtst+4>: add,c %r4,%r5,%r6
+ <addtst+8>: add,dc %r4,%r5,%r6
+ <addtst+12>: add,l %r4,%r5,%r6
+ <addtst+16>: add,tsv %r4,%r5,%r6
+ <addtst+20>: add,tsv,c %r4,%r5,%r6
+ <addtst+24>: add,tsv,dc %r4,%r5,%r6
+ <addtst+28>: add,tsv,c %r4,%r5,%r6
+ <addtst+32>: add,tsv,dc %r4,%r5,%r6
+ <addtst+36>: add,= %r4,%r5,%r6
+ <addtst+40>: add,c,= %r4,%r5,%r6
+ <addtst+44>: add,dc,= %r4,%r5,%r6
+ <addtst+48>: add,l,= %r4,%r5,%r6
+ <addtst+52>: add,tsv,= %r4,%r5,%r6
+ <addtst+56>: add,tsv,c,= %r4,%r5,%r6
+ <addtst+60>: add,tsv,dc,= %r4,%r5,%r6
+ <addtst+64>: add,tsv,c,= %r4,%r5,%r6
+ <addtst+68>: add,tsv,dc,= %r4,%r5,%r6
+ <addtst+72>: b <shladdtst>
+ <shladdtst>: shladd %r4,1,%r5,%r6
+ <shladdtst+4>: shladd,l %r4,2,%r5,%r6
+ <shladdtst+8>: shladd,tsv %r4,3,%r5,%r6
+ <shladdtst+12>: shladd,= %r4,1,%r5,%r6
+ <shladdtst+16>: shladd,l,= %r4,2,%r5,%r6
+ <shladdtst+20>: shladd,tsv,= %r4,3,%r5,%r6
+ <shladdtst+24>: b <subtst>
+ <subtst>: sub %r4,%r5,%r6
+ <subtst+4>: sub,b %r4,%r5,%r6
+ <subtst+8>: sub,db* %r4,%r5,%r6
+ <subtst+12>: sub,tc %r4,%r5,%r6
+ <subtst+16>: sub,tsv %r4,%r5,%r6
+ <subtst+20>: sub,tsv,b %r4,%r5,%r6
+ <subtst+24>: sub,tsv,db* %r4,%r5,%r6
+ <subtst+28>: sub,tsv,tc %r4,%r5,%r6
+ <subtst+32>: sub,tsv,b %r4,%r5,%r6
+ <subtst+36>: sub,tsv,db* %r4,%r5,%r6
+ <subtst+40>: sub,tsv,tc %r4,%r5,%r6
+ <subtst+44>: sub,= %r4,%r5,%r6
+ <subtst+48>: sub,b,= %r4,%r5,%r6
+ <subtst+52>: sub,db,*= %r4,%r5,%r6
+ <subtst+56>: sub,tc,= %r4,%r5,%r6
+ <subtst+60>: sub,tsv,= %r4,%r5,%r6
+ <subtst+64>: sub,tsv,b,= %r4,%r5,%r6
+ <subtst+68>: sub,tsv,db,*= %r4,%r5,%r6
+ <subtst+72>: sub,tsv,tc,= %r4,%r5,%r6
+ <subtst+76>: sub,tsv,b,= %r4,%r5,%r6
+ <subtst+80>: sub,tsv,db,*= %r4,%r5,%r6
+ <subtst+84>: sub,tsv,tc,= %r4,%r5,%r6
+ <subtst+88>: b <gate>
+ <gate>: b,gate <test>,%r0
+ <gate+4>: b,gate <test>,%r1
+ <gate+8>: b,gate <test>,%rp
+ <gate+12>: b,gate <test>,%r31
+ <gate+16>: b <btst>
+ <btst>: b <test>
+ <btst+4>: b,l <test>,%r1
+ <btst+8>: b,l <test>,%r2
+ <btst+12>: b,push 0xff8420d0
+ <btst+16>: b,push 0xff8420d0
+ <btst+20>: b,push 0xff8420d0
+ <btst+24>: b,push 0xff8420d0
+ <btst+28>: b <betst>
+ <betst>: be 0x20d0(%sr0,%r8)
+ <betst+4>: be,l 0x20d0(%sr0,%r8)
+ <betst+8>: be,l 0x20d0(%sr0,%r8)
+ <betst+12>: b <bvetst>
+ <bvetst>: bve (%r8)
+ <bvetst+4>: bve,l (%r8),%r2
+ <bvetst+8>: bve,pop (%r8)
+ <bvetst+12>: bve,l (%r8),%r2
+ <bvetst+16>: bve,l,push (%r8),%r2
+ <bvetst+20>: bve,l,push (%r8),%r2
+ <bvetst+24>: bve,l,push (%r8),%r2
+ <bvetst+28>: bve,l,push (%r8),%r2
+ <bvetst+32>: b <bts_tst>
+ <bts_tst>: pushnom
+ <bts_tst+4>: clrbts
+ <bts_tst+8>: popbts 1
+ <bts_tst+12>: popbts 255
+ <bts_tst+16>: popbts 256
+ <bts_tst+20>: popbts 511
+ <bts_tst+24>: pushnom
+ <bts_tst+28>: pushbts %r1
+ <bts_tst+32>: pushbts %r31
+ <bts_tst+36>: b <hsh>
+ <hsh>: hshladd %r4,1,%r5,%r6
+ <hsh+4>: hshladd %r4,2,%r5,%r6
+ <hsh+8>: hshladd %r4,3,%r5,%r6
+ <hsh+12>: hshradd %r4,1,%r5,%r6
+ <hsh+16>: hshradd %r4,2,%r5,%r6
+ <hsh+20>: hshradd %r4,3,%r5,%r6
+ <hsh+24>: b <sh>
+ <sh>: shladd %r4,1,%r5,%r6
+ <sh+4>: shladd %r4,2,%r5,%r6
+ <sh+8>: shladd %r4,3,%r5,%r6
+ <sh+12>: b <mixs>
+ <mixs>: mixh,l %r1,%rp,%r3
+ <mixs+4>: mixh,r %r1,%rp,%r3
+ <mixs+8>: mixw,l %r1,%rp,%r3
+ <mixs+12>: mixw,r %r1,%rp,%r3
+ <mixs+16>: b <hw_shifts>
+ <hw_shifts>: hshl %r4,0,%r6
+ <hw_shifts+4>: hshr,u %r4,1,%r6
+ <hw_shifts+8>: hshr,s %r4,2,%r6
+ <hw_shifts+12>: hshl %r4,3,%r6
+ <hw_shifts+16>: hshr,u %r4,4,%r6
+ <hw_shifts+20>: hshr,s %r4,5,%r6
+ <hw_shifts+24>: hshl %r4,6,%r6
+ <hw_shifts+28>: hshr,u %r4,7,%r6
+ <hw_shifts+32>: hshr,s %r4,8,%r6
+ <hw_shifts+36>: hshl %r4,9,%r6
+ <hw_shifts+40>: hshr,u %r4,10,%r6
+ <hw_shifts+44>: hshr,s %r4,11,%r6
+ <hw_shifts+48>: hshl %r4,12,%r6
+ <hw_shifts+52>: hshr,u %r4,13,%r6
+ <hw_shifts+56>: hshr,s %r4,14,%r6
+ <hw_shifts+60>: hshl %r4,15,%r6
+ <hw_shifts+64>: b <fcmp3>
+ <fcmp3>: fcmp,sgl,= %fr4,%fr5R,0
+ <fcmp3+4>: fcmp,dbl,< %fr5,%fr6,1
+ <fcmp3+8>: fcmp,sgl,<= %fr6R,%fr7,2
+ <fcmp3+12>: fcmp,dbl,> %fr7,%fr8,3
+ <fcmp3+16>: fcmp,sgl,>= %fr8,%fr9R,4
+ <fcmp3+20>: fcmp,dbl,<> %fr9,%fr10,5
+ <fcmp3+24>: b <fcmp2>
+ <fcmp2>: fcmp,sgl,= %fr4,%fr5R
+ <fcmp2+4>: fcmp,sgl,< %fr5,%fr6,6
+ <fcmp2+8>: fcmp,sgl,<= %fr6R,%fr7
+ <fcmp2+12>: fcmp,dbl,false? %fr7,%fr8,0
+ <fcmp2+16>: fcmp,sgl,>= %fr8,%fr9R,1
+ <fcmp2+20>: fcmp,dbl,false? %fr9,%fr10,2
+ <fcmp2+24>: b <fcmp1>
+ <fcmp1>: fcmp,sgl,< %fr5,%fr6
+ <fcmp1+4>: fcmp,dbl,false? %fr7,%fr8
+ <fcmp1+8>: fcmp,sgl,false? %fr9,%fr10,3
+ <fcmp1+12>: b <fcmp0>
+ <fcmp0>: fcmp,sgl,false? %fr4,%fr5R
+ <fcmp0+4>: b <ftest2>
+ <ftest2>: ftest 0
+ <ftest2+4>: b <ftest1a>
+ <ftest1a>: ftest,acc
+ <ftest1a+4>: ftest,acc8
+ <ftest1a+8>: ftest,acc6
+ <ftest1a+12>: ftest,acc4
+ <ftest1a+16>: ftest,acc2
+ <ftest1a+20>: ftest,rej
+ <ftest1a+24>: ftest,rej8
+ <ftest1a+28>: b <ftest1b>
+ <ftest1b>: ftest 0
+ <ftest1b+4>: ftest 1
+ <ftest1b+8>: ftest 2
+ <ftest1b+12>: ftest 3
+ <ftest1b+16>: ftest 4
+ <ftest1b+20>: ftest 5
+ <ftest1b+24>: ftest 6
+ <ftest1b+28>: b <ftest0>
+ <ftest0>: ftest
+ <ftest0+4>: b <fpin>
+ <fpin>: fneg,sgl %fr5R,%fr6
+ <fpin+4>: fnegabs,sgl %fr5R,%fr6
+ <fpin+8>: fmpyfadd,sgl %fr6R,%fr12,%fr18R,%fr24
+ <fpin+12>: fmpynfadd,sgl %fr6,%fr12R,%fr18,%fr24R
+ <fpin+16>: fneg,dbl %fr5,%fr6
+ <fpin+20>: fnegabs,dbl %fr5,%fr6
+ <fpin+24>: fmpyfadd,dbl %fr6,%fr12,%fr18,%fr24
+ <fpin+28>: fmpynfadd,dbl %fr7,%fr13,%fr19,%fr25
+ <fpin+32>: b <mmin>
+ <mmin>: fic %r5(%sr0,%r9)
+ <mmin+4>: fic %r5(%sr2,%r9)
+ <mmin+8>: fic %r5(%sr2,%r9)
+ <mmin+12>: idtlbt %r5,%r9
+ <mmin+16>: iitlbt %r5,%r9
+ <mmin+20>: pdtlb %r5(%sr2,%r9)
+ <mmin+24>: pdtlb,l %r5(%sr2,%r9)
+ <mmin+28>: pitlb %r5(%sr2,%r9)
+ <mmin+32>: pitlb,l %r5(%sr2,%r9)
+ <mmin+36>: b <sysin>
+ <sysin>: sync
+ <sysin+4>: syncdma
+ <sysin+8>: mfia %r10
+ <sysin+12>: mtsarcm %r10
+ <sysin+16>: b <compl64>
+ <compl64>: add,d %r5,%r6,%r7
+ <compl64+4>: add,d,= %r5,%r6,%r7
+ <compl64+8>: add,d,< %r5,%r6,%r7
+ <compl64+12>: add,d,<= %r5,%r6,%r7
+ <compl64+16>: sub,d,*<< %r5,%r6,%r7
+ <compl64+20>: sub,d,*<<= %r5,%r6,%r7
+ <compl64+24>: add,d,sv %r5,%r6,%r7
+ <compl64+28>: add,d,od %r5,%r6,%r7
+ <compl64+32>: add,d,<> %r5,%r6,%r7
+ <compl64+36>: add,d,>= %r5,%r6,%r7
+ <compl64+40>: add,d,> %r5,%r6,%r7
+ <compl64+44>: sub,d,*>>= %r5,%r6,%r7
+ <compl64+48>: sub,d,*>> %r5,%r6,%r7
+ <compl64+52>: add,d,nsv %r5,%r6,%r7
+ <compl64+56>: add,d,ev %r5,%r6,%r7
+ <compl64+60>: add,d,tr %r5,%r6,%r7
+ <compl64+64>: add,d,nuv %r5,%r6,%r7
+ <compl64+68>: add,d,znv %r5,%r6,%r7
+ <compl64+72>: add,d,uv %r5,%r6,%r7
+ <compl64+76>: add,d,vnz %r5,%r6,%r7
+ <compl64+80>: uaddcm* %r5,%r6,%r7
+ <compl64+84>: uaddcm*,sbz %r5,%r6,%r7
+ <compl64+88>: uaddcm*,shz %r5,%r6,%r7
+ <compl64+92>: uaddcm*,sdc %r5,%r6,%r7
+ <compl64+96>: uaddcm* %r5,%r6,%r7
+ <compl64+100>: uaddcm*,sbc %r5,%r6,%r7
+ <compl64+104>: uaddcm*,shc %r5,%r6,%r7
+ <compl64+108>: uaddcm* %r5,%r6,%r7
+ <compl64+112>: uaddcm*,nbz %r5,%r6,%r7
+ <compl64+116>: uaddcm*,nhz %r5,%r6,%r7
+ <compl64+120>: uaddcm*,ndc %r5,%r6,%r7
+ <compl64+124>: uaddcm* %r5,%r6,%r7
+ <compl64+128>: uaddcm*,nbc %r5,%r6,%r7
+ <compl64+132>: uaddcm*,nhc %r5,%r6,%r7
+ <compl64+136>: b <WordUnit>
+ <WordUnit>: uaddcm %r5,%r6,%r7
+ <WordUnit+4>: uaddcm,sbz %r5,%r6,%r7
+ <WordUnit+8>: uaddcm,shz %r5,%r6,%r7
+ <WordUnit+12>: uaddcm,sdc %r5,%r6,%r7
+ <WordUnit+16>: uaddcm,sbc %r5,%r6,%r7
+ <WordUnit+20>: uaddcm,shc %r5,%r6,%r7
+ <WordUnit+24>: uaddcm,tr %r5,%r6,%r7
+ <WordUnit+28>: uaddcm,nbz %r5,%r6,%r7
+ <WordUnit+32>: uaddcm,nhz %r5,%r6,%r7
+ <WordUnit+36>: uaddcm,ndc %r5,%r6,%r7
+ <WordUnit+40>: uaddcm,nbc %r5,%r6,%r7
+ <WordUnit+44>: uaddcm,nhc %r5,%r6,%r7
+ <Back>: b,l <Back>,%r2
+ <Back+4>: b,l <Short>,%r2
+ <Back+8>: be,l 0x31e4(%sr1,%r8)
+ <Back+12>: be 0x31e4(%sr0,%r0)
+ <Back+16>: be,l 0x20e0(%sr0,%r0)
+ <Back+20>: bv %r5(%r8)
+ <Back+24>: bve (%r8)
+ <Back+28>: bve,n (%r8)
+ <mainend>: nop
+ <__d_eh_notify_callback>: b,l <__d_eh_notify_callback>,%r2
+ <__d_eh_notify_callback+4>: nop
+ <__d_eh_notify_callback+8>: ldw -0x18(%sr0,%sp),%rp
+ <__d_eh_notify_callback+12>: bve,n (%rp)
+ <__d_shl_get>: stw %rp,-0x14(%sr0,%sp)
+ <__d_shl_get+4>: ldo 0x40(%sp),%sp
+ <__d_shl_get+8>: stw %r26,-0x64(%sr0,%sp)
+ <__d_shl_get+12>: stw %r25,-0x68(%sr0,%sp)
+ <__d_shl_get+16>: stw %r24,-0x6c(%sr0,%sp)
+ <__d_shl_get+20>: stw %r23,-0x70(%sr0,%sp)
+ <__d_shl_get+24>: addil L'0,%dp,%r1
+ <__d_shl_get+28>: ldw 0(%sr0,%r1),%r1
+ <__d_shl_get+32>: ldw -0x64(%sr0,%sp),%r31
+ <__d_shl_get+36>: add %r1,%r31,%r19
+ <__d_shl_get+40>: ldw 0(%sr0,%r19),%r22
+ <__d_shl_get+44>: ldw -0x68(%sr0,%sp),%r26
+ <__d_shl_get+48>: ldw -0x6c(%sr0,%sp),%r25
+ <__d_shl_get+52>: ldw -0x70(%sr0,%sp),%r24
+ <__d_shl_get+56>: ldw -0x74(%sr0,%sp),%r23
+ <__d_shl_get+60>: ldw -0x78(%sr0,%sp),%r20
+ <__d_shl_get+64>: stw %r20,-0x34(%sr0,%sp)
+ <__d_shl_get+68>: ldil L'0x1000,%r31
+ <__d_shl_get+72>: be,l 0x7fc(%sr4,%r31)
+ <__d_shl_get+76>: or %r31,%r0,%rp
+ <__d_shl_get+80>: ldw -0x54(%sr0,%sp),%rp
+ <__d_shl_get+84>: bv %r0(%rp)
+ <__d_shl_get+88>: ldo -0x40(%sp),%sp
+ <__d_plt_call>: stw %rp,-0x14(%sr0,%sp)
+ <__d_plt_call+4>: ldo 0x40(%sp),%sp
+ <__d_plt_call+8>: addil L'0,%dp,%r1
+ <__d_plt_call+12>: ldw 0x208(%sr0,%r1),%r22
+ <__d_plt_call+16>: ldil L'0x1000,%r31
+ <__d_plt_call+20>: be,l 0x7fc(%sr4,%r31)
+ <__d_plt_call+24>: or %r31,%r0,%rp
+ <__d_plt_call+28>: ldw -0x54(%sr0,%sp),%rp
+ <__d_plt_call+32>: bv %r0(%rp)
+ <__d_plt_call+36>: ldo -0x40(%sp),%sp
+ <__d_eh_break>: stw %r26,-0x24(%sr0,%sp)
+ <__d_eh_break+4>: stw %r25,-0x28(%sr0,%sp)
+ <__d_eh_break+8>: stw %r24,-0x2c(%sr0,%sp)
+ <__d_eh_break+12>: bv %r0(%rp)
+ <__d_eh_break+16>: nop
+ <__d_eh_notify_callback>: stw %rp,-0x14(%sr0,%sp)
+ <__d_eh_notify_callback+4>: ldo 0x40(%sp),%sp
+ <__d_eh_notify_callback+8>: stw %r26,-0x64(%sr0,%sp)
+ <__d_eh_notify_callback+12>: stw %r25,-0x68(%sr0,%sp)
+ <__d_eh_notify_callback+16>: stw %r24,-0x6c(%sr0,%sp)
+ <__d_eh_notify_callback+20>: addil L'-0x800,%dp,%r1
+ <__d_eh_notify_callback+24>: ldw 0x7a0(%sr0,%r1),%r21
+ <__d_eh_notify_callback+28>: cmpib,<>,n 0,%r21,<__d_eh_notify_callback+44>
+ <__d_eh_notify_callback+32>: b <__d_eh_notify_callback+200>
+ <__d_eh_notify_callback+36>: or %r0,%r0,%ret0
+ <__d_eh_notify_callback+40>: b,n <__d_eh_notify_callback+192>
+ <__d_eh_notify_callback+44>: ldil L'0x3000,%r31
+ <__d_eh_notify_callback+48>: be,l 0x3ac(%sr4,%r31)
+ <__d_eh_notify_callback+52>: or %r31,%r0,%rp
+ <__d_eh_notify_callback+56>: addil L'-0x800,%dp,%r1
+ <__d_eh_notify_callback+60>: ldw 0x7a0(%sr0,%r1),%r22
+ <__d_eh_notify_callback+64>: cmpb,=,n %ret0,%r22,<__d_eh_notify_callback+88>
+ <__d_eh_notify_callback+68>: addil L'-0x800,%dp,%r1
+ <__d_eh_notify_callback+72>: stw %r0,0x7a0(%sr0,%r1)
+ <__d_eh_notify_callback+76>: b <__d_eh_notify_callback+200>
+ <__d_eh_notify_callback+80>: or %r0,%r0,%ret0
+ <__d_eh_notify_callback+84>: b,n <__d_eh_notify_callback+192>
+ <__d_eh_notify_callback+88>: ldw -0x64(%sr0,%sp),%r1
+ <__d_eh_notify_callback+92>: cmpib,=,n 1,%r1,<__d_eh_notify_callback+144>
+ <__d_eh_notify_callback+96>: cmpib,=,n 0,%r1,<__d_eh_notify_callback+104>
+ <__d_eh_notify_callback+100>: b,n <__d_eh_notify_callback+184>
+ <__d_eh_notify_callback+104>: addil L'-0x800,%dp,%r1
+ <__d_eh_notify_callback+108>: ldw 0x7b0(%sr0,%r1),%r31
+ <__d_eh_notify_callback+112>: cmpib,=,n 0,%r31,<__d_eh_notify_callback+140>
+ <__d_eh_notify_callback+116>: ldw -0x64(%sr0,%sp),%r26
+ <__d_eh_notify_callback+120>: ldw -0x68(%sr0,%sp),%r25
+ <__d_eh_notify_callback+124>: ldw -0x6c(%sr0,%sp),%r24
+ <__d_eh_notify_callback+128>: ldil L'0x3000,%r31
+ <__d_eh_notify_callback+132>: be,l 0x29c(%sr4,%r31)
+ <__d_eh_notify_callback+136>: or %r31,%r0,%rp
+ <__d_eh_notify_callback+140>: b,n <__d_eh_notify_callback+192>
+ <__d_eh_notify_callback+144>: addil L'-0x800,%dp,%r1
+ <__d_eh_notify_callback+148>: ldw 0x7ac(%sr0,%r1),%r19
+ <__d_eh_notify_callback+152>: cmpib,=,n 0,%r19,<__d_eh_notify_callback+180>
+ <__d_eh_notify_callback+156>: ldw -0x64(%sr0,%sp),%r26
+ <__d_eh_notify_callback+160>: ldw -0x68(%sr0,%sp),%r25
+ <__d_eh_notify_callback+164>: ldw -0x6c(%sr0,%sp),%r24
+ <__d_eh_notify_callback+168>: ldil L'0x3000,%r31
+ <__d_eh_notify_callback+172>: be,l 0x29c(%sr4,%r31)
+ <__d_eh_notify_callback+176>: or %r31,%r0,%rp
+ <__d_eh_notify_callback+180>: b,n <__d_eh_notify_callback+192>
+ <__d_eh_notify_callback+184>: b <__d_eh_notify_callback+192>
+ <__d_eh_notify_callback+188>: nop
+ <__d_eh_notify_callback+192>: addil L'-0x800,%dp,%r1
+ <__d_eh_notify_callback+196>: ldw 0x7a8(%sr0,%r1),%ret0
+ <__d_eh_notify_callback+200>: ldw -0x54(%sr0,%sp),%rp
+ <__d_eh_notify_callback+204>: bv %r0(%rp)
+ <__d_eh_notify_callback+208>: ldo -0x40(%sp),%sp
+ <_end_>: ldo 0x40(%sp),%sp
+ <_end_+4>: ldi 1,%r20
+ <_end_+8>: stw %r20,-0x28(%sr0,%sp)
+ <_end_+12>: bv %r0(%rp)
+ <_end_+16>: ldo -0x40(%sp),%sp
+ <__d_ldsp>: ldsid (%sr0,%rp),%r1
+ <__d_ldsp+4>: mtsp %r1,%sr0
+ <__d_ldsp+8>: be,n 0(%sr0,%rp)
+ <__d_ldsp+12>: nop
+ <__d_ldsp+16>: break 4,8
+ <__d_getpid>: ldil L'-0x40000000,%r1
+ <__d_getpid+4>: be,l 4(%sr7,%r1)
+ <__d_getpid+8>: ldi 0x14,%r22
+ <__d_getpid+12>: or,= %r0,%r22,%r0
+ <__d_getpid+16>: b,n <__d_syserror>
+ <__d_getpid+20>: nop
+ <__d_getpid+24>: bv,n %r0(%rp)
+ <__d_getpid+28>: nop
+ <__d_syserror>: ldw -0x18(%sr0,%dp),%r1
+ <__d_syserror+4>: copy %r1,%r1
+ <__d_syserror+8>: stw %ret0,0(%sr0,%r1)
+ <__d_syserror+12>: ldi -1,%ret0
+ <__d_syserror+16>: bv,n %r0(%rp)
+ <__d_syserror+20>: nop
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20-t2.s gdb/testsuite/gdb.disasm/pa20-t2.s
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20-t2.s Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa20-t2.s Thu Jul 22 17:49:48 1999
***************
*** 0 ****
--- 1,1447 ----
+ .level 2.0N
+
+ .export main,ENTRY
+ .export mainend,ENTRY
+ .space $TEXT$
+ .subspa $CODE$
+
+ .import word0,data
+ .import word1,data
+ .import test,code
+
+ .data
+
+ .double 0.1234
+ .dword 0x0123456789abcdef
+ .dword 0xfedcba9876543210
+
+ .code
+
+ main
+ .proc
+ .callinfo NO_CALLS,FRAME=0
+ .entry
+
+
+ MASK10
+ SSM 0x001,%r1
+ RSM 0x002,%r1
+ SSM 0x004,%r1
+ RSM 0x008,%r1
+ SSM 0x010,%r1
+ RSM 0x020,%r1
+ SSM 0x040,%r1
+ RSM 0x080,%r1
+ SSM 0x100,%r1
+ RSM 0x200,%r1
+ SSM 0x3ff,%r1
+ RSM 0x000,%r1
+
+ VM_bug
+ DEPW,<> %r14,%cr11,20,%r7
+ DEPW %r14,%cr11,20,%r7
+ DEPWI,<> 14,%cr11,20,%r7
+ DEPWI 14,%cr11,20,%r7
+ EXTRW,<> %r14,%cr11,20,%r7
+ EXTRW %r14,%cr11,20,%r7
+ EXTRD,*<> %r14,%cr11,20,%r7
+ EXTRD,<> %r14,%cr11,20,%r7
+ EXTRD %r14,%cr11,20,%r7
+ CLDST
+ b CLDST
+ CLDD,0,S,SL %r5(%sr2,%r6),6
+ CLDD,1,MA,SL 8(%sr2,%r7),7
+ CLDD,2,M %r8(%sr3,%r9),8
+ CLDD,3,MB -8(%r10),9
+ CLDD,4,SL %r11(%r12),10
+ CLDD,5,SL 0(%r13),11
+ CLDD,6 %r14(%r15),12
+ CLDD,7 8(%r15),13
+
+ CLDW,0,S,SL %r5(%sr2,%r6),14
+ CLDW,1,MA,SL 8(%sr2,%r7),15
+ CLDW,2,M %r8(%sr3,%r9),16
+ CLDW,3,MB -8(%r10),17
+ CLDW,4,SL %r11(%r12),18
+ CLDW,5,SL 0(%r13),19
+ CLDW,6 %r14(%r15),20
+ CLDW,7 8(%r15),21
+
+ CSTD,0,S,SL 6,%r5(%sr2,%r6)
+ CSTD,1,MA,SL 7,8(%sr2,%r7)
+ CSTD,2,M 8,%r8(%sr3,%r9)
+ CSTD,3,MB 9,-8(%r10)
+ CSTD,4,BC 10,%r11(%r12)
+ CSTD,5,SL 11,0(%r13)
+ CSTD,6 12,%r14(%r15)
+ CSTD,7 13,8(%r15)
+
+ CSTW,0,S,SL 14,%r5(%sr2,%r6)
+ CSTW,1,MA,SL 15,8(%sr2,%r7)
+ CSTW,2,M 16,%r8(%sr3,%r9)
+ CSTW,3,MB 17,-8(%r10)
+ CSTW,4,SL 18,%r11(%r12)
+ CSTW,5,BC 19,0(%r13)
+ CSTW,6 20,%r14(%r15)
+ CSTW,7 21,8(%r15)
+ LDtest
+ b LDtest
+ LDD -24(%r12),%r31
+ LDD -16(%r12),%r31
+ LDD -8(%r12),%r31
+ LDD 0(%r12),%r31
+ LDD (%r12),%r31
+ LDD %r6(%r12),%r31
+ LDD 8(%r12),%r31
+ LDD 16(%r12),%r31
+ LDD 24(%r12),%r31
+ ;
+ LDW -24(%r12),%r31
+ LDW -16(%r12),%r31
+ LDW -8(%r12),%r31
+ LDW 0(%r12),%r31
+ LDW (%r12),%r31
+ LDW %r6(%r12),%r31
+ LDW 8(%r12),%r31
+ LDW 16(%r12),%r31
+ LDW 24(%r12),%r31
+ ;
+ LDH -24(%r12),%r31
+ LDH -16(%r12),%r31
+ LDH -8(%r12),%r31
+ LDH 0(%r12),%r31
+ LDH (%r12),%r31
+ LDH %r6(%r12),%r31
+ LDH 8(%r12),%r31
+ LDH 16(%r12),%r31
+ LDH 24(%r12),%r31
+ ;
+ LDB -24(%r12),%r31
+ LDB -16(%r12),%r31
+ LDB -8(%r12),%r31
+ LDB 0(%r12),%r31
+ LDB (%r12),%r31
+ LDB %r6(%r12),%r31
+ LDB 8(%r12),%r31
+ LDB 16(%r12),%r31
+ LDB 24(%r12),%r31
+ ;
+ ; LDDA -24(%r12),%r31 ; Error
+ LDDA -16(%r12),%r31
+ LDDA -8(%r12),%r31
+ LDDA 0(%r12),%r31
+ LDDA (%r12),%r31
+ LDDA %r6(%r12),%r31
+ LDDA 8(%r12),%r31
+ ; LDDA 16(%r12),%r31 ; Error
+ ; LDDA 24(%r12),%r31 ; Error
+ ;
+ ; LDWA -24(%r12),%r31 ; Error
+ LDWA -16(%r12),%r31
+ LDWA -8(%r12),%r31
+ LDWA 0(%r12),%r31
+ LDWA (%r12),%r31
+ LDWA %r6(%r12),%r31
+ LDWA 8(%r12),%r31
+ ; LDWA 16(%r12),%r31 ; Error
+ ; LDWA 24(%r12),%r31 ; Error
+ ;
+ ; LDCD -24(%r12),%r31 ; Error
+ LDCD -16(%r12),%r31
+ LDCD -8(%r12),%r31
+ LDCD 0(%r12),%r31
+ LDCD (%r12),%r31
+ LDCD %r6(%r12),%r31
+ LDCD 8(%r12),%r31
+ ; LDCD 16(%r12),%r31 ; Error
+ ; LDCD 24(%r12),%r31 ; Error
+ ;
+ ; LDCW -24(%r12),%r31 ; Error
+ LDCW -16(%r12),%r31
+ LDCW -8(%r12),%r31
+ LDCW 0(%r12),%r31
+ LDCW (%r12),%r31
+ LDCW %r6(%r12),%r31
+ LDCW 8(%r12),%r31
+ ; LDCW 16(%r12),%r31 ; Error
+ ; LDCW 24(%r12),%r31 ; Error
+ ;
+ LDtest_with_MA
+ B LDtest_with_MA
+ ;
+ LDD,MA -24(%r12),%r31
+ LDD,MA -16(%r12),%r31
+ LDD,MA -8(%r12),%r31
+ ; LDD,MA 0(%r12),%r31
+ ; LDD,MA (%r12),%r31 ; Error
+ ; LDD,MA %r6(%r12),%r31 ; Error
+ LDD,MA 8(%r12),%r31
+ LDD,MA 16(%r12),%r31
+ LDD,MA 24(%r12),%r31
+ ;
+ LDW,MA -24(%r12),%r31
+ LDW,MA -16(%r12),%r31
+ LDW,MA -8(%r12),%r31
+ ; LDW,MA 0(%r12),%r31 ; Error
+ ; LDW,MA (%r12),%r31 ; Error
+ ; LDW,MA %r6(%r12),%r31 ; Error
+ LDW,MA 8(%r12),%r31
+ LDW,MA 16(%r12),%r31
+ LDW,MA 24(%r12),%r31
+ ;
+ ; LDH,MA -24(%r12),%r31 ; error
+ LDH,MA -16(%r12),%r31
+ LDH,MA -8(%r12),%r31
+ ; LDH,MA 0(%r12),%r31 ; Error
+ ; LDH,MA (%r12),%r31 ; Error
+ ; LDH,MA %r6(%r12),%r31 ; Error
+ LDH,MA 8(%r12),%r31
+ ; LDH,MA 16(%r12),%r31 ; error
+ ; LDH,MA 24(%r12),%r31 ; error
+ ;
+ ; LDB,MA -24(%r12),%r31 ; error
+ LDB,MA -16(%r12),%r31
+ LDB,MA -8(%r12),%r31
+ ; LDB,MA 0(%r12),%r31 ; Error
+ ; LDB,MA (%r12),%r31 ; Error
+ ; LDB,MA %r6(%r12),%r31 ; Error
+ LDB,MA 8(%r12),%r31
+ ; LDB,MA 16(%r12),%r31 ; error
+ ; LDB,MA 24(%r12),%r31 ; error
+ ;
+ ; LDDA,MA -24(%r12),%r31 ; Error
+ LDDA,MA -16(%r12),%r31
+ LDDA,MA -8(%r12),%r31
+ ; LDDA,MA 0(%r12),%r31 ; Error
+ ; LDDA,MA (%r12),%r31 ; Error
+ ; LDDA,MA %r6(%r12),%r31 ; Error
+ LDDA,MA 8(%r12),%r31
+ ; LDDA,MA 16(%r12),%r31 ; Error
+ ; LDDA,MA 24(%r12),%r31 ; Error
+ ;
+ ; LDWA,MA -24(%r12),%r31 ; Error
+ LDWA,MA -16(%r12),%r31
+ LDWA,MA -8(%r12),%r31
+ ; LDWA,MA 0(%r12),%r31 ; Error
+ ; LDWA,MA (%r12),%r31 ; Error
+ ; LDWA,MA %r6(%r12),%r31 ; Error
+ LDWA,MA 8(%r12),%r31
+ ; LDWA,MA 16(%r12),%r31 ; Error
+ ; LDWA,MA 24(%r12),%r31 ; Error
+ ;
+ ; LDCD,MA -24(%r12),%r31 ; Error
+ LDCD,MA -16(%r12),%r31
+ LDCD,MA -8(%r12),%r31
+ ; LDCD,MA 0(%r12),%r31 ; Error
+ ; LDCD,MA (%r12),%r31 ; Error
+ ; LDCD,MA %r6(%r12),%r31 ; Error
+ LDCD,MA 8(%r12),%r31
+ ; LDCD,MA 16(%r12),%r31 ; Error
+ ; LDCD,MA 24(%r12),%r31 ; Error
+ ;
+ ; LDCW,MA -24(%r12),%r31 ; Error
+ LDCW,MA -16(%r12),%r31
+ LDCW,MA -8(%r12),%r31
+ ; LDCW,MA 0(%r12),%r31 ; Error
+ ; LDCW,MA (%r12),%r31 ; Error
+ ; LDCW,MA %r6(%r12),%r31 ; Error
+ LDCW,MA 8(%r12),%r31
+ ; LDCW,MA 16(%r12),%r31 ; Error
+ ; LDCW,MA 24(%r12),%r31 ; Error
+ ;
+ LDtest_with_MB
+ B LDtest_with_MB
+ ;
+ LDD,MB -24(%r12),%r31
+ LDD,MB -16(%r12),%r31
+ LDD,MB -8(%r12),%r31
+ LDD,MB 0(%r12),%r31
+ LDD,MB (%r12),%r31
+ ; LDD,MB %r6(%r12),%r31 ; Error
+ LDD,MB 8(%r12),%r31
+ LDD,MB 16(%r12),%r31
+ LDD,MB 24(%r12),%r31
+ ;
+ LDW,MB -24(%r12),%r31
+ LDW,MB -16(%r12),%r31
+ LDW,MB -8(%r12),%r31
+ LDW,MB 0(%r12),%r31
+ LDW,MB (%r12),%r31
+ ; LDW,MB %r6(%r12),%r31 ; Error
+ LDW,MB 8(%r12),%r31
+ LDW,MB 16(%r12),%r31
+ LDW,MB 24(%r12),%r31
+ ;
+ ; LDH,MB -24(%r12),%r31 ; error
+ LDH,MB -16(%r12),%r31
+ LDH,MB -8(%r12),%r31
+ LDH,MB 0(%r12),%r31
+ LDH,MB (%r12),%r31
+ ; LDH,MB %r6(%r12),%r31 ; Error
+ LDH,MB 8(%r12),%r31
+ ; LDH,MB 16(%r12),%r31 ; error
+ ; LDH,MB 24(%r12),%r31 ; error
+ ;
+ ; LDB,MB -24(%r12),%r31 ; error
+ LDB,MB -16(%r12),%r31
+ LDB,MB -8(%r12),%r31
+ LDB,MB 0(%r12),%r31
+ LDB,MB (%r12),%r31
+ ; LDB,MB %r6(%r12),%r31 ; Error
+ LDB,MB 8(%r12),%r31
+ ; LDB,MB 16(%r12),%r31 ; error
+ ; LDB,MB 24(%r12),%r31 ; error
+ ;
+ ; LDDA,MB -24(%r12),%r31 ; Error
+ LDDA,MB -16(%r12),%r31
+ LDDA,MB -8(%r12),%r31
+ LDDA,MB 0(%r12),%r31
+ LDDA,MB (%r12),%r31
+ ; LDDA,MB %r6(%r12),%r31 ; Error
+ LDDA,MB 8(%r12),%r31
+ ; LDDA,MB 16(%r12),%r31 ; Error
+ ; LDDA,MB 24(%r12),%r31 ; Error
+ ;
+ ; LDWA,MB -24(%r12),%r31 ; Error
+ LDWA,MB -16(%r12),%r31
+ LDWA,MB -8(%r12),%r31
+ LDWA,MB 0(%r12),%r31
+ LDWA,MB (%r12),%r31
+ ; LDWA,MB %r6(%r12),%r31 ; Error
+ LDWA,MB 8(%r12),%r31
+ ; LDWA,MB 16(%r12),%r31 ; Error
+ ; LDWA,MB 24(%r12),%r31 ; Error
+ ;
+ ; LDCD,MB -24(%r12),%r31 ; Error
+ LDCD,MB -16(%r12),%r31
+ LDCD,MB -8(%r12),%r31
+ LDCD,MB 0(%r12),%r31
+ LDCD,MB (%r12),%r31
+ ; LDCD,MB %r6(%r12),%r31 ; Error
+ LDCD,MB 8(%r12),%r31
+ ; LDCD,MB 16(%r12),%r31 ; Error
+ ; LDCD,MB 24(%r12),%r31 ; Error
+ ;
+ ; LDCW,MB -24(%r12),%r31 ; Error
+ LDCW,MB -16(%r12),%r31
+ LDCW,MB -8(%r12),%r31
+ LDCW,MB 0(%r12),%r31
+ LDCW,MB (%r12),%r31
+ ; LDCW,MB %r6(%r12),%r31 ; Error
+ LDCW,MB 8(%r12),%r31
+ ; LDCW,MB 16(%r12),%r31 ; Error
+ ; LDCW,MB 24(%r12),%r31 ; Error
+ ;
+ LDtest_with_O
+ B LDtest_with_O
+ ;
+ LDD,O 0(%r12),%r31
+ LDD,O (%r12),%r31
+ LDW,O 0(%r12),%r31
+ LDW,O (%r12),%r31
+ LDH,O 0(%r12),%r31
+ LDH,O (%r12),%r31
+ LDB,O 0(%r12),%r31
+ LDB,O (%r12),%r31
+ LDDA,O 0(%r12),%r31
+ LDDA,O (%r12),%r31
+ LDWA,O 0(%r12),%r31
+ LDWA,O (%r12),%r31
+ LDCD,O 0(%r12),%r31
+ LDCD,O (%r12),%r31
+ LDCW,O 0(%r12),%r31
+ LDCW,O (%r12),%r31
+ ;
+ STtest
+ b STtest
+ STD %r31,-24(%r12)
+ STD %r31,-16(%r12)
+ STD %r31,-8(%r12)
+ STD %r31,0(%r12)
+ STD %r31,(%r12)
+ STD %r31,8(%r12)
+ STD %r31,16(%r12)
+ STD %r31,24(%r12)
+ ;
+ STW %r31,-24(%r12)
+ STW %r31,-16(%r12)
+ STW %r31,-8(%r12)
+ STW %r31,0(%r12)
+ STW %r31,(%r12)
+ STW %r31,8(%r12)
+ STW %r31,16(%r12)
+ STW %r31,24(%r12)
+ ;
+ STH %r31,-24(%r12)
+ STH %r31,-16(%r12)
+ STH %r31,-8(%r12)
+ STH %r31,0(%r12)
+ STH %r31,(%r12)
+ STH %r31,8(%r12)
+ STH %r31,16(%r12)
+ STH %r31,24(%r12)
+ ;
+ STB %r31,-24(%r12)
+ STB %r31,-16(%r12)
+ STB %r31,-8(%r12)
+ STB %r31,0(%r12)
+ STB %r31,(%r12)
+ STB %r31,8(%r12)
+ STB %r31,16(%r12)
+ STB %r31,24(%r12)
+ ;
+ ; STDA %r31,-24(%r12) ; Error
+ STDA %r31,-16(%r12)
+ STDA %r31,-8(%r12)
+ STDA %r31,0(%r12)
+ STDA %r31,(%r12)
+ STDA %r31,8(%r12)
+ ; STDA %r31,16(%r12) ; Error
+ ; STDA %r31,24(%r12) ; Error
+ ;
+ ; STWA %r31,-24(%r12) ; Error
+ STWA %r31,-16(%r12)
+ STWA %r31,-8(%r12)
+ STWA %r31,0(%r12)
+ STWA %r31,(%r12)
+ STWA %r31,8(%r12)
+ ; STWA %r31,16(%r12) ; Error
+ ; STWA %r31,24(%r12) ; Error
+ ;
+ ; STDBY %r31,-24(%r12) ; Error
+ STDBY %r31,-16(%r12)
+ STDBY %r31,-8(%r12)
+ STDBY %r31,0(%r12)
+ STDBY %r31,(%r12)
+ STDBY %r31,8(%r12)
+ ; STDBY %r31,16(%r12) ; Error
+ ; STDBY %r31,24(%r12) ; Error
+ ;
+ ; STBY %r31,-24(%r12) ; Error
+ STBY %r31,-16(%r12)
+ STBY %r31,-8(%r12)
+ STBY %r31,0(%r12)
+ STBY %r31,(%r12)
+ STBY %r31,8(%r12)
+ ; STBY %r31,16(%r12) ; Error
+ ; STBY %r31,24(%r12) ; Error
+ ;
+ STtest_with_MA
+ b STtest_with_MA
+ STD,MA %r31,-24(%r12)
+ STD,MA %r31,-16(%r12)
+ STD,MA %r31,-8(%r12)
+ ; STD,MA %r31,0(%r12) ; Error
+ ; STD,MA %r31,(%r12) ; Error
+ STD,MA %r31,8(%r12)
+ STD,MA %r31,16(%r12)
+ STD,MA %r31,24(%r12)
+ ;
+ STW,MA %r31,-24(%r12)
+ STW,MA %r31,-16(%r12)
+ STW,MA %r31,-8(%r12)
+ ; STW,MA %r31,0(%r12) ; Error
+ ; STW,MA %r31,(%r12) ; Error
+ STW,MA %r31,8(%r12)
+ STW,MA %r31,16(%r12)
+ STW,MA %r31,24(%r12)
+ ;
+ ; STH,MA %r31,-24(%r12) ; Error
+ STH,MA %r31,-16(%r12)
+ STH,MA %r31,-8(%r12)
+ ; STH,MA %r31,0(%r12) ; Error
+ ; STH,MA %r31,(%r12) ; Error
+ STH,MA %r31,8(%r12)
+ ; STH,MA %r31,16(%r12) ; Error
+ ; STH,MA %r31,24(%r12) ; Error
+ ;
+ ; STB,MA %r31,-24(%r12) ; Error
+ STB,MA %r31,-16(%r12)
+ STB,MA %r31,-8(%r12)
+ ; STB,MA %r31,0(%r12) ; Error
+ ; STB,MA %r31,(%r12) ; Error
+ STB,MA %r31,8(%r12)
+ ; STB,MA %r31,16(%r12) ; Error
+ ; STB,MA %r31,24(%r12) ; Error
+ ;
+ ; STDA,MA %r31,-24(%r12) ; Error
+ STDA,MA %r31,-16(%r12)
+ STDA,MA %r31,-8(%r12)
+ ; STDA,MA %r31,0(%r12) ; Error
+ ; STDA,MA %r31,(%r12) ; Error
+ STDA,MA %r31,8(%r12)
+ ; STDA,MA %r31,16(%r12) ; Error
+ ; STDA,MA %r31,24(%r12) ; Error
+ ;
+ ; STWA,MA %r31,-24(%r12) ; Error
+ STWA,MA %r31,-16(%r12)
+ STWA,MA %r31,-8(%r12)
+ ; STWA,MA %r31,0(%r12) ; Error
+ ; STWA,MA %r31,(%r12) ; Error
+ STWA,MA %r31,8(%r12)
+ ; STWA,MA %r31,16(%r12) ; Error
+ ; STWA,MA %r31,24(%r12) ; Error
+ ;
+ STtest_with_MB
+ b STtest_with_MB
+ STD,MB %r31,-24(%r12)
+ STD,MB %r31,-16(%r12)
+ STD,MB %r31,-8(%r12)
+ STD,MB %r31,0(%r12)
+ STD,MB %r31,(%r12)
+ STD,MB %r31,8(%r12)
+ STD,MB %r31,16(%r12)
+ STD,MB %r31,24(%r12)
+ ;
+ STW,MB %r31,-24(%r12)
+ STW,MB %r31,-16(%r12)
+ STW,MB %r31,-8(%r12)
+ STW,MB %r31,0(%r12)
+ STW,MB %r31,(%r12)
+ STW,MB %r31,8(%r12)
+ STW,MB %r31,16(%r12)
+ STW,MB %r31,24(%r12)
+ ;
+ ; STH,MB %r31,-24(%r12) ; Error
+ STH,MB %r31,-16(%r12)
+ STH,MB %r31,-8(%r12)
+ STH,MB %r31,0(%r12)
+ STH,MB %r31,(%r12)
+ STH,MB %r31,8(%r12)
+ ; STH,MB %r31,16(%r12) ; Error
+ ; STH,MB %r31,24(%r12) ; Error
+ ;
+ ; STB,MB %r31,-24(%r12) ; Error
+ STB,MB %r31,-16(%r12)
+ STB,MB %r31,-8(%r12)
+ STB,MB %r31,0(%r12)
+ STB,MB %r31,(%r12)
+ STB,MB %r31,8(%r12)
+ ; STB,MB %r31,16(%r12) ; Error
+ ; STB,MB %r31,24(%r12) ; Error
+ ;
+ ; STDA,MB %r31,-24(%r12) ; Error
+ STDA,MB %r31,-16(%r12)
+ STDA,MB %r31,-8(%r12)
+ STDA,MB %r31,0(%r12)
+ STDA,MB %r31,(%r12)
+ STDA,MB %r31,8(%r12)
+ ; STDA,MB %r31,16(%r12) ; Error
+ ; STDA,MB %r31,24(%r12) ; Error
+ ;
+ ; STWA,MB %r31,-24(%r12) ; Error
+ STWA,MB %r31,-16(%r12)
+ STWA,MB %r31,-8(%r12)
+ STWA,MB %r31,0(%r12)
+ STWA,MB %r31,(%r12)
+ STWA,MB %r31,8(%r12)
+ ; STWA,MB %r31,16(%r12) ; Error
+ ; STWA,MB %r31,24(%r12) ; Error
+ ;
+ STtest_with_O
+ b STtest_with_O
+ STD,O %r31,0(%r12)
+ STD,O %r31,(%r12)
+ STW,O %r31,0(%r12)
+ STW,O %r31,(%r12)
+ STH,O %r31,0(%r12)
+ STH,O %r31,(%r12)
+ STB,O %r31,0(%r12)
+ STB,O %r31,(%r12)
+ STDA,O %r31,0(%r12)
+ STDA,O %r31,(%r12)
+ STWA,O %r31,0(%r12)
+ STWA,O %r31,(%r12)
+ ;
+ FLDtest
+ b FLDtest
+ FLDD -24(%r12),%fr8
+ FLDD -16(%r12),%fr8
+ FLDD -8(%r12),%fr8
+ FLDD 0(%r12),%fr8
+ FLDD (%r12),%fr8
+ FLDD %r6(%r12),%fr8
+ FLDD 8(%r12),%fr8
+ FLDD 16(%r12),%fr8
+ FLDD 24(%r12),%fr8
+ ;
+ FLDW -24(%r12),%fr8
+ FLDW -16(%r12),%fr8
+ FLDW -8(%r12),%fr8
+ FLDW 0(%r12),%fr8
+ FLDW (%r12),%fr8
+ FLDW %r6(%r12),%fr8
+ FLDW 8(%r12),%fr8
+ FLDW 16(%r12),%fr8
+ FLDW 24(%r12),%fr8
+ ;
+ FLDtest_with_MA
+ b FLDtest
+ FLDD,MA -24(%r12),%fr8
+ FLDD,MA -16(%r12),%fr8
+ FLDD,MA -8(%r12),%fr8
+ ; FLDD,MA 0(%r12),%fr8 ; Error
+ ; FLDD,MA (%r12),%fr8 ; Error
+ FLDD,MA 8(%r12),%fr8
+ FLDD,MA 16(%r12),%fr8
+ FLDD,MA 24(%r12),%fr8
+ ;
+ FLDW,MA -24(%r12),%fr8
+ FLDW,MA -16(%r12),%fr8
+ FLDW,MA -8(%r12),%fr8
+ ; FLDW,MA 0(%r12),%fr8 ; Error
+ ; FLDW,MA (%r12),%fr8 ; Error
+ FLDW,MA 8(%r12),%fr8
+ FLDW,MA 16(%r12),%fr8
+ FLDW,MA 24(%r12),%fr8
+ ;
+ FLDtest_with_MB
+ b FLDtest
+ FLDD,MB -24(%r12),%fr8
+ FLDD,MB -16(%r12),%fr8
+ FLDD,MB -8(%r12),%fr8
+ FLDD,MB 0(%r12),%fr8
+ FLDD,MB (%r12),%fr8
+ FLDD,MB 8(%r12),%fr8
+ FLDD,MB 16(%r12),%fr8
+ FLDD,MB 24(%r12),%fr8
+ ;
+ FLDW,MB -24(%r12),%fr8
+ FLDW,MB -16(%r12),%fr8
+ FLDW,MB -8(%r12),%fr8
+ FLDW,MB 0(%r12),%fr8
+ FLDW,MB (%r12),%fr8
+ FLDW,MB 8(%r12),%fr8
+ FLDW,MB 16(%r12),%fr8
+ FLDW,MB 24(%r12),%fr8
+ ;
+ FLDtest_with_O
+ b FLDtest_with_O
+ FLDD,O 0(%r12),%fr8
+ FLDD,O (%r12),%fr8
+ FLDW,O 0(%r12),%fr8
+ FLDW,O (%r12),%fr8
+ ;
+ FSTtest
+ b FSTtest
+ FSTD %fr8,-24(%r12)
+ FSTD %fr8,-16(%r12)
+ FSTD %fr8,-8(%r12)
+ FSTD %fr8,0(%r12)
+ FSTD %fr8,(%r12)
+ FSTD %fr8,%r6(%r12)
+ FSTD %fr8,8(%r12)
+ FSTD %fr8,16(%r12)
+ FSTD %fr8,24(%r12)
+ ;
+ FSTW %fr8,-24(%r12)
+ FSTW %fr8,-16(%r12)
+ FSTW %fr8,-8(%r12)
+ FSTW %fr8,0(%r12)
+ FSTW %fr8,(%r12)
+ FSTW %fr8,%r6(%r12)
+ FSTW %fr8,8(%r12)
+ FSTW %fr8,16(%r12)
+ FSTW %fr8,24(%r12)
+ ;
+ FSTtest_with_MA
+ b FSTtest_with_MA
+ FSTD,MA %fr8,-24(%r12)
+ FSTD,MA %fr8,-16(%r12)
+ FSTD,MA %fr8,-8(%r12)
+ ; FSTD,MA %fr8,0(%r12) ; Error
+ ; FSTD,MA %fr8,(%r12) ; Error
+ FSTD,MA %fr8,8(%r12)
+ FSTD,MA %fr8,16(%r12)
+ FSTD,MA %fr8,24(%r12)
+ ;
+ FSTW,MA %fr8,-24(%r12)
+ FSTW,MA %fr8,-16(%r12)
+ FSTW,MA %fr8,-8(%r12)
+ ; FSTW,MA %fr8,0(%r12) ; Error
+ ; FSTW,MA %fr8,(%r12) ; Error
+ FSTW,MA %fr8,8(%r12)
+ FSTW,MA %fr8,16(%r12)
+ FSTW,MA %fr8,24(%r12)
+ ;
+ FSTtest_with_MB
+ b FSTtest_with_MB
+ FSTD,MB %fr8,-24(%r12)
+ FSTD,MB %fr8,-16(%r12)
+ FSTD,MB %fr8,-8(%r12)
+ FSTD,MB %fr8,0(%r12)
+ FSTD,MB %fr8,(%r12)
+ FSTD,MB %fr8,8(%r12)
+ FSTD,MB %fr8,16(%r12)
+ FSTD,MB %fr8,24(%r12)
+ ;
+ FSTW,MB %fr8,-24(%r12)
+ FSTW,MB %fr8,-16(%r12)
+ FSTW,MB %fr8,-8(%r12)
+ FSTW,MB %fr8,0(%r12)
+ FSTW,MB %fr8,(%r12)
+ FSTW,MB %fr8,8(%r12)
+ FSTW,MB %fr8,16(%r12)
+ FSTW,MB %fr8,24(%r12)
+ ;
+ FSTtest_with_O
+ b FSTtest_with_O
+ FSTD,O %fr8,0(%r12)
+ FSTD,O %fr8,(%r12)
+ FSTW,O %fr8,0(%r12)
+ FSTW,O %fr8,(%r12)
+ ;
+ b FCNVtest
+ FCNVtest
+ FCNV,SGL,W %fr4L,%fr5L
+ FCNV,SGL,W %fr4L,%fr5R
+ FCNV,SGL,W %fr4R,%fr5L
+ FCNV,SGL,W %fr4R,%fr5R
+ FCNV,SGL,UW %fr4L,%fr5L
+ FCNV,SGL,UW %fr4L,%fr5R
+ FCNV,SGL,UW %fr4R,%fr5L
+ FCNV,SGL,UW %fr4R,%fr5R
+ FCNV,SGL,DBL %fr4L,%fr5
+ FCNV,SGL,DBL %fr4R,%fr5
+ FCNV,SGL,DW %fr4L,%fr5
+ FCNV,SGL,DW %fr4R,%fr5
+ FCNV,SGL,UDW %fr4L,%fr5
+ FCNV,SGL,UDW %fr4R,%fr5
+ FCNV,SGL,QUAD %fr4L,%fr5
+ FCNV,SGL,QW %fr4L,%fr5
+ FCNV,SGL,UQW %fr4L,%fr5
+ FCNV,W,SGL %fr4L,%fr5L
+ FCNV,W,SGL %fr4L,%fr5R
+ FCNV,W,SGL %fr4R,%fr5L
+ FCNV,W,SGL %fr4R,%fr5R
+ FCNV,W,DBL %fr4L,%fr5
+ FCNV,W,DBL %fr4R,%fr5
+ FCNV,W,QUAD %fr4L,%fr5
+ FCNV,UW,SGL %fr4L,%fr5L
+ FCNV,UW,SGL %fr4L,%fr5R
+ FCNV,UW,SGL %fr4R,%fr5L
+ FCNV,UW,SGL %fr4R,%fr5R
+ FCNV,UW,DBL %fr4L,%fr5
+ FCNV,UW,DBL %fr4R,%fr5
+ FCNV,UW,QUAD %fr4L,%fr5
+ FCNV,DBL,SGL %fr4,%fr5L
+ FCNV,DBL,SGL %fr4,%fr5R
+ FCNV,DBL,W %fr4,%fr5L
+ FCNV,DBL,W %fr4,%fr5R
+ FCNV,DBL,UW %fr4,%fr5L
+ FCNV,DBL,UW %fr4,%fr5R
+ FCNV,DBL,DW %fr4,%fr5
+ FCNV,DBL,UDW %fr4,%fr5
+ FCNV,DBL,QUAD %fr4,%fr5
+ FCNV,DBL,QW %fr4,%fr5
+ FCNV,DBL,UQW %fr4,%fr5
+ FCNV,DW,SGL %fr4,%fr5L
+ FCNV,DW,SGL %fr4,%fr5R
+ FCNV,DW,DBL %fr4,%fr5
+ FCNV,DW,QUAD %fr4,%fr5
+ FCNV,UDW,SGL %fr4,%fr5L
+ FCNV,UDW,SGL %fr4,%fr5R
+ FCNV,UDW,DBL %fr4,%fr5
+ FCNV,UDW,QUAD %fr4,%fr5
+ FCNV,QUAD,SGL %fr4,%fr5L
+ FCNV,QUAD,W %fr4,%fr5L
+ FCNV,QUAD,UW %fr4,%fr5L
+ FCNV,QUAD,DBL %fr4,%fr5
+ FCNV,QUAD,DW %fr4,%fr5
+ FCNV,QUAD,UDW %fr4,%fr5
+ FCNV,QUAD,QW %fr4,%fr5
+ FCNV,QUAD,UQW %fr4,%fr5
+ FCNV,QW,SGL %fr4,%fr5L
+ FCNV,QW,DBL %fr4,%fr5
+ FCNV,QW,QUAD %fr4,%fr5
+ FCNV,UQW,SGL %fr4,%fr5L
+ FCNV,UQW,DBL %fr4,%fr5
+ FCNV,UQW,QUAD %fr4,%fr5
+
+ b FCNV_with_T
+ FCNV_with_T
+
+ FCNV,SGL,T,W %fr4L,%fr5L
+ FCNV,SGL,W,T %fr4L,%fr5R
+ FCNV,T,SGL,W %fr4R,%fr5L
+ FCNV,SGL,T,W %fr4R,%fr5R
+ FCNV,SGL,UW,T %fr4L,%fr5L
+ FCNV,T,SGL,UW %fr4L,%fr5R
+ FCNV,SGL,T,UW %fr4R,%fr5L
+ FCNV,SGL,UW,T %fr4R,%fr5R
+ FCNV,SGL,DW,T %fr4L,%fr5
+ FCNV,T,SGL,DW %fr4R,%fr5
+ FCNV,SGL,T,UDW %fr4L,%fr5
+ FCNV,SGL,UDW,T %fr4R,%fr5
+ FCNV,SGL,QW,T %fr4L,%fr5
+ FCNV,SGL,T,UQW %fr4L,%fr5
+ FCNV,T,DBL,W %fr4,%fr5L
+ FCNV,DBL,T,W %fr4,%fr5R
+ FCNV,DBL,UW,T %fr4,%fr5L
+ FCNV,T,DBL,UW %fr4,%fr5R
+ FCNV,DBL,DW,T %fr4,%fr5
+ FCNV,T,DBL,UDW %fr4,%fr5
+ FCNV,DBL,QW,T %fr4,%fr5
+ FCNV,T,DBL,UQW %fr4,%fr5
+ FCNV,QUAD,W,T %fr4,%fr5L
+ FCNV,QUAD,T,UW %fr4,%fr5L
+ FCNV,QUAD,T,DW %fr4,%fr5
+ FCNV,QUAD,UDW,T %fr4,%fr5
+ FCNV,QUAD,T,QW %fr4,%fr5
+ FCNV,QUAD,UQW,T %fr4,%fr5
+
+ b BBWtest
+ BBWtest
+ BB,< %r8,0,BBWtest
+ BB,< %r8,1,BBWtest
+ BB,<,N %r8,30,BBWtest
+ BB,>=,N %r8,31,BBWtest
+ BB,< %r8,%sar,BBWtest
+ BB,>= %r8,%sar,BBWtest
+ BB,<,N %r8,%sar,BBWtest
+ BB,>=,N %r8,%sar,BBWtest
+ b BBWtest
+ BBDtest
+ BB,*< %r8,0,BBDtest
+ BB,*>= %r8,1,BBDtest
+ BB,*<,N %r8,30,BBDtest
+ BB,*<,N %r8,31,BBDtest
+ BB,*>=,N %r8,32,BBDtest
+ BB,*>=,N %r8,33,BBDtest
+ bb,*<,n %r2,60,BBDtest
+ BB,*<,N %r8,62,BBDtest
+ BB,*>=,N %r8,63,BBDtest
+ BB,*< %r8,%sar,BBDtest
+ BB,*>= %r8,%sar,BBDtest
+ BB,*<,N %r8,%sar,BBDtest
+ BB,*>=,N %r8,%sar,BBDtest
+
+ b systst
+ systst
+ RFI
+ RFI,R
+ PROBE,R (%sr2,%r9),%r8,%r7
+ PROBE,W (%sr2,%r9),%r8,%r7
+ PROBEI,R (%sr2,%r9),10,%r7
+ PROBEI,W (%sr2,%r9),10,%r7
+ LPA %r3(%r31),%r8
+ LPA,M %r3(%r31),%r8
+ PDTLB %r5(%sr2,%r9)
+ PDTLB,L %r5(%sr2,%r9)
+ PITLB %r5(%sr2,%r9)
+ PITLB,L %r5(%sr2,%r9)
+ PDTLB,M %r5(%sr2,%r9)
+ PDTLB,L,M %r5(%sr2,%r9)
+ PDTLB,M,L %r5(%sr2,%r9)
+ PITLB,M %r5(%sr2,%r9)
+ PITLB,L,M %r5(%sr2,%r9)
+ PITLB,M,L %r5(%sr2,%r9)
+ PDTLBE %r5(%r9)
+ PDTLBE,M %r5(%r9)
+ FIC %r5(%r9)
+ FIC %r5(%sr2,%r9)
+ FIC %r5(%sr6,%r9)
+ IDTLBT %r5,%r9
+ IITLBT %r5,%r9
+
+ b DShifts
+ DShifts
+ SHRPD %r9,%r10,4,%r10
+ SHRPD %r9,%r10,%sar,%r10
+ EXTRD,S %r9,8,4,%r10
+ EXTRD,U %r9,8,4,%r10
+ EXTRD %r9,8,4,%r10
+ EXTRD,S %r9,%sar,8,%r10
+ EXTRD,U %r9,%sar,8,%r10
+ EXTRD %r9,%sar,8,%r10
+ DEPD %r9,8,4,%r10
+ DEPD,Z %r9,8,4,%r10
+ DEPD %r9,%sar,8,%r10
+ DEPD,Z %r9,%sar,8,%r10
+ DEPDI 4,8,4,%r10
+ DEPDI,Z 4,8,4,%r10
+ DEPDI 4,%sar,8,%r10
+ DEPDI,Z 4,%sar,8,%r10
+ ;
+ b WShifts
+ WShifts
+ SHRPW %r9,%r10,4,%r10
+ SHRPW %r9,%r10,%sar,%r10
+ EXTRW,S %r9,8,4,%r10
+ EXTRW,U %r9,8,4,%r10
+ EXTRW %r9,8,4,%r10
+ EXTRW,S %r9,%sar,8,%r10
+ EXTRW,U %r9,%sar,8,%r10
+ EXTRW %r9,%sar,8,%r10
+ DEPW %r9,8,4,%r10
+ DEPW,Z %r9,8,4,%r10
+ DEPW %r9,%sar,8,%r10
+ DEPW,Z %r9,%sar,8,%r10
+ DEPWI 4,8,4,%r10
+ DEPWI,Z 4,8,4,%r10
+ DEPWI 4,%sar,8,%r10
+ DEPWI,Z 4,%sar,8,%r10
+
+ b dcortst
+ dcortst
+ DCOR %r5,%r6
+ DCOR,SHZ %r5,%r6
+ DCOR,I %r5,%r6
+ DCOR,I,SHZ %r5,%r6
+ DCOR,SHZ,I %r5,%r6
+ b uaddtst
+ uaddtst
+ UADDCM %r4,%r5,%r6
+ UADDCM,SDC %r4,%r5,%r6
+ UADDCM,TC %r4,%r5,%r6
+ UADDCM,SDC,TC %r4,%r5,%r6
+ b cmpbtst
+ cmpbtst
+ CMPB %r4,%r5,cmpbtst
+ CMPB,= %r4,%r5,cmpbtst
+ CMPB,< %r4,%r5,cmpbtst
+ CMPB,<= %r4,%r5,cmpbtst
+ CMPB,<< %r4,%r5,cmpbtst
+ CMPB,<<= %r4,%r5,cmpbtst
+ CMPB,SV %r4,%r5,cmpbtst
+ CMPB,OD %r4,%r5,cmpbtst
+ CMPB,TR %r4,%r5,cmpbtst
+ CMPB,<> %r4,%r5,cmpbtst
+ CMPB,>= %r4,%r5,cmpbtst
+ CMPB,> %r4,%r5,cmpbtst
+ CMPB,>>= %r4,%r5,cmpbtst
+ CMPB,>> %r4,%r5,cmpbtst
+ CMPB,NSV %r4,%r5,cmpbtst
+ CMPB,EV %r4,%r5,cmpbtst
+ CMPB,* %r4,%r5,cmpbtst
+ CMPB,*= %r4,%r5,cmpbtst
+ CMPB,*< %r4,%r5,cmpbtst
+ CMPB,*<= %r4,%r5,cmpbtst
+ CMPB,*<< %r4,%r5,cmpbtst
+ CMPB,*<<= %r4,%r5,cmpbtst
+ CMPB,*SV %r4,%r5,cmpbtst
+ CMPB,*OD %r4,%r5,cmpbtst
+ CMPB,*TR %r4,%r5,cmpbtst
+ CMPB,*<> %r4,%r5,cmpbtst
+ CMPB,*>= %r4,%r5,cmpbtst
+ CMPB,*> %r4,%r5,cmpbtst
+ CMPB,*>>= %r4,%r5,cmpbtst
+ CMPB,*>> %r4,%r5,cmpbtst
+ CMPB,*NSV %r4,%r5,cmpbtst
+ CMPB,*EV %r4,%r5,cmpbtst
+ b cmpibtst
+ cmpibtst
+ CMPIB 4,%r5,cmpibtst
+ CMPIB,= 4,%r5,cmpibtst
+ CMPIB,< 4,%r5,cmpibtst
+ CMPIB,<= 4,%r5,cmpibtst
+ CMPIB,<< 4,%r5,cmpibtst
+ CMPIB,<<= 4,%r5,cmpibtst
+ CMPIB,SV 4,%r5,cmpibtst
+ CMPIB,OD 4,%r5,cmpibtst
+ CMPIB,TR 4,%r5,cmpibtst
+ CMPIB,<> 4,%r5,cmpibtst
+ CMPIB,>= 4,%r5,cmpibtst
+ CMPIB,> 4,%r5,cmpibtst
+ CMPIB,>>= 4,%r5,cmpibtst
+ CMPIB,>> 4,%r5,cmpibtst
+ CMPIB,NSV 4,%r5,cmpibtst
+ CMPIB,EV 4,%r5,cmpibtst
+ CMPIB,*<< 4,%r5,cmpibtst
+ CMPIB,*= 4,%r5,cmpibtst
+ CMPIB,*< 4,%r5,cmpibtst
+ CMPIB,*<= 4,%r5,cmpibtst
+ CMPIB,*>>= 4,%r5,cmpibtst
+ CMPIB,*<> 4,%r5,cmpibtst
+ CMPIB,*>= 4,%r5,cmpibtst
+ CMPIB,*> 4,%r5,cmpibtst
+ b cmpclrtst
+ cmpclrtst
+ CMPCLR %r4,%r5,%r6
+ CMPCLR,= %r4,%r5,%r6
+ CMPCLR,< %r4,%r5,%r6
+ CMPCLR,<= %r4,%r5,%r6
+ CMPCLR,<< %r4,%r5,%r6
+ CMPCLR,<<= %r4,%r5,%r6
+ CMPCLR,SV %r4,%r5,%r6
+ CMPCLR,OD %r4,%r5,%r6
+ CMPCLR,TR %r4,%r5,%r6
+ CMPCLR,<> %r4,%r5,%r6
+ CMPCLR,>= %r4,%r5,%r6
+ CMPCLR,> %r4,%r5,%r6
+ CMPCLR,>>= %r4,%r5,%r6
+ CMPCLR,>> %r4,%r5,%r6
+ CMPCLR,NSV %r4,%r5,%r6
+ CMPCLR,EV %r4,%r5,%r6
+ CMPCLR,* %r4,%r5,%r6
+ CMPCLR,*= %r4,%r5,%r6
+ CMPCLR,*< %r4,%r5,%r6
+ CMPCLR,*<= %r4,%r5,%r6
+ CMPCLR,*<< %r4,%r5,%r6
+ CMPCLR,*<<= %r4,%r5,%r6
+ CMPCLR,*SV %r4,%r5,%r6
+ CMPCLR,*OD %r4,%r5,%r6
+ CMPCLR,*TR %r4,%r5,%r6
+ CMPCLR,*<> %r4,%r5,%r6
+ CMPCLR,*>= %r4,%r5,%r6
+ CMPCLR,*> %r4,%r5,%r6
+ CMPCLR,*>>= %r4,%r5,%r6
+ CMPCLR,*>> %r4,%r5,%r6
+ CMPCLR,*NSV %r4,%r5,%r6
+ CMPCLR,*EV %r4,%r5,%r6
+ b cmpiclrtst
+ cmpiclrtst
+ CMPICLR 4,%r5,%r6
+ CMPICLR,= 4,%r5,%r6
+ CMPICLR,< 4,%r5,%r6
+ CMPICLR,<= 4,%r5,%r6
+ CMPICLR,<< 4,%r5,%r6
+ CMPICLR,<<= 4,%r5,%r6
+ CMPICLR,SV 4,%r5,%r6
+ CMPICLR,OD 4,%r5,%r6
+ CMPICLR,TR 4,%r5,%r6
+ CMPICLR,<> 4,%r5,%r6
+ CMPICLR,>= 4,%r5,%r6
+ CMPICLR,> 4,%r5,%r6
+ CMPICLR,>>= 4,%r5,%r6
+ CMPICLR,>> 4,%r5,%r6
+ CMPICLR,NSV 4,%r5,%r6
+ CMPICLR,EV 4,%r5,%r6
+ CMPICLR,* 4,%r5,%r6
+ CMPICLR,*= 4,%r5,%r6
+ CMPICLR,*< 4,%r5,%r6
+ CMPICLR,*<= 4,%r5,%r6
+ CMPICLR,*<< 4,%r5,%r6
+ CMPICLR,*<<= 4,%r5,%r6
+ CMPICLR,*SV 4,%r5,%r6
+ CMPICLR,*OD 4,%r5,%r6
+ CMPICLR,*TR 4,%r5,%r6
+ CMPICLR,*<> 4,%r5,%r6
+ CMPICLR,*>= 4,%r5,%r6
+ CMPICLR,*> 4,%r5,%r6
+ CMPICLR,*>>= 4,%r5,%r6
+ CMPICLR,*>> 4,%r5,%r6
+ CMPICLR,*NSV 4,%r5,%r6
+ CMPICLR,*EV 4,%r5,%r6
+ b coprtst
+ coprtst
+ COPR,0,0
+ FID
+ COPR,7,0,n
+ COPR,1,0
+ COPR,7,31
+ COPR,7,32
+ COPR,7,64
+ COPR,7,128
+ COPR,7,256
+ COPR,7,512
+ COPR,7,0x400
+ COPR,7,0x800
+ COPR,7,0x1000
+ COPR,7,0x2000
+ COPR,7,0x4000
+ COPR,7,0x8000
+ COPR,7,0x10000
+ COPR,7,0x20000
+ COPR,7,0x40000
+ COPR,7,0x80000
+ COPR,7,0x100000
+ COPR,7,0x200000
+ b spop0tst
+ spop0tst
+ SPOP0,7,0
+ SPOP0,7,0,n
+ SPOP0,1,0
+ SPOP0,7,31
+ SPOP0,7,32
+ SPOP0,7,64
+ SPOP0,7,128
+ SPOP0,7,256
+ SPOP0,7,512
+ SPOP0,7,0x400
+ SPOP0,7,0x800
+ SPOP0,7,0x1000
+ SPOP0,7,0x2000
+ SPOP0,7,0x4000
+ SPOP0,7,0x8000
+ SPOP0,7,0x10000
+ SPOP0,7,0x20000
+ SPOP0,7,0x40000
+ SPOP0,7,0x80000
+ b spop1tst
+ spop1tst
+ SPOP1,7,0 %r5
+ SPOP1,7,0,n %r5
+ SPOP1,1,0 %r5
+ SPOP1,7,31 %r5
+ SPOP1,7,32 %r5
+ SPOP1,7,64 %r5
+ SPOP1,7,128 %r5
+ SPOP1,7,256 %r5
+ SPOP1,7,512 %r5
+ SPOP1,7,0x400 %r5
+ SPOP1,7,0x800 %r5
+ SPOP1,7,0x1000 %r5
+ SPOP1,7,0x2000 %r5
+ SPOP1,7,0x4000 %r5
+ b spop2tst
+ spop2tst
+ SPOP2,7,0 %r5
+ SPOP2,7,0,n %r5
+ SPOP2,1,0 %r5
+ SPOP2,7,31 %r5
+ SPOP2,7,32 %r5
+ SPOP2,7,64 %r5
+ SPOP2,7,128 %r5
+ SPOP2,7,256 %r5
+ SPOP2,7,512 %r5
+ SPOP2,7,0x400 %r5
+ SPOP2,7,0x800 %r5
+ SPOP2,7,0x1000 %r5
+ SPOP2,7,0x2000 %r5
+ SPOP2,7,0x4000 %r5
+ b spop3tst
+ spop3tst
+ SPOP3,7,0 %r5,%r8
+ SPOP3,7,0,n %r5,%r8
+ SPOP3,1,0 %r5,%r8
+ SPOP3,7,31 %r5,%r8
+ SPOP3,7,32 %r5,%r8
+ SPOP3,7,64 %r5,%r8
+ SPOP3,7,128 %r5,%r8
+ SPOP3,7,256 %r5,%r8
+ SPOP3,7,512 %r5,%r8
+ b additst
+ additst
+ ADDI 4,%r5,%r6
+ ADDI,TSV 4,%r5,%r6
+ ADDI,TC 4,%r5,%r6
+ ADDI,TSV,TC 4,%r5,%r6
+ ;
+ ADDI,= 4,%r5,%r6
+ ADDI,TSV,= 4,%r5,%r6
+ ADDI,TC,= 4,%r5,%r6
+ ADDI,TSV,TC,= 4,%r5,%r6
+ ;
+ b subitst
+ subitst
+ SUBI 4,%r5,%r6
+ SUBI,TSV 4,%r5,%r6
+ ;
+ SUBI,= 4,%r5,%r6
+ SUBI,TSV,= 4,%r5,%r6
+ ;
+ b addtst
+ addtst
+ ADD %r4,%r5,%r6
+ ADD,C %r4,%r5,%r6
+ ADD,DC %r4,%r5,%r6
+ ADD,L %r4,%r5,%r6
+ ADD,TSV %r4,%r5,%r6
+ ;
+ ADD,C,TSV %r4,%r5,%r6
+ ADD,DC,TSV %r4,%r5,%r6
+ ADD,TSV,C %r4,%r5,%r6
+ ADD,TSV,DC %r4,%r5,%r6
+ ;
+ ADD,= %r4,%r5,%r6
+ ADD,C,= %r4,%r5,%r6
+ ADD,DC,= %r4,%r5,%r6
+ ADD,L,= %r4,%r5,%r6
+ ADD,TSV,= %r4,%r5,%r6
+ ;
+ ADD,C,TSV,= %r4,%r5,%r6
+ ADD,DC,TSV,= %r4,%r5,%r6
+ ADD,TSV,C,= %r4,%r5,%r6
+ ADD,TSV,DC,= %r4,%r5,%r6
+ ;
+ b shladdtst
+ shladdtst
+ SHLADD %r4,1,%r5,%r6
+ SHLADD,L %r4,2,%r5,%r6
+ SHLADD,TSV %r4,3,%r5,%r6
+ ;
+ SHLADD,= %r4,1,%r5,%r6
+ SHLADD,L,= %r4,2,%r5,%r6
+ SHLADD,TSV,= %r4,3,%r5,%r6
+ ;
+ b subtst
+ subtst
+ SUB %r4,%r5,%r6
+ SUB,B %r4,%r5,%r6
+ SUB,DB %r4,%r5,%r6
+ SUB,TC %r4,%r5,%r6
+ SUB,TSV %r4,%r5,%r6
+ ;
+ SUB,B,TSV %r4,%r5,%r6
+ SUB,DB,TSV %r4,%r5,%r6
+ SUB,TC,TSV %r4,%r5,%r6
+ SUB,TSV,B %r4,%r5,%r6
+ SUB,TSV,DB %r4,%r5,%r6
+ SUB,TSV,TC %r4,%r5,%r6
+ ;
+ SUB,= %r4,%r5,%r6
+ SUB,B,= %r4,%r5,%r6
+ SUB,DB,= %r4,%r5,%r6
+ SUB,TC,= %r4,%r5,%r6
+ SUB,TSV,= %r4,%r5,%r6
+ ;
+ SUB,B,TSV,= %r4,%r5,%r6
+ SUB,DB,TSV,= %r4,%r5,%r6
+ SUB,TC,TSV,= %r4,%r5,%r6
+ SUB,TSV,B,= %r4,%r5,%r6
+ SUB,TSV,DB,= %r4,%r5,%r6
+ SUB,TSV,TC,= %r4,%r5,%r6
+ ;
+ b gate
+ gate
+ B,GATE test
+ B,GATE test,%r1
+ B,GATE test,%r2
+ B,GATE test,%r31
+
+ B btst
+ btst
+ B,L test,%r0
+ B,L test,%r1
+ B,L test,%r2
+ B,L,PUSH test
+ B,L,PUSH test,%r2
+ B,PUSH,L test
+ B,PUSH,L test,%r2
+
+ B betst
+ betst
+ BE test(%r8)
+ BE,L test(%r8)
+ BE,L test(%r8),%r31
+
+ B bvetst
+ bvetst
+ BVE (%r8)
+ BVE,L (%r8)
+ BVE,POP (%r8)
+
+ BVE,L (%r8),%r2
+ BVE,L,PUSH (%r8)
+ BVE,L,PUSH (%r8),%r2
+ BVE,PUSH,L (%r8)
+ BVE,PUSH,L (%r8),%r2
+
+ B bts_tst
+ bts_tst
+
+ PUSHNOM
+ CLRBTS
+ POPBTS 1
+ POPBTS 255
+ POPBTS 256
+ POPBTS 511
+ PUSHBTS %r0
+ PUSHBTS %r1
+ PUSHBTS %r31
+
+ b hsh
+ hsh
+ HSHLADD %r4,1,%r5,%r6
+ HSHLADD %r4,2,%r5,%r6
+ HSHLADD %r4,3,%r5,%r6
+ HSHRADD %r4,1,%r5,%r6
+ HSHRADD %r4,2,%r5,%r6
+ HSHRADD %r4,3,%r5,%r6
+
+ b sh
+ sh
+ SHLADD %r4,1,%r5,%r6
+ SHLADD %r4,2,%r5,%r6
+ SHLADD %r4,3,%r5,%r6
+
+
+ b mixs
+ mixs
+ MIXH,L %r1,%r2,%r3
+ MIXH,R %r1,%r2,%r3
+ MIXW,L %r1,%r2,%r3
+ MIXW,R %r1,%r2,%r3
+
+ b hw_shifts
+
+ hw_shifts
+ HSHL %r4,0,%r6
+ HSHR,U %r4,1,%r6
+ HSHR,S %r4,2,%r6
+ HSHL %r4,3,%r6
+ HSHR,U %r4,4,%r6
+ HSHR,S %r4,5,%r6
+ HSHL %r4,6,%r6
+ HSHR,U %r4,7,%r6
+ HSHR,S %r4,8,%r6
+ HSHL %r4,9,%r6
+ HSHR,U %r4,10,%r6
+ HSHR,S %r4,11,%r6
+ HSHL %r4,12,%r6
+ HSHR,U %r4,13,%r6
+ HSHR,S %r4,14,%r6
+ HSHL %r4,15,%r6
+
+ b fcmp3
+ fcmp3
+ fcmp,=,sgl,c0 %fr4l,%fr5r
+ fcmp,<,c1,dbl %fr5,%fr6
+ fcmp,sgl,<=,c2 %fr6r,%fr7l
+ fcmp,dbl,c3,> %fr7,%fr8
+ fcmp,c4,>=,sgl %fr8l,%fr9r
+ fcmp,c5,dbl,<> %fr9,%fr10
+ b fcmp2
+ fcmp2
+ fcmp,=,sgl %fr4l,%fr5r
+ fcmp,<,c6 %fr5,%fr6
+ fcmp,sgl,<= %fr6r,%fr7l
+ fcmp,dbl,c0 %fr7,%fr8
+ fcmp,c1,>= %fr8l,%fr9r
+ fcmp,c2,dbl %fr9,%fr10
+ b fcmp1
+ fcmp1
+ fcmp,< %fr5,%fr6
+ fcmp,dbl %fr7,%fr8
+ fcmp,c3 %fr9,%fr10
+ b fcmp0
+ fcmp0
+ fcmp %fr4l,%fr5r
+
+ b ftest2
+ ftest2
+ FTEST,ACC,C0
+ b ftest1a
+ ftest1a
+ FTEST,ACC
+ FTEST,ACC8
+ FTEST,ACC6
+ FTEST,ACC4
+ FTEST,ACC2
+ FTEST,REJ
+ FTEST,REJ8
+ b ftest1b
+ ftest1b
+ FTEST,C0
+ FTEST,C1
+ FTEST,C2
+ FTEST,C3
+ FTEST,C4
+ FTEST,C5
+ FTEST,C6
+ b ftest0
+ ftest0
+ FTEST
+
+ b fpin
+ fpin
+ FNEG,SGL %fr5R,%fr6L
+ FNEGABS,SGL %fr5R,%fr6L
+ FMPYFADD,SGL %fr6R,%fr12L,%fr18R,%fr24L
+ FMPYNFADD,SGL %fr6L,%fr12R,%fr18L,%fr24R
+
+ FNEG,DBL %fr5,%fr6
+ FNEGABS,DBL %fr5,%fr6
+ FMPYFADD,DBL %fr6,%fr12,%fr18,%fr24
+ FMPYNFADD,DBL %fr7,%fr13,%fr19,%fr25
+
+ b mmin
+ mmin
+ FIC %r5(%r9)
+ FIC %r5(%sr2,%r9)
+ FIC %r5(%sr6,%r9)
+ IDTLBT %r5,%r9
+ IITLBT %r5,%r9
+ PDTLB %r5(%sr2,%r9)
+ PDTLB,L %r5(%sr2,%r9)
+ PITLB %r5(%sr2,%r9)
+ PITLB,L %r5(%sr2,%r9)
+
+ b sysin
+ sysin
+ sync
+ syncdma
+ mfia %r10
+ mtsarcm %r10
+
+ b compl64
+ compl64
+ ADD,* %r5,%r6,%r7
+ ADD,*= %r5,%r6,%r7
+ ADD,*< %r5,%r6,%r7
+ ADD,*<= %r5,%r6,%r7
+ SUB,*<< %r5,%r6,%r7
+ SUB,*<<= %r5,%r6,%r7
+ ADD,*SV %r5,%r6,%r7
+ ADD,*OD %r5,%r6,%r7
+ ADD,*<> %r5,%r6,%r7
+ ADD,*>= %r5,%r6,%r7
+ ADD,*> %r5,%r6,%r7
+ SUB,*>>= %r5,%r6,%r7
+ SUB,*>> %r5,%r6,%r7
+ ADD,*NSV %r5,%r6,%r7
+ ADD,*EV %r5,%r6,%r7
+ ADD,*TR %r5,%r6,%r7
+ ADD,*NUV %r5,%r6,%r7
+ ADD,*ZNV %r5,%r6,%r7
+ ADD,*UV %r5,%r6,%r7
+ ADD,*VNZ %r5,%r6,%r7
+ UADDCM,*SWZ %r5,%r6,%r7
+ UADDCM,*SBZ %r5,%r6,%r7
+ UADDCM,*SHZ %r5,%r6,%r7
+ UADDCM,*SDC %r5,%r6,%r7
+ UADDCM,*SWC %r5,%r6,%r7
+ UADDCM,*SBC %r5,%r6,%r7
+ UADDCM,*SHC %r5,%r6,%r7
+ UADDCM,*NWZ %r5,%r6,%r7
+ UADDCM,*NBZ %r5,%r6,%r7
+ UADDCM,*NHZ %r5,%r6,%r7
+ UADDCM,*NDC %r5,%r6,%r7
+ UADDCM,*NWC %r5,%r6,%r7
+ UADDCM,*NBC %r5,%r6,%r7
+ UADDCM,*NHC %r5,%r6,%r7
+
+ b WordUnit
+ WordUnit
+ UADDCM %r5,%r6,%r7
+ UADDCM,SBZ %r5,%r6,%r7
+ UADDCM,SHZ %r5,%r6,%r7
+ UADDCM,SDC %r5,%r6,%r7
+ UADDCM,SBC %r5,%r6,%r7
+ UADDCM,SHC %r5,%r6,%r7
+ UADDCM,TR %r5,%r6,%r7
+ UADDCM,NBZ %r5,%r6,%r7
+ UADDCM,NHZ %r5,%r6,%r7
+ UADDCM,NDC %r5,%r6,%r7
+ UADDCM,NBC %r5,%r6,%r7
+ UADDCM,NHC %r5,%r6,%r7
+ .import Long,code
+ .import Short,code
+ Back
+ B,L Back,%r2
+ B,L Short,%r2
+ BE,L Back(%sr1,%r8),%r31
+ BE Back(%r0)
+ BE,L Short(%r0)
+ BV %r5(%r8)
+ BVE (%r8)
+ ;
+ ; with nullify
+ ;
+ BVE,N (%r8)
+
+ .exit
+ .procend
+
+ mainend
+ .proc
+ .callinfo NO_CALLS,FRAME=0
+ .entry
+
+ NOP
+
+ .exit
+ .procend
+
+ .end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20.com gdb/testsuite/gdb.disasm/pa20.com
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20.com Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa20.com Thu Jul 22 17:49:48 1999
***************
*** 0 ****
--- 1 ----
+ x/709i main
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20.exp gdb/testsuite/gdb.disasm/pa20.exp
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa20.exp Thu Jul 22 17:49:48 1999
***************
*** 0 ****
--- 1,74 ----
+ # pa20.exp Tests gdb disassembly operations for PA2.0 code
+ #
+ if ![istarget "hppa*-*-*"] {
+ verbose "Tests ignored for all but hppa based targets."
+ return
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ set prms_id 0
+ set bug_id 0
+
+ # use this to debug:
+ #log_user 1
+
+ set testfile pa20
+ set srcfile ${srcdir}/${subdir}/pa20-instr.s
+ set binfile ${srcdir}/${subdir}/${testfile}
+ set outfile ${objdir}/${subdir}/${testfile}.out
+ set comfile ${srcdir}/${subdir}/${testfile}.com
+ set tmpfile ${objdir}/${subdir}/${testfile}.tmp
+ set sedfile ${srcdir}/${subdir}/pa-sed.cmd
+ set diffile ${objdir}/${subdir}/${testfile}.dif
+ set tmp2file ${objdir}/${subdir}/${testfile}.tmp2
+
+ gdb_exit
+ remote_exec build "rm -f ${tmpfile} ${tmp2file} ${diffile}"
+
+ # To build a pa 2.0 executable
+ #
+ # as -o pa20 pa20-instr.s
+ # or
+ # cc -g -o pa20 pa20-instr.s
+ #
+ # The +DA2.0N flag doesn't seem to be needed.
+ #
+ # Don't reject if there are warnings, as we expect this warning:
+ #
+ # (Warning) At least one PA 2.0 object file (pa20-instr.o) was detected.
+ # The linked output may not run on a PA 1.x system.
+ #
+ # compile "${srcfile} -g -o ${binfile}"
+
+
+ # This non-standard start-up sequence is taken from that for
+ # the standard "gdb_start" in
+ # /CLO/Components/WDB/Src/gdb/gdb/testsuite/lib/gdb.exp
+ #
+ global GDB
+ if { [which $GDB] == 0 } {
+ perror "$GDB does not exist."
+ exit 1
+ }
+
+ remote_exec build "${srcdir}/tools/redirect_cmd ${tmpfile} $GDB -nx -batch -silent -se ${binfile} -command ${comfile}"
+
+ # Remove actual addresses, which may vary.
+ #
+ remote_exec build "${srcdir}/tools/redirect_cmd ${tmp2file} sed -f ${sedfile} ${tmpfile}"
+
+ # Should be no differences after processing.
+ #
+ remote_exec build "${srcdir}/tools/redirect_cmd ${diffile} diff ${outfile} ${tmp2file}"
+ set exec_output [remote_exec build "wc -l ${diffile}"]
+
+ if [ regexp "^0 {0 ${diffile}" ${exec_output} ] {
+ pass "Disassembly of HPPA 2.0 instructions"
+ } else {
+ fail "Disassembly of HPPA 2.0 instructions"
+ }
+
+ return 0
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20.out gdb/testsuite/gdb.disasm/pa20.out
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20.out Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa20.out Thu Jul 22 17:49:48 1999
***************
*** 0 ****
--- 1,709 ----
+ <main>: pdc r5(sr0,r6)
+ <main+4>: pdc,m r5(sr0,r6)
+ <main+8>: fdc r5(sr0,r6)
+ <main+12>: fdc,m r5(sr0,r6)
+ <main+16>: fic r5(sr0,r6)
+ <main+20>: fic,m r5(sr0,r6)
+ <main+24>: fcnvff,sgl,dbl fr4,fr6
+ <main+28>: fneg,sgl fr0,fr6
+ <main+32>: fneg,sgl fr0,fr6
+ <main+36>: fneg,dbl fr0,fr6
+ <main+40>: fneg,quad fr0,fr6
+ <main+44>: fnegabs,sgl fr0,fr6
+ <main+48>: fnegabs,sgl fr0,fr6
+ <main+52>: fnegabs,dbl fr0,fr6
+ <main+56>: fnegabs,quad fr0,fr6
+ <main+60>: fmpyfadd,sgl fpe4,fpe4,fr6,fr8
+ <main+64>: fmpyfadd,sgl fpe4,fpe4,fr6,fr8
+ <main+68>: fmpyfadd,dbl fpe4,fpe4,fr6,fr8
+ <main+72>: fmpyfadd,dbl fpe4,fpe4,fr6,fr8
+ <main+76>: fmpynfadd,sgl fpe4,fpe4,fr6,fr8
+ <main+80>: fmpynfadd,sgl fpe4,fpe4,fr6,fr8
+ <main+84>: fmpynfadd,dbl fpe4,fpe4,fr6,fr8
+ <main+88>: fmpynfadd,dbl fpe4,fpe4,fr6,fr8
+ <main+92>: fcmp,sgl,true fpe4,fr4,3
+ <main+96>: ftest3
+ <main+100>: pmenb
+ <main+104>: copr,2,0x20
+ <main+108>: copr,2,0x22
+ <main+112>: mtsarcm r5
+ <main+116>: idtlbt r5,r6
+ <main+120>: iltlbt r5,r6
+ <main+124>: fldd 0x200(sr0,r4),fr5
+ <main+128>: fldd,ma 0x200(sr0,r4),fr5
+ <main+132>: fldds,ma 0(sr0,r4),fr5
+ <main+136>: fldw 0x400(sr0,r4),fr5
+ <main+140>: fldw,a 0x400(sr0,r4),fr5
+ <main+144>: fldw,b 0x400(sr0,r4),fr5
+ <main+148>: fstd fr5,0x400(sr0,r4)
+ <main+152>: fstds,ma fr5,0(sr0,r4)
+ <main+156>: fstd,ma fr5,0x400(sr0,r4)
+ <main+160>: fstd,mb fr5,0x400(sr0,r4)
+ <main+164>: mixw,l r4,r5,r6
+ <main+168>: mixw,l r4,r5,r6
+ <main+172>: mixw,r r4,r5,r6
+ <main+176>: mixh,l r4,r5,r6
+ <main+180>: mixh,l r4,r5,r6
+ <main+184>: mixh,r r4,r5,r6
+ <main+188>: hadd r1,rp,r3
+ <main+192>: hadd,us r3,r4,r5
+ <main+196>: hadd,ss r6,r7,r8
+ <main+200>: hsub r1,rp,r3
+ <main+204>: hsub,us r3,r4,r5
+ <main+208>: hsub,ss r6,r7,r8
+ <main+212>: havg r6,r7,r8
+ <main+216>: hshladd r3,3,r4,r5
+ <main+220>: hshradd r3,1,r4,r5
+ <main+224>: hshl r3,11,r4
+ <main+228>: hshr,s r0,11,r4
+ <main+232>: hshr,u r0,11,r4
+ <main+236>: hshr,s r0,11,r4
+ <main+240>: permh,1230 r1,r3
+ <main+244>: depdi 0xc,sar,17,r3
+ <main+248>: depdi,z 0xc,sar,17,r3
+ <main+252>: depdi,z,= 0xc,sar,17,r3
+ <main+256>: extrd,s,< r3,12,13,r4
+ <main+260>: extrd,u,= r3,sar,19,r4
+ <main+264>: bvb,< r9,sar,<labelc>
+ <main+268>: bb,>=,n r9,0x1f,<labelc>
+ <main+272>: shrpd r5,r6,41,r7
+ <main+276>: shrpd,= r1,rp,sar,r3
+ <main+280>: shrpd,<= r6,r7,sar,r3
+ <main+284>: bve (r6)
+ <main+288>: bve,n (r6)
+ <main+292>: bve,l (r5)
+ <main+296>: bve,l,push (r5)
+ <main+300>: bve,pop (r5)
+ <main+304>: pushnom
+ <main+308>: clrbts
+ <main+312>: popbts 6
+ <main+316>: pushbts r4
+ <main+320>: ldd r1(sr0,rp),r3
+ <main+324>: ldd,ma 0xa(sr0,rp),r3
+ <main+328>: ldd,mb 0(sr0,rp),r3
+ <main+332>: ldd,ma 0(sr0,rp),r3
+ <main+336>: ldd,ma 4(sr0,rp),r3
+ <main+340>: ldda r1(rp),r3
+ <main+344>: ldda,ma 8(rp),r3
+ <main+348>: ldda,mb 0(rp),r3
+ <main+352>: ldda,ma 0(rp),r3
+ <main+356>: ldda,ma 8(rp),r3
+ <main+360>: std r1,0(sr0,rp)
+ <main+364>: std,ma r1,0xa(sr0,rp)
+ <main+368>: std,mb r1,0(sr0,rp)
+ <main+372>: std,o r1,0(sr0,rp)
+ <main+376>: std,ma r1,4(sr0,rp)
+ <main+380>: stda r1,0(rp)
+ <main+384>: stda,ma r1,0xa(rp)
+ <main+388>: stda,mb r1,0(rp)
+ <main+392>: stda,o r1,0(rp)
+ <main+396>: stda,ma r1,4(rp)
+ <main+400>: ldcd r1(sr0,rp),r3
+ <main+404>: ldcd,m r1(sr0,rp),r3
+ <main+408>: ldcd,ma 0xa(sr0,rp),r3
+ <main+412>: ldcd,mb 0(sr0,rp),r3
+ <main+416>: ldcd,ma 0(sr0,rp),r3
+ <main+420>: ldcd,ma 4(sr0,rp),r3
+ <main+424>: stdby r1,5(sr0,rp)
+ <main+428>: stdby r1,5(sr0,rp)
+ <main+432>: stdby,b,m r1,5(sr0,rp)
+ <main+436>: stdby,e,m r1,5(sr0,rp)
+ <main+440>: stdby,e r1,5(sr0,rp)
+ <main+444>: ldd r1(sr0,rp),r3
+ <main+448>: ldd 0xa(sr0,rp),r3
+ <main+452>: add r1,rp,r3
+ <main+456>: addc r0,r1,rp
+ <main+460>: addc,d r0,r1,rp
+ <main+464>: addl r1,rp,r3
+ <main+468>: addo r3,r4,r5
+ <main+472>: addco r3,r4,r5
+ <main+476>: addco,d r3,r4,r5
+ <main+480>: addb,= r25,r26,<labelb>
+ <main+484>: addb,=,n r25,r26,<labelb>
+ <main+488>: addb,sv dp,ret0,<main>
+ <main+492>: addb,od dp,ret0,<main>
+ <main+496>: addbf dp,ret0,<main>
+ <main+500>: addbf,sv dp,ret0,<main>
+ <main+504>: addbf,od dp,ret0,<main>
+ <main+508>: addbf,= dp,ret0,<main>
+ <main+512>: addbf,nuv r1,r5,<main>
+ <main+516>: addbf,<=,n r10,r6,<labelb>
+ <main+520>: addb,nuv r1,r5,<main>
+ <main+524>: addb,<=,n r10,r6,<labelb>
+ <main+528>: addc ret0,ret1,sp
+ <main+532>: addc,uv ret0,ret1,sp
+ <main+536>: addco ret0,ret1,sp
+ <main+540>: addco,uv ret0,ret1,sp
+ <main+544>: addi 0,rp,r0
+ <main+548>: addi,> 1,r3,r0
+ <main+552>: addi,< 2,r4,r0
+ <main+556>: addibf,< -1,r5,<main>
+ <main+560>: addib,<=,n 0xa,r6,<labelb>
+ <main+564>: addibf,nuv -1,r5,<main>
+ <main+568>: addibf,<=,n 0xa,r6,<labelb>
+ <main+572>: addib,nuv -1,r5,<main>
+ <main+576>: addib,<=,n 0xa,r6,<labelb>
+ <main+580>: addil -0x800,r3
+ <main+584>: addil 0x88b8000,r3
+ <main+588>: addio 4,r22,r21
+ <main+592>: addio,< 4,r22,r21
+ <main+596>: addit 4,r22,r21
+ <main+600>: addit,tr 4,r22,r21
+ <main+604>: addito 0x3a6,r25,r24
+ <main+608>: addito,<> 0x3ff,r25,r24
+ <main+612>: addo ret0,ret1,sp
+ <main+616>: addo,sv ret0,ret1,sp
+ <main+620>: addl ret0,ret1,sp
+ <main+624>: addl,nsv ret0,ret1,sp
+ <main+628>: and sp,r31,sp
+ <main+632>: and,< sp,r31,sp
+ <main+636>: andcm r26,dp,ret0
+ <main+640>: andcm,> r26,dp,ret0
+ <labelb>: b <labelc>
+ <labelb+4>: b,n <labelc>
+ <labelb+8>: gate <labelc>,r0
+ <labelb+12>: bl <labelb>,r3
+ <labelb+16>: bvb,< r9,sar,<labelc>
+ <labelb+20>: bb,>=,n r9,0x1f,<labelc>
+ <labelb+24>: be 0x64(sr4,r11)
+ <labelb+28>: ble 0(sr4,r11)
+ <labelb+32>: bl <labelb>,r3
+ <labelb+36>: bl,n <labelb>,r3
+ <labelb+40>: ble 0x3038(sr0,r3)
+ <labelb+44>: ble,n 0x3038(sr0,r3)
+ <labelb+48>: blr r31,r3
+ <labelb+52>: blr,n r0,r3
+ <labelb+56>: break 0,1
+ <labelb+60>: break 0x1f,0x3e8
+ <labelb+64>: bv r0(r1)
+ <labelb+68>: bv,n r0(r20)
+ <labelb+72>: bvb,< r3,sar,<main>
+ <labelb+76>: bvb,<,n r3,sar,<main>
+ <labelb+80>: bve (r5)
+ <labelb+84>: bve,pop (r5)
+ <labelb+88>: bve,l (r5)
+ <labelb+92>: bve,l,push (r5)
+ <labelc>: fldds 0(sr2,r0),fr0
+ <labelc+4>: cldds,1,ma 1(sr2,r1),rp
+ <labelc+8>: cldds,2,mb 9(sr2,r6),r3
+ <labelc+12>: flddx r3(sr2,r10),fr0
+ <labelc+16>: flddx,s r3(sr2,r20),fpe2
+ <labelc+20>: clddx,1,m r3(sr2,sp),rp
+ <labelc+24>: clddx,2,sm r3(sr2,r0),r3
+ <labelc+28>: fldws 0(sr2,r0),fr0
+ <labelc+32>: fldws,ma 3(sr2,r0),fpe5
+ <labelc+36>: cldws,2,mb 7(sr2,r0),r3
+ <labelc+40>: fldwx r3(sr2,r0),fr0
+ <labelc+44>: fldwx,s r3(sr2,r0),fpe2
+ <labelc+48>: fldwx,m r3(sr2,r0),fpe5
+ <labelc+52>: cldwx,2,sm r3(sr2,r0),r3
+ <labelc+56>: comb,< r11,r12,<labelc>
+ <labelc+60>: combf,<,n r11,r12,<main>
+ <labelc+64>: comclr,<> rp,r3,r4
+ <labelc+68>: comib,<= 0,rp,<labeld>
+ <labelc+72>: comibf,sv,n -0x10,rp,<labeld>
+ <labelc+76>: comiclr,od 0x3e8,r0,r31
+ <labelc+80>: combf,<= r0,rp,<labeld>
+ <labelc+84>: combf,<<,n r16,rp,<labeld>
+ <labelc+88>: comb,<= r0,rp,<labeld>
+ <labelc+92>: comb,<<,n r16,rp,<labeld>
+ <labelc+96>: comclr r11,r12,r13
+ <labelc+100>: comclr,>= r11,r12,r13
+ <labelc+104>: comibf,<= 0,rp,<labeld>
+ <labelc+108>: comibf,<<=,n -0x10,rp,<labeld>
+ <labelc+112>: comib,<= 0,rp,<labeld>
+ <labelc+116>: comib,<,n -0x10,rp,<labeld>
+ <labelc+120>: comiclr 1,r3,r4
+ <labelc+124>: comiclr,ev 0x9d,r3,r4
+ <labelc+128>: fid
+ <labelc+132>: copr,7,0
+ <labelc+136>: copr,7,0xff
+ <labelc+140>: ldo 0(r3),r4
+ <labelc+144>: fstds fr8,0(sr1,r31)
+ <labelc+148>: cstds,7,ma r11,2(sr1,r3)
+ <labelc+152>: cstds,4,mb r14,2(sr1,r3)
+ <labelc+156>: fstws fr8,0(sr1,r31)
+ <labelc+160>: cstws,7,ma r11,2(sr1,r3)
+ <labelc+164>: cstws,4,mb r14,2(sr1,r3)
+ <labeld>: dcor r3,r4
+ <labeld+4>: idcor r3,r4
+ <labeld+8>: dcor,sbz r4,r5
+ <labeld+12>: dcor,shz r4,r6
+ <labeld+16>: dcor,sdc r4,r7
+ <labeld+20>: dcor,sbc r4,r8
+ <labeld+24>: dcor,shc r4,r9
+ <labeld+28>: dcor,nbz r4,r10
+ <labeld+32>: dcor,nhz r4,r11
+ <labeld+36>: dcor,ndc r4,r12
+ <labeld+40>: dcor,nbc r4,r13
+ <labeld+44>: dcor,nhc r4,r14
+ <labeld+48>: dep r21,14,3,r22
+ <labeld+52>: dep,>= r21,14,3,r22
+ <labeld+56>: depi 1,14,3,r22
+ <labeld+60>: depi,>= 2,14,3,r22
+ <labeld+64>: dep r19,1,2,r1
+ <labeld+68>: zdep r19,1,2,r1
+ <labeld+72>: zvdep r19,31,r1
+ <labeld+76>: zdep,< r19,30,1,r1
+ <labeld+80>: depi 0xf,0,1,rp
+ <labeld+84>: zdepi -0x10,0,1,rp
+ <labeld+88>: diag 0x1e240
+ <labeld+92>: ds r1,rp,r3
+ <labeld+96>: ds,<> r1,rp,r3
+ <labeld+100>: extrs r1,3,4,rp
+ <labeld+104>: extrs,od r1,3,4,rp
+ <labeld+108>: extru r1,3,4,rp
+ <labeld+112>: extru,ev r1,3,4,rp
+ <labeld+116>: extrs r0,3,4,r1
+ <labeld+120>: extrs r0,3,4,r1
+ <labeld+124>: extru r0,3,4,r1
+ <labeld+128>: extru,ev r0,3,4,r1
+ <labeld+132>: vextrs,<> r0,4,r1
+ <labeld+136>: fabs,sgl fpe4,fpe6
+ <labeld+140>: fabs,dbl fpe4,fr6
+ <labeld+144>: fadd,sgl fpe4,fr4,fr6
+ <labeld+148>: fadd,dbl fpe4,fr4,fr6
+ <labeld+152>: fcmp,sgl,false? fpe6,fpe4
+ <labeld+156>: fcmp,dbl,false fpe6,fpe4
+ <labeld+160>: fcmp,dbl,? fpe6,fpe4
+ <labeld+164>: fcmp,dbl,!<=> fpe6,fpe4
+ <labeld+168>: fcmp,dbl,= fpe6,fpe4
+ <labeld+172>: fcmp,dbl,=t fpe6,fpe4
+ <labeld+176>: fcmp,dbl,?= fpe6,fpe4
+ <labeld+180>: fcmp,dbl,!<> fpe6,fpe4
+ <labeld+184>: fcmp,dbl,!?>= fpe6,fpe4
+ <labeld+188>: fcmp,dbl,< fpe6,fpe4
+ <labeld+192>: fcmp,dbl,?< fpe6,fpe4
+ <labeld+196>: fcmp,dbl,!>= fpe6,fpe4
+ <labeld+200>: fcmp,dbl,!?> fpe6,fpe4
+ <labeld+204>: fcmp,dbl,<= fpe6,fpe4
+ <labeld+208>: fcmp,dbl,?<= fpe6,fpe4
+ <labeld+212>: fcmp,dbl,!> fpe6,fpe4
+ <labeld+216>: fcmp,dbl,!?<= fpe6,fpe4
+ <labeld+220>: fcmp,dbl,> fpe6,fpe4
+ <labeld+224>: fcmp,dbl,?> fpe6,fpe4
+ <labeld+228>: fcmp,dbl,!<= fpe6,fpe4
+ <labeld+232>: fcmp,dbl,!?< fpe6,fpe4
+ <labeld+236>: fcmp,dbl,>= fpe6,fpe4
+ <labeld+240>: fcmp,dbl,?>= fpe6,fpe4
+ <labeld+244>: fcmp,dbl,!< fpe6,fpe4
+ <labeld+248>: fcmp,dbl,!?= fpe6,fpe4
+ <labeld+252>: fcmp,dbl,<> fpe6,fpe4
+ <labeld+256>: fcmp,dbl,!= fpe6,fpe4
+ <labeld+260>: fcmp,dbl,!=t fpe6,fpe4
+ <labeld+264>: fcmp,dbl,!? fpe6,fpe4
+ <labeld+268>: fcmp,dbl,<=> fpe6,fpe4
+ <labeld+272>: fcmp,dbl,true? fpe6,fpe4
+ <labeld+276>: fcmp,dbl,true fpe6,fpe4
+ <labeld+280>: fcnvff,sgl,dbl fpe4,fr4
+ <labeld+284>: fcnvfx,sgl,sgl fpe4,fr4
+ <labeld+288>: fcnvfx,sgl,dbl fpe4,fr4
+ <labeld+292>: fcnvff,sgl,quad fpe4,fr4
+ <labeld+296>: fcnvfx,sgl,quad fpe4,fr4
+ <labeld+300>: fcnvxf,sgl,sgl fpe4,fr4
+ <labeld+304>: fcnvxf,sgl,dbl fpe4,fr4
+ <labeld+308>: fcnvxf,sgl,quad fpe4,fr4
+ <labeld+312>: fcnvff,dbl,sgl fpe4,fr4
+ <labeld+316>: fcnvfx,dbl,sgl fpe4,fr4
+ <labeld+320>: fcnvff,dbl,quad fpe4,fr4
+ <labeld+324>: fcnvfx,dbl,quad fpe4,fr4
+ <labeld+328>: fcnvff,quad,sgl fpe4,fr6
+ <labeld+332>: fcnvff,quad,dbl fpe4,fr6
+ <labeld+336>: fcnvfx,quad,sgl fpe4,fr6
+ <labeld+340>: fcnvfx,quad,quad fpe4,fr6
+ <labeld+344>: fcnvxf,quad,sgl fpe4,fr4
+ <labeld+348>: fcnvxf,quad,dbl fpe4,fr4
+ <labeld+352>: fcnvxf,quad,quad fpe4,fr4
+ <labeld+356>: fcnvfxt,dbl,sgl fpe6,fr4
+ <labeld+360>: fcpy,sgl fr5,fr6
+ <labeld+364>: fcpy,dbl fr5,fr6
+ <labeld+368>: fdc r3(sr0,r3)
+ <labeld+372>: fdc,m r0(sr0,r4)
+ <labeld+376>: fdce r0(sr3,r7)
+ <labeld+380>: fdce,m r0(sr3,r7)
+ <labeld+384>: fdiv,dbl fpe2,fr0,fpe4
+ <labeld+388>: fic r4(sr0,r5)
+ <labeld+392>: fic,m r4(sr2,r5)
+ <labeld+396>: fice r0(sr1,r8)
+ <labeld+400>: fice,m r0(sr1,r8)
+ <labeld+404>: diag 0x200
+ <labeld+408>: fid
+ <labeld+412>: fldds 0(sr0,r1),fpe2
+ <labeld+416>: fldds,ma 0xa(sr0,r1),fpe2
+ <labeld+420>: fldds,mb 0(sr0,r1),fpe2
+ <labeld+424>: fldds,ma 0(sr0,r1),fpe2
+ <labeld+428>: fldds,ma 4(sr0,r1),fpe2
+ <labeld+432>: fldds 0(sr0,r1),fpe2
+ <labeld+436>: fldds,ma 0xa(sr0,r1),fpe2
+ <labeld+440>: fldds,mb 0(sr0,r1),fpe2
+ <labeld+444>: flddx r0(sr0,r1),fpe2
+ <labeld+448>: flddx,s r10(sr0,r1),fpe2
+ <labeld+452>: flddx,m r0(sr0,r1),fpe2
+ <labeld+456>: flddx,sm r0(sr0,r1),fpe2
+ <labeld+460>: fldwx r1(sr0,r1),fpe2
+ <labeld+464>: fldws,ma 0xa(sr0,r1),fpe2
+ <labeld+468>: fldws,mb 0(sr0,r1),fpe2
+ <labeld+472>: fldws,ma 0(sr0,r1),fpe2
+ <labeld+476>: fldws,ma 4(sr0,r1),fpe2
+ <labeld+480>: fldws 1(sr0,r1),fpe2
+ <labeld+484>: fldws,ma 0xa(sr0,r1),fpe2
+ <labeld+488>: fldws,mb 0(sr0,r1),fpe2
+ <labeld+492>: fldwx r1(sr0,r1),fpe2
+ <labeld+496>: fldwx,s r10(sr0,r1),fpe2
+ <labeld+500>: fldwx,m r0(sr0,r1),fpe2
+ <labeld+504>: fldwx,sm r0(sr0,r1),fpe2
+ <labeld+508>: fmpy,sgl fr6,fr8,fr10
+ <labeld+512>: fmpy,dbl fr6,fr8,fr10
+ <labeld+516>: fmpyadd,sgl fr16,fr17,fr18,fr19,fr20
+ <labeld+520>: fmpyadd,dbl fr4,fr7,fr7,fr5,fr6
+ <labeld+524>: fmpyfadd,dbl fr10,fr10,fr12,fr13
+ <labeld+528>: fmpynfadd,dbl fr10,fr10,fr12,fr13
+ <labeld+532>: fmpysub,sgl fr16,fr17,fr18,fr19,fr30
+ <labeld+536>: fneg,dbl fr0,fpe2
+ <labeld+540>: fnegabs,sgl fr0,fpe2
+ <labeld+544>: frnd,dbl fpe4,fpe6
+ <labeld+548>: fsqrt,sgl fr16,fr17
+ <labeld+552>: fstds fpe6,0(sr0,rp)
+ <labeld+556>: fstds,ma fpe6,8(sr0,rp)
+ <labeld+560>: fstds,mb fpe6,0(sr0,rp)
+ <labeld+564>: fstds,ma fpe6,0(sr0,rp)
+ <labeld+568>: fstds,ma fpe6,4(sr0,rp)
+ <labeld+572>: fstds fpe6,0(sr0,rp)
+ <labeld+576>: fstds,ma fpe6,8(sr0,rp)
+ <labeld+580>: fstds,mb fpe6,0(sr0,rp)
+ <labeld+584>: fstdx fpe6,r0(sr0,rp)
+ <labeld+588>: fstdx,s fpe6,r8(sr0,rp)
+ <labeld+592>: fstdx,m fpe6,r0(sr0,rp)
+ <labeld+596>: fstdx,sm fpe6,r0(sr0,rp)
+ <labeld+600>: fstws fpe6,0(sr0,rp)
+ <labeld+604>: fstws,ma fpe6,8(sr0,rp)
+ <labeld+608>: fstws,mb fpe6,0(sr0,rp)
+ <labeld+612>: fstws,ma fpe6,0(sr0,rp)
+ <labeld+616>: fstws,ma fpe6,4(sr0,rp)
+ <labeld+620>: fstws fpe6,0(sr0,rp)
+ <labeld+624>: fstws,ma fpe6,8(sr0,rp)
+ <labeld+628>: fstws,mb fpe6,0(sr0,rp)
+ <labeld+632>: fstwx fpe6,r0(sr0,rp)
+ <labeld+636>: fstwx,s fpe6,r8(sr0,rp)
+ <labeld+640>: fstwx,m fpe6,r0(sr0,rp)
+ <labeld+644>: fstwx,sm fpe6,r0(sr0,rp)
+ <labeld+648>: fsub,dbl fr5,fpe4,fr0
+ <labeld+652>: ftest
+ <labeld+656>: ftest,acc
+ <labeld+660>: ftest,acc8
+ <labeld+664>: ftest,acc6
+ <labeld+668>: ftest,acc4
+ <labeld+672>: ftest,acc2
+ <labeld+676>: ftest,rej
+ <labeld+680>: ftest,rej8
+ <labelg>: gate <labelg>,r3
+ <labelg+4>: gate,n <labelu>,r3
+ <labelg+8>: hadd rp,r3,r4
+ <labelg+12>: idcor r4,r17
+ <labelg+16>: idcor,sbz r4,r17
+ <labelg+20>: idcor,shz r4,r17
+ <labelg+24>: idcor,sdc r4,r17
+ <labelg+28>: idcor,sbc r4,r17
+ <labelg+32>: idcor,shc r4,r17
+ <labelg+36>: idcor,tr r4,r17
+ <labelg+40>: idcor,nbz r4,r17
+ <labelg+44>: idcor,nhz r4,r17
+ <labelg+48>: idcor,ndc r4,r17
+ <labelg+52>: idcor,nbc r4,r17
+ <labelg+56>: idcor,nhc r4,r17
+ <labelg+60>: idtlbt r1,rp
+ <labelg+64>: iltlbt rp,r3
+ <labelk>: lha r0(sr0,r1),rp
+ <labelk+4>: ldbx r1(sr0,r1),r1
+ <labelk+8>: ldbs,ma 0xa(sr0,r1),r1
+ <labelk+12>: ldbs,mb 0(sr0,r1),r1
+ <labelk+16>: ldbs,ma 0(sr0,r1),r1
+ <labelk+20>: ldbs,ma 4(sr0,r1),r1
+ <labelk+24>: ldbs 1(sr0,r1),r1
+ <labelk+28>: ldbs,ma 0xa(sr0,r1),r1
+ <labelk+32>: ldbs,mb 0(sr0,r1),r1
+ <labelk+36>: ldbs,ma 0(sr0,r1),r1
+ <labelk+40>: ldbs,ma 4(sr0,r1),r1
+ <labelk+44>: ldbx r1(sr0,r1),r1
+ <labelk+48>: ldbx,s r10(sr0,r1),r1
+ <labelk+52>: ldbx,m r0(sr0,r1),r1
+ <labelk+56>: ldbx,sm r0(sr0,r1),r1
+ <labelk+60>: ldcd 0(sr0,r1),r1
+ <labelk+64>: ldcwx r1(sr0,r1),r1
+ <labelk+68>: ldcws,ma 0xa(sr0,r1),r1
+ <labelk+72>: ldcws,mb 0(sr0,r1),r1
+ <labelk+76>: ldcws,ma 0(sr0,r1),r1
+ <labelk+80>: ldcws,ma 4(sr0,r1),r1
+ <labelk+84>: ldcws 1(sr0,r1),r1
+ <labelk+88>: ldcws,ma 0xa(sr0,r1),r1
+ <labelk+92>: ldcws,mb 0(sr0,r1),r1
+ <labelk+96>: ldcws,ma 0(sr0,r1),r1
+ <labelk+100>: ldcws,ma 4(sr0,r1),r1
+ <labelk+104>: ldcwx r1(sr0,r1),r1
+ <labelk+108>: ldcwx,s r3(sr0,r1),r1
+ <labelk+112>: ldcwx,m r0(sr0,r1),r1
+ <labelk+116>: ldcwx,sm r0(sr0,r1),r1
+ <labelk+120>: ldhx r1(sr0,r1),r1
+ <labelk+124>: ldhs,ma 0xa(sr0,r1),r1
+ <labelk+128>: ldhs,mb 0(sr0,r1),r1
+ <labelk+132>: ldhs,ma 0(sr0,r1),r1
+ <labelk+136>: ldhs,ma 4(sr0,r1),r1
+ <labelk+140>: ldhs 1(sr0,r1),r1
+ <labelk+144>: ldhs,ma 0xa(sr0,r1),r1
+ <labelk+148>: ldhs,mb 0(sr0,r1),r1
+ <labelk+152>: ldhs,ma 0(sr0,r1),r1
+ <labelk+156>: ldhs,ma 4(sr0,r1),r1
+ <labelk+160>: ldhx r1(sr0,r1),r1
+ <labelk+164>: ldhx,s r10(sr0,r1),r1
+ <labelk+168>: ldhx,m r0(sr0,r1),r1
+ <labelk+172>: ldhx,sm r0(sr0,r1),r1
+ <labelk+176>: ldil 0x2dd0000,r6
+ <labelk+180>: ldo 0x64(r3),r20
+ <labelk+184>: ldsid (sr0,r0),r3
+ <labelk+188>: ldwx r1(sr0,r1),r1
+ <labelk+192>: ldws,ma 0xa(sr0,r1),r1
+ <labelk+196>: ldws,mb 0(sr0,r1),r1
+ <labelk+200>: ldws,ma 0(sr0,r1),r1
+ <labelk+204>: ldws,ma 4(sr0,r1),r1
+ <labelk+208>: ldwax r1(r3),rp
+ <labelk+212>: ldwas,ma 8(r3),rp
+ <labelk+216>: ldwas,mb 0(r3),rp
+ <labelk+220>: ldwas,ma 0(r3),rp
+ <labelk+224>: ldwas,ma 8(r3),rp
+ <labelk+228>: ldwas 1(r3),rp
+ <labelk+232>: ldwas,ma 8(r3),rp
+ <labelk+236>: ldwas,mb 0(r3),rp
+ <labelk+240>: ldwas,ma 0(r3),rp
+ <labelk+244>: ldwas,ma 8(r3),rp
+ <labelk+248>: ldwax r1(r3),rp
+ <labelk+252>: ldwax,s r8(r3),rp
+ <labelk+256>: ldwax,m r0(r3),rp
+ <labelk+260>: ldwax,sm r0(r3),rp
+ <labelk+264>: ldwm 8(sr1,r3),r4
+ <labelk+268>: ldws 1(sr0,r1),r1
+ <labelk+272>: ldws,ma 0xa(sr0,r1),r1
+ <labelk+276>: ldws,mb 0(sr0,r1),r1
+ <labelk+280>: ldws,ma 0(sr0,r1),r1
+ <labelk+284>: ldws,ma 4(sr0,r1),r1
+ <labelk+288>: ldwx r1(sr0,r3),rp
+ <labelk+292>: ldwx,s r8(sr0,r3),rp
+ <labelk+296>: ldwx,m r0(sr0,r3),rp
+ <labelk+300>: ldwx,sm r0(sr0,r3),rp
+ <labelk+304>: lpa r0(sr0,r3),r19
+ <labelk+308>: lpa,m r0(sr2,r3),r19
+ <labelk+312>: mfctl rctr,r4
+ <labelk+316>: mfctl pidr3,r4
+ <labelk+320>: mfia r25
+ <labelk+324>: mfsp sr4,ret1
+ <labelk+328>: mixh,l r1,rp,r3
+ <labelk+332>: movb r1,rp,<labelk>
+ <labelk+336>: movb,n r1,rp,<labelk>
+ <labelk+340>: movb,>=,n r1,rp,<main>
+ <labelk+344>: movib 0xf,r3,<main>
+ <labelk+348>: movib,< 0xf,r3,<main>
+ <labelk+352>: movib,<>,n 0xf,r3,<main>
+ <labelk+356>: mtctl r0,pcsq
+ <labelk+360>: mtsar r3
+ <labelk+364>: mtsarcm r7
+ <labelk+368>: mtsm rp
+ <labelk+372>: mtsp r19,sr3
+ <labelk+376>: nop
+ <labelk+380>: copy r1,r3
+ <labelk+384>: or,ev r1,r0,r3
+ <labelk+388>: pdc r0(sr0,r1)
+ <labelk+392>: pdc,m r0(sr0,r1)
+ <labelk+396>: pdtlb r8(sr2,rp)
+ <labelk+400>: pdtlb,m r8(sr2,rp)
+ <labelk+404>: pdtlb,l r8(sr2,rp)
+ <labelk+408>: pdtlb,l,m r8(sr2,rp)
+ <labelk+412>: pdtlbe r4(sr1,r21)
+ <labelk+416>: pdtlbe,m r4(sr1,r21)
+ <labelk+420>: pitlb r6(sr0,sp)
+ <labelk+424>: pitlb,m r6(sr0,sp)
+ <labelk+428>: pitlbe r6(sr0,sp)
+ <labelk+432>: pitlbe,m r6(sr0,sp)
+ <labelk+436>: prober (sr0,r26),r0,sp
+ <labelk+440>: probew (sr0,r26),r0,sp
+ <labelk+444>: proberi (sr0,r26),0xa,sp
+ <labelk+448>: probewi (sr0,r26),7,sp
+ <labelk+452>: rfi
+ <labelk+456>: rfir
+ <labelk+460>: rfir
+ <labelk+464>: rsm 0x1f,r24
+ <labelk+468>: sh1add r14,r15,r16
+ <labelk+472>: sh1add,nuv r14,r15,r16
+ <labelk+476>: sh1add,znv r14,r15,r16
+ <labelk+480>: sh1add,sv r14,r15,r16
+ <labelk+484>: sh1add,uv r14,r15,r16
+ <labelk+488>: sh1add,vnz r14,r15,r16
+ <labelk+492>: sh1add,nsv r14,r15,r16
+ <labelk+496>: sh1addl r14,r15,r16
+ <labelk+500>: sh1addl,nuv r14,r15,r16
+ <labelk+504>: sh1addl,znv r14,r15,r16
+ <labelk+508>: sh1addl,sv r14,r15,r16
+ <labelk+512>: sh1addl,uv r14,r15,r16
+ <labelk+516>: sh1addl,vnz r14,r15,r16
+ <labelk+520>: sh1addl,nsv r14,r15,r16
+ <labelk+524>: sh1addo r14,r15,r16
+ <labelk+528>: sh1addo,nuv r14,r15,r16
+ <labelk+532>: sh1addo,znv r14,r15,r16
+ <labelk+536>: sh1addo,sv r14,r15,r16
+ <labelk+540>: sh1addo,uv r14,r15,r16
+ <labelk+544>: sh1addo,vnz r14,r15,r16
+ <labelk+548>: sh1addo,nsv r14,r15,r16
+ <labelk+552>: sh2add r14,r15,r16
+ <labelk+556>: sh2add,nuv r14,r15,r16
+ <labelk+560>: sh2add,znv r14,r15,r16
+ <labelk+564>: sh2add,sv r14,r15,r16
+ <labelk+568>: sh2add,uv r14,r15,r16
+ <labelk+572>: sh2add,vnz r14,r15,r16
+ <labelk+576>: sh2add,nsv r14,r15,r16
+ <labelk+580>: sh2addl r14,r15,r16
+ <labelk+584>: sh2addl,nuv r14,r15,r16
+ <labelk+588>: sh2addl,znv r14,r15,r16
+ <labelk+592>: sh2addl,sv r14,r15,r16
+ <labelk+596>: sh2addl,uv r14,r15,r16
+ <labelk+600>: sh2addl,vnz r14,r15,r16
+ <labelk+604>: sh2addl,nsv r14,r15,r16
+ <labelk+608>: sh2addo r14,r15,r16
+ <labelk+612>: sh2addo,nuv r14,r15,r16
+ <labelk+616>: sh2addo,znv r14,r15,r16
+ <labelk+620>: sh2addo,sv r14,r15,r16
+ <labelk+624>: sh2addo,uv r14,r15,r16
+ <labelk+628>: sh2addo,vnz r14,r15,r16
+ <labelk+632>: sh2addo,nsv r14,r15,r16
+ <labelk+636>: sh3add r14,r15,r16
+ <labelk+640>: sh3add,nuv r14,r15,r16
+ <labelk+644>: sh3add,znv r14,r15,r16
+ <labelk+648>: sh3add,sv r14,r15,r16
+ <labelk+652>: sh3add,uv r14,r15,r16
+ <labelk+656>: sh3add,vnz r14,r15,r16
+ <labelk+660>: sh3add,nsv r14,r15,r16
+ <labelk+664>: sh3addl r14,r15,r16
+ <labelk+668>: sh3addl,nuv r14,r15,r16
+ <labelk+672>: sh3addl,znv r14,r15,r16
+ <labelk+676>: sh3addl,sv r14,r15,r16
+ <labelk+680>: sh3addl,uv r14,r15,r16
+ <labelk+684>: sh3addl,vnz r14,r15,r16
+ <labelk+688>: sh3addl,nsv r14,r15,r16
+ <labelk+692>: sh3addo r14,r15,r16
+ <labelk+696>: sh3addo,nuv r14,r15,r16
+ <labelk+700>: sh3addo,znv r14,r15,r16
+ <labelk+704>: sh3addo,sv r14,r15,r16
+ <labelk+708>: sh3addo,uv r14,r15,r16
+ <labelk+712>: sh3addo,vnz r14,r15,r16
+ <labelk+716>: sh3addo,nsv r14,r15,r16
+ <labelk+720>: shd r3,rp,15,r0
+ <labelk+724>: shd,<> r3,rp,15,r0
+ <labelk+728>: sh2add r1,r3,r6
+ <labelk+732>: sh2addo r1,r3,r6
+ <labelk+736>: sh2addl r1,r3,r6
+ <labelk+740>: sh2add,= r1,r3,r6
+ <labelk+744>: sh2add,< r1,r3,r6
+ <labelk+748>: sh2add,<= r1,r3,r6
+ <labelk+752>: sh2add,nuv r1,r3,r6
+ <labelk+756>: sh2add,znv r1,r3,r6
+ <labelk+760>: sh2add,sv r1,r3,r6
+ <labelk+764>: sh2add,od r1,r3,r6
+ <labelk+768>: sh2add,tr r1,r3,r6
+ <labelk+772>: sh2add,<> r1,r3,r6
+ <labelk+776>: sh2add,>= r1,r3,r6
+ <labelk+780>: sh2add,> r1,r3,r6
+ <labelk+784>: sh2add,uv r1,r3,r6
+ <labelk+788>: sh2add,vnz r1,r3,r6
+ <labelk+792>: sh2add,nsv r1,r3,r6
+ <labelk+796>: sh2add,ev r1,r3,r6
+ <labelk+800>: shd r1,rp,1,r3
+ <labelk+804>: spop0,0,0x23
+ <labelk+808>: spop1,3,0x23 r6
+ <labelk+812>: spop2,3,0x23 r6
+ <labelk+816>: spop3,3,0x23 r6,r7
+ <labelk+820>: ssm 0x7f,r1
+ <labelk+824>: stbs r0,8(sr1,r3)
+ <labelk+828>: stbs r0,8(sr1,r3)
+ <labelk+832>: stbs r0,8(sr1,r3)
+ <labelk+836>: stbs r0,8(sr1,r3)
+ <labelk+840>: stbs r0,8(sr1,r3)
+ <labelk+844>: stbs r0,8(sr1,r3)
+ <labelk+848>: stbys r7,6(sr1,sp)
+ <labelk+852>: stbys r7,6(sr1,sp)
+ <labelk+856>: stbys,e r7,6(sr1,sp)
+ <labelk+860>: stbys,b,m r7,6(sr1,sp)
+ <labelk+864>: stbys r7,6(sr1,sp)
+ <labelk+868>: stbys,e r7,6(sr1,sp)
+ <labelk+872>: stbys r7,6(sr1,sp)
+ <labelk+876>: stbys,b,m r7,6(sr1,sp)
+ <labelk+880>: stbys,e,m r7,6(sr1,sp)
+ <labelk+884>: stbys,b,m r7,6(sr1,sp)
+ <labelk+888>: stbys r7,6(sr1,sp)
+ <labelk+892>: stbys,e r7,6(sr1,sp)
+ <labelk+896>: std r18,0(sr3,ret1)
+ <labelk+900>: sths r18,0(sr3,ret1)
+ <labelk+904>: sths r18,0(sr3,ret1)
+ <labelk+908>: stws r17,3(sr0,r1)
+ <labelk+912>: stwas r16,0(r6)
+ <labelk+916>: stwm r16,0(sr3,r6)
+ <labelk+920>: stwas,ma r16,2(r6)
+ <labelk+924>: stws r16,0(sr0,r6)
+ <labelk+928>: sub r1,r0,r3
+ <labelk+932>: subb r1,r0,r3
+ <labelk+936>: subdb r1,r0,r3
+ <labelk+940>: subt r1,r0,r3
+ <labelk+944>: subo r1,r0,r3
+ <labelk+948>: subto r1,r0,r3
+ <labelk+952>: subbo r1,r0,r3
+ <labelk+956>: subbo,< r1,r0,r3
+ <labelk+960>: subb r8,r9,r10
+ <labelk+964>: subb,<<= r8,r9,r10
+ <labelk+968>: subb,>>= r8,r9,r10
+ <labelk+972>: subb,nsv r8,r9,r10
+ <labelk+976>: subbo r8,r9,r10
+ <labelk+980>: subbo,<<= r8,r9,r10
+ <labelk+984>: subbo,>>= r8,r9,r10
+ <labelk+988>: subbo,nsv r8,r9,r10
+ <labelk+992>: subi 9,r3,r5
+ <labelk+996>: subio 2,r3,r5
+ <labelk+1000>: subio 5,dp,r26
+ <labelk+1004>: subio,< 5,dp,r26
+ <labelk+1008>: subo r8,r9,r10
+ <labelk+1012>: subo,<<= r8,r9,r10
+ <labelk+1016>: subo,>>= r8,r9,r10
+ <labelk+1020>: subo,nsv r8,r9,r10
+ <labelk+1024>: subt r8,r9,r10
+ <labelk+1028>: subt,<= r8,r9,r10
+ <labelk+1032>: subt,>= r8,r9,r10
+ <labelk+1036>: subt,nsv r8,r9,r10
+ <labelk+1040>: subto r8,r9,r10
+ <labelk+1044>: subto,<<= r8,r9,r10
+ <labelk+1048>: subto,>>= r8,r9,r10
+ <labelk+1052>: subto,nsv r8,r9,r10
+ <labelk+1056>: sync
+ <labelk+1060>: syncdma
+ <labelu>: uaddcm r3,r4,r5
+ <labelu+4>: uaddcmt r3,r4,r5
+ <labelu+8>: uaddcmt r3,r4,r5
+ <labelu+12>: uaddcmt,shc r3,r4,r5
+ <labelu+16>: uxor r19,r3,r20
+ <labelu+20>: uxor,shz r19,r3,r20
+ <labelu+24>: vdep r7,3,r8
+ <labelu+28>: vdep,tr rp,3,r8
+ <labelu+32>: vdepi 7,3,r8
+ <labelu+36>: vdepi,= 2,3,r8
+ <labelu+40>: vextrs r4,30,r4
+ <labelu+44>: vextrs,< r4,30,r4
+ <labelu+48>: vextru r4,30,r4
+ <labelu+52>: vextru,>= r4,30,r4
+ <labelu+56>: vshd r3,rp,r0
+ <labelu+60>: vshd,< r3,rp,r0
+ <labelu+64>: xmpyu fpe6,fr4,fr5
+ <labelu+68>: xor r0,r1,rp
+ <labelu+72>: xor,tr r0,r1,rp
+ <labelu+76>: xor,>= r0,r1,rp
+ <labelu+80>: zdep r18,1,2,rp
+ <labelu+84>: zdep,<> r18,2,3,rp
+ <labelu+88>: zdepi 1,1,2,rp
+ <labelu+92>: zdepi,ev 3,2,3,rp
+ <labelu+96>: zvdep r18,30,rp
+ <labelu+100>: zvdep,< r18,8,rp
+ <labelu+104>: zvdepi 0xf,30,rp
+ <labelu+108>: zvdepi,od 8,8,rp
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20w-instr.s gdb/testsuite/gdb.disasm/pa20w-instr.s
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20w-instr.s Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa20w-instr.s Thu Jul 22 17:49:49 1999
***************
*** 0 ****
--- 1,1034 ----
+ ; assemble as "as +DA2.0W -o pa20w pa20-instr.s"
+ ; or
+ ; cc -g +DA2.0W -o pa20w pa20w-instr.s
+ ;
+ ; PA-RISC assembly-language test program for the debugger.
+ ;
+ ; This test is *not* intended to be executed. Rather, this test serves
+ ; as a comprehensive test for the debugger's PA disassembler.
+ ;
+
+ ; Some instructions are PA1.x, some PA2.0
+
+ .level 2.0W
+
+ .code
+ .export main,ENTRY
+ .export mainend,ENTRY
+ .space $TEXT$
+ .subspa $CODE$
+
+ main
+ .proc
+ .callinfo NO_CALLS,FRAME=0
+ .entry
+
+ labela
+ PDC %r5(0,%r6)
+ PDC,M %r5(%r6)
+ FDC %r5(0,%r6)
+ FDC,M %r5(0,%r6)
+ ;;
+ ;; This gets an assembly error--it may be format in the draft manual only
+ ;; FDC 5(0,%r6)
+
+ FIC %r5(0,%r6)
+ FIC,M %r5(0,%r6)
+
+ FCNV,SGL,DBL %fr4,%fr6
+ ;;
+ ;; I don't know the magic to get the truncate flag to work
+ ;; FCNV,T,DBL,SGL %fr4,%fr6
+
+ FNEG %fr4,%fr6
+ FNEG,SGL %fr4,%fr6
+ FNEG,DBL %fr4,%fr6
+ FNEG,QUAD %fr4,%fr6
+
+ FNEGABS %fr4,%fr6
+ FNEGABS,SGL %fr4,%fr6
+ FNEGABS,DBL %fr4,%fr6
+ FNEGABS,QUAD %fr4,%fr6
+
+ FMPYFADD %fr2,%fr4,%fr6,%fr8
+ FMPYFADD,SGL %fr2,%fr4,%fr6,%fr8
+ FMPYFADD,DBL %fr2,%fr4,%fr6,%fr8
+ FMPYFADD,QUAD %fr2,%fr4,%fr6,%fr8
+
+ FMPYNFADD %fr2,%fr4,%fr6,%fr8
+ FMPYNFADD,SGL %fr2,%fr4,%fr6,%fr8
+ FMPYNFADD,DBL %fr2,%fr4,%fr6,%fr8
+ FMPYNFADD,QUAD %fr2,%fr4,%fr6,%fr8
+
+ FCMP,SGL,true %fr2,%fr4,3
+ FTEST 3
+
+ PMENB
+ PMDIS
+ PMDIS,N
+
+ MTSARCM %r5
+ IDTLBT %r5,%r6
+ IITLBT %r5,%r6
+
+ FLDD 512(%r4),%fr5
+ FLDD,MA 512(%r4),%fr5
+ FLDD,O 0(%r4),%fr5
+
+ FLDW 1024(0,%r4),%fr5
+ FLDW,MA 1024(0,%r4),%fr5
+ FLDW,MB 1024(0,%r4),%fr5
+
+ FSTD %fr5,1024(0,%r4)
+ FSTD,O %fr5,0(0,%r4)
+ FSTD,MA %fr5,1024(0,%r4)
+ FSTD,MB %fr5,1024(0,%r4)
+
+ MIXW %r4,%r5,%r6
+ MIXW,L %r4,%r5,%r6
+ MIXW,R %r4,%r5,%r6
+
+ MIXH %r4,%r5,%r6
+ MIXH,L %r4,%r5,%r6
+ MIXH,R %r4,%r5,%r6
+
+ HADD %r1,%r2,%r3
+ HADD,US %r3,%r4,%r5
+ HADD,SS %r6,%r7,%r8
+
+ HSUB %r1,%r2,%r3
+ HSUB,US %r3,%r4,%r5
+ HSUB,SS %r6,%r7,%r8
+
+ HAVG %r6,%r7,%r8
+
+ HSHLADD %r3,3,%r4,%r5
+ HSHRADD %r3,1,%r4,%r5
+
+ HSHL %r3,11,%r4
+ HSHR %r3,11,%r4
+ HSHR,U %r3,11,%r4
+ HSHR,S %r3,11,%r4
+
+ PERMH,1230 %r1,%r3
+
+ DEPDI 12,%cr11,17,%r3
+ DEPDI,Z 12,%cr11,17,%r3
+ DEPDI,Z,= 12,%cr11,17,%r3
+
+ EXTRD,< %r3,12,13,%r4
+ EXTRD,U,= %r3,%cr11,19,%r4
+
+ BB,< %r9,%cr11,labelc
+ BB,>=,N %r9,31,labelc
+
+ SHRPD,>= %r5,%r6,41,%r7
+ SHRPD,= %r1,%r2,%cr11,%r3
+ SHRPD,OD %r6,%r7,%cr11,%r3
+
+ BVE (%r6)
+ BVE,N (%r6)
+ BVE,L (%r5),%r2
+ BVE,L,PUSH (%r5),%r2
+ BVE,POP (%r5)
+
+ PUSHNOM
+ CLRBTS
+ POPBTS 6
+ PUSHBTS %r4
+
+ LDD %r1(0,%r2),%r3
+ LDD,MA 10(0,%r2),%r3
+ LDD,MB 0(0,%r2),%r3
+ LDD,O 0(0,%r2),%r3
+ LDD,MA,SL 4(0,%r2),%r3
+
+ LDDA %r1(%r2),%r3
+ LDDA,MA 8(%r2),%r3
+ LDDA,MB 0(%r2),%r3
+ LDDA,O 0(%r2),%r3
+ LDDA,MA,SL 8(%r2),%r3
+
+ STD %r1,(0,%r2)
+ STD,MA %r1,10(0,%r2)
+ STD,MB %r1,0(0,%r2)
+ STD,O %r1,0(0,%r2)
+ STD,MA,SL %r1,4(0,%r2)
+
+ STDA %r1,(%r2)
+ STDA,MA %r1,10(%r2)
+ STDA,MB %r1,0(%r2)
+ STDA,O %r1,0(%r2)
+ STDA,MA,SL %r1,4(%r2)
+
+ LDCD %r1(0,%r2),%r3
+ LDCD,M %r1(0,%r2),%r3
+ LDCD,MA 10(0,%r2),%r3
+ LDCD,MB 0(0,%r2),%r3
+ LDCD,O 0(0,%r2),%r3
+ LDCD,MA 4(0,%r2),%r3
+
+ STDBY %r1,5(0,%r2)
+ STDBY,B %r1,5(%r2)
+ STDBY,B,M %r1,5(%r2)
+ STDBY,E,M %r1,5(%r2)
+ STDBY,E %r1,5(%r2)
+
+ LDD %r1(0,%r2),%r3
+ LDD 10(0,%r2),%r3
+ ADD %r1,%r2,%r3
+ ADD,C %r0,%r1,%r2
+ ADD,DC %r0,%r1,%r2
+ ADD,L %r1,%r2,%r3
+ ADD,TSV %r3,%r4,%r5
+ ADD,C,TSV %r3,%r4,%r5
+ ADD,DC,TSV %r3,%r4,%r5
+
+ ADDB,= %r25,%r26,labelb
+ ADDB,=,N %r25,%r26,labelb
+ ;; In wide mode, the following commented out completers are not
+ ;; available
+ ;; ADDB,SV %r27,%r28,labela
+ ;; ADDB,OD %r27,%r28,labela
+ ADDB,TR %r27,%r28,labela
+ ;; ADDB,NSV %r27,%r28,labela
+ ;; ADDB,EV %r27,%r28,labela
+ ADDB,<> %r27,%r28,labela
+
+ ADDBF,NUV %r1,%r5,labela
+ ADDBF,<=,N %r10,%r6,labelb
+
+ ADDBT,NUV %r1,%r5,labela
+ ADDBT,<=,N %r10,%r6,labelb
+
+ ADDC %r28,%r29,%r30
+ ADDC,UV %r28,%r29,%r30
+
+ ADDCO %r28,%r29,%r30
+ ADDCO,UV %r28,%r29,%r30
+
+ ADDI 0,%r2,%r0
+ ADDI,> 1,%r3,%r0
+ ADDI,< 2,%r4,%r0
+
+ ADDIB,>= -1,%r5,labela
+ ADDIB,<=,N 10,%r6,labelb
+
+ ADDIBF,NUV -1,%r5,labela
+ ADDIBF,<=,N 10,%r6,labelb
+
+ ADDIBT,NUV -1,%r5,labela
+ ADDIBT,<=,N 10,%r6,labelb
+
+ ADDIL -1,%r3
+ ADDIL 70000,%r3
+
+ ADDIO 4,%r22,%r21
+ ADDIO,< 4,%r22,%r21
+
+ ADDIT 4,%r22,%r21
+ ADDIT,TR 4,%r22,%r21
+
+ ADDITO 934,%r25,%r24
+ ADDITO,<> 1023,%r25,%r24
+
+ ADDO %r28,%r29,%r30
+ ADDO,SV %r28,%r29,%r30
+
+ ADDL %r28,%r29,%r30
+ ADDL,NSV %r28,%r29,%r30
+
+ AND %r30,%r31,%r30
+ AND,< %r30,%r31,%r30
+
+ ANDCM %r26,%r27,%r28
+ ANDCM,> %r26,%r27,%r28
+
+ labelb
+ B labelc
+ B,N labelc
+ B,GATE labelc
+ B,L labelb,%r3
+
+ BB,< %r9,%cr11,labelc
+ BB,>=,N %r9,31,labelc
+
+ BE 100(%sr4,%r11)
+ BE,L 0(%sr4,%r11),%sr0,%r31
+
+ BL labelb,%r3
+ BL,N labelb,%r3
+
+ BLE 12345(%sr0,%r3)
+ BLE,N 12345(%sr0,%r3)
+
+ BLR %r31,%r3
+ BLR,N %r0,%r3
+
+ BREAK 0,1
+ BREAK 31,1000
+
+ BV 0(%r1)
+ BV,N (%r20)
+
+ BVB,< %r3,labela
+ BVB,<,N %r3,labela
+
+ BVE (%r5)
+ BVE,POP (%r5)
+ ; PA2.0 opcodes:
+ BVE,L (%r5),%r2
+ BVE,L,PUSH (%r5),%r2
+
+ labelc
+ CLDDS,0 0(%sr2,%r0),0
+ CLDDS,1,MA 1(%sr2,%r1),2
+ CLDDS,2,MB 9(%sr2,%r6),3
+
+ CLDDX,0 %r3(%sr2,%r10),0
+ CLDDX,0,S %r3(%sr2,%r20),1
+ CLDDX,1,M %r3(%sr2,%r30),2
+ CLDDX,2,SM %r3(%sr2,%r0),3
+
+ CLDWS,0 0(%sr2,%r0),0
+ CLDWS,1,MA 3(%sr2,%r0),2
+ CLDWS,2,MB 7(%sr2,%r0),3
+
+ CLDWX,0 %r3(%sr2,%r0),0
+ CLDWX,0,S %r3(%sr2,%r0),1
+ CLDWX,1,M %r3(%sr2,%r0),2
+ CLDWX,2,SM %r3(%sr2,%r0),3
+
+ CMPB,< %r11,%r12,labelc
+ ;; not accepted in 2.0W
+ ;; CMPB,>=,N %r11,%r12,main
+
+ CMPCLR,<> %r2,%r3,%r4
+
+ CMPIB,<= 0,%r2,labeld
+ CMPIB,NSV,N -16,%r2,labeld
+
+ CMPICLR,OD 1000,%r0,%r31
+
+ COMBF,<= %r0,%r2,labeld
+ COMBF,<<,N %r16,%r2,labeld
+
+ COMBT,<= %r0,%r2,labeld
+ COMBT,<<,N %r16,%r2,labeld
+
+ COMCLR %r11,%r12,%r13
+ COMCLR,>= %r11,%r12,%r13
+
+ COMIBF,<= 0,%r2,labeld
+ COMIBF,<<=,N -16,%r2,labeld
+
+ COMIBT,<= 0,%r2,labeld
+ COMIBT,<,N -16,%r2,labeld
+
+ COMICLR 1,%r3,%r4
+ COMICLR,EV 157,%r3,%r4
+
+ COPR,0,0
+ COPR,7,0
+ COPR,7,255
+
+ COPY %r3,%r4
+
+ CSTDS,0 8,0(%sr1,%r31)
+ CSTDS,7,MA 11,2(%sr1,%r3)
+ CSTDS,4,MB 14,2(%sr1,%r3)
+
+ CSTWS,0 8,0(%sr1,%r31)
+ CSTWS,7,MA 11,2(%sr1,%r3)
+ CSTWS,4,MB 14,2(%sr1,%r3)
+
+ labeld
+ DCOR %r3,%r4
+ DCOR,I %r3,%r4
+ DCOR,SBZ %r4,%r5
+ DCOR,SHZ %r4,%r6
+ DCOR,SDC %r4,%r7
+ DCOR,SBC %r4,%r8
+ DCOR,SHC %r4,%r9
+ DCOR,NBZ %r4,%r10
+ DCOR,NHZ %r4,%r11
+ DCOR,NDC %r4,%r12
+ DCOR,NBC %r4,%r13
+ DCOR,NHC %r4,%r14
+
+ DEP %r21,14,3,%r22
+ DEP,>= %r21,14,3,%r22
+
+ DEPI 1,14,3,%r22
+ DEPI,>= 2,14,3,%r22
+
+ DEPW %r19,1,2,%r1
+ DEPW,Z %r19,1,2,%r1
+ DEPW,Z %r19,%cr11,31,%r1
+ DEPW,Z,< %r19,30,1,%r1
+
+ DEPWI 15,0,1,%r2
+ DEPWI,Z -16,0,1,%r2
+
+ DIAG 123456
+
+ DS %r1,%r2,%r3
+ DS,<> %r1,%r2,%r3
+
+ labele
+ EXTRS %r1,3,4,%r2
+ EXTRS,OD %r1,3,4,%r2
+
+ EXTRU %r1,3,4,%r2
+ EXTRU,EV %r1,3,4,%r2
+
+ EXTRW %r0,3,4,%r1
+ EXTRW,S %r0,3,4,%r1
+ EXTRW,U %r0,3,4,%r1
+ EXTRW,U,EV %r0,3,4,%r1
+ EXTRW,<> %r0,%cr11,4,%r1
+
+ labelf
+ FABS,SGL %fr2,%fr3
+ FABS,DBL %fr2,%fr6
+
+ FADD,SGL %fr2,%fr4,%fr6
+ FADD,DBL %fr2,%fr4,%fr6
+
+ FCMP,SGL %fr3,%fr2
+ FCMP,DBL,false %fr3,%fr2
+ FCMP,DBL,? %fr3,%fr2
+ FCMP,DBL,!<=> %fr3,%fr2
+ FCMP,DBL,= %fr3,%fr2
+ FCMP,DBL,=T %fr3,%fr2
+ FCMP,DBL,?= %fr3,%fr2
+ FCMP,DBL,!<> %fr3,%fr2
+ FCMP,DBL,!?>= %fr3,%fr2
+ FCMP,DBL,< %fr3,%fr2
+ FCMP,DBL,?< %fr3,%fr2
+ FCMP,DBL,!>= %fr3,%fr2
+ FCMP,DBL,!?> %fr3,%fr2
+ FCMP,DBL,<= %fr3,%fr2
+ FCMP,DBL,?<= %fr3,%fr2
+ FCMP,DBL,!> %fr3,%fr2
+ FCMP,DBL,!?<= %fr3,%fr2
+ FCMP,DBL,> %fr3,%fr2
+ FCMP,DBL,?> %fr3,%fr2
+ FCMP,DBL,!<= %fr3,%fr2
+ FCMP,DBL,!?< %fr3,%fr2
+ FCMP,DBL,>= %fr3,%fr2
+ FCMP,DBL,?>= %fr3,%fr2
+ FCMP,DBL,!< %fr3,%fr2
+ FCMP,DBL,!?= %fr3,%fr2
+ FCMP,DBL,<> %fr3,%fr2
+ FCMP,DBL,!= %fr3,%fr2
+ FCMP,DBL,!=T %fr3,%fr2
+ FCMP,DBL,!? %fr3,%fr2
+ FCMP,DBL,<=> %fr3,%fr2
+ FCMP,DBL,true? %fr3,%fr2
+ FCMP,DBL,true %fr3,%fr2
+
+ FCNV,SGL,DBL %fr2,%fr4
+ FCNV,SGL,W %fr2,%fr4
+ FCNV,SGL,DW %fr2,%fr4
+ FCNV,SGL,QUAD %fr2,%fr4
+ FCNV,SGL,QW %fr2,%fr4
+ FCNV,W,SGL %fr2,%fr4
+ FCNV,W,DBL %fr2,%fr4
+ FCNV,W,QUAD %fr2,%fr4
+ FCNV,DBL,SGL %fr2,%fr4
+ FCNV,DBL,W %fr2,%fr4
+ FCNV,DBL,QUAD %fr2,%fr4
+ FCNV,DBL,QW %fr2,%fr4
+ FCNV,QUAD,SGL %fr2,%fr6
+ FCNV,QUAD,DBL %fr2,%fr6
+ FCNV,QUAD,W %fr2,%fr6
+ FCNV,QUAD,QW %fr2,%fr6
+ FCNV,QW,SGL %fr2,%fr4
+ FCNV,QW,DBL %fr2,%fr4
+ FCNV,QW,QUAD %fr2,%fr4
+
+ FCNVFXT,DBL %fr3,%fr4
+
+ FCPY,SGL %fr5,%fr6
+ FCPY,DBL %fr5,%fr6
+
+ FDC %r3(0,%r3)
+ ;; In wide mode, the following commented out completers are not
+ ;; available
+ ;; FDC,M 0(0,%r4)
+
+ FDCE %r0(%sr3,%r7)
+ FDCE,M %r0(%sr3,%r7)
+
+ FDIV,DBL %fr1,%fr0,%fr2
+
+ FIC %r4(0,%r5)
+ FIC,M %r4(%sr2,%r5)
+
+ FICE %r0(%sr1,%r8)
+ FICE,M %r0(%sr1,%r8)
+
+ DIAG 512
+
+ FID
+
+ FLDD 0(0,%r1),%fr1
+ FLDD,MA 10(0,%r1),%fr1
+ FLDD,MB 0(0,%r1),%fr1
+ FLDD,O 0(0,%r1),%fr1
+ FLDD,MA,SL 4(0,%r1),%fr1
+
+ FLDDS 0(0,%r1),%fr1
+ FLDDS,MA 10(0,%r1),%fr1
+ FLDDS,MB 0(0,%r1),%fr1
+
+ FLDDX 0(0,%r1),%fr1
+ FLDDX,S %r10(0,%r1),%fr1
+ FLDDX,M 0(0,%r1),%fr1
+ FLDDX,SM 0(0,%r1),%fr1
+
+ FLDW %r1(0,%r1),%fr1
+ FLDW,MA 10(0,%r1),%fr1
+ FLDW,MB 0(0,%r1),%fr1
+ FLDW,O 0(0,%r1),%fr1
+ FLDW,MA,SL 4(0,%r1),%fr1
+
+ FLDWS %r1(0,%r1),%fr1
+ FLDWS,MA 10(0,%r1),%fr1
+ FLDWS,MB 0(0,%r1),%fr1
+
+ FLDWX %r1(0,%r1),%fr1
+ FLDWX,S %r10(0,%r1),%fr1
+ FLDWX,M 0(0,%r1),%fr1
+ FLDWX,SM 0(0,%r1),%fr1
+
+ FMPY,SGL %fr6,%fr8,%fr10
+ FMPY,DBL %fr6,%fr8,%fr10
+
+ FMPYADD,SGL %fr16,%fr17,%fr18,%fr19,%fr20
+ FMPYADD,DBL %fr4,%fr7,%fr7,%fr5,%fr6
+
+ FMPYFADD,DBL %fr10,%fr11,%fr12,%fr13
+
+ FMPYNFADD,DBL %fr10,%fr11,%fr12,%fr13
+
+ FMPYSUB,SGL %fr16,%fr17,%fr18,%fr19,%fr30
+
+ ; PA2.0 opcodes:
+ FNEG,DBL %fr10,%fr1
+
+ ; PA2.0 opcodes:
+ FNEGABS,SGL %fr1,%fr1
+
+ FRND,DBL %fr2,%fr3
+
+ FSQRT,SGL %fr16,%fr17
+
+ FSTD %fr3,0(0,%r2)
+ FSTD,MA %fr3,8(0,%r2)
+ FSTD,MB %fr3,0(0,%r2)
+ FSTD,O %fr3,0(0,%r2)
+ FSTD,MA,SL %fr3,4(0,%r2)
+
+ FSTDS %fr3,0(0,%r2)
+ FSTDS,MA %fr3,8(0,%r2)
+ FSTDS,MB %fr3,0(0,%r2)
+
+ FSTDX %fr3,0(0,%r2)
+ FSTDX,S %fr3,%r8(0,%r2)
+ FSTDX,M %fr3,0(0,%r2)
+ FSTDX,SM %fr3,0(0,%r2)
+
+ FSTW %fr3,0(0,%r2)
+ FSTW,MA %fr3,8(0,%r2)
+ FSTW,MB %fr3,0(0,%r2)
+ FSTW,O %fr3,0(0,%r2)
+ FSTW,MA,SL %fr3,4(0,%r2)
+
+ FSTWS %fr3,0(0,%r2)
+ FSTWS,MA %fr3,8(0,%r2)
+ FSTWS,MB %fr3,0(0,%r2)
+
+ FSTWX %fr3,0(0,%r2)
+ FSTWX,S %fr3,%r8(0,%r2)
+ FSTWX,M %fr3,0(0,%r2)
+ FSTWX,SM %fr3,0(0,%r2)
+
+ FSUB,DBL %fr5,%fr2,%fr0
+
+ FTEST
+ FTEST,ACC
+ FTEST,ACC8
+ FTEST,ACC6
+ FTEST,ACC4
+ FTEST,ACC2
+ FTEST,REJ
+ FTEST,REJ8
+
+ labelg
+ GATE labelg,%r3
+ GATE,N labelu,%r3
+
+ labelh
+ ; PA2.0 opcodes:
+ HADD %r2,%r3,%r4
+
+ labeli
+ IDCOR %r4,%r17
+ IDCOR,SBZ %r4,%r17
+ IDCOR,SHZ %r4,%r17
+ IDCOR,SDC %r4,%r17
+ IDCOR,SBC %r4,%r17
+ IDCOR,SHC %r4,%r17
+ IDCOR,TR %r4,%r17
+ IDCOR,NBZ %r4,%r17
+ IDCOR,NHZ %r4,%r17
+ IDCOR,NDC %r4,%r17
+ IDCOR,NBC %r4,%r17
+ IDCOR,NHC %r4,%r17
+
+ ; PA2.0 opcodes:
+ IDTLBT %r1,%r2
+
+ ; IDTLBA %r5,(%sr2,%r4)
+
+ ; IDTLBP %r5,(%sr2,%r4)
+
+ ; PA2.0 opcodes:
+ IITLBT %r2,%r3
+
+ ; IITLBA %r5,(%sr2,%r4)
+
+ ; IITLBP %r5,(%sr2,%r4)
+
+ labelj
+ labelk
+ labell
+ LCI %r0(0,%r1),%r2
+
+ LDB %r1(0,%r1),%r1
+ LDB,MA 10(0,%r1),%r1
+ LDB,MB 0(0,%r1),%r1
+ LDB,O 0(0,%r1),%r1
+ LDB,MA,SL 4(0,%r1),%r1
+
+ LDBS %r1(0,%r1),%r1
+ LDBS,MA 10(0,%r1),%r1
+ LDBS,MB 0(0,%r1),%r1
+ LDBS,O 0(0,%r1),%r1
+ LDBS,MA,SL 4(0,%r1),%r1
+
+ LDBX %r1(0,%r1),%r1
+ LDBX,S %r10(0,%r1),%r1
+ LDBX,M 0(0,%r1),%r1
+ LDBX,SM 0(0,%r1),%r1
+
+ ; PA2.0 opcodes:
+ LDCD 0(0,%r1),%r1
+
+ LDCW %r1(0,%r1),%r1
+ LDCW,MA 10(0,%r1),%r1
+ LDCW,MB 0(0,%r1),%r1
+ LDCW,O 0(0,%r1),%r1
+ LDCW,MA,CO 4(0,%r1),%r1
+
+ LDCWS %r1(0,%r1),%r1
+ LDCWS,MA 10(0,%r1),%r1
+ LDCWS,MB 0(0,%r1),%r1
+ LDCWS,O 0(0,%r1),%r1
+ LDCWS,MA,CO 4(0,%r1),%r1
+
+ LDCWX %r1(0,%r1),%r1
+ LDCWX,S %r3(0,%r1),%r1
+ LDCWX,M 0(0,%r1),%r1
+ LDCWX,SM 0(0,%r1),%r1
+
+ LDH %r1(0,%r1),%r1
+ LDH,MA 10(0,%r1),%r1
+ LDH,MB 0(0,%r1),%r1
+ LDH,O 0(0,%r1),%r1
+ LDH,MA,SL 4(0,%r1),%r1
+
+ LDHS %r1(0,%r1),%r1
+ LDHS,MA 10(0,%r1),%r1
+ LDHS,MB 0(0,%r1),%r1
+ LDHS,O 0(0,%r1),%r1
+ LDHS,MA,SL 4(0,%r1),%r1
+
+ LDHX %r1(0,%r1),%r1
+ LDHX,S %r10(0,%r1),%r1
+ LDHX,M 0(0,%r1),%r1
+ LDHX,SM 0(0,%r1),%r1
+
+ LDIL 23456,%r6
+
+ LDO 100(%r3),%r20
+
+ LDSID (0,%r0),%r3
+
+ LDW %r1(0,%r1),%r1
+ LDW,MA 10(0,%r1),%r1
+ LDW,MB 0(0,%r1),%r1
+ LDW,O 0(0,%r1),%r1
+ LDW,MA,SL 4(0,%r1),%r1
+
+ LDWA %r1(%r3),%r2
+ LDWA,MA 8(%r3),%r2
+ LDWA,MB 0(%r3),%r2
+ LDWA,O 0(%r3),%r2
+ LDWA,MA,SL 8(%r3),%r2
+
+ LDWAS %r1(%r3),%r2
+ LDWAS,MA 8(%r3),%r2
+ LDWAS,MB 0(%r3),%r2
+ LDWAS,O 0(%r3),%r2
+ LDWAS,MA,SL 8(%r3),%r2
+
+ LDWAX %r1(%r3),%r2
+ LDWAX,S %r8(%r3),%r2
+ LDWAX,M 0(%r3),%r2
+ LDWAX,SM 0(%r3),%r2
+
+ LDWM 0x7fff(%r3),%r4
+
+ LDWS %r1(0,%r1),%r1
+ LDWS,MA 10(0,%r1),%r1
+ LDWS,MB 0(0,%r1),%r1
+ LDWS,O 0(0,%r1),%r1
+ LDWS,MA,SL 4(0,%r1),%r1
+
+ LDWX %r1(%r3),%r2
+ LDWX,S %r8(%r3),%r2
+ LDWX,M 0(%r3),%r2
+ LDWX,SM 0(%r3),%r2
+
+ LPA %r0(0,%r3),%r19
+ LPA,M %r0(%sr2,%r3),%r19
+
+ labelm
+ MFCTL %cr0,%r4
+ MFCTL %cr12,%r4
+
+ ; PA2.0 opcodes:
+ MFIA %r25
+
+ MFSP %sr4,%r29
+
+ ; PA2.0 opcodes:
+ MIXH,L %r1,%r2,%r3
+
+ MOVB %r1,%r2,labelk
+ MOVB,N %r1,%r2,labelj
+ MOVB,>=,N %r1,%r2,labela
+
+ ;; Instructions not supported by assembler for 2.0W
+ ;; MOVIB 15,%r3,main
+ ;; MOVIB,< 15,%r3,main
+ ;; MOVIB,<>,N 15,%r3,main
+
+ MTCTL %r0,%cr17
+
+ MTSAR %r3
+
+ ; PA2.0 opcodes:
+ MTSARCM %r7
+
+ MTSM %r2
+
+ MTSP %r19,%sr3
+
+ labeln
+ NOP
+
+ labelo
+ OR %r1,%r0,%r3
+ OR,EV %r1,%r0,%r3
+
+ labelp
+ PDC %r0(0,%r1)
+ PDC,M %r0(0,%r1)
+
+ PDTLB %r8(%sr2,%r2)
+ PDTLB,M %r8(%sr2,%r2)
+ ; PA2.0 opcodes:
+ PDTLB,L %r8(%sr2,%r2)
+ PDTLB,L,M %r8(%sr2,%r2)
+
+ PDTLBE %r4(%sr1,%r21)
+ PDTLBE,M %r4(%sr1,%r21)
+
+ PITLB %r6(%sr0,%r30)
+ PITLB,M %r6(%sr0,%r30)
+
+ PITLBE %r6(%sr0,%r30)
+ PITLBE,M %r6(%sr0,%r30)
+
+ PROBE,R (%sr0,%r26),%r0,%r30
+ PROBE,W (%sr0,%r26),%r0,%r30
+
+ PROBEI,R (%sr0,%r26),10,%r30
+ PROBEI,W (%sr0,%r26),7,%r30
+
+ labelq
+ labelr
+ RFI
+ RFI,R
+
+ RFIR
+
+ RSM 31,%r24
+
+ labels
+ SH1ADD %r14,%r15,%r16
+ SH1ADD,NUV %r14,%r15,%r16
+ SH1ADD,ZNV %r14,%r15,%r16
+ SH1ADD,SV %r14,%r15,%r16
+ SH1ADD,UV %r14,%r15,%r16
+ SH1ADD,VNZ %r14,%r15,%r16
+ SH1ADD,NSV %r14,%r15,%r16
+
+ SH1ADDL %r14,%r15,%r16
+ SH1ADDL,NUV %r14,%r15,%r16
+ SH1ADDL,ZNV %r14,%r15,%r16
+ SH1ADDL,SV %r14,%r15,%r16
+ SH1ADDL,UV %r14,%r15,%r16
+ SH1ADDL,VNZ %r14,%r15,%r16
+ SH1ADDL,NSV %r14,%r15,%r16
+
+ SH1ADDO %r14,%r15,%r16
+ SH1ADDO,NUV %r14,%r15,%r16
+ SH1ADDO,ZNV %r14,%r15,%r16
+ SH1ADDO,SV %r14,%r15,%r16
+ SH1ADDO,UV %r14,%r15,%r16
+ SH1ADDO,VNZ %r14,%r15,%r16
+ SH1ADDO,NSV %r14,%r15,%r16
+
+ SH2ADD %r14,%r15,%r16
+ SH2ADD,NUV %r14,%r15,%r16
+ SH2ADD,ZNV %r14,%r15,%r16
+ SH2ADD,SV %r14,%r15,%r16
+ SH2ADD,UV %r14,%r15,%r16
+ SH2ADD,VNZ %r14,%r15,%r16
+ SH2ADD,NSV %r14,%r15,%r16
+
+ SH2ADDL %r14,%r15,%r16
+ SH2ADDL,NUV %r14,%r15,%r16
+ SH2ADDL,ZNV %r14,%r15,%r16
+ SH2ADDL,SV %r14,%r15,%r16
+ SH2ADDL,UV %r14,%r15,%r16
+ SH2ADDL,VNZ %r14,%r15,%r16
+ SH2ADDL,NSV %r14,%r15,%r16
+
+ SH2ADDO %r14,%r15,%r16
+ SH2ADDO,NUV %r14,%r15,%r16
+ SH2ADDO,ZNV %r14,%r15,%r16
+ SH2ADDO,SV %r14,%r15,%r16
+ SH2ADDO,UV %r14,%r15,%r16
+ SH2ADDO,VNZ %r14,%r15,%r16
+ SH2ADDO,NSV %r14,%r15,%r16
+
+ SH3ADD %r14,%r15,%r16
+ SH3ADD,NUV %r14,%r15,%r16
+ SH3ADD,ZNV %r14,%r15,%r16
+ SH3ADD,SV %r14,%r15,%r16
+ SH3ADD,UV %r14,%r15,%r16
+ SH3ADD,VNZ %r14,%r15,%r16
+ SH3ADD,NSV %r14,%r15,%r16
+
+ SH3ADDL %r14,%r15,%r16
+ SH3ADDL,NUV %r14,%r15,%r16
+ SH3ADDL,ZNV %r14,%r15,%r16
+ SH3ADDL,SV %r14,%r15,%r16
+ SH3ADDL,UV %r14,%r15,%r16
+ SH3ADDL,VNZ %r14,%r15,%r16
+ SH3ADDL,NSV %r14,%r15,%r16
+
+ SH3ADDO %r14,%r15,%r16
+ SH3ADDO,NUV %r14,%r15,%r16
+ SH3ADDO,ZNV %r14,%r15,%r16
+ SH3ADDO,SV %r14,%r15,%r16
+ SH3ADDO,UV %r14,%r15,%r16
+ SH3ADDO,VNZ %r14,%r15,%r16
+ SH3ADDO,NSV %r14,%r15,%r16
+
+ SHD %r3,%r2,15,%r0
+ SHD,<> %r3,%r2,15,%r0
+
+ SHLADD %r1,2,%r3,%r6
+ SHLADD,TSV %r1,2,%r3,%r6
+ SHLADD,L %r1,2,%r3,%r6
+ SHLADD,= %r1,2,%r3,%r6
+ SHLADD,< %r1,2,%r3,%r6
+ SHLADD,<= %r1,2,%r3,%r6
+ SHLADD,NUV %r1,2,%r3,%r6
+ SHLADD,ZNV %r1,2,%r3,%r6
+ SHLADD,SV %r1,2,%r3,%r6
+ SHLADD,OD %r1,2,%r3,%r6
+ SHLADD,TR %r1,2,%r3,%r6
+ SHLADD,<> %r1,2,%r3,%r6
+ SHLADD,>= %r1,2,%r3,%r6
+ SHLADD,> %r1,2,%r3,%r6
+ SHLADD,UV %r1,2,%r3,%r6
+ SHLADD,VNZ %r1,2,%r3,%r6
+ SHLADD,NSV %r1,2,%r3,%r6
+ SHLADD,EV %r1,2,%r3,%r6
+
+ SHRPW %r1,%r2,1,%r3
+
+ SPOP0,0,35
+
+ SPOP1,3,35 %r6
+
+ SPOP2,3,35 %r6
+
+ SPOP3,3,35 %r6,%r7
+
+ SSM 127,%r1
+
+ STB %r0,8(%sr1,%r3)
+ STB,BC %r0,8(%sr1,%r3)
+ STB,SL %r0,8(%sr1,%r3)
+
+ STBS %r0,8(%sr1,%r3)
+ STBS,BC %r0,8(%sr1,%r3)
+ STBS,SL %r0,8(%sr1,%r3)
+
+ STBY %r7,6(%sr1,%r30)
+ STBY,B %r7,6(%sr1,%r30)
+ STBY,E %r7,6(%sr1,%r30)
+ STBY,M %r7,6(%sr1,%r30)
+ STBY,B,BC %r7,6(%sr1,%r30)
+ STBY,E,SL %r7,6(%sr1,%r30)
+
+ STBYS %r7,6(%sr1,%r30)
+ STBYS,B,M %r7,6(%sr1,%r30)
+ STBYS,E,M %r7,6(%sr1,%r30)
+ STBYS,M %r7,6(%sr1,%r30)
+ STBYS,B,BC %r7,6(%sr1,%r30)
+ STBYS,E,SL %r7,6(%sr1,%r30)
+
+ ; PA2.0 opcodes:
+ STD %r18,0(%sr3,%r29)
+
+ STH %r18,0(%sr3,%r29)
+
+ STHS %r18,0(%sr3,%r29)
+
+ STW %r17,3(0,%r1)
+
+ STWA %r16,0(%r6)
+
+ STWM %r16,0x7fff(%r6)
+
+ STWAS,MA %r16,2(%r6)
+
+ STWS %r16,0(%r6)
+
+ SUB %r1,%r0,%r3
+ SUB,B %r1,%r0,%r3
+ SUB,DB %r1,%r0,%r3
+ SUB,TC %r1,%r0,%r3
+ SUB,TSV %r1,%r0,%r3
+ SUB,TSV,TC %r1,%r0,%r3
+ SUB,B,TSV %r1,%r0,%r3
+ SUB,B,TSV,< %r1,%r0,%r3
+
+ SUBB %r8,%r9,%r10
+ SUBB,<<= %r8,%r9,%r10
+ SUBB,>>= %r8,%r9,%r10
+ SUBB,NSV %r8,%r9,%r10
+
+ SUBBO %r8,%r9,%r10
+ SUBBO,<<= %r8,%r9,%r10
+ SUBBO,>>= %r8,%r9,%r10
+ SUBBO,NSV %r8,%r9,%r10
+
+ SUBI 9,%r3,%r5
+ SUBI,TSV 2,%r3,%r5
+
+ SUBIO 5,%r27,%r26
+ SUBIO,< 5,%r27,%r26
+
+ SUBO %r8,%r9,%r10
+ SUBO,<<= %r8,%r9,%r10
+ SUBO,>>= %r8,%r9,%r10
+ SUBO,NSV %r8,%r9,%r10
+
+ SUBT %r8,%r9,%r10
+ SUBT,<= %r8,%r9,%r10
+ SUBT,>= %r8,%r9,%r10
+ SUBT,NSV %r8,%r9,%r10
+
+ SUBTO %r8,%r9,%r10
+ SUBTO,<<= %r8,%r9,%r10
+ SUBTO,>>= %r8,%r9,%r10
+ SUBTO,NSV %r8,%r9,%r10
+
+ SYNC
+
+ SYNCDMA
+
+ labelt
+ labelu
+ UADDCM %r3,%r4,%r5
+ UADDCM,TC %r3,%r4,%r5
+
+ UADDCMT %r3,%r4,%r5
+ UADDCMT,SHC %r3,%r4,%r5
+
+ UXOR %r19,%r3,%r20
+ UXOR,SHZ %r19,%r3,%r20
+
+ labelv
+ VDEP %r7,3,%r8
+ VDEP,TR %r2,3,%r8
+
+ VDEPI 7,3,%r8
+ VDEPI,= 2,3,%r8
+
+ VEXTRS %r4,30,%r4
+ VEXTRS,< %r4,30,%r4
+
+ VEXTRU %r4,30,%r4
+ VEXTRU,>= %r4,30,%r4
+
+ VSHD %r3,%r2,%r0
+ VSHD,< %r3,%r2,%r0
+
+ labelw
+ labelx
+ XMPYU %fr3,%fr4,%fr5
+
+ XOR %r0,%r1,%r2
+ XOR,TR %r0,%r1,%r2
+ XOR,>= %r0,%r1,%r2
+
+ labely
+ labelz
+ ZDEP %r18,1,2,%r2
+ ZDEP,<> %r18,2,3,%r2
+
+ ZDEPI 1,1,2,%r2
+ ZDEPI,EV 3,2,3,%r2
+
+ ZVDEP %r18,30,%r2
+ ZVDEP,< %r18,8,%r2
+
+ ZVDEPI 15,30,%r2
+ ZVDEPI,OD 8,8,%r2
+
+ .exit
+ .procend
+
+ mainend
+ .proc
+ .callinfo NO_CALLS,FRAME=0
+ .entry
+
+ NOP
+
+ .exit
+ .procend
+
+ .end
Binary files ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20w-t3 and gdb/testsuite/gdb.disasm/pa20w-t3 differ
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20w-t3.com gdb/testsuite/gdb.disasm/pa20w-t3.com
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20w-t3.com Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa20w-t3.com Thu Jul 22 17:49:49 1999
***************
*** 0 ****
--- 1,3 ----
+ set height 0
+ set width 0
+ x/950i main
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20w-t3.exp gdb/testsuite/gdb.disasm/pa20w-t3.exp
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20w-t3.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa20w-t3.exp Thu Jul 22 17:49:49 1999
***************
*** 0 ****
--- 1,92 ----
+ # pa20w-t3.exp Tests gdb disassembly operations for PA2.0W code
+ #
+ if ![istarget "hppa2.0w-hp-hpux*"] {
+ verbose "Tests ignored for all but hpux hppa 2.0w based targets."
+ return
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ gdb_exit
+
+ set prms_id 0
+ set bug_id 0
+
+ #
+ # use this to debug:
+ #log_user 1
+
+ set testfile pa20w-t3
+ set srcfile ${srcdir}/${subdir}/pa20w-instr.s
+ set binfile ${srcdir}/${subdir}/${testfile}
+ set outfile ${srcdir}/${subdir}/${testfile}.out
+ set comfile ${srcdir}/${subdir}/${testfile}.com
+ set tmpfile ${objdir}/${subdir}/${testfile}.tmp
+ set tmp2file ${objdir}/${subdir}/${testfile}.tmp2
+ set diffile ${objdir}/${subdir}/${testfile}.dif
+ set sedfile ${srcdir}/${subdir}/pa-sed.cmd
+
+ # To build a pa 2.0 executable
+ #
+ # as -o pa20_3 pa20w-instr.s
+ # or
+ # cc -g +DA2.0W -o pa20_3 pa20w-instr.s
+ #
+ # The +DA2.0N flag doesn't seem to be needed.
+ #
+ # Don't reject if there are warnings, as we expect this warning:
+ #
+ # (Warning) At least one PA 2.0 object file (pa20w-instr.o) was detected.
+ # The linked output may not run on a PA 1.x system.
+ #
+ # and this one:
+ #
+ # /CLO/BUILD_ENV/usr/ccs/bin/ld: Unsatisfied symbols:
+ # test (code)
+ # Short (code)
+ #
+ # It's ok, we don't care. However, since we don't want addresses
+ # and the like to change, unless the binary file is deleted, we want
+ # to use the old one. So it's an element.
+ #
+ # if ![file exists $binfile] then {
+ # compile "${srcfile} -g -o ${binfile}"
+ # }
+
+ remote_exec build "rm -f ${tmpfile} ${tmp2file} ${diffile}"
+
+
+ # This non-standard start-up sequence is taken from that for
+ # the standard "gdb_start" in
+ # /CLO/Components/WDB/Src/gdb/gdb/testsuite/lib/gdb.exp
+ #
+ # We use a non-standard form because we want to pass a command file.
+ # Incidentially, this causes passing a command file to be tested
+ # by implication.
+ #
+ global GDB
+ if { [which $GDB] == 0 } {
+ perror "$GDB does not exist."
+ exit 1
+ }
+
+ remote_exec build "${srcdir}/tools/redirect_cmd ${tmpfile} $GDB -n -batch -silent -se ${binfile} -x ${comfile}"
+
+ # Remove actual addresses, which may vary.
+ #
+ remote_exec build "${srcdir}/tools/redirect_cmd ${tmp2file} sed -f ${sedfile} ${tmpfile}"
+
+ # Should be no differences.
+ #
+ remote_exec build "${srcdir}/tools/redirect_cmd ${diffile} diff ${outfile} ${tmp2file}"
+ set exec_output [remote_exec build "wc -l ${diffile}"]
+
+ if [ regexp "^0 {0 ${diffile}" ${exec_output} ] {
+ pass "Disassembly"
+ } else {
+ fail "Disassembly"
+ }
+
+ return 0
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20w-t3.out gdb/testsuite/gdb.disasm/pa20w-t3.out
*** ../gdb-19990719/gdb/testsuite/gdb.disasm/pa20w-t3.out Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.disasm/pa20w-t3.out Thu Jul 22 17:49:50 1999
***************
*** 0 ****
--- 1,950 ----
+ <main>: pdc %r5(%sr0,%r6)
+ <main+4>: pdc,m %r5(%sr0,%r6)
+ <main+8>: fdc %r5(%sr0,%r6)
+ <main+12>: fdc,m %r5(%sr0,%r6)
+ <main+16>: fic %r5(%sr0,%r6)
+ <main+20>: fic,m %r5(%sr0,%r6)
+ <main+24>: fcnv,sgl,dbl %fr4,%fr6
+ <main+28>: fneg,sgl %fr4,%fr6
+ <main+32>: fneg,sgl %fr4,%fr6
+ <main+36>: fneg,dbl %fr4,%fr6
+ <main+40>: fneg,quad %fr4,%fr6
+ <main+44>: fnegabs,sgl %fr4,%fr6
+ <main+48>: fnegabs,sgl %fr4,%fr6
+ <main+52>: fnegabs,dbl %fr4,%fr6
+ <main+56>: fnegabs,quad %fr4,%fr6
+ <main+60>: fmpyfadd,sgl %fr2,%fr4,%fr6,%fr8
+ <main+64>: fmpyfadd,sgl %fr2,%fr4,%fr6,%fr8
+ <main+68>: fmpyfadd,dbl %fr2,%fr4,%fr6,%fr8
+ <main+72>: fmpyfadd,dbl %fr2,%fr4R,%fr6,%fr8
+ <main+76>: fmpynfadd,sgl %fr2,%fr4,%fr6,%fr8
+ <main+80>: fmpynfadd,sgl %fr2,%fr4,%fr6,%fr8
+ <main+84>: fmpynfadd,dbl %fr2,%fr4,%fr6,%fr8
+ <main+88>: fmpynfadd,dbl %fr2,%fr4R,%fr6,%fr8
+ <main+92>: fcmp,sgl,true %fr2,%fr4,3
+ <main+96>: ftest 3
+ <main+100>: pmenb
+ <main+104>: pmdis
+ <main+108>: pmdis,n
+ <main+112>: mtsarcm %r5
+ <main+116>: idtlbt %r5,%r6
+ <main+120>: iitlbt %r5,%r6
+ <main+124>: fldd 0x200(%r4),%fr5
+ <main+128>: fldd,ma 0x200(%r4),%fr5
+ <main+132>: fldd,o 0(%sr0,%r4),%fr5
+ <main+136>: fldw 0x400(%r4),%fr5
+ <main+140>: fldw,ma 0x400(%r4),%fr5
+ <main+144>: fldw,mb 0x400(%r4),%fr5
+ <main+148>: fstd %fr5,0x400(%r4)
+ <main+152>: fstd,o %fr5,0(%sr0,%r4)
+ <main+156>: fstd,ma %fr5,0x400(%r4)
+ <main+160>: fstd,mb %fr5,0x400(%r4)
+ <main+164>: mixw,l %r4,%r5,%r6
+ <main+168>: mixw,l %r4,%r5,%r6
+ <main+172>: mixw,r %r4,%r5,%r6
+ <main+176>: mixh,l %r4,%r5,%r6
+ <main+180>: mixh,l %r4,%r5,%r6
+ <main+184>: mixh,r %r4,%r5,%r6
+ <main+188>: hadd %r1,%rp,%r3
+ <main+192>: hadd,us %r3,%r4,%r5
+ <main+196>: hadd,ss %r6,%r7,%r8
+ <main+200>: hsub %r1,%rp,%r3
+ <main+204>: hsub,us %r3,%r4,%r5
+ <main+208>: hsub,ss %r6,%r7,%r8
+ <main+212>: havg %r6,%r7,%r8
+ <main+216>: hshladd %r3,3,%r4,%r5
+ <main+220>: hshradd %r3,1,%r4,%r5
+ <main+224>: hshl %r3,11,%r4
+ <main+228>: hshr,s %r3,11,%r4
+ <main+232>: hshr,u %r3,11,%r4
+ <main+236>: hshr,s %r3,11,%r4
+ <main+240>: permh,1230 %r1,%r3
+ <main+244>: depdi 0xc,%sar,17,%r3
+ <main+248>: depdi,z 0xc,%sar,17,%r3
+ <main+252>: depdi,z,= 0xc,%sar,17,%r3
+ <main+256>: extrd,s,< %r3,12,13,%r4
+ <main+260>: extrd,u,= %r3,%sar,19,%r4
+ <main+264>: bb,< %r9,%sar,<labelc>
+ <main+268>: bb,>=,n %r9,0x1f,<labelc>
+ <main+272>: shrpd,>= %r5,%r6,41,%r7
+ <main+276>: shrpd,= %r1,%rp,%sar,%r3
+ <main+280>: shrpd,od %r6,%r7,%sar,%r3
+ <main+284>: bve (%r6)
+ <main+288>: bve,n (%r6)
+ <main+292>: bve,l (%r5),%r2
+ <main+296>: bve,l,push (%r5),%r2
+ <main+300>: bve,pop (%r5)
+ <main+304>: pushnom
+ <main+308>: clrbts
+ <main+312>: popbts 6
+ <main+316>: pushbts %r4
+ <main+320>: ldd %r1(%sr0,%rp),%r3
+ <main+324>: ldd,ma 0xa(%sr0,%rp),%r3
+ <main+328>: ldd,mb 0(%sr0,%rp),%r3
+ <main+332>: ldd,o 0(%sr0,%rp),%r3
+ <main+336>: ldd,ma,sl 4(%sr0,%rp),%r3
+ <main+340>: ldda %r1(%rp),%r3
+ <main+344>: ldda,ma 8(%rp),%r3
+ <main+348>: ldda,mb 0(%rp),%r3
+ <main+352>: ldda,o 0(%rp),%r3
+ <main+356>: ldda,ma,sl 8(%rp),%r3
+ <main+360>: std %r1,0(%sr0,%rp)
+ <main+364>: std,ma %r1,0xa(%sr0,%rp)
+ <main+368>: std,mb %r1,0(%sr0,%rp)
+ <main+372>: std,o %r1,0(%sr0,%rp)
+ <main+376>: std,ma,sl %r1,4(%sr0,%rp)
+ <main+380>: stda %r1,0(%rp)
+ <main+384>: stda,ma %r1,0xa(%rp)
+ <main+388>: stda,mb %r1,0(%rp)
+ <main+392>: stda,o %r1,0(%rp)
+ <main+396>: stda,ma,sl %r1,4(%rp)
+ <main+400>: ldcd %r1(%sr0,%rp),%r3
+ <main+404>: ldcd,m %r1(%sr0,%rp),%r3
+ <main+408>: ldcd,ma 0xa(%sr0,%rp),%r3
+ <main+412>: ldcd,mb 0(%sr0,%rp),%r3
+ <main+416>: ldcd,o 0(%sr0,%rp),%r3
+ <main+420>: ldcd,ma 4(%sr0,%rp),%r3
+ <main+424>: stdby,b %r1,5(%sr0,%rp)
+ <main+428>: stdby,b %r1,5(%sr0,%rp)
+ <main+432>: stdby,b,m %r1,5(%sr0,%rp)
+ <main+436>: stdby,e,m %r1,5(%sr0,%rp)
+ <main+440>: stdby,e %r1,5(%sr0,%rp)
+ <main+444>: ldd %r1(%sr0,%rp),%r3
+ <main+448>: ldd 0xa(%sr0,%rp),%r3
+ <main+452>: add %r1,%rp,%r3
+ <main+456>: add,c %r0,%r1,%rp
+ <main+460>: add,dc %r0,%r1,%rp
+ <main+464>: add,l %r1,%rp,%r3
+ <main+468>: add,tsv %r3,%r4,%r5
+ <main+472>: add,tsv,c %r3,%r4,%r5
+ <main+476>: add,tsv,dc %r3,%r4,%r5
+ <main+480>: addb,= %r25,%r26,<labelb>
+ <main+484>: addb,=,n %r25,%r26,<labelb>
+ <main+488>: addb,tr %dp,%ret0,<main>
+ <main+492>: addb,<> %dp,%ret0,<main>
+ <main+496>: addb,uv %r1,%r5,<main>
+ <main+500>: addb,>,n %r10,%r6,<labelb>
+ <main+504>: addb,nuv %r1,%r5,<main>
+ <main+508>: addb,<=,n %r10,%r6,<labelb>
+ <main+512>: add,c %ret0,%ret1,%sp
+ <main+516>: add,c,uv %ret0,%ret1,%sp
+ <main+520>: add,tsv,c %ret0,%ret1,%sp
+ <main+524>: add,tsv,c,uv %ret0,%ret1,%sp
+ <main+528>: addi 0,%rp,%r0
+ <main+532>: addi,> 1,%r3,%r0
+ <main+536>: addi,< 2,%r4,%r0
+ <main+540>: addib,>= -1,%r5,<main>
+ <main+544>: addib,<=,n 0xa,%r6,<labelb>
+ <main+548>: addib,uv -1,%r5,<main>
+ <main+552>: addib,>,n 0xa,%r6,<labelb>
+ <main+556>: addib,nuv -1,%r5,<main>
+ <main+560>: addib,<=,n 0xa,%r6,<labelb>
+ <main+564>: addil L'-0x800,%r3,%r1
+ <main+568>: addil L'0x88b8000,%r3,%r1
+ <main+572>: addi,tsv 4,%r22,%r21
+ <main+576>: addi,tsv,< 4,%r22,%r21
+ <main+580>: addi,tc 4,%r22,%r21
+ <main+584>: addi,tc,tr 4,%r22,%r21
+ <main+588>: addi,tsv,tc 0x3a6,%r25,%r24
+ <main+592>: addi,tsv,tc,<> 0x3ff,%r25,%r24
+ <main+596>: add,tsv %ret0,%ret1,%sp
+ <main+600>: add,tsv,sv %ret0,%ret1,%sp
+ <main+604>: add,l %ret0,%ret1,%sp
+ <main+608>: add,l,nsv %ret0,%ret1,%sp
+ <main+612>: and %sp,%r31,%sp
+ <main+616>: and,< %sp,%r31,%sp
+ <main+620>: andcm %r26,%dp,%ret0
+ <main+624>: andcm,> %r26,%dp,%ret0
+ <labelb>: b <labelc>
+ <labelb+4>: b,n <labelc>
+ <labelb+8>: b,gate <labelc>,%r0
+ <labelb+12>: b,l <labelb>,%r3
+ <labelb+16>: bb,< %r9,%sar,<labelc>
+ <labelb+20>: bb,>=,n %r9,0x1f,<labelc>
+ <labelb+24>: be 0x64(%sr4,%r11)
+ <labelb+28>: be,l 0(%sr4,%r11)
+ <labelb+32>: b,l <labelb>,%r3
+ <labelb+36>: b,l,n <labelb>,%r3
+ <labelb+40>: be,l 0x3038(%sr0,%r3)
+ <labelb+44>: be,l,n 0x3038(%sr0,%r3)
+ <labelb+48>: blr %r31,%r3
+ <labelb+52>: blr,n %r0,%r3
+ <labelb+56>: break 0,1
+ <labelb+60>: break 0x1f,0x3e8
+ <labelb+64>: bv %r0(%r1)
+ <labelb+68>: bv,n %r0(%r20)
+ <labelb+72>: bb,< %r3,%sar,<main>
+ <labelb+76>: bb,<,n %r3,%sar,<main>
+ <labelb+80>: bve (%r5)
+ <labelb+84>: bve,pop (%r5)
+ <labelb+88>: bve,l (%r5),%r2
+ <labelb+92>: bve,l,push (%r5),%r2
+ <labelc>: fldd 0(%sr2,%r0),%fr0
+ <labelc+4>: cldd,1,ma 1(%sr2,%r1),2
+ <labelc+8>: cldd,2,mb 9(%sr2,%r6),3
+ <labelc+12>: fldd %r3(%sr2,%r10),%fr0
+ <labelc+16>: fldd,s %r3(%sr2,%r20),%fr1
+ <labelc+20>: cldd,1,m %r3(%sr2,%sp),2
+ <labelc+24>: cldd,2,sm %r3(%sr2,%r0),3
+ <labelc+28>: fldw 0(%sr2,%r0),%fr0
+ <labelc+32>: fldw,ma 3(%sr2,%r0),%fr2R
+ <labelc+36>: cldw,2,mb 7(%sr2,%r0),3
+ <labelc+40>: fldw %r3(%sr2,%r0),%fr0
+ <labelc+44>: fldw,s %r3(%sr2,%r0),%fr1
+ <labelc+48>: fldw,m %r3(%sr2,%r0),%fr2R
+ <labelc+52>: cldw,2,sm %r3(%sr2,%r0),3
+ <labelc+56>: cmpb,< %r11,%r12,<labelc>
+ <labelc+60>: cmpclr,<> %rp,%r3,%r4
+ <labelc+64>: cmpib,<= 0,%rp,<labeld>
+ <labelc+68>: cmpib,nsv,n -0x10,%rp,<labeld>
+ <labelc+72>: cmpiclr,od 0x3e8,%r0,%r31
+ <labelc+76>: cmpb,> %r0,%rp,<labeld>
+ <labelc+80>: cmpb,>>=,n %r16,%rp,<labeld>
+ <labelc+84>: cmpb,<= %r0,%rp,<labeld>
+ <labelc+88>: cmpb,<<,n %r16,%rp,<labeld>
+ <labelc+92>: cmpclr %r11,%r12,%r13
+ <labelc+96>: cmpclr,>= %r11,%r12,%r13
+ <labelc+100>: cmpib,> 0,%rp,<labeld>
+ <labelc+104>: cmpib,>>,n -0x10,%rp,<labeld>
+ <labelc+108>: cmpib,<= 0,%rp,<labeld>
+ <labelc+112>: cmpib,<,n -0x10,%rp,<labeld>
+ <labelc+116>: cmpiclr 1,%r3,%r4
+ <labelc+120>: cmpiclr,ev 0x9d,%r3,%r4
+ <labelc+124>: fid
+ <labelc+128>: copr,7,0
+ <labelc+132>: copr,7,0xff
+ <labelc+136>: copy %r3,%r4
+ <labelc+140>: fstd %fr8,0(%sr1,%r31)
+ <labelc+144>: cstd,7,ma 11,2(%sr1,%r3)
+ <labelc+148>: cstd,4,mb 14,2(%sr1,%r3)
+ <labelc+152>: fstw %fr8,0(%sr1,%r31)
+ <labelc+156>: cstw,7,ma 11,2(%sr1,%r3)
+ <labelc+160>: cstw,4,mb 14,2(%sr1,%r3)
+ <labeld>: dcor %r3,%r4
+ <labeld+4>: dcor,i %r3,%r4
+ <labeld+8>: dcor,sbz %r4,%r5
+ <labeld+12>: dcor,shz %r4,%r6
+ <labeld+16>: dcor,sdc %r4,%r7
+ <labeld+20>: dcor,sbc %r4,%r8
+ <labeld+24>: dcor,shc %r4,%r9
+ <labeld+28>: dcor,nbz %r4,%r10
+ <labeld+32>: dcor,nhz %r4,%r11
+ <labeld+36>: dcor,ndc %r4,%r12
+ <labeld+40>: dcor,nbc %r4,%r13
+ <labeld+44>: dcor,nhc %r4,%r14
+ <labeld+48>: depw %r21,14,3,%r22
+ <labeld+52>: depw,>= %r21,14,3,%r22
+ <labeld+56>: depwi 1,14,3,%r22
+ <labeld+60>: depwi,>= 2,14,3,%r22
+ <labeld+64>: depw %r19,1,2,%r1
+ <labeld+68>: depw,z %r19,1,2,%r1
+ <labeld+72>: depw,z %r19,%sar,31,%r1
+ <labeld+76>: depw,z,< %r19,30,1,%r1
+ <labeld+80>: depwi 0xf,0,1,%rp
+ <labeld+84>: depwi,z -0x10,0,1,%rp
+ <labeld+88>: diag 0x1e240
+ <labeld+92>: ds %r1,%rp,%r3
+ <labeld+96>: ds,<> %r1,%rp,%r3
+ <labeld+100>: extrw,s %r1,3,4,%rp
+ <labeld+104>: extrw,s,od %r1,3,4,%rp
+ <labeld+108>: extrw,u %r1,3,4,%rp
+ <labeld+112>: extrw,u,ev %r1,3,4,%rp
+ <labeld+116>: extrw,s %r0,3,4,%r1
+ <labeld+120>: extrw,s %r0,3,4,%r1
+ <labeld+124>: extrw,u %r0,3,4,%r1
+ <labeld+128>: extrw,u,ev %r0,3,4,%r1
+ <labeld+132>: extrw,s,<> %r0,%sar,4,%r1
+ <labeld+136>: fabs,sgl %fr2,%fr3
+ <labeld+140>: fabs,dbl %fr2,%fr6
+ <labeld+144>: fadd,sgl %fr2,%fr4,%fr6
+ <labeld+148>: fadd,dbl %fr2,%fr4,%fr6
+ <labeld+152>: fcmp,sgl,false? %fr3,%fr2
+ <labeld+156>: fcmp,dbl,false %fr3,%fr2
+ <labeld+160>: fcmp,dbl,? %fr3,%fr2
+ <labeld+164>: fcmp,dbl,!<=> %fr3,%fr2
+ <labeld+168>: fcmp,dbl,= %fr3,%fr2
+ <labeld+172>: fcmp,dbl,=t %fr3,%fr2
+ <labeld+176>: fcmp,dbl,?= %fr3,%fr2
+ <labeld+180>: fcmp,dbl,!<> %fr3,%fr2
+ <labeld+184>: fcmp,dbl,!?>= %fr3,%fr2
+ <labeld+188>: fcmp,dbl,< %fr3,%fr2
+ <labeld+192>: fcmp,dbl,?< %fr3,%fr2
+ <labeld+196>: fcmp,dbl,!>= %fr3,%fr2
+ <labeld+200>: fcmp,dbl,!?> %fr3,%fr2
+ <labeld+204>: fcmp,dbl,<= %fr3,%fr2
+ <labeld+208>: fcmp,dbl,?<= %fr3,%fr2
+ <labeld+212>: fcmp,dbl,!> %fr3,%fr2
+ <labeld+216>: fcmp,dbl,!?<= %fr3,%fr2
+ <labeld+220>: fcmp,dbl,> %fr3,%fr2
+ <labeld+224>: fcmp,dbl,?> %fr3,%fr2
+ <labeld+228>: fcmp,dbl,!<= %fr3,%fr2
+ <labeld+232>: fcmp,dbl,!?< %fr3,%fr2
+ <labeld+236>: fcmp,dbl,>= %fr3,%fr2
+ <labeld+240>: fcmp,dbl,?>= %fr3,%fr2
+ <labeld+244>: fcmp,dbl,!< %fr3,%fr2
+ <labeld+248>: fcmp,dbl,!?= %fr3,%fr2
+ <labeld+252>: fcmp,dbl,<> %fr3,%fr2
+ <labeld+256>: fcmp,dbl,!= %fr3,%fr2
+ <labeld+260>: fcmp,dbl,!=t %fr3,%fr2
+ <labeld+264>: fcmp,dbl,!? %fr3,%fr2
+ <labeld+268>: fcmp,dbl,<=> %fr3,%fr2
+ <labeld+272>: fcmp,dbl,true? %fr3,%fr2
+ <labeld+276>: fcmp,dbl,true %fr3,%fr2
+ <labeld+280>: fcnv,sgl,dbl %fr2,%fr4
+ <labeld+284>: fcnv,sgl,w %fr2,%fr4
+ <labeld+288>: fcnv,sgl,dw %fr2,%fr4
+ <labeld+292>: fcnv,sgl,quad %fr2,%fr4
+ <labeld+296>: fcnv,sgl,qw %fr2,%fr4
+ <labeld+300>: fcnv,w,sgl %fr2,%fr4
+ <labeld+304>: fcnv,w,dbl %fr2,%fr4
+ <labeld+308>: fcnv,w,quad %fr2,%fr4
+ <labeld+312>: fcnv,dbl,sgl %fr2,%fr4
+ <labeld+316>: fcnv,dbl,w %fr2,%fr4
+ <labeld+320>: fcnv,dbl,quad %fr2,%fr4
+ <labeld+324>: fcnv,dbl,qw %fr2,%fr4
+ <labeld+328>: fcnv,quad,sgl %fr2,%fr6
+ <labeld+332>: fcnv,quad,dbl %fr2,%fr6
+ <labeld+336>: fcnv,quad,w %fr2,%fr6
+ <labeld+340>: fcnv,quad,qw %fr2,%fr6
+ <labeld+344>: fcnv,qw,sgl %fr2,%fr4
+ <labeld+348>: fcnv,qw,dbl %fr2,%fr4
+ <labeld+352>: fcnv,qw,quad %fr2,%fr4
+ <labeld+356>: fcnv,t,dbl,w %fr3,%fr4
+ <labeld+360>: fcpy,sgl %fr5,%fr6
+ <labeld+364>: fcpy,dbl %fr5,%fr6
+ <labeld+368>: fdc %r3(%sr0,%r3)
+ <labeld+372>: fdce %r0(%sr3,%r7)
+ <labeld+376>: fdce,m %r0(%sr3,%r7)
+ <labeld+380>: fdiv,dbl %fr1,%fr0,%fr2
+ <labeld+384>: fic %r4(%sr0,%r5)
+ <labeld+388>: fic,m %r4(%sr2,%r5)
+ <labeld+392>: fice %r0(%sr1,%r8)
+ <labeld+396>: fice,m %r0(%sr1,%r8)
+ <labeld+400>: diag 0x200
+ <labeld+404>: fid
+ <labeld+408>: fldd 0(%sr0,%r1),%fr1
+ <labeld+412>: fldd,ma 0xa(%sr0,%r1),%fr1
+ <labeld+416>: fldd,mb 0(%sr0,%r1),%fr1
+ <labeld+420>: fldd,o 0(%sr0,%r1),%fr1
+ <labeld+424>: fldd,ma,sl 4(%sr0,%r1),%fr1
+ <labeld+428>: fldd 0(%sr0,%r1),%fr1
+ <labeld+432>: fldd,ma 0xa(%sr0,%r1),%fr1
+ <labeld+436>: fldd,mb 0(%sr0,%r1),%fr1
+ <labeld+440>: fldd %r0(%sr0,%r1),%fr1
+ <labeld+444>: fldd,s %r10(%sr0,%r1),%fr1
+ <labeld+448>: fldd,m %r0(%sr0,%r1),%fr1
+ <labeld+452>: fldd,sm %r0(%sr0,%r1),%fr1
+ <labeld+456>: fldw %r1(%sr0,%r1),%fr1
+ <labeld+460>: fldw,ma 0xa(%sr0,%r1),%fr1
+ <labeld+464>: fldw,mb 0(%sr0,%r1),%fr1
+ <labeld+468>: fldw,o 0(%sr0,%r1),%fr1
+ <labeld+472>: fldw,ma,sl 4(%sr0,%r1),%fr1
+ <labeld+476>: fldw 1(%sr0,%r1),%fr1
+ <labeld+480>: fldw,ma 0xa(%sr0,%r1),%fr1
+ <labeld+484>: fldw,mb 0(%sr0,%r1),%fr1
+ <labeld+488>: fldw %r1(%sr0,%r1),%fr1
+ <labeld+492>: fldw,s %r10(%sr0,%r1),%fr1
+ <labeld+496>: fldw,m %r0(%sr0,%r1),%fr1
+ <labeld+500>: fldw,sm %r0(%sr0,%r1),%fr1
+ <labeld+504>: fmpy,sgl %fr6,%fr8,%fr10
+ <labeld+508>: fmpy,dbl %fr6,%fr8,%fr10
+ <labeld+512>: fmpyadd,sgl %fr16,%fr17,%fr18,%fr19,%fr20
+ <labeld+516>: fmpyadd,dbl %fr4,%fr7,%fr7,%fr5,%fr6
+ <labeld+520>: fmpyfadd,dbl %fr10,%fr11,%fr12,%fr13
+ <labeld+524>: fmpynfadd,dbl %fr10,%fr11,%fr12,%fr13
+ <labeld+528>: fmpysub,sgl %fr16,%fr17,%fr18,%fr19,%fr30
+ <labeld+532>: fneg,dbl %fr10,%fr1
+ <labeld+536>: fnegabs,sgl %fr1,%fr1
+ <labeld+540>: frnd,dbl %fr2,%fr3
+ <labeld+544>: fsqrt,sgl %fr16,%fr17
+ <labeld+548>: fstd %fr3,0(%sr0,%rp)
+ <labeld+552>: fstd,ma %fr3,8(%sr0,%rp)
+ <labeld+556>: fstd,mb %fr3,0(%sr0,%rp)
+ <labeld+560>: fstd,o %fr3,0(%sr0,%rp)
+ <labeld+564>: fstd,ma,sl %fr3,4(%sr0,%rp)
+ <labeld+568>: fstd %fr3,0(%sr0,%rp)
+ <labeld+572>: fstd,ma %fr3,8(%sr0,%rp)
+ <labeld+576>: fstd,mb %fr3,0(%sr0,%rp)
+ <labeld+580>: fstd %fr3,%r0(%sr0,%rp)
+ <labeld+584>: fstd,s %fr3,%r8(%sr0,%rp)
+ <labeld+588>: fstd,m %fr3,%r0(%sr0,%rp)
+ <labeld+592>: fstd,sm %fr3,%r0(%sr0,%rp)
+ <labeld+596>: fstw %fr3,0(%sr0,%rp)
+ <labeld+600>: fstw,ma %fr3,8(%sr0,%rp)
+ <labeld+604>: fstw,mb %fr3,0(%sr0,%rp)
+ <labeld+608>: fstw,o %fr3,0(%sr0,%rp)
+ <labeld+612>: fstw,ma,sl %fr3,4(%sr0,%rp)
+ <labeld+616>: fstw %fr3,0(%sr0,%rp)
+ <labeld+620>: fstw,ma %fr3,8(%sr0,%rp)
+ <labeld+624>: fstw,mb %fr3,0(%sr0,%rp)
+ <labeld+628>: fstw %fr3,%r0(%sr0,%rp)
+ <labeld+632>: fstw,s %fr3,%r8(%sr0,%rp)
+ <labeld+636>: fstw,m %fr3,%r0(%sr0,%rp)
+ <labeld+640>: fstw,sm %fr3,%r0(%sr0,%rp)
+ <labeld+644>: fsub,dbl %fr5,%fr2,%fr0
+ <labeld+648>: ftest
+ <labeld+652>: ftest,acc
+ <labeld+656>: ftest,acc8
+ <labeld+660>: ftest,acc6
+ <labeld+664>: ftest,acc4
+ <labeld+668>: ftest,acc2
+ <labeld+672>: ftest,rej
+ <labeld+676>: ftest,rej8
+ <labelg>: b,gate <labelg>,%r3
+ <labelg+4>: b,gate,n <labelu>,%r3
+ <labelg+8>: hadd %rp,%r3,%r4
+ <labelg+12>: dcor,i %r4,%r17
+ <labelg+16>: dcor,i,sbz %r4,%r17
+ <labelg+20>: dcor,i,shz %r4,%r17
+ <labelg+24>: dcor,i,sdc %r4,%r17
+ <labelg+28>: dcor,i,sbc %r4,%r17
+ <labelg+32>: dcor,i,shc %r4,%r17
+ <labelg+36>: dcor,i,tr %r4,%r17
+ <labelg+40>: dcor,i,nbz %r4,%r17
+ <labelg+44>: dcor,i,nhz %r4,%r17
+ <labelg+48>: dcor,i,ndc %r4,%r17
+ <labelg+52>: dcor,i,nbc %r4,%r17
+ <labelg+56>: dcor,i,nhc %r4,%r17
+ <labelg+60>: idtlbt %r1,%rp
+ <labelg+64>: iitlbt %rp,%r3
+ <labelk>: lci %r0(%sr0,%r1),%rp
+ <labelk+4>: ldb %r1(%sr0,%r1),%r1
+ <labelk+8>: ldb,ma 0xa(%sr0,%r1),%r1
+ <labelk+12>: ldb,mb 0(%sr0,%r1),%r1
+ <labelk+16>: ldb,o 0(%sr0,%r1),%r1
+ <labelk+20>: ldb,ma,sl 4(%sr0,%r1),%r1
+ <labelk+24>: ldb 1(%sr0,%r1),%r1
+ <labelk+28>: ldb,ma 0xa(%sr0,%r1),%r1
+ <labelk+32>: ldb,mb 0(%sr0,%r1),%r1
+ <labelk+36>: ldb,o 0(%sr0,%r1),%r1
+ <labelk+40>: ldb,ma,sl 4(%sr0,%r1),%r1
+ <labelk+44>: ldb %r1(%sr0,%r1),%r1
+ <labelk+48>: ldb,s %r10(%sr0,%r1),%r1
+ <labelk+52>: ldb,m %r0(%sr0,%r1),%r1
+ <labelk+56>: ldb,sm %r0(%sr0,%r1),%r1
+ <labelk+60>: ldcd 0(%sr0,%r1),%r1
+ <labelk+64>: ldcw %r1(%sr0,%r1),%r1
+ <labelk+68>: ldcw,ma 0xa(%sr0,%r1),%r1
+ <labelk+72>: ldcw,mb 0(%sr0,%r1),%r1
+ <labelk+76>: ldcw,o 0(%sr0,%r1),%r1
+ <labelk+80>: ldcw,ma,co 4(%sr0,%r1),%r1
+ <labelk+84>: ldcw 1(%sr0,%r1),%r1
+ <labelk+88>: ldcw,ma 0xa(%sr0,%r1),%r1
+ <labelk+92>: ldcw,mb 0(%sr0,%r1),%r1
+ <labelk+96>: ldcw,o 0(%sr0,%r1),%r1
+ <labelk+100>: ldcw,ma,co 4(%sr0,%r1),%r1
+ <labelk+104>: ldcw %r1(%sr0,%r1),%r1
+ <labelk+108>: ldcw,s %r3(%sr0,%r1),%r1
+ <labelk+112>: ldcw,m %r0(%sr0,%r1),%r1
+ <labelk+116>: ldcw,sm %r0(%sr0,%r1),%r1
+ <labelk+120>: ldh %r1(%sr0,%r1),%r1
+ <labelk+124>: ldh,ma 0xa(%sr0,%r1),%r1
+ <labelk+128>: ldh,mb 0(%sr0,%r1),%r1
+ <labelk+132>: ldh,o 0(%sr0,%r1),%r1
+ <labelk+136>: ldh,ma,sl 4(%sr0,%r1),%r1
+ <labelk+140>: ldh 1(%sr0,%r1),%r1
+ <labelk+144>: ldh,ma 0xa(%sr0,%r1),%r1
+ <labelk+148>: ldh,mb 0(%sr0,%r1),%r1
+ <labelk+152>: ldh,o 0(%sr0,%r1),%r1
+ <labelk+156>: ldh,ma,sl 4(%sr0,%r1),%r1
+ <labelk+160>: ldh %r1(%sr0,%r1),%r1
+ <labelk+164>: ldh,s %r10(%sr0,%r1),%r1
+ <labelk+168>: ldh,m %r0(%sr0,%r1),%r1
+ <labelk+172>: ldh,sm %r0(%sr0,%r1),%r1
+ <labelk+176>: ldil L'0x2dd0000,%r6
+ <labelk+180>: ldo 0x64(%r3),%r20
+ <labelk+184>: ldsid (%sr0,%r0),%r3
+ <labelk+188>: ldw %r1(%sr0,%r1),%r1
+ <labelk+192>: ldw,ma 0xa(%sr0,%r1),%r1
+ <labelk+196>: ldw,mb 0(%sr0,%r1),%r1
+ <labelk+200>: ldw,o 0(%sr0,%r1),%r1
+ <labelk+204>: ldw,ma,sl 4(%sr0,%r1),%r1
+ <labelk+208>: ldwa %r1(%r3),%rp
+ <labelk+212>: ldwa,ma 8(%r3),%rp
+ <labelk+216>: ldwa,mb 0(%r3),%rp
+ <labelk+220>: ldwa,o 0(%r3),%rp
+ <labelk+224>: ldwa,ma,sl 8(%r3),%rp
+ <labelk+228>: ldwa 1(%r3),%rp
+ <labelk+232>: ldwa,ma 8(%r3),%rp
+ <labelk+236>: ldwa,mb 0(%r3),%rp
+ <labelk+240>: ldwa,o 0(%r3),%rp
+ <labelk+244>: ldwa,ma,sl 8(%r3),%rp
+ <labelk+248>: ldwa %r1(%r3),%rp
+ <labelk+252>: ldwa,s %r8(%r3),%rp
+ <labelk+256>: ldwa,m %r0(%r3),%rp
+ <labelk+260>: ldwa,sm %r0(%r3),%rp
+ <labelk+264>: ldw,ma 8(%r3),%r4
+ <labelk+268>: ldw 1(%sr0,%r1),%r1
+ <labelk+272>: ldw,ma 0xa(%sr0,%r1),%r1
+ <labelk+276>: ldw,mb 0(%sr0,%r1),%r1
+ <labelk+280>: ldw,o 0(%sr0,%r1),%r1
+ <labelk+284>: ldw,ma,sl 4(%sr0,%r1),%r1
+ <labelk+288>: ldw %r1(%sr0,%r3),%rp
+ <labelk+292>: ldw,s %r8(%sr0,%r3),%rp
+ <labelk+296>: ldw,m %r0(%sr0,%r3),%rp
+ <labelk+300>: ldw,sm %r0(%sr0,%r3),%rp
+ <labelk+304>: lpa %r0(%sr0,%r3),%r19
+ <labelk+308>: lpa,m %r0(%sr2,%r3),%r19
+ <labelk+312>: mfctl %rctr,%r4
+ <labelk+316>: mfctl %pidr3,%r4
+ <labelk+320>: mfia %r25
+ <labelk+324>: mfsp %sr4,%ret1
+ <labelk+328>: mixh,l %r1,%rp,%r3
+ <labelk+332>: movb %r1,%rp,<labelk>
+ <labelk+336>: movb,n %r1,%rp,<labelk>
+ <labelk+340>: movb,>=,n %r1,%rp,<main>
+ <labelk+344>: mtctl %r0,%pcsq
+ <labelk+348>: mtsar %r3
+ <labelk+352>: mtsarcm %r7
+ <labelk+356>: mtsm %rp
+ <labelk+360>: mtsp %r19,%sr3
+ <labelk+364>: nop
+ <labelk+368>: or %r1,%r0,%r3
+ <labelk+372>: or,ev %r1,%r0,%r3
+ <labelk+376>: pdc %r0(%sr0,%r1)
+ <labelk+380>: pdc,m %r0(%sr0,%r1)
+ <labelk+384>: pdtlb %r8(%sr2,%rp)
+ <labelk+388>: pdtlb,m %r8(%sr2,%rp)
+ <labelk+392>: pdtlb,l %r8(%sr2,%rp)
+ <labelk+396>: pdtlb,l,m %r8(%sr2,%rp)
+ <labelk+400>: pdtlbe %r4(%sr1,%r21)
+ <labelk+404>: pdtlbe,m %r4(%sr1,%r21)
+ <labelk+408>: pitlb %r6(%sr0,%sp)
+ <labelk+412>: pitlb,m %r6(%sr0,%sp)
+ <labelk+416>: pitlbe %r6(%sr0,%sp)
+ <labelk+420>: pitlbe,m %r6(%sr0,%sp)
+ <labelk+424>: probe,r (%sr0,%r26),%r0,%sp
+ <labelk+428>: probe,w (%sr0,%r26),%r0,%sp
+ <labelk+432>: probei,r (%sr0,%r26),0xa,%sp
+ <labelk+436>: probei,w (%sr0,%r26),7,%sp
+ <labelk+440>: rfi
+ <labelk+444>: rfi,r
+ <labelk+448>: rfi,r
+ <labelk+452>: rsm 0x1f,%r24
+ <labelk+456>: shladd %r14,1,%r15,%r16
+ <labelk+460>: shladd,nuv %r14,1,%r15,%r16
+ <labelk+464>: shladd,znv %r14,1,%r15,%r16
+ <labelk+468>: shladd,sv %r14,1,%r15,%r16
+ <labelk+472>: shladd,uv %r14,1,%r15,%r16
+ <labelk+476>: shladd,vnz %r14,1,%r15,%r16
+ <labelk+480>: shladd,nsv %r14,1,%r15,%r16
+ <labelk+484>: shladd,l %r14,1,%r15,%r16
+ <labelk+488>: shladd,l,nuv %r14,1,%r15,%r16
+ <labelk+492>: shladd,l,znv %r14,1,%r15,%r16
+ <labelk+496>: shladd,l,sv %r14,1,%r15,%r16
+ <labelk+500>: shladd,l,uv %r14,1,%r15,%r16
+ <labelk+504>: shladd,l,vnz %r14,1,%r15,%r16
+ <labelk+508>: shladd,l,nsv %r14,1,%r15,%r16
+ <labelk+512>: shladd,tsv %r14,1,%r15,%r16
+ <labelk+516>: shladd,tsv,nuv %r14,1,%r15,%r16
+ <labelk+520>: shladd,tsv,znv %r14,1,%r15,%r16
+ <labelk+524>: shladd,tsv,sv %r14,1,%r15,%r16
+ <labelk+528>: shladd,tsv,uv %r14,1,%r15,%r16
+ <labelk+532>: shladd,tsv,vnz %r14,1,%r15,%r16
+ <labelk+536>: shladd,tsv,nsv %r14,1,%r15,%r16
+ <labelk+540>: shladd %r14,2,%r15,%r16
+ <labelk+544>: shladd,nuv %r14,2,%r15,%r16
+ <labelk+548>: shladd,znv %r14,2,%r15,%r16
+ <labelk+552>: shladd,sv %r14,2,%r15,%r16
+ <labelk+556>: shladd,uv %r14,2,%r15,%r16
+ <labelk+560>: shladd,vnz %r14,2,%r15,%r16
+ <labelk+564>: shladd,nsv %r14,2,%r15,%r16
+ <labelk+568>: shladd,l %r14,2,%r15,%r16
+ <labelk+572>: shladd,l,nuv %r14,2,%r15,%r16
+ <labelk+576>: shladd,l,znv %r14,2,%r15,%r16
+ <labelk+580>: shladd,l,sv %r14,2,%r15,%r16
+ <labelk+584>: shladd,l,uv %r14,2,%r15,%r16
+ <labelk+588>: shladd,l,vnz %r14,2,%r15,%r16
+ <labelk+592>: shladd,l,nsv %r14,2,%r15,%r16
+ <labelk+596>: shladd,tsv %r14,2,%r15,%r16
+ <labelk+600>: shladd,tsv,nuv %r14,2,%r15,%r16
+ <labelk+604>: shladd,tsv,znv %r14,2,%r15,%r16
+ <labelk+608>: shladd,tsv,sv %r14,2,%r15,%r16
+ <labelk+612>: shladd,tsv,uv %r14,2,%r15,%r16
+ <labelk+616>: shladd,tsv,vnz %r14,2,%r15,%r16
+ <labelk+620>: shladd,tsv,nsv %r14,2,%r15,%r16
+ <labelk+624>: shladd %r14,3,%r15,%r16
+ <labelk+628>: shladd,nuv %r14,3,%r15,%r16
+ <labelk+632>: shladd,znv %r14,3,%r15,%r16
+ <labelk+636>: shladd,sv %r14,3,%r15,%r16
+ <labelk+640>: shladd,uv %r14,3,%r15,%r16
+ <labelk+644>: shladd,vnz %r14,3,%r15,%r16
+ <labelk+648>: shladd,nsv %r14,3,%r15,%r16
+ <labelk+652>: shladd,l %r14,3,%r15,%r16
+ <labelk+656>: shladd,l,nuv %r14,3,%r15,%r16
+ <labelk+660>: shladd,l,znv %r14,3,%r15,%r16
+ <labelk+664>: shladd,l,sv %r14,3,%r15,%r16
+ <labelk+668>: shladd,l,uv %r14,3,%r15,%r16
+ <labelk+672>: shladd,l,vnz %r14,3,%r15,%r16
+ <labelk+676>: shladd,l,nsv %r14,3,%r15,%r16
+ <labelk+680>: shladd,tsv %r14,3,%r15,%r16
+ <labelk+684>: shladd,tsv,nuv %r14,3,%r15,%r16
+ <labelk+688>: shladd,tsv,znv %r14,3,%r15,%r16
+ <labelk+692>: shladd,tsv,sv %r14,3,%r15,%r16
+ <labelk+696>: shladd,tsv,uv %r14,3,%r15,%r16
+ <labelk+700>: shladd,tsv,vnz %r14,3,%r15,%r16
+ <labelk+704>: shladd,tsv,nsv %r14,3,%r15,%r16
+ <labelk+708>: shrpw %r3,%rp,15,%r0
+ <labelk+712>: shrpw,<> %r3,%rp,15,%r0
+ <labelk+716>: shladd %r1,2,%r3,%r6
+ <labelk+720>: shladd,tsv %r1,2,%r3,%r6
+ <labelk+724>: shladd,l %r1,2,%r3,%r6
+ <labelk+728>: shladd,= %r1,2,%r3,%r6
+ <labelk+732>: shladd,< %r1,2,%r3,%r6
+ <labelk+736>: shladd,<= %r1,2,%r3,%r6
+ <labelk+740>: shladd,nuv %r1,2,%r3,%r6
+ <labelk+744>: shladd,znv %r1,2,%r3,%r6
+ <labelk+748>: shladd,sv %r1,2,%r3,%r6
+ <labelk+752>: shladd,od %r1,2,%r3,%r6
+ <labelk+756>: shladd,tr %r1,2,%r3,%r6
+ <labelk+760>: shladd,<> %r1,2,%r3,%r6
+ <labelk+764>: shladd,>= %r1,2,%r3,%r6
+ <labelk+768>: shladd,> %r1,2,%r3,%r6
+ <labelk+772>: shladd,uv %r1,2,%r3,%r6
+ <labelk+776>: shladd,vnz %r1,2,%r3,%r6
+ <labelk+780>: shladd,nsv %r1,2,%r3,%r6
+ <labelk+784>: shladd,ev %r1,2,%r3,%r6
+ <labelk+788>: shrpw %r1,%rp,1,%r3
+ <labelk+792>: spop0,0,0x23
+ <labelk+796>: spop1,3,0x23 %r6
+ <labelk+800>: spop2,3,0x23 %r6
+ <labelk+804>: spop3,3,0x23 %r6,%r7
+ <labelk+808>: ssm 0x7f,%r1
+ <labelk+812>: stb %r0,8(%sr1,%r3)
+ <labelk+816>: stb,bc %r0,8(%sr1,%r3)
+ <labelk+820>: stb,sl %r0,8(%sr1,%r3)
+ <labelk+824>: stb %r0,8(%sr1,%r3)
+ <labelk+828>: stb,bc %r0,8(%sr1,%r3)
+ <labelk+832>: stb,sl %r0,8(%sr1,%r3)
+ <labelk+836>: stby,b %r7,6(%sr1,%sp)
+ <labelk+840>: stby,b %r7,6(%sr1,%sp)
+ <labelk+844>: stby,e %r7,6(%sr1,%sp)
+ <labelk+848>: stby,b,m %r7,6(%sr1,%sp)
+ <labelk+852>: stby,b,bc %r7,6(%sr1,%sp)
+ <labelk+856>: stby,e,sl %r7,6(%sr1,%sp)
+ <labelk+860>: stby,b %r7,6(%sr1,%sp)
+ <labelk+864>: stby,b,m %r7,6(%sr1,%sp)
+ <labelk+868>: stby,e,m %r7,6(%sr1,%sp)
+ <labelk+872>: stby,b,m %r7,6(%sr1,%sp)
+ <labelk+876>: stby,b,bc %r7,6(%sr1,%sp)
+ <labelk+880>: stby,e,sl %r7,6(%sr1,%sp)
+ <labelk+884>: std %r18,0(%sr3,%ret1)
+ <labelk+888>: sth %r18,0(%sr3,%ret1)
+ <labelk+892>: sth %r18,0(%sr3,%ret1)
+ <labelk+896>: stw %r17,3(%sr0,%r1)
+ <labelk+900>: stwa %r16,0(%r6)
+ <labelk+904>: stw,ma %r16,0(%r6)
+ <labelk+908>: stwa,ma %r16,2(%r6)
+ <labelk+912>: stw %r16,0(%sr0,%r6)
+ <labelk+916>: sub %r1,%r0,%r3
+ <labelk+920>: sub,b %r1,%r0,%r3
+ <labelk+924>: sub,db* %r1,%r0,%r3
+ <labelk+928>: sub,tc %r1,%r0,%r3
+ <labelk+932>: sub,tsv %r1,%r0,%r3
+ <labelk+936>: sub,tsv,tc %r1,%r0,%r3
+ <labelk+940>: sub,tsv,b %r1,%r0,%r3
+ <labelk+944>: sub,tsv,b,< %r1,%r0,%r3
+ <labelk+948>: sub,b %r8,%r9,%r10
+ <labelk+952>: sub,b,<<= %r8,%r9,%r10
+ <labelk+956>: sub,b,>>= %r8,%r9,%r10
+ <labelk+960>: sub,b,nsv %r8,%r9,%r10
+ <labelk+964>: sub,tsv,b %r8,%r9,%r10
+ <labelk+968>: sub,tsv,b,<<= %r8,%r9,%r10
+ <labelk+972>: sub,tsv,b,>>= %r8,%r9,%r10
+ <labelk+976>: sub,tsv,b,nsv %r8,%r9,%r10
+ <labelk+980>: subi 9,%r3,%r5
+ <labelk+984>: subio 2,%r3,%r5
+ <labelk+988>: subio 5,%dp,%r26
+ <labelk+992>: subio,< 5,%dp,%r26
+ <labelk+996>: sub,tsv %r8,%r9,%r10
+ <labelk+1000>: sub,tsv,<<= %r8,%r9,%r10
+ <labelk+1004>: sub,tsv,>>= %r8,%r9,%r10
+ <labelk+1008>: sub,tsv,nsv %r8,%r9,%r10
+ <labelk+1012>: sub,tc %r8,%r9,%r10
+ <labelk+1016>: sub,tc,<= %r8,%r9,%r10
+ <labelk+1020>: sub,tc,>= %r8,%r9,%r10
+ <labelk+1024>: sub,tc,nsv %r8,%r9,%r10
+ <labelk+1028>: sub,tsv,tc %r8,%r9,%r10
+ <labelk+1032>: sub,tsv,tc,<<= %r8,%r9,%r10
+ <labelk+1036>: sub,tsv,tc,>>= %r8,%r9,%r10
+ <labelk+1040>: sub,tsv,tc,nsv %r8,%r9,%r10
+ <labelk+1044>: sync
+ <labelk+1048>: syncdma
+ <labelu>: uaddcm %r3,%r4,%r5
+ <labelu+4>: uaddcm,tc %r3,%r4,%r5
+ <labelu+8>: uaddcm,tc %r3,%r4,%r5
+ <labelu+12>: uaddcm,tc,shc %r3,%r4,%r5
+ <labelu+16>: uxor %r19,%r3,%r20
+ <labelu+20>: uxor,shz %r19,%r3,%r20
+ <labelu+24>: depw %r7,%sar,3,%r8
+ <labelu+28>: depw,tr %rp,%sar,3,%r8
+ <labelu+32>: depwi 7,%sar,3,%r8
+ <labelu+36>: depwi,= 2,%sar,3,%r8
+ <labelu+40>: extrw,s %r4,%sar,30,%r4
+ <labelu+44>: extrw,s,< %r4,%sar,30,%r4
+ <labelu+48>: extrw,u %r4,%sar,30,%r4
+ <labelu+52>: extrw,u,>= %r4,%sar,30,%r4
+ <labelu+56>: shrpw %r3,%rp,%sar,%r0
+ <labelu+60>: shrpw,< %r3,%rp,%sar,%r0
+ <labelu+64>: xmpyu %fr3,%fr4,%fr5
+ <labelu+68>: xor %r0,%r1,%rp
+ <labelu+72>: xor,tr %r0,%r1,%rp
+ <labelu+76>: xor,>= %r0,%r1,%rp
+ <labelu+80>: depw,z %r18,1,2,%rp
+ <labelu+84>: depw,z,<> %r18,2,3,%rp
+ <labelu+88>: depwi,z 1,1,2,%rp
+ <labelu+92>: depwi,z,ev 3,2,3,%rp
+ <labelu+96>: depw,z %r18,%sar,30,%rp
+ <labelu+100>: depw,z,< %r18,%sar,8,%rp
+ <labelu+104>: depwi,z 0xf,%sar,30,%rp
+ <labelu+108>: depwi,z,od 8,%sar,8,%rp
+ <labelu+112>: fstqs %fr5,9(%sr0,%r4)
+ <labelu+116>: fldw,ma 3(%sr2,%r0),%fr10R
+ <labelu+120>: fadd,sgl %fr30,%fr30R,%fr31R
+ <labelu+124>: fadd,dbl %fr29,%fr30,%fr31
+ <labelu+128>: fadd,dbl %fr2,%fr4,%fr8
+ <mainend>: nop
+ <__d_shl_get>: std %rp,-0x10(%sp)
+ <__d_shl_get+4>: std,ma %r3,0x70(%sp)
+ <__d_shl_get+8>: copy %ret1,%r3
+ <__d_shl_get+12>: std %dp,-0x68(%sp)
+ <__d_shl_get+16>: nop
+ <__d_shl_get+20>: std %r26,-0x40(%ret1)
+ <__d_shl_get+24>: std %r25,-0x38(%ret1)
+ <__d_shl_get+28>: std %r24,-0x30(%ret1)
+ <__d_shl_get+32>: sth %r23,-0x22(%ret1)
+ <__d_shl_get+36>: std %r22,-0x20(%ret1)
+ <__d_shl_get+40>: std %r21,-0x18(%ret1)
+ <__d_shl_get+44>: std %r20,-0x10(%ret1)
+ <__d_shl_get+48>: std %r19,-8(%ret1)
+ <__d_shl_get+52>: ldd -0x40(%ret1),%r31
+ <__d_shl_get+56>: addil L'-0x800,%dp,%r1
+ <__d_shl_get+60>: ldd 0x768(%r1),%r19
+ <__d_shl_get+64>: shladd %r31,3,%r19,%r19
+ <__d_shl_get+68>: ldd 0(%r19),%r19
+ <__d_shl_get+72>: ldd -0x38(%ret1),%r26
+ <__d_shl_get+76>: ldd -0x30(%ret1),%r25
+ <__d_shl_get+80>: ldh -0x22(%ret1),%r20
+ <__d_shl_get+84>: extrw,s %r20,31,16,%r24
+ <__d_shl_get+88>: ldd -0x20(%ret1),%r23
+ <__d_shl_get+92>: ldd -0x18(%ret1),%r22
+ <__d_shl_get+96>: ldd -0x10(%ret1),%r21
+ <__d_shl_get+100>: ldd -8(%ret1),%r20
+ <__d_shl_get+104>: ldo -0x10(%sp),%ret1
+ <__d_shl_get+108>: ldd 0x10(%r19),%rp
+ <__d_shl_get+112>: bve,l (%rp),%r2
+ <__d_shl_get+116>: ldd 0x18(%r19),%dp
+ <__d_shl_get+120>: ldd -0x68(%sp),%dp
+ <__d_shl_get+124>: stw %ret0,-0x58(%sp)
+ <__d_shl_get+128>: ldw -0x58(%sp),%ret0
+ <__d_shl_get+132>: ldd -0x80(%sp),%rp
+ <__d_shl_get+136>: bve (%rp)
+ <__d_shl_get+140>: ldd,mb -0x70(%sp),%r3
+ <__d_plt_call>: std %rp,-0x10(%sp)
+ <__d_plt_call+4>: std,ma %r3,0x60(%sp)
+ <__d_plt_call+8>: copy %ret1,%r3
+ <__d_plt_call+12>: std %dp,-0x58(%sp)
+ <__d_plt_call+16>: nop
+ <__d_plt_call+20>: addil L'-0x800,%dp,%r1
+ <__d_plt_call+24>: ldd 0x770(%r1),%r19
+ <__d_plt_call+28>: ldd 0(%r19),%r19
+ <__d_plt_call+32>: ldo -0x10(%sp),%ret1
+ <__d_plt_call+36>: ldd 0x10(%r19),%r20
+ <__d_plt_call+40>: bve,l (%r20),%r2
+ <__d_plt_call+44>: ldd 0x18(%r19),%dp
+ <__d_plt_call+48>: ldd -0x58(%sp),%dp
+ <__d_plt_call+52>: depd,z %ret0,63,32,%ret0
+ <__d_plt_call+56>: ldd -0x70(%sp),%rp
+ <__d_plt_call+60>: bve (%rp)
+ <__d_plt_call+64>: ldd,mb -0x60(%sp),%r3
+ <__d_plt_call+68>: break 0,0
+ <__d_eh_break>: std,ma %r3,0x10(%sp)
+ <__d_eh_break+4>: copy %ret1,%r3
+ <__d_eh_break+8>: nop
+ <__d_eh_break+12>: stw %r26,-0x3c(%ret1)
+ <__d_eh_break+16>: std %r25,-0x38(%ret1)
+ <__d_eh_break+20>: stw %r24,-0x2c(%ret1)
+ <__d_eh_break+24>: bve (%rp)
+ <__d_eh_break+28>: ldd,mb -0x10(%sp),%r3
+ <__d_eh_notify_callback>: std %rp,-0x10(%sp)
+ <__d_eh_notify_callback+4>: std,ma %r3,0x70(%sp)
+ <__d_eh_notify_callback+8>: std %r4,-0x68(%sp)
+ <__d_eh_notify_callback+12>: copy %ret1,%r3
+ <__d_eh_notify_callback+16>: std %dp,-0x60(%sp)
+ <__d_eh_notify_callback+20>: nop
+ <__d_eh_notify_callback+24>: copy %ret1,%r4
+ <__d_eh_notify_callback+28>: stw %r26,-0x3c(%r4)
+ <__d_eh_notify_callback+32>: std %r25,-0x38(%r4)
+ <__d_eh_notify_callback+36>: stw %r24,-0x2c(%r4)
+ <__d_eh_notify_callback+40>: addil L'-0x800,%dp,%r1
+ <__d_eh_notify_callback+44>: ldd 0x778(%r1),%r19
+ <__d_eh_notify_callback+48>: ldw 0(%r19),%r19
+ <__d_eh_notify_callback+52>: cmpib,<>,n 0,%r19,<__d_eh_notify_callback+68>
+ <__d_eh_notify_callback+56>: b <__d_eh_notify_callback+284>
+ <__d_eh_notify_callback+60>: ldi 0,%ret0
+ <__d_eh_notify_callback+64>: b,n <__d_eh_notify_callback+268>
+ <__d_eh_notify_callback+68>: ldo -0x10(%sp),%ret1
+ <__d_eh_notify_callback+72>: b,l <__d_getpid>,%r2
+ <__d_eh_notify_callback+76>: nop
+ <__d_eh_notify_callback+80>: ldd -0x60(%sp),%dp
+ <__d_eh_notify_callback+84>: addil L'-0x800,%dp,%r1
+ <__d_eh_notify_callback+88>: copy %r1,%r19
+ <__d_eh_notify_callback+92>: ldd 0x778(%r19),%r19
+ <__d_eh_notify_callback+96>: ldw 0(%r19),%r19
+ <__d_eh_notify_callback+100>: cmpb,=,n %ret0,%r19,<__d_eh_notify_callback+132>
+ <__d_eh_notify_callback+104>: addil L'-0x800,%dp,%r1
+ <__d_eh_notify_callback+108>: copy %r1,%ret0
+ <__d_eh_notify_callback+112>: ldd 0x778(%ret0),%r19
+ <__d_eh_notify_callback+116>: stw %r0,0(%r19)
+ <__d_eh_notify_callback+120>: b <__d_eh_notify_callback+284>
+ <__d_eh_notify_callback+124>: ldi 0,%ret0
+ <__d_eh_notify_callback+128>: b,n <__d_eh_notify_callback+268>
+ <__d_eh_notify_callback+132>: ldw -0x3c(%r4),%r19
+ <__d_eh_notify_callback+136>: cmpib,=,n 1,%r19,<__d_eh_notify_callback+204>
+ <__d_eh_notify_callback+140>: cmpib,=,n 0,%r19,<__d_eh_notify_callback+148>
+ <__d_eh_notify_callback+144>: b,n <__d_eh_notify_callback+260>
+ <__d_eh_notify_callback+148>: addil L'-0x800,%dp,%r1
+ <__d_eh_notify_callback+152>: copy %r1,%r19
+ <__d_eh_notify_callback+156>: ldd 0x780(%r19),%r19
+ <__d_eh_notify_callback+160>: ldw 0(%r19),%r19
+ <__d_eh_notify_callback+164>: cmpib,=,n 0,%r19,<__d_eh_notify_callback+200>
+ <__d_eh_notify_callback+168>: ldw -0x3c(%r4),%r19
+ <__d_eh_notify_callback+172>: ldd -0x38(%r4),%r20
+ <__d_eh_notify_callback+176>: ldw -0x2c(%r4),%r24
+ <__d_eh_notify_callback+180>: copy %r19,%r26
+ <__d_eh_notify_callback+184>: copy %r20,%r25
+ <__d_eh_notify_callback+188>: b,l <__d_eh_break>,%r2
+ <__d_eh_notify_callback+192>: ldo -0x10(%sp),%ret1
+ <__d_eh_notify_callback+196>: ldd -0x60(%sp),%dp
+ <__d_eh_notify_callback+200>: b,n <__d_eh_notify_callback+268>
+ <__d_eh_notify_callback+204>: addil L'-0x800,%dp,%r1
+ <__d_eh_notify_callback+208>: copy %r1,%r19
+ <__d_eh_notify_callback+212>: ldd 0x788(%r19),%r19
+ <__d_eh_notify_callback+216>: ldw 0(%r19),%r19
+ <__d_eh_notify_callback+220>: cmpib,=,n 0,%r19,<__d_eh_notify_callback+256>
+ <__d_eh_notify_callback+224>: ldw -0x3c(%r4),%r19
+ <__d_eh_notify_callback+228>: ldd -0x38(%r4),%r20
+ <__d_eh_notify_callback+232>: ldw -0x2c(%r4),%r24
+ <__d_eh_notify_callback+236>: copy %r19,%r26
+ <__d_eh_notify_callback+240>: copy %r20,%r25
+ <__d_eh_notify_callback+244>: b,l <__d_eh_break>,%r2
+ <__d_eh_notify_callback+248>: ldo -0x10(%sp),%ret1
+ <__d_eh_notify_callback+252>: ldd -0x60(%sp),%dp
+ <__d_eh_notify_callback+256>: b,n <__d_eh_notify_callback+268>
+ <__d_eh_notify_callback+260>: b <__d_eh_notify_callback+268>
+ <__d_eh_notify_callback+264>: nop
+ <__d_eh_notify_callback+268>: addil L'-0x800,%dp,%r1
+ <__d_eh_notify_callback+272>: copy %r1,%r19
+ <__d_eh_notify_callback+276>: ldd 0x790(%r19),%r19
+ <__d_eh_notify_callback+280>: ldw 0(%r19),%ret0
+ <__d_eh_notify_callback+284>: ldd -0x80(%sp),%rp
+ <__d_eh_notify_callback+288>: ldd -0x68(%sp),%r4
+ <__d_eh_notify_callback+292>: bve (%rp)
+ <__d_eh_notify_callback+296>: ldd,mb -0x70(%sp),%r3
+ <__d_eh_notify_callback+300>: break 0,0
+ <_end_>: std,ma %r3,0x30(%sp)
+ <_end_+4>: copy %ret1,%r3
+ <_end_+8>: nop
+ <_end_+12>: ldi 1,%r19
+ <_end_+16>: std %r19,-0x18(%sp)
+ <_end_+20>: bve (%rp)
+ <_end_+24>: ldd,mb -0x30(%sp),%r3
+ <_end_+28>: break 0,0
+ <__d_ldsp>: bve (%r1)
+ <__d_ldsp+4>: nop
+ <__d_ldsp+8>: break 4,8
+ <__d_getpid>: copy %r22,%ret0
+ <__d_getpid+4>: copy %dp,%r22
+ <__d_getpid+8>: addil L'-0x800,%dp,%r1
+ <__d_getpid+12>: ldd 0x748(%r1),%r1
+ <__d_getpid+16>: ldd 0(%sr0,%r1),%r1
+ <__d_getpid+20>: copy %r22,%dp
+ <__d_getpid+24>: ldi 0x14,%r22
+ <__d_getpid+28>: shladd,l %r22,3,%r1,%r1
+ <__d_getpid+32>: ldd 0(%sr0,%r1),%r1
+ <__d_getpid+36>: be,l 0(%sr4,%r1)
+ <__d_getpid+40>: nop
+ <__d_getpid+44>: bve (%rp)
+ <__d_getpid+48>: nop
+ <__wdb_call_dummy>: nop
+ <__wdb_call_dummy+4>: nop
+ <__wdb_call_dummy+8>: nop
+ <__wdb_call_dummy+12>: nop
+ <__wdb_call_dummy+16>: nop
+ <__wdb_call_dummy+20>: nop
+ <__wdb_call_dummy+24>: nop
+ <__wdb_call_dummy+28>: nop
+ <__wdb_call_dummy+32>: nop
+ <__wdb_call_dummy+36>: nop
+ <__wdb_call_dummy+40>: nop
+ <__wdb_call_dummy+44>: nop
+ <__wdb_call_dummy+48>: nop
+ <__wdb_call_dummy+52>: nop
+ <__wdb_call_dummy+56>: nop
+ <__wdb_call_dummy+60>: nop
+ <__wdb_call_dummy+64>: nop
+ <__wdb_call_dummy+68>: nop
+ <__wdb_call_dummy+72>: nop
+ <__wdb_call_dummy+76>: nop
+ <__wdb_call_dummy+80>: nop
+ <__wdb_call_dummy+84>: nop
+ <__wdb_call_dummy+88>: nop
+ <__wdb_call_dummy+92>: nop
+ <__wdb_call_dummy+96>: nop
+ <__wdb_call_dummy+100>: nop
+ <__wdb_call_dummy+104>: nop
+ <__wdb_call_dummy+108>: nop
+ <__wdb_call_dummy+112>: nop
+ <__wdb_call_dummy+116>: nop
+ <__wdb_call_dummy+120>: nop
+ <__wdb_call_dummy+124>: nop
+ <__wdb_call_dummy+128>: nop
+ <__wdb_call_dummy+132>: nop
+ <__wdb_call_dummy+136>: nop
+ <__wdb_call_dummy+140>: nop
+ <__wdb_call_dummy+144>: nop
+ <__wdb_call_dummy+148>: nop
+ <__wdb_call_dummy+152>: nop
+ <__wdb_call_dummy+156>: nop
+ <__wdb_call_dummy+160>: nop
+ <__wdb_call_dummy+164>: nop
+ <__wdb_call_dummy+168>: nop
+ <__wdb_call_dummy+172>: nop
+ <__wdb_call_dummy+176>: nop
+ <__wdb_call_dummy+180>: nop
+ <__wdb_call_dummy+184>: nop
+ <__wdb_call_dummy+188>: nop
+ <__wdb_call_dummy+192>: nop
+ <__wdb_call_dummy+196>: nop
+ <__wdb_call_dummy+200>: nop
+ <__wdb_call_dummy+204>: nop
+ <__wdb_call_dummy+208>: nop
+ <__wdb_call_dummy+212>: nop
+ <__wdb_call_dummy+216>: nop
+ <__wdb_call_dummy+220>: nop
+ <__wdb_call_dummy+224>: nop
+ <__wdb_call_dummy+228>: nop
+ <__wdb_call_dummy+232>: nop
+ <__wdb_call_dummy+236>: nop
+ <__wdb_call_dummy+240>: nop
+ <__wdb_call_dummy+244>: nop
+ <__wdb_call_dummy+248>: nop
+ <__wdb_call_dummy+252>: nop
+ <__wdb_call_dummy+256>: nop
+ <__wdb_call_dummy+260>: nop
+ <__wdb_call_dummy+264>: nop
+ <__wdb_call_dummy+268>: nop
+ <__wdb_call_dummy+272>: nop
+ <__wdb_call_dummy+276>: nop
+ <__wdb_call_dummy+280>: nop
+ <__wdb_call_dummy+284>: nop
+ <__wdb_call_dummy+288>: nop
+ <__wdb_call_dummy+292>: nop
+ <__wdb_call_dummy+296>: nop
+ <__wdb_call_dummy+300>: nop
+ <__wdb_call_dummy+304>: nop
+ <__wdb_call_dummy+308>: nop
+ <__wdb_call_dummy+312>: nop
+ <__wdb_call_dummy+316>: nop
+ <__wdb_call_dummy+320>: nop
+ <__wdb_call_dummy+324>: nop
^ permalink raw reply [flat|nested] 7+ messages in thread
* tools/ tar Re: gdb.disasm testsuite patch
1999-07-22 18:19 gdb.disasm testsuite patch Jimmy Guo
@ 1999-07-22 18:23 ` Jimmy Guo
1999-07-22 18:28 ` gdb.fortran " Jimmy Guo
` (3 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Jimmy Guo @ 1999-07-22 18:23 UTC (permalink / raw)
To: gdb-patches
>This patch contains merged gdb.disasm testsuite.
>
>It includes merge changes and some new tests added by HP for pa1.1 / 2.0
>/ 2.0w testing. A FSF copyright assignment is on its way.
>
>File renames / moves (a tar file of gdb.disasm has been ftp'd over as
>ftp.cygnus.com:/incoming/hp_gdb.disasm.tar, *** since there're binaries
>included please apply the actual change from the tar file ***):
> ...
Also ftp'd over is hp_tools.tar, containing tools/redirect_cmd script
which is used by some new gdb.disasm tests.
- Jimmy Guo, guo@cup.hp.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* gdb.fortran testsuite patch
1999-07-22 18:19 gdb.disasm testsuite patch Jimmy Guo
1999-07-22 18:23 ` tools/ tar " Jimmy Guo
@ 1999-07-22 18:28 ` Jimmy Guo
1999-07-22 18:43 ` gdb.hp " Jimmy Guo
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Jimmy Guo @ 1999-07-22 18:28 UTC (permalink / raw)
To: gdb-patches
This patch contains merged gdb.fortran testsuite.
It includes merge changes and some new tests added by HP for fortran
testing. A FSF copyright assignment is on its way.
File renames / moves (a tar file of gdb.fortran has been ftp'd over as
ftp.cygnus.com:/incoming/hp_gdb.fortran.tar):
Old New
--- ---
Makefile.in
adjustable.exp
adjustable.f
ar-exp.exp
ar-exp.f
assumedsiz.exp
assumedsiz.f
automatic.exp
automatic.f
btype.exp
btype.f
common.exp
common1.f
common2.exp
common2.f
common3.exp
common3.f
configure
configure.in
entry1.exp
entry1.f
entry2.exp
entry2.f
exprs2.exp
frames.exp
frames.f
ftypes.exp
ftypes.f
intrinsics.exp
intrinsics.f
keytypes.exp
keytypes.f
local.exp
local.f
local1.exp
local1.f
local2.exp
local2.f
main.exp
noprog_main.f
noprogormain.f
params.exp
params.f
params1.exp
params1.f
prog_main.f
prog_nomain.f
rtypes.exp
rtypes.f
solibf.exp
solibf.f
solibf1.f
solibf2.f
stepnext.exp
stepnext.f
strings.exp
strings.f
strings_a.f
- Jimmy Guo, guo@cup.hp.com
/opt/gnu/bin/diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran gdb/testsuite/gdb.fortran
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/Makefile.in gdb/testsuite/gdb.fortran/Makefile.in
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/Makefile.in Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/Makefile.in Thu Jul 22 17:49:51 1999
***************
*** 0 ****
--- 1,32 ----
+ VPATH = @srcdir@
+ srcdir = @srcdir@
+
+ EXECUTABLES = ar-exp adjustable assumedsiz automatic btype \
+ common common1 common2 common3 \
+ entry1 entry2 frames ftypes intrinsics keytypes local local1 local2 \
+ noprog_main noprogormain prog_main prog_nomain \
+ params params1 rtypes solibf stepnext strings
+
+ MISCELLANEOUS = solibf1.sl solibf2.sl
+
+ all:
+ @echo "Nothing to be done for all..."
+
+ info:
+ install-info:
+ dvi:
+ install:
+ uninstall: force
+ installcheck:
+ check:
+
+ clean mostlyclean:
+ -rm -f *~ *.o *.ci
+ -rm -f core $(EXECUTABLES)
+ -rm -f $(MISCELLANEOUS)
+
+ distclean maintainer-clean realclean: clean
+ -rm -f Makefile config.status config.log
+
+ Makefile : $(srcdir)/Makefile.in $(srcdir)/configure.in
+ $(SHELL) ./config.status --recheck
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/adjustable.exp gdb/testsuite/gdb.fortran/adjustable.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/adjustable.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/adjustable.exp Thu Jul 22 17:50:02 1999
***************
*** 0 ****
--- 1,51 ----
+ # Author: Sue Kimura <srk@cup.hp.com>, June, 1999 #
+ # Test a simple adjustable array
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ set testfile "adjustable"
+ set srcfile $testfile.f
+ set binfile ${objdir}/${subdir}/$testfile
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ if ![runto subr] {
+ perror "couldn't run to breakpoint subr"
+ continue
+ }
+
+ gdb_test "ptype list1" "integer\\*4( |)\\(5\\)"
+ for {set i 1} {$i <= 5} {incr i} {
+ gdb_test "print list1($i)" ".*= $i"
+ }
+
+
+ gdb_test "ptype list2" "integer\\*4( |)\\(0:2,-3:-1\\)"
+ set cnt 10
+ for {set j -3} {$j <= -1} {incr j} {
+ for {set i 0} {$i <= 2} {incr i} {
+ gdb_test "print list2($i,$j)" ".*= $cnt"
+ set cnt [expr $cnt + 10]
+ }
+ }
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/adjustable.f gdb/testsuite/gdb.fortran/adjustable.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/adjustable.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/adjustable.f Thu Jul 22 17:50:03 1999
***************
*** 0 ****
--- 1,20 ----
+ C Explicit-shape Arrays with non-constant bounds
+ program adjustable
+
+ integer one_dimen(5)
+ data one_dimen / 1, 2, 3, 4, 5/
+
+ integer two_dimen(3,3)
+ data two_dimen / 10, 20, 30, 40, 50, 60, 70, 80, 90 /
+
+ call subr (one_dimen, two_dimen, 5, 3)
+
+ end
+
+ C list1 and list2 are adjustable arrays -- dummy argument with at least
+ C one non-constant bound
+ subroutine subr(list1, list2, m, n)
+ integer m, n
+ integer list1(m)
+ integer list2(0:n-1,-n:-n+2)
+ end subroutine subr
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/ar-exp.exp gdb/testsuite/gdb.fortran/ar-exp.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/ar-exp.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/ar-exp.exp Thu Jul 22 17:50:04 1999
***************
*** 0 ****
--- 1,122 ----
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+ #
+ # Fortran test for simple explicit arrays
+ #
+ # Source file: ar-exp.f
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "ar-exp"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if { [gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ set MAIN "main"
+ if {[istarget "hppa*-*-hpux*"]} { set MAIN "_MAIN_"}
+
+ 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 ] {
+ perror "couldn't run to breakpoint $MAIN"
+ continue
+ }
+
+ gdb_test "break 48"
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, $MAIN.* max_dimen \\(1,2,1,2,1,2,1\\) = 10" \
+ "continue to line 48"
+
+ # verify contents and types of arrays
+
+ gdb_test "print one_dimen" \
+ "= \\(1.10000002, 2.20000005, 3.29999995, 4.4000001, 5.5, 6.5999999, 6.5999999, 6.5999999, 6.5999999, 6.5999999\\)"
+
+ gdb_test "print double_dimen" \
+ " = \\(\\( 1, 5, 9\\) \\( 2, 6, 10\\) \\( 3, 7, 11\\) \\( 4, 8, 12\\) \\)"
+
+ gdb_test "print double_dimen1" \
+ " = \\(\\( 1, 2, 3\\) \\( 4, 5, 6\\) \\( 7, 8, 9\\) \\( 10, 11, 12\\) \\)"
+
+ gdb_test "print cplx_arr" \
+ " = \\(\\(1.20000005,2.29999995\\), \\(3.4000001,4.5\\), \\(5.5999999,6.69999981\\)\\)"
+
+ gdb_test "print bounds_arr" " = \\(-2, -1, 0, 1, 2, 3\\)"
+
+
+ #verify types of arrays
+ gdb_test "ptype one_dimen" "type = real\\*4 \\(10\\)"
+ gdb_test "ptype double_dimen" "type = integer\\*4 \\(3,4\\)"
+ gdb_test "ptype double_dimen1" "type = integer\\*4 \\(3,4\\)"
+ gdb_test "ptype three_dimen" "type = integer\\*4 \\(2,3,4\\)"
+ gdb_test "ptype cplx_arr" "type = complex\\*8 \\(3\\)"
+ gdb_test "ptype bounds_arr" "type = integer\\*4 \\(-2:3\\)"
+
+ # check some indexing
+ gdb_test "print one_dimen(5)" " = 5.5"
+ gdb_test "print cplx_arr(2)" " = \\(3.4000001,4.5\\)"
+ gdb_test "print bounds_arr(-2)" " = -2"
+ gdb_test "print bounds_arr(0)" " = 0"
+ gdb_test "print bounds_arr(3)" " = 3"
+
+ set cnt 1
+ for {set i 1} {$i <= 3} {incr i} {
+ for {set j 1} {$j <= 4} {incr j} {
+ gdb_test "print double_dimen($i,$j)" ".*= $cnt"
+ incr cnt
+ }
+ }
+
+ set cnt 1
+ for {set j 1} {$j <= 4} {incr j} {
+ for {set i 1} {$i <= 3} {incr i} {
+ gdb_test "print double_dimen1($i,$j)" ".*= $cnt"
+ incr cnt
+ }
+ }
+
+ set cnt 10
+ for {set k 1} {$k <= 4} {incr k} {
+ for {set j 1} {$j <= 3} {incr j} {
+ for {set i 1} {$i <= 2} {incr i} {
+ gdb_test "print three_dimen($i,$j,$k)" ".*= $cnt"
+ set cnt [expr $cnt+10]
+ }
+ }
+ }
+
+ gdb_test "break 50"
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, $MAIN.*end" "continue to end"
+ gdb_test "print max_dimen(1,2,1,2,1,2,1)" " = 10"
+ gdb_test "print max_dimen(1,2,1,2,1,2,1,2)" \
+ "Too many subscripts for Fortran \\(7 Max\\)"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/ar-exp.f gdb/testsuite/gdb.fortran/ar-exp.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/ar-exp.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/ar-exp.f Thu Jul 22 17:50:04 1999
***************
*** 0 ****
--- 1,51 ----
+ C explicit bound arrays
+
+ integer double_dimen(3,4)
+ data ((double_dimen(i,j),j=1,4),i=1,3)
+ 1 /1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12/
+
+ integer double_dimen1(3,4)
+ data double_dimen1 /1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12/
+
+ integer three_dimen(2,3,4)
+ data three_dimen /10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110,
+ 1 120, 130, 140, 150, 160, 170, 180, 190, 200,
+ 1 210, 220, 230, 240/
+
+ real one_dimen(10)
+ data one_dimen /1.1,2.2,3.3,4.4,5.5,5*6.6/
+
+ complex cplx_arr (3)
+ data cplx_arr / (1.2,2.3), (3.4,4.5),(5.6,6.7) /
+
+ integer, dimension (-2:3) :: bounds_arr
+ data bounds_arr /-2, -1, 0, 1, 2, 3/
+
+ integer max_dimen (2,2,2,2,2,2,2)
+ data max_dimen / 128*2/
+
+ integer i,j,k
+
+ print *, "double_dimen = ", double_dimen
+ print *, "double_dimen1 = ", double_dimen1
+ print *, "one_dimen = ", one_dimen
+ print *, "cplx_arr = ", cplx_arr
+ print *, "bounds_arr = ", bounds_arr
+ print *, "max_dimen = ", max_dimen
+
+ print *, "double_dim(4,1)", double_dimen(4,1)
+ print *, "double_dim1(4,1)", double_dimen1(4,1)
+
+ do k = 1, 4
+ do j = 1, 3
+ do i = 1, 2
+ print *, "three_dimen(", i, ",", j, ",", k, ") = ",
+ 1 three_dimen(i,j,k)
+ enddo
+ enddo
+ enddo
+
+ max_dimen (1,2,1,2,1,2,1) = 10
+ print *, "max_dimen(1,2,1,2,1,2,1)", max_dimen(1,2,1,2,1,2,1)
+
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/assumedsiz.exp gdb/testsuite/gdb.fortran/assumedsiz.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/assumedsiz.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/assumedsiz.exp Thu Jul 22 17:50:05 1999
***************
*** 0 ****
--- 1,61 ----
+ # Author: Ovidiu Predescu <ovidiu@cup.hp.com>, November, 1998
+ #
+ # Test a simple assumed-size array
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ set testfile "assumedsiz"
+ set srcfile $testfile.f
+ set binfile ${objdir}/${subdir}/$testfile
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ if ![runto subr] then {
+ perror "couldn't run to breakpoint subr"
+ continue
+ }
+
+ gdb_test "ptype arr" "integer\\*4 \\(\\*\\)"
+ for {set i 1} {$i <= 6} {incr i} {
+ gdb_test "print arr($i)" ".*= $i"
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ if ![runto subr3] then {
+ perror "couldn't run to breakpoint subr3"
+ continue
+ }
+
+ gdb_test "ptype arr3" "type = integer\\*4 \\(2,-2:-1,3:\\*\\)"
+ set cnt 1
+ for {set k 3} {$k <= 4} {incr k} {
+ for {set j -2} {$j <= -1} {incr j} {
+ for {set i 1} {$i <= 2} {incr i} {
+ gdb_test "print arr3($i,$j,$k)" ".*= $cnt"
+ incr cnt
+ }
+ }
+ }
+
+
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/assumedsiz.f gdb/testsuite/gdb.fortran/assumedsiz.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/assumedsiz.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/assumedsiz.f Thu Jul 22 17:50:05 1999
***************
*** 0 ****
--- 1,31 ----
+ program assumedsiz
+
+ integer a(2,3)
+ data a/1, 2, 3, 4, 5, 6/
+
+ integer a3(2,2,2)
+ data a3 / 1, 2, 3, 4, 5, 6, 7, 8 /
+
+ call subr (a)
+ call subr3 (a3, 2)
+
+ end
+
+ subroutine subr (arr)
+ integer arr (*)
+ end
+
+ subroutine subr3 (arr3, n)
+ integer, dimension(n, -n:-n+1, 3:*) :: arr3
+ integer n
+ integer i, j, k
+
+ do k = 3, 4
+ do j = -n, -n+1
+ do i = 1, n
+ print *, i, ",", j, ",", k, ": ", arr3(i,j,k)
+ enddo
+ enddo
+ enddo
+
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/automatic.exp gdb/testsuite/gdb.fortran/automatic.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/automatic.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/automatic.exp Thu Jul 22 17:50:03 1999
***************
*** 0 ****
--- 1,68 ----
+ # Author: Sue Kimura <srk@cup.hp.com>, June, 1999 #
+ # Test automatic arrays
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ set testfile "automatic"
+ set srcfile $testfile.f
+ set binfile ${objdir}/${subdir}/$testfile
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ # skip this test for f90 until "warning: hpread_type_lookup: unsupported
+ # type (52)" is fixed
+ if {$hp_f90_compiler} {
+ unsupported "unimplemented dntt kind 52"
+ continue
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ if ![runto subr] then {
+ perror "couldn't run to breakpoint subr"
+ continue
+ }
+
+ gdb_test "break 38" "Breakpoint $decimal at $hex: file .*$srcfile, line 38."
+ gdb_test "continue" ".*Breakpoint $decimal,.*$srcfile:38.*end subroutine subr"
+
+ gdb_test "ptype list1" "PTR TO -> \\( integer\\*4 \\(2\\)\\)"
+ gdb_test "print list1" ".*=.*\\(1, 2\\)"
+ for {set i 1} {$i <= 2} {incr i} {
+ gdb_test "print list1($i)" ".*= $i"
+ }
+
+ gdb_test "ptype list2" "PTR TO -> \\( integer\\*4 \\(2,5\\)\\)"
+ gdb_test "print list2" ".*=.*\\( 2, 3\\) \\( 3, 4\\) \\( 4, 5\\) \\( 5, 6\\) \\( 6, 7\\) \\)"
+ for {set j 1} {$j <= 5} {incr j} {
+ for {set i 1} {$i <= 2} {incr i} {
+ gdb_test "print list2($i,$j)" ".*= [expr $i+$j]"
+ }
+ }
+
+ gdb_test "ptype list3" "PTR TO -> \\( integer\\*4 \\(0:1,-2:1\\)\\)"
+ gdb_test "print list3" ".*=.*\\(\\( 2, 3\\) \\( 1, 2\\) \\( 0, 1\\) \\( -1, 0\\) \\)"
+ for {set j -2} {$j <= 1} {incr j} {
+ for {set i 0} {$i <= 1} {incr i} {
+ gdb_test "print list3($i,$j)" ".*= [expr $i-$j]"
+ }
+ }
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/automatic.f gdb/testsuite/gdb.fortran/automatic.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/automatic.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/automatic.f Thu Jul 22 17:50:03 1999
***************
*** 0 ****
--- 1,38 ----
+ C Explicit-shape Arrays with non-constant bounds
+ program automatic
+
+ call subr (2,2)
+
+ end
+
+ C list1, list2 and list3 are automatic arrays -- non-dummy argument with
+ C a non-constant bound
+
+ subroutine subr(m, n)
+ integer list1 (n)
+ integer list2 (n,5)
+ integer list3 (0:m-1,-m:n-1)
+
+
+ do i = 1,n
+ list1(i) = i
+ print *, "list1(", i, " ):", list1(i)
+ enddo
+
+ do j = 1,5
+ do i = 1,n
+ list2(i,j) = i+j
+ print *, "list2(", i, ",", j, " ):", list2(i,j)
+ enddo
+ enddo
+ print *, "list2: ", list2
+
+ do j = -m, n-1
+ do i = 0, m-1
+ list3(i,j) = i-j
+ print *, "list3(", i, ",", j, " ):", list3(i,j)
+ enddo
+ enddo
+ print *, "list3: ", list3
+
+ end subroutine subr
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/btype.exp gdb/testsuite/gdb.fortran/btype.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/btype.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/btype.exp Thu Jul 22 17:49:52 1999
***************
*** 0 ****
--- 1,91 ----
+ # Copyright (C) 1988, 1990, 1991, 1992, 1994 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+
+ #Byte type is an HP-extension so only test only on hpux systems.
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "btype"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ if {$hp_f77_compiler} {
+ set ptype_b " = logical\\*1"
+ set print_b_first " = .TRUE."
+ set print_b_second " = .TRUE."
+ set print_b_third " = .FALSE."
+ } else {
+ set ptype_b " = integer\\*1"
+ set print_b_first " = -128"
+ set print_b_second " = 127"
+ set print_b_third " = 0"
+ }
+
+ set MAIN "main"
+ if {[istarget "hppa*-*-hpux*"]} { set MAIN "_MAIN_"}
+
+ 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 $MAIN"
+ continue
+ }
+
+ #test byte type variables
+
+ gdb_test "ptype b" "$ptype_b" "ptype b"
+ gdb_test "print b" "$print_b_first" "print b"
+ gdb_test "x /x \&b" ".*:.*0x80000000" "hex value of b"
+
+ gdb_test "print b = 127" "$print_b_second" "print b = 127"
+ gdb_test "x /x \&b" ".*:.*0x7f000000" "hex value of b = 127"
+ gdb_test "p b = 0 " "$print_b_third" "print b = 0"
+ gdb_test "x /x \&b" ".*:.*0x00000000" "hex value of b = 0"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/btype.f gdb/testsuite/gdb.fortran/btype.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/btype.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/btype.f Thu Jul 22 17:49:52 1999
***************
*** 0 ****
--- 1,5 ----
+ program byte_type
+
+ byte ::b = -128
+
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/common.exp gdb/testsuite/gdb.fortran/common.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/common.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/common.exp Thu Jul 22 17:49:52 1999
***************
*** 0 ****
--- 1,146 ----
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+ #
+ # Fortran common test
+ #
+ # Source file: common.f
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "common"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ set MAIN "main"
+ if {[istarget "hppa*-*-hpux*"]} { set MAIN "_MAIN_"}
+
+ 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 ] {
+ perror "couldn't run to breakpoint $MAIN"
+ continue
+ }
+
+ # set up break points and get to first breakpoint
+
+ gdb_test "break 7" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 7." \
+ "break in $MAIN:7"
+
+ gdb_test "break 9" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 9." \
+ "break in $MAIN:9"
+
+ gdb_test "break 18" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 18." \
+ "break in subf:18"
+
+ gdb_test "break 20" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 20." \
+ "break in subf:20"
+
+ gdb_test "break 28" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 28." \
+ "break in subg:28"
+
+ gdb_test "break 30" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 30." \
+ "break in subg:30"
+
+ # verify contents of variable a
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, $MAIN \\(.*\\) at .*$srcfile:7.*" \
+ "continue to $MAIN:7"
+
+ gdb_test "print a" \
+ " = 3" \
+ "print a after assignment"
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, subf \\(\\) at .*$srcfile:18.*" \
+ "continue to subf:18"
+
+ # start testing info common command
+
+ gdb_test "info common" \
+ "All COMMON blocks visible at this level:\r\n\r\n_BLNK" \
+ "subf: info common"
+
+ gdb_test "info common _BLNK" \
+ "Contents of COMMON block '_BLNK':\r\n\r\n.*a = 4" \
+ "subf: info common _BLNK"
+
+ gdb_test "info common notaname" \
+ "Cannot locate the common block notaname in function 'subf'" \
+ "subf: info common notaname"
+
+ # continue to subg
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, subg \\(\\) at .*$srcfile:28.*" \
+ "continue to subg:28"
+
+ gdb_test "info common" \
+ "All COMMON blocks visible at this level:\r\n\r\n_BLNK" \
+ "subg: info common"
+
+ gdb_test "info common _BLNK" \
+ "Contents of COMMON block '_BLNK':\r\n\r\n.*a = 4" \
+ "subg: info common _BLNK prior to modifying a"
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, subg \\(\\) at .*$srcfile:30.*" \
+ "continue to subg:30"
+
+ gdb_test "info common _BLNK" \
+ "Contents of COMMON block '_BLNK':\r\n\r\n.*a = 5" \
+ "subg: info common _BLNK after modifying a"
+
+ # return to subf
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, subf \\(\\) at .*$srcfile:20.*" \
+ "continue to subf:20"
+
+ gdb_test "info common _BLNK" \
+ "Contents of COMMON block '_BLNK':\r\n\r\n.*a = 5" \
+ "subf: info common _BLNK after call to subg"
+
+ # return to main
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, $MAIN \\(.*\\) at .*$srcfile:9.*" \
+ "continue to $MAIN:9"
+
+ gdb_test "print a" \
+ " = 3" \
+ "print a after call to subf"
+
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/common.f gdb/testsuite/gdb.fortran/common.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/common.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/common.f Thu Jul 22 17:49:53 1999
***************
*** 0 ****
--- 1,32 ----
+ C Test for common -- a in main is not in the same common block as are the
+ C a's in subf and subg
+
+ integer ::a = 0
+
+ a=3
+ print *, "main::a =", a
+ call subf()
+ print *, "main::a =", a
+ end
+
+
+ subroutine subf()
+ integer a
+ common a
+
+ a=4
+ print *, "subf::a =", a
+ call subg()
+ print *, "subf::a =", a
+ return
+ end
+
+ subroutine subg()
+ integer a
+ common a
+
+ print *, "subg::a =", a
+ a=5
+ print *, "subg::a =", a
+ return
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/common1.exp gdb/testsuite/gdb.fortran/common1.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/common1.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/common1.exp Thu Jul 22 17:49:53 1999
***************
*** 0 ****
--- 1,147 ----
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+ #
+ # Fortran common test
+ #
+ # Source file: common1.f
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "common1"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ set MAIN "main"
+ if {[istarget "hppa*-*-hpux*"]} { set MAIN "_MAIN_"}
+
+ 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 ] {
+ perror "couldn't run to breakpoint $MAIN"
+ continue
+ }
+
+ # set up break points and get to first breakpoint
+
+ gdb_test "break 8" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 8." \
+ "break in $MAIN:8"
+
+ gdb_test "break 10" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 10." \
+ "break in $MAIN:10"
+
+ gdb_test "break 18" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 18." \
+ "break in subf:18"
+
+ gdb_test "break 20" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 20." \
+ "break in subf:20"
+
+ gdb_test "break 22" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 22." \
+ "break in subf:22"
+
+ gdb_test "break 31" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 31." \
+ "break in subg:31"
+
+ gdb_test "break 33" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 33." \
+ "break in subg:33"
+
+ # try info command in $MAIN
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, $MAIN \\(.*\\) at .*$srcfile:8.*" \
+ "continue to $MAIN:8"
+
+ gdb_test "info common" \
+ "All COMMON blocks visible at this level:\r\n\r\n_BLNK" \
+ "$MAIN: info common"
+
+ gdb_test "info common _BLNK" \
+ "Contents of COMMON block '_BLNK':\r\n\r\n.*a = 3" \
+ "$MAIN: info common _BLNK"
+
+ # continue to subf
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, subf \\(\\) at .*$srcfile:18.*" \
+ "continue to subf:18"
+
+ gdb_test "info common" \
+ "All COMMON blocks visible at this level:\r\n\r\n_BLNK" \
+ "subf: info common"
+
+ gdb_test "info common _BLNK" \
+ "Contents of COMMON block '_BLNK':\r\n\r\n.*a = 3" \
+ "subf: info common _BLNK on entering subf"
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, subf \\(\\) at .*$srcfile:20.*" \
+ "continue to subf:20"
+
+ gdb_test "info common _BLNK" \
+ "Contents of COMMON block '_BLNK':\r\n\r\n.*a = 4" \
+ "subf: info common _BLNK after assignment"
+
+ # continue to subg
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, subg \\(\\) at .*$srcfile:31.*" \
+ "continue to subg:31"
+
+ gdb_test "info common" \
+ "All COMMON blocks visible at this level:\r\n\r\n_BLNK" \
+ "subg: info common on entering subg"
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, subg \\(\\) at .*$srcfile:33.*" \
+ "continue to subg:33"
+
+ gdb_test "info common _BLNK" \
+ "Contents of COMMON block '_BLNK':\r\n\r\n.*a = 5" \
+ "subg: info common _BLNK after modifying a"
+
+ # return to subf
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, subf \\(\\) at .*$srcfile:22.*" \
+ "continue to subf:22"
+
+ gdb_test "info common _BLNK" \
+ "Contents of COMMON block '_BLNK':\r\n\r\n.*a = 5" \
+ "subf: info common _BLNK after call to subg"
+
+ # return to main
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, $MAIN \\(.*\\) at .*$srcfile:10.*" \
+ "continue to $MAIN:10"
+
+ gdb_test "info common _BLNK" \
+ "Contents of COMMON block '_BLNK':\r\n\r\n.*a = 5" \
+ "$MAIN: info common _BLNK after call to subf"
+
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/common1.f gdb/testsuite/gdb.fortran/common1.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/common1.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/common1.f Thu Jul 22 17:49:53 1999
***************
*** 0 ****
--- 1,35 ----
+ C Similar test to common.f, but here a in _MAIN_ is also in the
+ C same common block as the a's in subf and subg
+
+ integer a
+ common a
+
+ a=3
+ print *, "main::a =", a
+ call subf()
+ print *, "main::a =", a
+ end
+
+
+ subroutine subf()
+ integer a
+ common a
+
+ print *, "subf::a =", a
+ a=4
+ print *, "subf::a =", a
+ call subg()
+ print *, "subf::a =", a
+ return
+ end
+
+
+ subroutine subg()
+ integer a
+ common a
+
+ print *, "subg::a =", a
+ a=5
+ print *, "subg::a =", a
+ return
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/common2.exp gdb/testsuite/gdb.fortran/common2.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/common2.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/common2.exp Thu Jul 22 17:49:53 1999
***************
*** 0 ****
--- 1,147 ----
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+ #
+ # Fortran common test
+ #
+ # Source file: common2.f
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "common2"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ set MAIN "main"
+ if {[istarget "hppa*-*-hpux*"]} { set MAIN "_MAIN_"}
+
+ 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 ] {
+ perror "couldn't run to breakpoint $MAIN"
+ continue
+ }
+
+ # set up break points and get to first breakpoint
+
+ gdb_test "break 7" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 7." \
+ "break in $MAIN:7"
+
+ gdb_test "break 9" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 9." \
+ "break in $MAIN:9"
+
+ gdb_test "break 18" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 18." \
+ "break in subh:18"
+
+ gdb_test "break 20" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 20." \
+ "break in subh:20"
+
+ gdb_test "break 29" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 29." \
+ "break in subi:29"
+
+ gdb_test "break 31" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 31." \
+ "break in subi:31"
+
+ # try info command in $MAIN
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, $MAIN \\(.*\\) at .*$srcfile:7.*" \
+ "continue to $MAIN:7"
+
+ gdb_test "info common" \
+ "All COMMON blocks visible at this level:\r\n\r\n_BLNK" \
+ "$MAIN: info common"
+
+ gdb_test "info common _BLNK" \
+ "Contents of COMMON block '_BLNK':\r\n\r\n.*a = 3" \
+ "$MAIN: info common _BLNK"
+
+ # continue to subh
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, subh \\(\\) at .*$srcfile:18.*" \
+ "continue to subh:18"
+
+ gdb_test "info common" \
+ "All COMMON blocks visible at this level:\r\n\r\nc" \
+ "subh: info common"
+
+ gdb_test "info common c" \
+ "Contents of COMMON block 'c':\r\n\r\n.*a = 6" \
+ "subh: info common c"
+
+ # continue to subi
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, subi \\(\\) at .*$srcfile:29.*" \
+ "continue to subi:29"
+
+ gdb_test "info common" \
+ "All COMMON blocks visible at this level:\r\n\r\nc" \
+ "subi: info common"
+
+ gdb_test "info common c" \
+ "Contents of COMMON block 'c':\r\n\r\n.*a = 8.40779079e-45" \
+ "subh: info common c on entering subi"
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, subi \\(\\) at .*$srcfile:31.*" \
+ "continue to subi:31"
+
+ gdb_test "info common c" \
+ "Contents of COMMON block 'c':\r\n\r\n.*a = 7.5" \
+ "subh: info common c after assignment"
+
+ # return to subh
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, subh \\(\\) at .*$srcfile:20.*" \
+ "continue to subh:20"
+
+ gdb_test "info common c" \
+ "Contents of COMMON block 'c':\r\n\r\n.*a = 1089470464" \
+ "subh: info common c after call to subi"
+
+ # return to main
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, $MAIN \\(.*\\) at .*$srcfile:9.*" \
+ "continue to $MAIN:9"
+
+ gdb_test "info common _BLNK" \
+ "Contents of COMMON block '_BLNK':\r\n\r\n.*a = 3" \
+ "$MAIN: info common _BLNK after call to subh"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/common2.f gdb/testsuite/gdb.fortran/common2.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/common2.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/common2.f Thu Jul 22 17:49:54 1999
***************
*** 0 ****
--- 1,33 ----
+ C subh and subi use common "c" but with different types for a
+
+ integer a
+ common a
+
+ a=3
+ print *, "main::a =", a
+ call subh()
+ print *, "main::a =", a
+ end
+
+
+ subroutine subh()
+ integer a
+ common /c/ a
+
+ a=6
+ print *, "subh::a =", a
+ call subi()
+ print *, "subh::a =", a
+ return
+ end
+
+
+ subroutine subi()
+ real a
+ common /c/ a
+
+ print *, "subi::a =", a
+ a=7.5
+ print *, "subi::a =", a
+ return
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/common3.exp gdb/testsuite/gdb.fortran/common3.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/common3.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/common3.exp Thu Jul 22 17:49:54 1999
***************
*** 0 ****
--- 1,120 ----
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+ #
+ # Fortran common test
+ #
+ # Source file: common3.f
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "common3"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ set MAIN "main"
+ if {[istarget "hppa*-*-hpux*"]} { set MAIN "_MAIN_"}
+
+ 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 ] {
+ perror "couldn't run to breakpoint $MAIN"
+ continue
+ }
+
+ # set up break points and get to first breakpoint
+
+ gdb_test "break 9" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 9." \
+ "break in $MAIN:9"
+
+ gdb_test "break 12" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 12." \
+ "break in $MAIN:12"
+
+ gdb_test "break 34" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 34." \
+ "break in f:34"
+
+ gdb_test "break 43" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 43." \
+ "break in f:43"
+
+ # try info command in $MAIN
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, $MAIN \\(.*\\) at .*$srcfile:9.*" \
+ "continue to $MAIN:9"
+
+ gdb_test "info common" \
+ "All COMMON blocks visible at this level:\r\n\r\n_BLNK" \
+ "$MAIN: info common"
+
+ gdb_test "info common _BLNK" \
+ "Contents of COMMON block '_BLNK':\r\n\r\na = 3\r\nb = 4" \
+ "$MAIN: info common _BLNK"
+
+ # continue to function f
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, f \\(\\) at .*$srcfile:34.*" \
+ "continue to f:34"
+
+ gdb_test "info common" \
+ "All COMMON blocks visible at this level:\r\n\r\n(_BLNK\r\nbcommon|bcommon\r\n_BLNK)" \
+ "f: info common"
+
+ gdb_test "info common _BLNK" \
+ "Contents of COMMON block '_BLNK':\r\n\r\n.*a = 3" \
+ "f: info common _BLNK"
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, f \\(\\) at .*$srcfile:43.*" \
+ "continue to f:43"
+
+ gdb_test "info common _BLNK" \
+ "Contents of COMMON block '_BLNK':\r\n\r\na = 5" \
+ "f: info common _BLNK after assignments "
+
+ gdb_test "info common bcommon" \
+ "Contents of COMMON block 'bcommon':\r\n\r\nb1 = 55\r\nb2 = 66" \
+ "f: info common bcommon"
+
+ # return to main
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, $MAIN \\(.*\\) at .*$srcfile:12.*" \
+ "continue to main:12"
+
+ gdb_test "info common _BLNK" \
+ "Contents of COMMON block '_BLNK':\r\n\r\na = 5\r\nb = 4" \
+ "$MAIN: info common _BLNK after call to f"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/common3.f gdb/testsuite/gdb.fortran/common3.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/common3.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/common3.f Thu Jul 22 17:49:54 1999
***************
*** 0 ****
--- 1,48 ----
+ C Test with multiple variables in a common block
+
+ integer a
+ integer b
+ common a, b
+
+ a=3
+ b=4
+ print *, 'main: a=', a
+ print *, 'main: b=', b
+ call f()
+ print *, 'main: a=', a
+ print *, 'main: b=', b
+ end
+
+
+ subroutine f()
+ integer z
+
+ integer a
+ common a
+
+ integer b
+ integer y
+
+ integer b1
+ common /bcommon/ b1
+
+ integer x
+
+ integer b2
+ common /bcommon/ b2
+
+ print *, 'f: a=', a
+ print *, 'f: b=', b
+ z = 100
+ a = 5
+ b = 6
+ y = 200
+ b1 = 55
+ x = 100
+ b2 = 66
+ print *, 'f: a=', a
+ print *, 'f: b=', b
+ print *, 'f: b1=', b1
+ print *, 'f: b2=', b2
+ return
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/configure gdb/testsuite/gdb.fortran/configure
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/configure Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/configure Thu Jul 22 17:49:54 1999
***************
*** 0 ****
--- 1,899 ----
+ #! /bin/sh
+
+ # Guess values for system-dependent variables and create Makefiles.
+ # Generated automatically using autoconf version 2.12.1
+ # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+ #
+ # This configure script is free software; the Free Software Foundation
+ # gives unlimited permission to copy, distribute and modify it.
+
+ # Defaults:
+ ac_help=
+ ac_default_prefix=/usr/local
+ # Any additions from configure.in:
+
+ # Initialize some variables set by options.
+ # The variables have the same names as the options, with
+ # dashes changed to underlines.
+ build=NONE
+ cache_file=./config.cache
+ exec_prefix=NONE
+ host=NONE
+ no_create=
+ nonopt=NONE
+ no_recursion=
+ prefix=NONE
+ program_prefix=NONE
+ program_suffix=NONE
+ program_transform_name=s,x,x,
+ silent=
+ site=
+ srcdir=
+ target=NONE
+ verbose=
+ x_includes=NONE
+ x_libraries=NONE
+ bindir='${exec_prefix}/bin'
+ sbindir='${exec_prefix}/sbin'
+ libexecdir='${exec_prefix}/libexec'
+ datadir='${prefix}/share'
+ sysconfdir='${prefix}/etc'
+ sharedstatedir='${prefix}/com'
+ localstatedir='${prefix}/var'
+ libdir='${exec_prefix}/lib'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+ infodir='${prefix}/info'
+ mandir='${prefix}/man'
+
+ # Initialize some other variables.
+ subdirs=
+ MFLAGS= MAKEFLAGS=
+ SHELL=${CONFIG_SHELL-/bin/sh}
+ # Maximum number of lines to put in a shell here document.
+ ac_max_here_lines=12
+
+ ac_prev=
+ for ac_option
+ do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+ Usage: configure [options] [host]
+ Options: [defaults in brackets after descriptions]
+ Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --version print the version of autoconf that created configure
+ Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+ EOF
+ cat << EOF
+ Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+ Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+ EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.12.1"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+ done
+
+ if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+ fi
+
+ trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+ # File descriptor usage:
+ # 0 standard input
+ # 1 file creation
+ # 2 errors and warnings
+ # 3 some systems may open it to /dev/tty
+ # 4 used on the Kubota Titan
+ # 6 checking for... messages and results
+ # 5 compiler messages saved in config.log
+ if test "$silent" = yes; then
+ exec 6>/dev/null
+ else
+ exec 6>&1
+ fi
+ exec 5>./config.log
+
+ echo "\
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+ " 1>&5
+
+ # Strip out --no-create and --no-recursion so they do not pile up.
+ # Also quote any args containing shell metacharacters.
+ ac_configure_args=
+ for ac_arg
+ do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+ done
+
+ # NLS nuisances.
+ # Only set these to C if already set. These must not be set unconditionally
+ # because not all systems understand e.g. LANG=C (notably SCO).
+ # Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+ # Non-C LC_CTYPE values break the ctype check.
+ if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+ if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+ if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+ if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+ # confdefs.h avoids OS command line length limits that DEFS can exceed.
+ rm -rf conftest* confdefs.h
+ # AIX cpp loses on an empty file, so make sure it contains at least a newline.
+ echo > confdefs.h
+
+ # A filename unique to this package, relative to the directory that
+ # configure is in, which we can look for to find out if srcdir is correct.
+ ac_unique_file=types.exp
+
+ # Find the source files, if location was not specified.
+ if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+ else
+ ac_srcdir_defaulted=no
+ fi
+ if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+ fi
+ srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+ # Prefer explicitly selected file to automatically selected ones.
+ if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+ fi
+ for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+ done
+
+ if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+ else
+ echo "creating cache $cache_file"
+ > $cache_file
+ fi
+
+ ac_ext=c
+ # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ cross_compiling=$ac_cv_prog_cc_cross
+
+ if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+ ' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+ else
+ ac_n= ac_c='\c' ac_t=
+ fi
+
+
+
+ CC=${CC-cc}
+
+ ac_aux_dir=
+ for ac_dir in `cd $srcdir;pwd`/../../.. $srcdir/`cd $srcdir;pwd`/../../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+ done
+ if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in `cd $srcdir;pwd`/../../.. $srcdir/`cd $srcdir;pwd`/../../.." 1>&2; exit 1; }
+ fi
+ ac_config_guess=$ac_aux_dir/config.guess
+ ac_config_sub=$ac_aux_dir/config.sub
+ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+
+ # Do some error checking and defaulting for the host and target type.
+ # The inputs are:
+ # configure --host=HOST --target=TARGET --build=BUILD NONOPT
+ #
+ # The rules are:
+ # 1. You are not allowed to specify --host, --target, and nonopt at the
+ # same time.
+ # 2. Host defaults to nonopt.
+ # 3. If nonopt is not specified, then host defaults to the current host,
+ # as determined by config.guess.
+ # 4. Target and build default to nonopt.
+ # 5. If nonopt is not specified, then target and build default to host.
+
+ # The aliases save the names the user supplied, while $host etc.
+ # will get canonicalized.
+ case $host---$target---$nonopt in
+ NONE---*---* | *---NONE---* | *---*---NONE) ;;
+ *) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
+ esac
+
+
+ # Make sure we can run config.sub.
+ if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+ fi
+
+ echo $ac_n "checking host system type""... $ac_c" 1>&6
+ echo "configure:573: checking host system type" >&5
+
+ host_alias=$host
+ case "$host_alias" in
+ NONE)
+ case $nonopt in
+ NONE)
+ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+ else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+ fi ;;
+ *) host_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+ host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$host" 1>&6
+
+ echo $ac_n "checking target system type""... $ac_c" 1>&6
+ echo "configure:594: checking target system type" >&5
+
+ target_alias=$target
+ case "$target_alias" in
+ NONE)
+ case $nonopt in
+ NONE) target_alias=$host_alias ;;
+ *) target_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
+ target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$target" 1>&6
+
+ echo $ac_n "checking build system type""... $ac_c" 1>&6
+ echo "configure:612: checking build system type" >&5
+
+ build_alias=$build
+ case "$build_alias" in
+ NONE)
+ case $nonopt in
+ NONE) build_alias=$host_alias ;;
+ *) build_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+ build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$build" 1>&6
+
+ test "$host_alias" != "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+
+ trap '' 1 2 15
+ cat > confcache <<\EOF
+ # This file is a shell script that caches the results of configure
+ # tests run on this system so they can be shared between configure
+ # scripts and configure runs. It is not useful on other systems.
+ # If it contains results you don't want to keep, you may remove or edit it.
+ #
+ # By default, configure uses ./config.cache as the cache file,
+ # creating it if it does not exist already. You can give configure
+ # the --cache-file=FILE option to use a different cache file; that is
+ # what configure does when it calls configure scripts in
+ # subdirectories, so they share the cache.
+ # Giving --cache-file=/dev/null disables caching, for debugging configure.
+ # config.status only pays attention to the cache file if you give it the
+ # --recheck option to rerun configure.
+ #
+ EOF
+ # The following way of writing the cache mishandles newlines in values,
+ # but we know of no workaround that is simple, portable, and efficient.
+ # So, don't put newlines in cache variables' values.
+ # Ultrix sh set writes to stderr and can't be redirected directly,
+ # and sets the high bit in the cache file unless we assign to the vars.
+ (set) 2>&1 |
+ case `(ac_space=' '; set) 2>&1 | grep ac_space` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+ if cmp -s $cache_file confcache; then
+ :
+ else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+ fi
+ rm -f confcache
+
+ trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+ test "x$prefix" = xNONE && prefix=$ac_default_prefix
+ # Let make expand exec_prefix.
+ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+ # Any assignment to VPATH causes Sun make to only execute
+ # the first set of double-colon rules, so remove it if not needed.
+ # If there is a colon in the path, we need to keep it.
+ if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+ fi
+
+ trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+ # Transform confdefs.h into DEFS.
+ # Protect against shell expansion while executing Makefile rules.
+ # Protect against Makefile macro expansion.
+ cat > conftest.defs <<\EOF
+ s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+ s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
+ s%\[%\\&%g
+ s%\]%\\&%g
+ s%\$%$$%g
+ EOF
+ DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+ rm -f conftest.defs
+
+
+ # Without the "./", some shells look in PATH for config.status.
+ : ${CONFIG_STATUS=./config.status}
+
+ echo creating $CONFIG_STATUS
+ rm -f $CONFIG_STATUS
+ cat > $CONFIG_STATUS <<EOF
+ #! /bin/sh
+ # Generated automatically by configure.
+ # Run this file to recreate the current configuration.
+ # This directory was configured as follows,
+ # on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+ #
+ # $0 $ac_configure_args
+ #
+ # Compiler output produced by configure, useful for debugging
+ # configure, is in ./config.log if it exists.
+
+ ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+ for ac_option
+ do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.12.1"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+ done
+
+ ac_given_srcdir=$srcdir
+
+ trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+ EOF
+ cat >> $CONFIG_STATUS <<EOF
+
+ # Protect against being on the right side of a sed subst in config.status.
+ sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+ $ac_vpsub
+ $extrasub
+ s%@SHELL@%$SHELL%g
+ s%@CFLAGS@%$CFLAGS%g
+ s%@CPPFLAGS@%$CPPFLAGS%g
+ s%@CXXFLAGS@%$CXXFLAGS%g
+ s%@DEFS@%$DEFS%g
+ s%@LDFLAGS@%$LDFLAGS%g
+ s%@LIBS@%$LIBS%g
+ s%@exec_prefix@%$exec_prefix%g
+ s%@prefix@%$prefix%g
+ s%@program_transform_name@%$program_transform_name%g
+ s%@bindir@%$bindir%g
+ s%@sbindir@%$sbindir%g
+ s%@libexecdir@%$libexecdir%g
+ s%@datadir@%$datadir%g
+ s%@sysconfdir@%$sysconfdir%g
+ s%@sharedstatedir@%$sharedstatedir%g
+ s%@localstatedir@%$localstatedir%g
+ s%@libdir@%$libdir%g
+ s%@includedir@%$includedir%g
+ s%@oldincludedir@%$oldincludedir%g
+ s%@infodir@%$infodir%g
+ s%@mandir@%$mandir%g
+ s%@CC@%$CC%g
+ s%@host@%$host%g
+ s%@host_alias@%$host_alias%g
+ s%@host_cpu@%$host_cpu%g
+ s%@host_vendor@%$host_vendor%g
+ s%@host_os@%$host_os%g
+ s%@target@%$target%g
+ s%@target_alias@%$target_alias%g
+ s%@target_cpu@%$target_cpu%g
+ s%@target_vendor@%$target_vendor%g
+ s%@target_os@%$target_os%g
+ s%@build@%$build%g
+ s%@build_alias@%$build_alias%g
+ s%@build_cpu@%$build_cpu%g
+ s%@build_vendor@%$build_vendor%g
+ s%@build_os@%$build_os%g
+
+ CEOF
+ EOF
+
+ cat >> $CONFIG_STATUS <<\EOF
+
+ # Split the substitutions into bite-sized pieces for seds with
+ # small command number limits, like on Digital OSF/1 and HP-UX.
+ ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ ac_file=1 # Number of current file.
+ ac_beg=1 # First line for current file.
+ ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ ac_more_lines=:
+ ac_sed_cmds=""
+ while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+ done
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+ fi
+ EOF
+
+ cat >> $CONFIG_STATUS <<EOF
+
+ CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+ EOF
+ cat >> $CONFIG_STATUS <<\EOF
+ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+ # $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+ s%@configure_input@%$configure_input%g
+ s%@srcdir@%$srcdir%g
+ s%@top_srcdir@%$top_srcdir%g
+ " $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+ fi; done
+ rm -f conftest.s*
+
+ EOF
+ cat >> $CONFIG_STATUS <<EOF
+
+ EOF
+ cat >> $CONFIG_STATUS <<\EOF
+
+ exit 0
+ EOF
+ chmod +x $CONFIG_STATUS
+ rm -fr confdefs* $ac_clean_files
+ test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/configure.in gdb/testsuite/gdb.fortran/configure.in
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/configure.in Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/configure.in Thu Jul 22 17:49:54 1999
***************
*** 0 ****
--- 1,15 ----
+ dnl Process this file file with autoconf to produce a configure script.
+ dnl This file is a shell script fragment that supplies the information
+ dnl necessary to tailor a template configure script into the configure
+ dnl script appropriate for this directory. For more information, check
+ dnl any existing configure script.
+
+ AC_PREREQ(2.5)
+ AC_INIT(types.exp)
+
+ CC=${CC-cc}
+ AC_SUBST(CC)
+ AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../../..)
+ AC_CANONICAL_SYSTEM
+
+ AC_OUTPUT(Makefile)
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/entry1.exp gdb/testsuite/gdb.fortran/entry1.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/entry1.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/entry1.exp Thu Jul 22 17:49:55 1999
***************
*** 0 ****
--- 1,145 ----
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+ #
+ # Fortran test to verify that entry points work
+ #
+ # Source file: entry1.f
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "entry1"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if {[istarget "hppa2.0*-*-hpux*"]} {
+ untested "test ignored -- see JAGab14095"
+ continue
+ }
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ #
+ # set it up at a breakpoint a manipulate stack
+ gdb_test "break manipulate_stack"
+ if {$hp_f90_compiler} {setup_xfail "hppa*-*-hpux*" JAGab14095}
+ gdb_test "run" \
+ "Starting program:.*$binfile.*Breakpoint $decimal, push \\(value=10\\) at.*$srcfile:$decimal.*IF \\(TOP .EQ. SIZE\\) STOP 'STACK OVERFLOW'" \
+ "run to manipulate_stack"
+ if {$hp_f90_compiler} {setup_xfail "hppa*-*-hpux*" JAGab14095}
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, push \\(value=15\\) at .*$srcfile:$decimal.*IF \\(TOP .EQ. SIZE\\) STOP 'STACK OVERFLOW'" \
+ "second stop at manipulate_stack"
+ if {$hp_f90_compiler} {setup_xfail "hppa*-*-hpux*" JAGab14095}
+ gdb_test "continue" \
+ "Continuing.*I = 15.*J = 10.*Program exited normally." \
+ "continue from manipulate stack to end of program"
+
+ # rerun test using entry point PUSH for breakpoint
+ delete_breakpoints
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+ gdb_test "break push"
+ gdb_test "run" \
+ "Starting program:.*$binfile.*Breakpoint $decimal, push \\(value=10\\) at.*$srcfile:$decimal.*IF \\(TOP .EQ. SIZE\\) STOP 'STACK OVERFLOW'" \
+ "run to push"
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, push \\(value=15\\) at .*$srcfile:$decimal.*IF \\(TOP .EQ. SIZE\\) STOP 'STACK OVERFLOW'" \
+ "second stop at push"
+ gdb_test "break 25" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 25." \
+ "break at end of push"
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, push \\(value=15\\) at .*$srcfile:$decimal.*RETURN" \
+ "continue to end of push"
+ gdb_test "info locals" \
+ "(stack = \\(10, 15.*\\).*top = 2|top = 2.*stack = \\(10, 15.*\\))" \
+ "info locals in push"
+ gdb_test "continue" \
+ "Continuing.*I = 15.*J = 10.*Program exited normally." \
+ "continue from push to end of program"
+
+ # rerun test using entry point POP for breakpoint
+ delete_breakpoints
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+ gdb_test "break pop"
+ gdb_test "run" \
+ "Starting program:.*$binfile.*Breakpoint $decimal, pop \\(value=.*\\) at.*$srcfile:$decimal.*IF \\(TOP .EQ. 0\\) STOP 'STACK UNDERFLOW'" \
+ "run to pop"
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, pop \\(value=.*\\) at .*$srcfile:$decimal.*IF \\(TOP .EQ. 0\\) STOP 'STACK UNDERFLOW'" \
+ "second stop at pop"
+ gdb_test "break 32" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 32." \
+ "break at end of pop"
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, pop \\(value=10\\) at .*$srcfile:$decimal.*RETURN" \
+ "continue to end of pop"
+ gdb_test "info locals" \
+ "(stack = \\(10, 15.*\\).*top = 0|top = 0.*stack = \\(10, 15.*\\))" \
+ "info locals in pop"
+ gdb_test "continue" \
+ "Continuing.*I = 15.*J = 10.*Program exited normally." \
+ "continue from pop to end of program"
+
+ # rerun test to verify stepping out of entry point functions work
+ # try a breakpoint in entry push
+ delete_breakpoints
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+ gdb_test "break 25" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 25." \
+ "break on return in push"
+ gdb_test "run" \
+ "Starting program: $binfile.*Breakpoint $decimal, push \\(value=10\\) at .*$srcfile:25.*RETURN" \
+ "run to return in push"
+ gdb_test "next" ".*END SUBROUTINE MANIPULATE_STACK" "end of push"
+ gdb_test "next" ".*CALL PUSH\\(15\\)" "return to caller from push"
+
+ # try a breakpoint in the entry pop
+ delete_breakpoints
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ gdb_test "break 32" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 32." \
+ "break on return in pop"
+ gdb_test "run" \
+ "Starting program: $binfile.*Breakpoint $decimal, pop \\(value=15\\) at .*$srcfile:32.*RETURN" \
+ "run to return in pop"
+ gdb_test "next" ".*END SUBROUTINE MANIPULATE_STACK" "end of pop"
+ gdb_test "next" ".*CALL POP\\(J\\)" "return to caller from pop"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/entry1.f gdb/testsuite/gdb.fortran/entry1.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/entry1.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/entry1.f Thu Jul 22 17:49:55 1999
***************
*** 0 ****
--- 1,34 ----
+ C Example from HP Fortran/9000 programmer's reference manual
+
+ PROGRAM STACK_EXAMPLE
+ CALL PUSH(10)
+ CALL PUSH(15)
+ CALL POP(I)
+ CALL POP(J)
+ PRINT *, "I = ", I
+ PRINT *, "J = ", J
+ END PROGRAM STACK_EXAMPLE
+
+ SUBROUTINE MANIPULATE_STACK
+ IMPLICIT NONE
+ INTEGER SIZE, TOP, VALUE
+ PARAMETER (SIZE = 5)
+ INTEGER STACK(SIZE)
+ SAVE STACK, TOP
+ DATA TOP /0/
+
+ C PUSH VALUE ONTO THE STACK
+ ENTRY PUSH (VALUE)
+ IF (TOP .EQ. SIZE) STOP 'STACK OVERFLOW'
+ TOP = TOP + 1
+ STACK(TOP) = VALUE
+ RETURN
+
+ C POP THE TOP OF THE STACK AND PLACE IN VALUE
+ ENTRY POP (VALUE)
+ IF (TOP .EQ. 0) STOP 'STACK UNDERFLOW'
+ VALUE = STACK(TOP)
+ TOP = TOP - 1
+ RETURN
+
+ END SUBROUTINE MANIPULATE_STACK
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/entry2.exp gdb/testsuite/gdb.fortran/entry2.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/entry2.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/entry2.exp Thu Jul 22 17:49:55 1999
***************
*** 0 ****
--- 1,73 ----
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+ #
+ # Fortran test to verify that entry points work
+ #
+ # Source file: entry2.f
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "entry2"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ #
+ # set up a breakpoint at divby
+ gdb_test "break divby"
+
+ if {$hp_f90_compiler} {setup_xfail "hppa*-*-hpux*" JAGab14092}
+ gdb_test "run" \
+ "Starting program:.*$binfile.*Breakpoint $decimal, divby \\(x=12, y=4\\) at.*$srcfile:$decimal.*y = x/y" \
+ "run to divby"
+ gdb_test "info local" "No locals." "info local in divby"
+ gdb_test "continue" \
+ "Continuing.*Program exited normally." \
+ "continue to end of program from divby"
+ delete_breakpoints
+
+ # rerun test using entry point add2 for breakpoint
+
+ gdb_test "break add2"
+ setup_xfail "hppa2.0*-*-hpux11*" JAGab14095
+ gdb_test "run" \
+ "Starting program:.*$binfile.*Breakpoint $decimal, add2 \\(x=12\\) at.*$srcfile:$decimal.*x = x\\+2" \
+ "run to add2"
+ # y is local to the subroutine, but probably has a garbage address, so
+ # avoid printing the value; use ptype to show that y is known to the debugger
+ gdb_test "ptype y" "type = (real\\*8|PTR TO -> \\( real\\*8 \\))" "ptype of y in add2"
+ setup_xfail "hppa2.0*-*-hpux11*" JAGab14095
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, add2 \\(x=3\\) at .*$srcfile:$decimal.*x = x\\+2" \
+ "second stop at add2"
+ setup_xfail "hppa2.0*-*-hpux11*" JAGab14095
+ gdb_test "continue" \
+ "Continuing.*Program exited normally." \
+ "continue to end of program from add2"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/entry2.f gdb/testsuite/gdb.fortran/entry2.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/entry2.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/entry2.f Thu Jul 22 17:49:55 1999
***************
*** 0 ****
--- 1,17 ----
+ program entry_point_test
+ real*8 x,y
+ x = 12.0
+ y = 4.0
+ call divby (x,y)
+ write (*,*) 'y = ',y
+ call add2(y)
+ write (*,*) 'y = ',y
+ end
+
+ SUBROUTINE divby (x,y)
+ real*8 x,y
+ y = x/y
+ ENTRY add2(x)
+ x = x+2
+ RETURN
+ END
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/exprs.exp gdb/testsuite/gdb.fortran/exprs.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/exprs.exp Thu Mar 6 14:32:14 1997
--- gdb/testsuite/gdb.fortran/exprs.exp Thu Jul 22 17:49:51 1999
***************
*** 188,194 ****
gdb_test "print \$0" "\\\$8 = 102" \
"Print value-history\[MAX\] using explicit index \$0"
! gdb_test "print 108" "\\\$9 = 108" ""
gdb_test "print \$\$0" "\\\$10 = 108" \
"Print value-history\[MAX\] using explicit index \$\$0"
--- 188,194 ----
gdb_test "print \$0" "\\\$8 = 102" \
"Print value-history\[MAX\] using explicit index \$0"
! gdb_test "print 108" "\\\$9 = 108"
gdb_test "print \$\$0" "\\\$10 = 108" \
"Print value-history\[MAX\] using explicit index \$\$0"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/exprs2.exp gdb/testsuite/gdb.fortran/exprs2.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/exprs2.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/exprs2.exp Thu Jul 22 17:50:05 1999
***************
*** 0 ****
--- 1,102 ----
+ # Author: Ovidiu Predescu <ovidiu@cup.hp.com>, September, 1998
+ #
+ # Check simple expressions using intrinsic Fortran data types
+
+ set testfile "exprs2"
+ set srcfile intrinsics.f
+ set binfile ${objdir}/${subdir}/intrinsics
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ proc check_expr {expr type value} {
+ check_expr_expect $expr $type $value pass
+ }
+
+ proc check_expr_expect {expr type value expect} {
+ global prompt
+
+ gdb_test "print $expr" ".*= $value"
+
+ # send "ptype $expr\n"
+ # expect {
+ # -re "$type\r\n$prompt $" {$expect "type of '$expr'"}
+ # -re "type = (.*)\r\n$prompt $" {fail "type of '$expr' (expect '$type', got '$expect_out(1,string)')"}
+ # }
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ if ![runto _MAIN_ ] then {
+ perror "couldn't run to breakpoint _MAIN_"
+ continue
+ }
+
+ check_expr "i2 * j2" "integer\\*2" 8
+
+ # Check the exponentiation operator on various types
+ check_expr "i2 ** j2" "integer\\*2" 16
+ check_expr "i4 ** j4" "integer\\*4" 16
+ check_expr "r4 ** s4" "real\\*4" 16
+ check_expr "r8 ** s8" "real\\*8" 16
+ check_expr "r16 ** s16" "real\\*16" 16
+ # Mixed types
+ check_expr "i2 ** s4" "real\\*4" 16
+ check_expr "i2 ** s16" "real\\*16" 16
+
+ # Check the precedence of the exponentiation operator
+ check_expr "4 ** 3 ** 2" ".*" 262144
+ check_expr "4 * 3 ** 2" ".*" 36
+ check_expr "9 / 3 ** 2" ".*" 1
+ check_expr "1 + 3 ** 2" ".*" 10
+ check_expr "10 - 3 ** 2" ".*" 1
+ check_expr "-3 ** 2" ".*" "-9"
+
+
+ # Check the .eqv. and .neqv. operators on various logical types
+ check_expr "l1 .eqv. m1" "logical\\*1" ".FALSE."
+ check_expr "l1 .eqv. (.not. m1)" "logical\\*1" ".TRUE."
+ check_expr "l2 .eqv. m2" "logical\\*2" ".FALSE."
+ check_expr "l2 .eqv. (.not. m2)" "logical\\*2" ".TRUE."
+ check_expr "l4 .eqv. m4" "logical\\*4" ".FALSE."
+ check_expr "l4 .eqv. (.not. m4)" "logical\\*4" ".TRUE."
+
+ check_expr "l1 .neqv. m1" "logical\\*1" ".TRUE."
+ check_expr "l1 .neqv. (.not. m1)" "logical\\*1" ".FALSE."
+ check_expr "l2 .neqv. m2" "logical\\*2" ".TRUE."
+ check_expr "l2 .neqv. (.not. m2)" "logical\\*2" ".FALSE."
+ check_expr "l4 .neqv. m4" "logical\\*4" ".TRUE."
+ check_expr "l4 .neqv. (.not. m4)" "logical\\*4" ".FALSE."
+
+ # Check the precedence of .eqv. and .neqv.
+ check_expr ".false. .and. .false. .eqv. .false." "logical*" ".TRUE."
+ # if .eqv. is executed first in the above expression the result
+ # would be false.
+ check_expr ".true. .or. .true. .eqv. .false." "logical" ".FALSE."
+ # if .eqv. is executed first in the above expression the result
+ # would be true.
+
+
+ # Check the relational operators
+ foreach pair {{i2 j2} {i4 j4} {r4 s4} {r8 s8} {r16 s16} {ch2 ch1} {str2 str1}} {
+ set e1 [lindex $pair 0]
+ set e2 [lindex $pair 1]
+ check_expr "$e1 < $e2" "logical*" ".FALSE."
+ check_expr "$e1 > $e2" "logical*" ".TRUE."
+ check_expr "$e1 <= $e2" "logical*" ".FALSE."
+ check_expr "$e1 >= $e2" "logical*" ".TRUE."
+ check_expr "$e1 == $e2" "logical*" ".FALSE."
+ check_expr "$e1 /= $e2" "logical*" ".TRUE."
+ }
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/frames.exp gdb/testsuite/gdb.fortran/frames.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/frames.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/frames.exp Thu Jul 22 17:49:55 1999
***************
*** 0 ****
--- 1,123 ----
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+
+ # This file tests the up, down, backtrace and finish commands on Fortran
+ # programs.
+ #
+ # Source file: frames.f
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "frames"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ set MAIN "main"
+ if { [istarget "hppa*-*-hpux*"] } { set MAIN "_MAIN_" }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ #
+ # set it up a breakpoint
+ #
+ if ![runto ftn4 ] {
+ perror "couldn't run to breakpoint ftn4"
+ return -1
+ }
+
+ # test the up command
+
+ gdb_test "up" \
+ "#1.*$hex in ftn3 \\(three=2\\) at .*$srcfile.*call ftn4 \\(three\\)" \
+ "up once in ftn4 "
+
+ gdb_test "up" \
+ "#2.*$hex in ftn2 \\(two=2\\) at .*$srcfile.*call ftn3 \\(dble \\(two\\)\\)" \
+ "up twice in ftn4 "
+
+ gdb_test "up" \
+ "#3.*$hex in ftn1 \\(one=2\\) at .*$srcfile.*call ftn2 \\(float \\(one\\)\\)" \
+ "up three times in ftn4 "
+
+ gdb_test "up" \
+ "#4.*$hex in $MAIN \\(.*\\) at .*$srcfile.*call ftn1 \\(int \\(i2\\)\\)" \
+ "up four times in ftn4 "
+
+ gdb_test "up" \
+ "Initial frame selected; you cannot go up." \
+ "up five times in ftn4 "
+
+ # test the down command
+ gdb_test "down" \
+ "#3.*$hex in ftn1 \\(one=2\\) at .*$srcfile.*call ftn2 \\(float \\(one\\)\\)" \
+ "down once from $MAIN in ftn4 "
+
+ gdb_test "down" \
+ "#2.*$hex in ftn2 \\(two=2\\) at .*$srcfile.*call ftn3 \\(dble \\(two\\)\\)" \
+ "down twice from $MAIN in ftn4 "
+
+ gdb_test "down" \
+ "#1.*$hex in ftn3 \\(three=2\\) at .*$srcfile.*call ftn4 \\(three\\)" \
+ "down three times from $MAIN in ftn4 "
+
+ gdb_test "down" \
+ "#0.*ftn4 \\(four=\\(2,0\\)\\) at .*$srcfile.*print \\*, four" \
+ "down four times from $MAIN in ftn4"
+
+ gdb_test "down" \
+ "Bottom \\(i.e., innermost\\) frame selected; you cannot go down." \
+ "down five times from $MAIN in ftn4"
+
+ #test backtrace command
+
+ gdb_test "backtrace" \
+ "#0 ftn4 \\(four=\\(2,0\\)\\) at .*$srcfile.*#1 $hex in ftn3 \\(three=2\\) at .*$srcfile.*#2 $hex in ftn2 \\(two=2\\) at .*$srcfile.*#3 $hex in ftn1 \\(one=2\\) at .*$srcfile.*#4 $hex in $MAIN \\(.*\\) at .*$srcfile.*" \
+ "backtrace from ftn4"
+
+ #test finish command
+
+ gdb_test "finish" \
+ "Run till exit from #0 ftn4 \\(four=\\(2,0\\)\\) at .*$srcfile.*ftn3 \\(three=2\\) at .*$srcfile.*(print \\*, three|call ftn4 \\(three\\)).*" \
+ "finish from ftn4"
+
+ gdb_test "finish" \
+ "Run till exit from #0 ($hex in |)ftn3 \\(three=2\\) at .*$srcfile.*ftn2 \\(two=2\\) at .*$srcfile.*(print \\*, two|call ftn3 \\(dble \\(two\\)\\)).*" \
+ "finish from ftn3"
+
+ gdb_test "finish" \
+ "Run till exit from #0 ($hex in |)ftn2 \\(two=2\\) at .*$srcfile.*ftn1 \\(one=2\\) at .*$srcfile.*(print \\*, one|call ftn2 \\(float \\(one\\)\\)).*" \
+ "finish from ftn2"
+
+ gdb_test "finish" \
+ "Run till exit from #0 ($hex in |)ftn1 \\(one=2\\) at .*$srcfile.*$MAIN \\(.*\\) at .*$srcfile.*(print \\*, i2|call ftn1 \\(int \\(i2\\)\\)).*" \
+ "finish from ftn1"
+
+ gdb_test "finish" \
+ ".*finish.* not meaningful in the outermost frame." \
+ "finish from $MAIN"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/frames.f gdb/testsuite/gdb.fortran/frames.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/frames.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/frames.f Thu Jul 22 17:49:56 1999
***************
*** 0 ****
--- 1,33 ----
+ C
+ C FORTRAN language test program for the debugger - level 2
+ C
+
+ program main
+ integer*2 i2
+ i2 = 2
+ call ftn1 (int (i2))
+ print *, i2
+ end
+
+ subroutine ftn1 ( one )
+ integer*4 one
+ call ftn2 (float (one))
+ print *, one
+ end
+
+ subroutine ftn2 ( two )
+ real*4 two
+ call ftn3 (dble (two))
+ print *, two
+ end
+
+ subroutine ftn3 ( three )
+ real*8 three
+ call ftn4 (three)
+ print *, three
+ end
+
+ subroutine ftn4 ( four )
+ complex*8 four
+ print *, four
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/ftypes.exp gdb/testsuite/gdb.fortran/ftypes.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/ftypes.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/ftypes.exp Thu Jul 22 17:49:56 1999
***************
*** 0 ****
--- 1,144 ----
+ # Copyright (C) 1988, 1990, 1991, 1992, 1994 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "ftypes"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ 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_ ] {
+ perror "couldn't run to breakpoint _MAIN_"
+ continue
+ }
+
+ # test integer type variables
+
+ gdb_test "ptype i" "type = integer\\*4" "ptype i"
+ gdb_test "print i" " = 2147483647" "print i"
+ gdb_test "p i = -1" " = -1" "modify i"
+
+ gdb_test "ptype i2" "type = integer\\*2" "ptype i2"
+ gdb_test "print i2" " = 2" "print i2"
+ gdb_test "p i2 = -2" " = -2" "modify i2"
+
+ gdb_test "ptype i4" "type = integer\\*4" "ptype i4"
+ gdb_test "print i4" " = 4" "print i4"
+ gdb_test "p i4 = -4" " = -4" "modify i4"
+
+ gdb_test "p i2 + 2" " = 0" "print i2 + 2"
+ gdb_test "p i4 + 4" " = 0" "print i4 + 4"
+
+ # test logical type variables
+
+ gdb_test "ptype l1" " = logical\\*1" "ptype l1"
+ gdb_test "print l1" " = .TRUE." "print l1"
+ gdb_test "x /x \&l1" ".*:.*0x01.*" "hex value of l1"
+ gdb_test "p l1 = -128" " = .TRUE." "modify l1"
+ gdb_test "x /x \&l1" ".*:.*0x80.*" "hex value of l1 after assignment"
+
+ gdb_test "ptype l2" " = logical\\*2" "ptype l2"
+ gdb_test "print l2" " = .TRUE." "print l2"
+ gdb_test "x /x \&l2" ".*:.*0x0002.*" "hex value of l2"
+
+ gdb_test "ptype l4" " = logical\\*4" "ptype l4"
+ gdb_test "print l4" " = .TRUE." "print l4"
+ gdb_test "x /x \&l4" ".*:.*0x00000004" "hex value of l4"
+
+ gdb_test "p l1 = -128" " = .TRUE." "print l1 = -128"
+ gdb_test "x /x \&l1" ".*:.*0x80.*" "hex value of l1 = -128"
+ gdb_test "p l1 = 0" " = .FALSE." "print l1 = .FALSE"
+ gdb_test "x /x \&l1" ".*:.*0x00.*" "hex value of l1 = .FALSE"
+
+ gdb_test "p l2 = 32767" " = .TRUE." "print l2 = 32767"
+ gdb_test "x /x \&l2" ".*:.*0x7fff.*" "hex value of l2 = 32767"
+ gdb_test "p l2 = 0" " = .FALSE." "print l2 = 0"
+ gdb_test "x /x \&l2" ".*:.*0x0000.*" "hex value of l2 = 0"
+
+ gdb_test "p l4 = 2147483647" " = .TRUE." "print l4 = 2147483647"
+ gdb_test "x /x \&l4" ".*:.*0x7fffffff" "hex value of l4 = 2147483647"
+ gdb_test "p l4 = 0" " = .FALSE." "print l4 = 0"
+ gdb_test "x /x \&l4" ".*:.*0x00000000" "hex value of l4 = 0"
+
+ #test character type variables
+ #
+ gdb_test "ptype c" " = character\\*1" "ptype c"
+ gdb_test "print c" " = 'a'" "print c"
+ gdb_test "ptype one_c" " = character\\*1" "ptype one_c"
+ gdb_test "print one_c" " = 'b'" "print one_c"
+ gdb_test "ptype two_c" " = character\\*2" "ptype two_c"
+ gdb_test "print two_c" " = 'cc'" "print two_c"
+ gdb_test "ptype four_c" " = character\\*4" "ptype four_c"
+ gdb_test "print four_c" " = 'dddd'" "print four_c"
+
+ # test assignment of literal <= declared length
+ #
+ gdb_test "print c = '1'" " = '1'" "print c = '1' "
+ gdb_test "print one_c = '1'" " = '1'" "print one_c = '1'"
+ gdb_test "print two_c = '1'" " = '1 '" "print two_c = '1 '"
+ gdb_test "print four_c = '1'" " = '1 '" "print four_c = '1 '"
+
+ # test assignment of literal > declared length of variable
+ #
+ gdb_test "print c = '222222222'" " = '2'" "print c = '2'"
+ gdb_test "print one_c = '333333333'" " = '3'" "print one_c = '3'"
+ gdb_test "print two_c = '444444444'" " = '44'" "print two_c = '44'"
+ gdb_test "print four_c = '555555555'" " = '5555'" "print four_c = '5555'"
+
+ # test assignment of null string literal -- commented out because
+ # assignment of null string literal doesn't currently work
+ #gdb_test "print c = ''" " = ' '" "print c = ' '"
+ #gdb_test "print one_c = ''" " = ' '" "print one_c = ' '"
+ #gdb_test "print two_c = ''" " = ' '" "print two_c = ' '"
+ #gdb_test "print four_c = ''" " = ' ' " "print four_c = ' '"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/ftypes.f gdb/testsuite/gdb.fortran/ftypes.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/ftypes.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/ftypes.f Thu Jul 22 17:49:56 1999
***************
*** 0 ****
--- 1,17 ----
+ program fundamental_types
+
+ integer ::i = 2147483647
+ integer * 2 ::i2 = 2
+ integer * 4 ::i4 = 4
+
+ logical ::l = 0
+ logical * 1 ::l1 = 1
+ logical * 2 ::l2 = 2
+ logical * 4 ::l4 = 4
+
+ character ::c = "a"
+ character (1) ::one_c = "b"
+ character (2) ::two_c = "cc"
+ character (4) ::four_c = "dddd"
+
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/intrinsics.exp gdb/testsuite/gdb.fortran/intrinsics.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/intrinsics.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/intrinsics.exp Thu Jul 22 17:49:56 1999
***************
*** 0 ****
--- 1,76 ----
+ # Author: Ovidiu Predescu <ovidiu@cup.hp.com>, Sept 2, 1998
+ #
+ # Check how the intrinsic Fortran types and values are displayed
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ set testfile "intrinsics"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ proc check_variable {name type value} {
+ gdb_test "ptype $name" "$type" "type of $name"
+ gdb_test "print $name" "$value" "value of $name"
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ if ![runto _MAIN_ ] {
+ perror "couldn't run to breakpoint _MAIN_"
+ continue
+ }
+
+ check_variable i2 "integer\\*2" 4
+ check_variable j2 "integer\\*2" 2
+
+ check_variable i4 "integer\\*4" 4
+ check_variable j4 "integer\\*4" 2
+
+ check_variable r4 "real\\*4" "4.*"
+ check_variable s4 "real\\*4" "2.*"
+
+ check_variable r8 "real\\*8" "4.*"
+ check_variable s8 "real\\*8" "2.*"
+
+ check_variable r16 "real\\*16" "4.*"
+ check_variable s16 "real\\*16" "2.*"
+
+ check_variable c4 "complex\\*8" "\\(1,[ ]*2\\)"
+ check_variable d4 "complex\\*8" "\\(2,[ ]*3\\)"
+
+ check_variable c8 "complex\\*16" "\\(1,[ ]*2\\)"
+ check_variable d8 "complex\\*16" "\\(2,[ ]*3\\)"
+
+ check_variable ch1 "character\\*1" "'1'"
+ check_variable ch2 "character\\*1" "'2'"
+
+ check_variable l1 "logical\\*1" ".FALSE."
+ check_variable m1 "logical\\*1" ".TRUE."
+
+ check_variable l2 "logical\\*2" ".FALSE."
+ check_variable m2 "logical\\*2" ".TRUE."
+
+ check_variable l4 "logical\\*4" ".FALSE."
+ check_variable m4 "logical\\*4" ".TRUE."
+
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/intrinsics.f gdb/testsuite/gdb.fortran/intrinsics.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/intrinsics.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/intrinsics.f Thu Jul 22 17:49:57 1999
***************
*** 0 ****
--- 1,23 ----
+ ! The commented out lines below should be tested in the Fortran 90 case too
+ ! integer(kind=1) :: i1 = 1, j1 = 2
+ integer(kind=2) :: i2 = 4, j2 = 2
+ integer(kind=4) :: i4 = 4, j4 = 2
+ ! integer(kind=8) :: i8 = 1, j8 = 2
+
+ real(kind=4) :: r4 = 4, s4 = 2
+ real(kind=8) :: r8 = 4, s8 = 2
+ real(kind=16) :: r16 = 4, s16 = 2
+
+ complex(kind=4) :: c4 = (1, 2), d4 = (2, 3)
+ complex(kind=8) :: c8 = (1, 2), d8 = (2, 3)
+
+ character :: ch1 = '1', ch2 = '2'
+ character*3 :: str1 = '123'
+ character*4 :: str2 = '1234'
+
+ logical(kind=1) :: l1 = .FALSE., m1 = .TRUE.
+ logical(kind=2) :: l2 = .FALSE., m2 = .TRUE.
+ logical(kind=4) :: l4 = .FALSE., m4 = .TRUE.
+ ! logical(kind=8) :: l8 = .FALSE., m8 = .TRUE.
+
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/keytypes.exp gdb/testsuite/gdb.fortran/keytypes.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/keytypes.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/keytypes.exp Thu Jul 22 17:50:01 1999
***************
*** 0 ****
--- 1,84 ----
+ # Author: Sue Kimura <srk@cup.hp.com>
+ #
+ # Verify that variable names that start with type keywords do not confuse gdb
+ # Verify that types such as (real*8) are recognized as keywords
+ # Defect filed as CLLbs15079/JAGaa80455
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ set testfile "keytypes"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ proc check_type {type value size} {
+ gdb_test "print $type" \
+ "Attempt to use a type name as an expression" \
+ "print $type"
+ # gdb_test "print ($type)" \
+ # "A syntax error in expression, near `'." \
+ # "print ($type)"
+ gdb_test "ptype $type" "$value" "ptype $type"
+ # gdb_test "ptype ($type)" "$value" "ptype ($type)"
+ gdb_test "p sizeof ($type)" "$size" "p sizeof ($type)"
+ gdb_test "p sizeof ( $type )" "$size" "p sizeof ( $type )"
+
+ }
+
+ proc check_variable {name value type size} {
+ gdb_test "print $name" "$value" "print $name"
+ gdb_test "print ($name)" "$value" "print ($name)"
+ gdb_test "print ( $name )" "$value" "print ( $name )"
+ gdb_test "ptype $name" "$type" "ptype $name"
+ gdb_test "ptype ($name)" "$type" "ptype ($name)"
+ gdb_test "ptype ( $name )" "$type" "ptype ( $name )"
+ gdb_test "print sizeof ($name)" "$size" "print sizeof ($name)"
+ gdb_test "print sizeof ( $name )" "$size" "print sizeof ( $name )"
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ set MAIN "main"
+ if {[istarget "hppa*-*-hpux*"]} { set MAIN "_MAIN_"}
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ if ![runto $MAIN ] {
+ perror "couldn't run to breakpoint $MAIN"
+ continue
+ }
+
+ check_type "integer" "integer" 4
+ check_type "integer*4" "integer" 4
+ check_type "logical" "logical\\*4" 4
+ check_type "logical*1" "logical\\*1" 1
+ check_type "real" "real\\*4" 4
+ check_type "real*8" "real\\*8" 8
+ check_type "complex" "complex\\*8" 8
+ check_type "complex*16" "complex\\*16" 16
+ check_type "character" "character" 1
+
+ check_variable integer_v "2147483647" "integer\\*4" 4
+ check_variable logical_v "\\.FALSE\\." "logical\\*4" 4
+ check_variable real_v "1.20000005" "real\\*4" 4
+ check_variable complex_v "\\(9,8\\)" "complex\\*8" 8
+ check_variable character_v "'a'" "character\\*1" 1
+ check_variable integer_arr "\\(1, 2, 3\\)" "integer\\*4 \\(3\\)" 12
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/keytypes.f gdb/testsuite/gdb.fortran/keytypes.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/keytypes.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/keytypes.f Thu Jul 22 17:50:01 1999
***************
*** 0 ****
--- 1,14 ----
+ program bs15079
+
+ integer ::integer_v = 2147483647
+ logical ::logical_v = 0
+
+ character ::character_v = "a"
+
+ real ::real_v = 1.2
+ complex ::complex_v = (9.0, 8.0)
+
+ integer ::integer_arr(3)
+ data integer_arr / 1, 2, 3/
+
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/local.exp gdb/testsuite/gdb.fortran/local.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/local.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/local.exp Thu Jul 22 17:49:57 1999
***************
*** 0 ****
--- 1,71 ----
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+ #
+ # Fortran test to verify that local variables in main can be viewed.
+ # Also verify that breakpoint on first executable statement works properly
+ #
+ # Source file: local.f
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "local"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ set MAIN "main"
+ if {[istarget "hppa*-*-hpux*"]} { set MAIN "_MAIN_"}
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ #
+ # set it up at a breakpoint at first executable statemetn so we can play
+ # with the variable values
+ #
+ gdb_test "break 14" "Breakpoint $decimal at $hex: file .*$srcfile, line 14."
+ gdb_test "break 20" "Breakpoint $decimal at $hex: file .*$srcfile, line 20."
+ gdb_test "break 24" "Breakpoint $decimal at $hex: file .*$srcfile, line 24."
+ gdb_test "run" "Starting program: $binfile.*i = 0"
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, $MAIN \\(.*\\) at .*$srcfile.*do i=3D1,N" \
+ "continue to $MAIN:20"
+
+ # verify contents of local variables
+
+ gdb_test "print n" " = 30" "before loop: print n"
+
+ # continue to the next breakpoint and verify contents of variables again
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, $MAIN \\(.*\\) at .*$srcfile.*after loop: N =.*" \
+ "continue to $MAIN:24*"
+
+ gdb_test "print n" " = 30" "after loop: print n"
+ gdb_test "print i" " = 31" "after loop: print i"
+ gdb_test "print x" \
+ " = \\(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1\\)" \
+ "after loop: print x"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/local.f gdb/testsuite/gdb.fortran/local.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/local.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/local.f Thu Jul 22 17:49:57 1999
***************
*** 0 ****
--- 1,27 ----
+ C This is a modified version (the orginal did not compile) of code from a
+ C customer in Norway who's complained to support@norway.hp.com in May, 1998
+ C that we can't deal with a simple fortran90 program. This program is used
+ C as a sanity check to verify that this customer's code can be debugged.
+ C
+ C It is also used to verify that we can correctly print local variables
+ C in the main program.
+
+ program norway
+ integer, parameter :: N=3D1
+ integer i
+ double precision, dimension(N) :: x
+
+ i = 0
+ x = 0
+ print *, 'before loop: N = ', N
+ print *, 'before loop: i = ', i
+ print *, 'before loop: x = ', x
+
+ do i=3D1,N
+ x = i/dble(N)
+ enddo
+
+ print *, 'after loop: N = ', N
+ print *, 'after loop: i = ', i
+ print *, 'after loop: x = ', x
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/local1.exp gdb/testsuite/gdb.fortran/local1.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/local1.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/local1.exp Thu Jul 22 17:49:58 1999
***************
*** 0 ****
--- 1,65 ----
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+ #
+ # Another fortran test to verify that local variables in main can be viewed.
+ #
+ # Source file: local1.f
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "local1"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ #
+ # set it up at a breakpoint
+ #
+ gdb_test "break 45" "Breakpoint $decimal at $hex: file .*$srcfile, line 45."
+ gdb_test "run" "Starting program: $binfile.*Breakpoint.*stop"
+
+ # verify contents of local variables (except for lmax which is a global)
+
+ gdb_test "print gi1" " = 255"
+ gdb_test "print gi2" " = -1"
+ gdb_test "print gx1" " = \\(255,4095\\)"
+ gdb_test "print lmax" " = 10"
+ gdb_test "print strings(1)" \
+ " = ' the', ' ' <repeats 24 times>"
+ gdb_test "print strings(2)" \
+ " = 'art', ' ' <repeats 28 times>"
+ gdb_test "print strings(3)" \
+ " = ' ' <repeats 16 times>, 'of', ' ' <repeats 13 times>"
+ gdb_test "print strings(4)" \
+ " = 'scientific computing', ' ' <repeats 11 times>"
+ gdb_test "print strings(5)" \
+ " = 'the art of scientific computin'"
+ gdb_test "print rarray1" \
+ "\\(2.23606801, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\\)"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/local1.f gdb/testsuite/gdb.fortran/local1.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/local1.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/local1.f Thu Jul 22 17:49:58 1999
***************
*** 0 ****
--- 1,47 ----
+ program test_l1
+
+ real hypot, area
+
+ integer gi1
+ integer*2 gi2
+ complex gx1
+
+ real rarray1
+ dimension rarray1(20)
+ data rarray1 /20*0/
+
+ character*31 strings(5)
+ data strings /' ', ' ', ' ', ' ', ' '/
+
+ integer LMAX
+ common /priority_queue/ LMAX
+
+ hypot(a, b) = sqrt(a**2 + b**2)
+ area(a, b) = a*b/2.0
+
+
+
+ **********************************************************
+ * BEGIN *
+ **********************************************************
+
+ LMAX = 10
+
+ gi1 = O'377'
+ gi2 = Z'FFFF'
+
+ gx1 = (255, 4095)
+
+ strings(1)(5:8) = 'the '
+ strings(2)(1:4) = 'art '
+ strings(3)(17:20) = 'of '
+ strings(4)(1:20) = 'scientific ' // 'computing'
+ strings(5) = strings(1)(5:8) // strings(2)(1:4) //
+ * strings(3)(17:20) // strings(4)(1:20)
+
+ rarray1(1) = hypot(1.0,2.0)
+ rarray1(2) = area(1.0,2.0)
+
+ stop
+
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/local2.exp gdb/testsuite/gdb.fortran/local2.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/local2.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/local2.exp Thu Jul 22 17:50:01 1999
***************
*** 0 ****
--- 1,83 ----
+ # Copyright (C) 1997 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
+ # (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. */
+
+ # This file was written by Sue Kimura (sue_kimura@hp.com)
+ #
+ # This tests verifies that large number of local variables are correctly
+ # read in
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ set prms_id 0
+ set bug_id 0
+
+ # are we on a target board
+ if ![isnative] {
+ return
+ }
+
+ # This test is presently only valid on HP-UX, since it requires
+ # that we use HP-UX-specific compiler & linker options to build
+ # the testcase.
+ #
+ setup_xfail "*-*-*"
+ clear_xfail "hppa*-*-*hpux*"
+
+ set prototypes 0
+ set testfile "local2"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ # Build the test case
+ if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 }] != ""} {
+ perror "Couldn't build ${binfile}"
+ return -1
+ }
+
+ # Start with a fresh gdb
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ if ![runto subr ] then { fail "runto subr" }
+
+ gdb_test "print l00" "= -1"
+ gdb_test "print l01" "= 100"
+ gdb_test "print l49" "= 4900"
+ gdb_test "print l50" "= 5000"
+ gdb_test "print l51" "= 5100"
+ gdb_test "print l52" "= 5200"
+ gdb_test "print l149" "= 14900"
+ gdb_test "print l150" "= 15000"
+ gdb_test "print l151" "= 15100"
+ gdb_test "print l152" "= 15200"
+ gdb_test "print l250" "= 25000"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/local2.f gdb/testsuite/gdb.fortran/local2.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/local2.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/local2.f Thu Jul 22 17:50:01 1999
***************
*** 0 ****
--- 1,288 ----
+ program fundamental_types
+
+ call subr
+
+ end
+
+
+ subroutine subr ()
+
+
+ integer ::l00 = -1
+ integer ::l01 = 100
+ integer ::l02 = 0
+ integer ::l03 = 0
+ integer ::l04 = 0
+ integer ::l05 = 0
+ integer ::l06 = 0
+ integer ::l07 = 0
+ integer ::l08 = 0
+ integer ::l09 = 0
+
+ integer ::l10 = 0
+ integer ::l11 = 0
+ integer ::l12 = 0
+ integer ::l13 = 0
+ integer ::l14 = 0
+ integer ::l15 = 0
+ integer ::l16 = 0
+ integer ::l17 = 0
+ integer ::l18 = 0
+ integer ::l19 = 0
+
+ integer ::l20 = 0
+ integer ::l21 = 0
+ integer ::l22 = 0
+ integer ::l23 = 0
+ integer ::l24 = 0
+ integer ::l25 = 0
+ integer ::l26 = 0
+ integer ::l27 = 0
+ integer ::l28 = 0
+ integer ::l29 = 0
+
+ integer ::l30 = 0
+ integer ::l31 = 0
+ integer ::l32 = 0
+ integer ::l33 = 0
+ integer ::l34 = 0
+ integer ::l35 = 0
+ integer ::l36 = 0
+ integer ::l37 = 0
+ integer ::l38 = 0
+ integer ::l39 = 0
+
+ integer ::l40 = 0
+ integer ::l41 = 0
+ integer ::l42 = 0
+ integer ::l43 = 0
+ integer ::l44 = 0
+ integer ::l45 = 0
+ integer ::l46 = 0
+ integer ::l47 = 0
+ integer ::l48 = 0
+ integer ::l49 = 4900
+
+ integer ::l50 = 5000
+ integer ::l51 = 5100
+ integer ::l52 = 5200
+ integer ::l53 = 0
+ integer ::l54 = 0
+ integer ::l55 = 0
+ integer ::l56 = 0
+ integer ::l57 = 0
+ integer ::l58 = 0
+ integer ::l59 = 0
+
+ integer ::l60 = 0
+ integer ::l61 = 0
+ integer ::l62 = 0
+ integer ::l63 = 0
+ integer ::l64 = 0
+ integer ::l65 = 0
+ integer ::l66 = 0
+ integer ::l67 = 0
+ integer ::l68 = 0
+ integer ::l69 = 0
+
+ integer ::l70 = 0
+ integer ::l71 = 0
+ integer ::l72 = 0
+ integer ::l73 = 0
+ integer ::l74 = 0
+ integer ::l75 = 0
+ integer ::l76 = 0
+ integer ::l77 = 0
+ integer ::l78 = 0
+ integer ::l79 = 0
+
+ integer ::l80 = 0
+ integer ::l81 = 0
+ integer ::l82 = 0
+ integer ::l83 = 0
+ integer ::l84 = 0
+ integer ::l85 = 0
+ integer ::l86 = 0
+ integer ::l87 = 0
+ integer ::l88 = 0
+ integer ::l89 = 0
+
+ integer ::l90 = 0
+ integer ::l91 = 0
+ integer ::l92 = 0
+ integer ::l93 = 0
+ integer ::l94 = 0
+ integer ::l95 = 0
+ integer ::l96 = 0
+ integer ::l97 = 0
+ integer ::l98 = 0
+ integer ::l99 = 0
+
+ integer ::l100 = 10000
+ integer ::l101 = 0
+ integer ::l102 = 0
+ integer ::l103 = 0
+ integer ::l104 = 0
+ integer ::l105 = 0
+ integer ::l106 = 0
+ integer ::l107 = 0
+ integer ::l108 = 0
+ integer ::l109 = 0
+
+ integer ::l110 = 0
+ integer ::l111 = 0
+ integer ::l112 = 0
+ integer ::l113 = 0
+ integer ::l114 = 0
+ integer ::l115 = 0
+ integer ::l116 = 0
+ integer ::l117 = 0
+ integer ::l118 = 0
+ integer ::l119 = 0
+
+ integer ::l120 = 0
+ integer ::l121 = 0
+ integer ::l122 = 0
+ integer ::l123 = 0
+ integer ::l124 = 0
+ integer ::l125 = 0
+ integer ::l126 = 0
+ integer ::l127 = 0
+ integer ::l128 = 0
+ integer ::l129 = 0
+
+ integer ::l130 = 0
+ integer ::l131 = 0
+ integer ::l132 = 0
+ integer ::l133 = 0
+ integer ::l134 = 0
+ integer ::l135 = 0
+ integer ::l136 = 0
+ integer ::l137 = 0
+ integer ::l138 = 0
+ integer ::l139 = 0
+
+ integer ::l140 = 0
+ integer ::l141 = 0
+ integer ::l142 = 0
+ integer ::l143 = 0
+ integer ::l144 = 0
+ integer ::l145 = 0
+ integer ::l146 = 0
+ integer ::l147 = 0
+ integer ::l148 = 0
+ integer ::l149 = 14900
+
+ integer ::l150 = 15000
+ integer ::l151 = 15100
+ integer ::l152 = 15200
+ integer ::l153 = 0
+ integer ::l154 = 0
+ integer ::l155 = 0
+ integer ::l156 = 0
+ integer ::l157 = 0
+ integer ::l158 = 0
+ integer ::l159 = 0
+
+ integer ::l160 = 0
+ integer ::l161 = 0
+ integer ::l162 = 0
+ integer ::l163 = 0
+ integer ::l164 = 0
+ integer ::l165 = 0
+ integer ::l166 = 0
+ integer ::l167 = 0
+ integer ::l168 = 0
+ integer ::l169 = 0
+
+ integer ::l170 = 0
+ integer ::l171 = 0
+ integer ::l172 = 0
+ integer ::l173 = 0
+ integer ::l174 = 0
+ integer ::l175 = 0
+ integer ::l176 = 0
+ integer ::l177 = 0
+ integer ::l178 = 0
+ integer ::l179 = 0
+
+ integer ::l180 = 0
+ integer ::l181 = 0
+ integer ::l182 = 0
+ integer ::l183 = 0
+ integer ::l184 = 0
+ integer ::l185 = 0
+ integer ::l186 = 0
+ integer ::l187 = 0
+ integer ::l188 = 0
+ integer ::l189 = 0
+
+ integer ::l190 = 0
+ integer ::l191 = 0
+ integer ::l192 = 0
+ integer ::l193 = 0
+ integer ::l194 = 0
+ integer ::l195 = 0
+ integer ::l196 = 0
+ integer ::l197 = 0
+ integer ::l198 = 0
+ integer ::l199 = 19900
+
+ integer ::l200 = 20000
+ integer ::l201 = 20100
+ integer ::l202 = 0
+ integer ::l203 = 0
+ integer ::l204 = 0
+ integer ::l205 = 0
+ integer ::l206 = 0
+ integer ::l207 = 0
+ integer ::l208 = 0
+ integer ::l209 = 0
+
+ integer ::l210 = 0
+ integer ::l211 = 0
+ integer ::l212 = 0
+ integer ::l213 = 0
+ integer ::l214 = 0
+ integer ::l215 = 0
+ integer ::l216 = 0
+ integer ::l217 = 0
+ integer ::l218 = 0
+ integer ::l219 = 0
+
+ integer ::l220 = 0
+ integer ::l221 = 0
+ integer ::l222 = 0
+ integer ::l223 = 0
+ integer ::l224 = 0
+ integer ::l225 = 0
+ integer ::l226 = 0
+ integer ::l227 = 0
+ integer ::l228 = 0
+ integer ::l229 = 0
+
+ integer ::l230 = 0
+ integer ::l231 = 0
+ integer ::l232 = 0
+ integer ::l233 = 0
+ integer ::l234 = 0
+ integer ::l235 = 0
+ integer ::l236 = 0
+ integer ::l237 = 0
+ integer ::l238 = 0
+ integer ::l239 = 0
+
+ integer ::l240 = 0
+ integer ::l241 = 0
+ integer ::l242 = 0
+ integer ::l243 = 0
+ integer ::l244 = 0
+ integer ::l245 = 0
+ integer ::l246 = 0
+ integer ::l247 = 0
+ integer ::l248 = 0
+ integer ::l249 = 0
+
+ integer ::l250 = 25000
+
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/main.exp gdb/testsuite/gdb.fortran/main.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/main.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/main.exp Thu Jul 22 17:49:58 1999
***************
*** 0 ****
--- 1,188 ----
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+
+ # This file tests Fortran programs with/without a program name and
+ # with/without a function called main and verifies that the breakpoint is
+ # set in the correct location. For HP gdb, the default name for the Fortran
+ # main program is set to "_MAIN_", in order to distinguish it from the
+ # function/subroutine "main" which does not have any special significance
+ # in Fortran.
+ #
+ # The test sources are named:
+ # prog_nomain.f [program name, no function main]
+ # prog_main.f [program name, function called main]
+ # noprogormain.f [no program name, no function main]
+ # noprog_main.f [no program name, function called main]
+ #
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ # set default name for Fortran main
+ set default_main "_MAIN_"
+
+ #
+ # Test program with program name and with no function called "main"
+ #
+
+ set testfile "prog_nomain"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ # test if program name "foo" is recognized; in this it case should be recognized
+ gdb_test "break foo" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 6." \
+ "break on program foo in $srcfile"
+
+ # first see if main is recognized; in this case it shouldn't be recognized.
+ gdb_test "break main" \
+ "Function \"main\" not defined\.|Breakpoint .* (deferred).*\"main\".*" \
+ "attempt to break on non-existent main in $srcfile"
+
+ # should run to first executable line in program foo
+ gdb_test "run" \
+ "Starting program: .*$testfile.*Breakpoint $decimal, _MAIN_ .* at .*$srcfile:.*in program foo.*" \
+ "run in $srcfile"
+
+ # should continue to end of program foo
+ gdb_test "continue" \
+ "Continuing.*in program foo.*in function subr.*Program exited normally.*" \
+ "continue in $srcfile"
+
+ #
+ # Test program with program name and with function called "main"
+ #
+
+ set testfile "prog_main"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ # test if program name "foo" is recognized; in this case should be recognized.
+ gdb_test "break foo" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 6." \
+ "break on program foo in $srcfile"
+
+ # first see if main is recognized; in this case it should also be recognized.
+ gdb_test "break main" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 13." \
+ "break on function main in $srcfile"
+
+ # should run to first executable line in program foo
+ gdb_test "run" \
+ "Starting program: .*$testfile.*Breakpoint $decimal, _MAIN_ .* at .*$srcfile:.*in program foo.*" \
+ "run to foo in $srcfile"
+
+ # should continue to first executable line in function main
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, main \\(i=1\\) at .*$srcfile.*in function main.*" \
+ "continue to main in $srcfile"
+
+ #
+ # Test program with no program name and with no function called "main"
+ #
+
+ set testfile "noprogormain"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ # first see if main is recognized; in this case it shouldn't be recognized.
+ gdb_test "break main" \
+ "Function \"main\" not defined\.|Breakpoint .* (deferred).*\"main\".*" \
+ "attempt to break on non-existent main in $srcfile"
+
+ # see if default_main is recognized; it should be recognized.
+ gdb_test "break $default_main" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 5." \
+ "break on $default_main in $srcfile"
+
+ # should run to first executable line in implied main
+ gdb_test "run" \
+ "Starting program: .*$testfile.*Breakpoint $decimal, _MAIN_ .* at .*$srcfile:.*in implied main.*" \
+ "run in $srcfile"
+
+ # should continue to end of program foo
+ gdb_test "continue" \
+ "Continuing.*in implied main.*in function subr.*Program exited normally.*" \
+ "continue in $srcfile"
+
+ #
+ # Test program with no program name and with function called "main"
+ #
+
+ set testfile "noprog_main"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ # first see if main is recognized; in this case it should be recognized.
+ gdb_test "break main" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 12." \
+ "break on function main in $srcfile"
+
+ # see if default_main is recognized; it should also be recognized
+ gdb_test "break $default_main" \
+ "Breakpoint $decimal at $hex: file .*$srcfile, line 5." \
+ "break on $default_main in $srcfile"
+
+ # should run to first executable line in implied main
+ gdb_test "run" \
+ "Starting program: .*$testfile.*Breakpoint $decimal, _MAIN_ .* at .*$srcfile:.*in implied main.*" \
+ "run in $srcfile"
+
+ # should continue to first executable line in function main
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, main \\(i=1\\) at .*$srcfile.*in function main.*" \
+ "continue to main in $srcfile"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/noprog_main.f gdb/testsuite/gdb.fortran/noprog_main.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/noprog_main.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/noprog_main.f Thu Jul 22 17:49:58 1999
***************
*** 0 ****
--- 1,14 ----
+ C no program name, "main" subroutine
+
+ integer i
+ integer iarr(10)
+ print *, "in implied main"
+ i = 1
+ iarr(1) = main(1)
+ end
+
+ integer function main(i)
+ integer i
+ print *, "in function main"
+ main = i*2
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/noprogormain.f gdb/testsuite/gdb.fortran/noprogormain.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/noprogormain.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/noprogormain.f Thu Jul 22 17:50:05 1999
***************
*** 0 ****
--- 1,14 ----
+ C no program name, no "main" subroutine
+
+ integer i
+ integer iarr(10)
+ print *, "in implied main"
+ i = 1
+ iarr(1) = subr(1)
+ end
+
+ integer function subr(i)
+ integer i
+ print *, "in function subr"
+ subr = i*2
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/params.exp gdb/testsuite/gdb.fortran/params.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/params.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/params.exp Thu Jul 22 17:50:06 1999
***************
*** 0 ****
--- 1,75 ----
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+ #
+ # Fortran named constants test
+ #
+ # Source file: params.f
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "params"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if { [gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ 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 parameters ] {
+ perror "couldn't run to breakpoint named_constants"
+ continue
+ }
+
+ # verify contents and types of named constants
+
+ gdb_test "print ch" " = 'GUESS MY LENGTH'" "print ch"
+ gdb_test "ptype ch" "type = character\\*15" "ptype ch"
+
+ gdb_test "print name1" " = 'WILLIAM'" "print name1"
+ gdb_test "ptype name1" "type = character\\*7" "ptype name1"
+
+ gdb_test "print name2" " = 'DAVID'" "print name2"
+ gdb_test "ptype name2" "type = character\\*5" "ptype name2"
+
+ gdb_test "print length" " = 15" "print length"
+ gdb_test "ptype length" "type = integer\\*4" "ptype length"
+
+ gdb_test "print first_name_greater" " = .TRUE." "print first_name_greater"
+ gdb_test "ptype first_name_greater" \
+ "type = logical\\*4" "ptype first_name_greater"
+
+ gdb_test "print scnd_name_greater" " = .FALSE." "print scnd_name_greater"
+ gdb_test "ptype scnd_name_greater" \
+ "type = logical\\*4" "ptype scnd_name_greater"
+
+ # gdb allows modification of character constants
+ gdb_test "set name1=name2" "" "modification of character constants"
+ gdb_test "print name1" " = 'DAVID '" "name1 modified"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/params.f gdb/testsuite/gdb.fortran/params.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/params.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/params.f Thu Jul 22 17:50:06 1999
***************
*** 0 ****
--- 1,27 ----
+ C HP f77 example from /opt/fortran/lib/demos/Reference
+
+ PROGRAM PARAMETERS
+
+ LOGICAL FIRST_NAME_GREATER, SCND_NAME_GREATER
+ CHARACTER CH*(*), NAME1*(*), NAME2*(*)
+ INTEGER LENGTH
+
+ PARAMETER (CH = 'GUESS MY LENGTH')
+ PARAMETER (NAME1 = 'WILLIAM',
+ + NAME2 = 'DAVID')
+
+ PARAMETER (LENGTH = LEN(CH))
+
+ PARAMETER (FIRST_NAME_GREATER = NAME1 .GT. NAME2,
+ + SCND_NAME_GREATER = NAME2 .GT. NAME1)
+
+ WRITE (6,10) CH, LENGTH
+ IF (FIRST_NAME_GREATER) THEN
+ WRITE (6,*) NAME1, ' IS LEXICALLY GREATER THAN ', NAME2
+ ELSE IF (SCND_NAME_GREATER) THEN
+ WRITE (6,*) NAME2, ' IS LEXICALLY GREATER THAN ', NAME1
+ ELSE
+ WRITE (6,*) NAME1, 'AND', NAME 2, 'HAVE THE SAME NAME'
+ END IF
+ 10 FORMAT (' THE LENGTH OF ''',(A),''' IS ',I2)
+ END
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/params1.exp gdb/testsuite/gdb.fortran/params1.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/params1.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/params1.exp Thu Jul 22 17:50:06 1999
***************
*** 0 ****
--- 1,80 ----
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+ #
+ # Fortran named constants test
+ #
+ # Source file: params1.f
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ proc check_expr {name value type} {
+ gdb_test "print $name" "= $value" "print $name"
+ gdb_test "ptype $name" "$type" "ptype $name"
+ }
+
+ set testfile "params1"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ 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 named_constants ] then {
+ perror "couldn't run to breakpoint named_constants"
+ continue
+ }
+
+ # verify contents and types of named constants
+
+ check_expr "gi1" "14" "integer\\*4"
+ check_expr "gi2" "12" "integer\\*2"
+ check_expr "gi3" "-1" "integer\\*4"
+ check_expr "gi4" "74" "integer\\*4"
+ check_expr "gi5" "11" "integer\\*4"
+ check_expr "gi6" "10" "integer\\*4"
+ if {$hp_f90_compiler} {setup_xfail "hppa*-*-hpux10.20"}
+ check_expr "gr1" "100" "real\\*4"
+ if {$hp_f90_compiler} {setup_xfail "hppa*-*-hpux10.20"}
+ check_expr "gr2" "2000" "real\\*4"
+ check_expr "gr3" "30000" "real\\*8"
+ check_expr "gr4" "400000" "real\\*8"
+ check_expr "gr5" "60000000" "real\\*16"
+ check_expr "gb1" ".TRUE." "logical\\*4"
+ check_expr "gb2" ".FALSE." "logical\\*1"
+ check_expr "gb3" ".TRUE." "logical\\*2"
+ check_expr "gb4" ".FALSE." "logical\\*4"
+ check_expr "gc1" "'a'" "character\\*1"
+ check_expr "gc2" "'hfhhf'" "character\\*5"
+ check_expr "gx1" "\\(3.5,400\\)" "complex\\*8"
+ check_expr "gx2" "\\(4.5,5000\\)" "complex\\*8"
+ check_expr "gx3" "\\(5.5,60000\\)" "complex\\*16"
+ check_expr "gx4" "\\(6.5,700000\\)" "complex\\*16"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/params1.f gdb/testsuite/gdb.fortran/params1.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/params1.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/params1.f Thu Jul 22 17:50:06 1999
***************
*** 0 ****
--- 1,66 ----
+ C Fortran names constants test
+ C Gets compile-time errors with f90 compiler
+
+ program named_constants
+
+ integer GI1
+ integer*2 GI2
+ integer*4 GI3
+ integer GI4
+ integer GI5
+ integer GI6
+
+ real GR1
+ real*4 GR2
+ real*8 GR3
+ double precision GR4
+ real*16 GR5
+
+ logical GB1
+ logical*1 GB2
+ logical*2 GB3
+ logical*4 GB4
+
+ character GC1
+ character(5) GC2
+ complex GX1
+ complex*8 GX2
+ complex*16 GX3
+ double complex GX4
+
+ parameter( GI1 = 14, GI2 = 12, GI3 = -1 )
+ parameter( GI4 = B'01001010', GI5 = O'13', GI6 = Z'A' )
+
+ parameter( GR1 = 1E2, GR2 = 2E3, GR3 = 3D4, GR5 = 6Q7, GR4 = 4d5 )
+
+ parameter( GB1 = .TRUE., GB2 = .FALSE. )
+ parameter( GB3 = .TRUE., GB4 = .FALSE. )
+
+ parameter(GC1 = 'a', GC2 = "hfhhf" )
+
+ parameter( GX1 = (3.5, 4E2), GX2 = (4.5, 5E3) )
+ parameter( GX3 = (5.5, 6E4), GX4 = (6.5, 7E5) )
+
+ print *, "GI1 = ", GI1
+ print *, "GI2 = ", GI2
+ print *, "GI3 = ", GI3
+ print *, "GI4 = ", GI4
+ print *, "GI5 = ", GI5
+ print *, "GI6 = ", GI6
+ print *, "GR1 = ", GR1
+ print *, "GR2 = ", GR2
+ print *, "GR3 = ", GR3
+ print *, "GR4 = ", GR4
+ print *, "GR5 = ", GR5
+ print *, "GB1 = ", GB1
+ print *, "GB2 = ", GB2
+ print *, "GB3 = ", GB3
+ print *, "GB4 = ", GB4
+ print *, "GC1 = ", GC1
+ print *, "GC2 = ", GC2
+ print *, "GX1 = ", GX1
+ print *, "GX2 = ", GX2
+ print *, "GX3 = ", GX3
+ print *, "GX4 = ", GX4
+
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/prog_main.f gdb/testsuite/gdb.fortran/prog_main.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/prog_main.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/prog_main.f Thu Jul 22 17:49:58 1999
***************
*** 0 ****
--- 1,15 ----
+ C program name, "main" subroutine
+
+ program foo
+ integer i
+ integer iarr(10)
+ print *, "in program foo"
+ i = 1
+ iarr(1) = main(1)
+ end
+
+ integer function main(i)
+ integer i
+ print *, "in function main"
+ main = i*2
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/prog_nomain.f gdb/testsuite/gdb.fortran/prog_nomain.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/prog_nomain.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/prog_nomain.f Thu Jul 22 17:49:59 1999
***************
*** 0 ****
--- 1,15 ----
+ C program name, no "main" subroutine
+
+ program foo
+ integer i
+ integer iarr(10)
+ print *, "in program foo"
+ i = 1
+ iarr(1) = subr(1)
+ end
+
+ integer function subr(i)
+ integer i
+ print *, "in function subr"
+ subr = i*2
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/rtypes.exp gdb/testsuite/gdb.fortran/rtypes.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/rtypes.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/rtypes.exp Thu Jul 22 17:49:59 1999
***************
*** 0 ****
--- 1,103 ----
+ # Copyright (C) 1988, 1990, 1991, 1992, 1994 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "rtypes"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ 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_ ] {
+ perror "couldn't run to breakpoint _MAIN_"
+ continue
+ }
+
+ # test real type variables
+
+ gdb_test "ptype r" "type = real\\*4" "ptype r"
+ gdb_test "print r" " = 1.5" "print r"
+ gdb_test "p r = 2.5" " = 2.5" "modify r"
+
+ gdb_test "ptype r4" "type = real\\*4" "ptype r4"
+ gdb_test "print r4" " = 3.5" "print r4"
+ gdb_test "p r4 = 4.5" " = 4.5" "modify r4"
+
+ gdb_test "ptype r8" "type = real\\*8" "ptype r8"
+ gdb_test "print r8" " = 5.5" "print r8"
+ gdb_test "p r8 = 6.5" " = 6.5" "modify r8"
+
+
+ gdb_test "ptype r16" "type = real\\*16" "ptype r16"
+ gdb_test "print r16" " = 7.5" "print r16"
+ gdb_test "p r16 = 8.5" " = 8.5" "modify r16"
+
+ # test some simple expressions
+
+ gdb_test "p r = r + 4" " = 6.5" "print r + 4"
+ gdb_test "p r4 = r4 + 4" " = 8.5" "print r4 + 4"
+ gdb_test "p r8 = r8 + 8" " = 14.5" "print r8 + 8"
+ gdb_test "p r16 = r16 + 16" " = 24.5" "print r16 + 16"
+
+ # test complex type variables
+ gdb_test "ptype c" "type = complex\\*8" "ptype c"
+ gdb_test "print c" " = \\(9,0\\)" "print c"
+ gdb_test "p c = (0.5,9.0)" " = \\(0.5,9\\)" "modify c"
+
+ gdb_test "ptype c8" "type = complex\\*8" "ptype c8"
+ gdb_test "print c8" " = \\(9.5,0\\)" "print c8"
+ gdb_test "p c8 = (8.5,9.5)" " = \\(8.5,9.5\\)" "modify c8"
+
+ gdb_test "ptype c16" "type = complex\\*16" "ptype c16"
+ gdb_test "print c16" " = \\(7.5,0\\)" "print c16"
+ gdb_test "p c16 = (6.5,7.5)" " = \\(6.5,7.5\\)" "modify c16"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/rtypes.f gdb/testsuite/gdb.fortran/rtypes.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/rtypes.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/rtypes.f Thu Jul 22 17:49:59 1999
***************
*** 0 ****
--- 1,15 ----
+ program real_types
+
+ real ::r = 1.5
+ real*4 ::r4 = 3.5
+ real*8 ::r8 = 5.5
+ real*16 ::r16 = 7.5
+
+ complex ::c = 9.0
+ complex * 8 ::c8 = 9.5
+ complex * 16 ::c16 = 7.5
+
+ C complex*16 and double complex are equivalent
+ double complex ::dc = 5.5
+
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/solibf.exp gdb/testsuite/gdb.fortran/solibf.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/solibf.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/solibf.exp Thu Jul 22 17:50:01 1999
***************
*** 0 ****
--- 1,121 ----
+ # Copyright (C) 1997 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
+ # (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. */
+
+ # This file was written by Sue Kimura (sue_kimura@hp.com)
+ #
+ # This tests access to local variables in Fortran shared libraries
+
+ # This test is presently only valid on HP-UX, since it requires
+ # that we use HP-UX-specific compiler & linker options to build
+ # the testcase.
+ #
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ set prms_id 0
+ set bug_id 0
+
+ # are we on a target board
+ if ![isnative] {
+ return
+ }
+
+ set prototypes 0
+ set testfile "solibf"
+ set srcfile ${testfile}.f
+ set srcfile1 ${testfile}1.f
+ set srcfile2 ${testfile}2.f
+ set binfile ${objdir}/${subdir}/${testfile}
+ set testfile1 ${objdir}/${subdir}/${testfile}1.o
+ set testfile2 ${objdir}/${subdir}/${testfile}2.o
+ set libfile1 ${objdir}/${subdir}/${testfile}1.sl
+ set libfile2 ${objdir}/${subdir}/${testfile}2.sl
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ # Build the shared libraries this test case needs.
+
+ if {[gdb_compile "${srcdir}/${subdir}/${srcfile1}" "${testfile1}" object {debug f77 additional_flags=+z}] != ""} {
+ perror "Couldn't compile ${srcfile1}"
+ return -1
+ }
+
+ if {[gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${testfile2}" object {debug f77 additional_flags=+z}] != ""} {
+ perror "Couldn't compile ${srcfile2}"
+ return -1
+ }
+
+ remote_exec build "ld -b ${testfile1} -o ${libfile1}"
+ remote_exec build "ld -b ${testfile2} -o ${libfile2}"
+
+ # Build the test case
+
+ if {[gdb_compile "${srcdir}/${subdir}/${srcfile} ${libfile1} ${libfile2}" "${binfile}" executable {debug f77}] != ""} {
+ perror "Couldn't build ${binfile}"
+ return -1
+ }
+
+ # Start with a fresh gdb
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ if ![runto _MAIN_ ] { fail "runto _MAIN" }
+
+ # set breakpoints in shared library functions
+ gdb_test "b s1_func" \
+ "Breakpoint $decimal at $hex: file .*$srcfile1, line 4."
+ gdb_test "b s2_func" \
+ "Breakpoint $decimal at $hex: file .*$srcfile2, line 3."
+
+ # continue to first breakpoint
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, s1_func \\(s1_parm=123\\).*s1_loc = 467" \
+ "continue to s1_func"
+ gdb_test "next" ".* call s2_func \\(s1_parm\\)" "step past assn to s1_loc"
+
+ # continue to s2_func from s1_func, first call
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, s2_func \\(s2_parm=123\\).*print.*s2_parm" \
+ "continue to s2_func, calling from s1_func with s1_parm"
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, s2_func \\(s2_parm=467\\).*print.*s2_parm" \
+ "continue to s2_func, calling from s1_func with s1_loc"
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, s2_func \\(s2_parm=5\\).*print.*s2_parm" \
+ "continue to s2_func, calling from s1_func with s1_g"
+
+ gdb_test "continue" \
+ "Continuing.*Breakpoint $decimal, s2_func \\(s2_parm=321\\).*print.*s2_parm" \
+ "continue to s2_func, calling from main with solib_i"
+
+ gdb_test "continue" \
+ "Continuing.*Program exited normally.*Temporarily disabling shared library breakpoints:.*" \
+ "continue to end"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/solibf.f gdb/testsuite/gdb.fortran/solibf.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/solibf.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/solibf.f Thu Jul 22 17:50:02 1999
***************
*** 0 ****
--- 1,6 ----
+ program solib
+ integer *4 :: solib_i = 123
+ call s1_func (solib_i)
+ solib_i = 321
+ call s2_func (solib_i)
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/solibf1.f gdb/testsuite/gdb.fortran/solibf1.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/solibf1.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/solibf1.f Thu Jul 22 17:50:02 1999
***************
*** 0 ****
--- 1,9 ----
+ subroutine s1_func (s1_parm)
+ integer*4 s1_loc, s1_parm
+ integer*4 ::s1_g = 5
+ s1_loc = 467
+ call s2_func (s1_parm)
+ call s2_func (s1_loc)
+ call s2_func (s1_g)
+ return
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/solibf2.f gdb/testsuite/gdb.fortran/solibf2.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/solibf2.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/solibf2.f Thu Jul 22 17:50:02 1999
***************
*** 0 ****
--- 1,5 ----
+ subroutine s2_func (s2_parm)
+ integer*4 s2_parm
+ print *, "s2_parm=", s2_parm
+ return
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/stepnext.exp gdb/testsuite/gdb.fortran/stepnext.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/stepnext.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/stepnext.exp Thu Jul 22 17:50:00 1999
***************
*** 0 ****
--- 1,114 ----
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+ #
+ # Fortran test to verify that step and next work properly on a f77 program.
+ #
+ # Source file: stepnext.f
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "stepnext"
+ set srcfile ${testfile}.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ set MAIN "main"
+ if { [istarget "hppa*-*-hpux*"] } { set MAIN "_MAIN_" }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ if ![runto step_and_next ] {
+ perror "couldn't run to breakpoint step_and_next"
+ return -1
+ }
+
+ #test step
+ gdb_test "step" \
+ "square \\(x=2\\) at .*$srcfile.*square = x \\* x" \
+ "step into square from main"
+ gdb_test "step" \
+ ".*end function square" \
+ "step to end of square first time"
+ # The following test will fail if the problem is fixed in f90 --
+ # see JAGab14095
+ if {$hp_f90_compiler} {
+ gdb_test "step" \
+ ".*end function square" \
+ "extra step to end of square first time"
+ }
+ gdb_test "step" \
+ "$MAIN \\(.*\\) at .*$srcfile.*call simple_subroutine\\(\\)" \
+ "step back from square to main"
+ gdb_test "step" \
+ "simple_subroutine \\(\\) at .*$srcfile.*i = 2" \
+ "step into simple_subroutine from main"
+ gdb_test "step 2" \
+ ".*i = square \\(float\\(i\\)\\)" \
+ "2 steps just before call to square from simple_subroutine"
+ gdb_test "step" \
+ "square \\(x=3\\) at .*$srcfile.*square = x \\* x" \
+ "step into square from simple_subroutine"
+ gdb_test "step" \
+ ".*end function square" \
+ "step to end of square second time"
+ # The following test will fail if the problem is fixed in f90 --
+ # see JAGab14095
+ if {$hp_f90_compiler} {
+ gdb_test "step" \
+ ".*end function square" \
+ "extra step to end of square second time"
+ }
+ gdb_test "step" \
+ "simple_subroutine \\(\\) at .*$srcfile.*j = j \\+ 1.0" \
+ "step back into simple_subroutine from square"
+ gdb_test "step" \
+ ".*end subroutine simple_subroutine" \
+ "step to end of simple_subroutine"
+ gdb_test "step" \
+ "$MAIN \\(.*\\) at .*$srcfile.*end program step_and_next" \
+ "step back into main from simple_subroutine"
+
+ #test next
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ if ![runto step_and_next ] {
+ perror "couldn't run to breakpoint step_and_next"
+ return -1
+ }
+
+ gdb_test "next" \
+ "$decimal.*call simple_subroutine\\(\\)" \
+ "next first time"
+
+ gdb_test "next" \
+ "$decimal.*end program step_and_next" \
+ "next again"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/stepnext.f gdb/testsuite/gdb.fortran/stepnext.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/stepnext.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/stepnext.f Thu Jul 22 17:50:00 1999
***************
*** 0 ****
--- 1,27 ----
+ program step_and_next
+
+ real*4 ::r = 2
+ r = square (r)
+ call simple_subroutine()
+
+ end program step_and_next
+
+
+ real*4 function square( x )
+ real*4 x
+
+ square = x * x
+
+ end function square
+
+
+ subroutine simple_subroutine()
+ integer*4 i
+ integer*4 j
+
+ i = 2
+ i = i + 1.0
+ i = square (float(i))
+ j = j + 1.0
+
+ end subroutine simple_subroutine
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/strings.exp gdb/testsuite/gdb.fortran/strings.exp
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/strings.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/strings.exp Thu Jul 22 17:50:00 1999
***************
*** 0 ****
--- 1,123 ----
+ # Author: Ovidiu Predescu <ovidiu@cup.hp.com>, Aug 28, 1998
+ #
+ # Check the Fortran strings
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ return 0
+ }
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ set testfile "strings"
+ set srcfile ${testfile}.f
+ set srcfile1 ${testfile}_a.f
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} f77] {
+ return -1
+ }
+
+ if { ! $hp_f77_compiler && ! $hp_f90_compiler } {
+ return 0
+ }
+
+ if {[gdb_compile "$srcdir/$subdir/$srcfile $srcdir/$subdir/$srcfile1" "$binfile" executable {debug f77}] != ""} {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ # set up break points and get to first breakpoint
+
+ gdb_test "break subr1" \
+ "Breakpoint $decimal at $hex: file .*$srcfile.*" \
+ "break in subr1"
+
+ gdb_test "break subr2" \
+ "Breakpoint $decimal at $hex: file .*$srcfile.*" \
+ "break in subr2"
+
+ gdb_test "break subr3" \
+ "Breakpoint $decimal at $hex: file .*$srcfile.*" \
+ "break in subr3"
+
+ gdb_test "break subr4" \
+ "Breakpoint $decimal at $hex: file .*$srcfile1.*" \
+ "break in subr4"
+
+ # Run the program and check the output from the first breakpoint
+ gdb_test "run" \
+ "Starting program: \[^\n\]*\r\.*cstring='ab'.*" \
+ "stop in subr1"
+
+ gdb_test "ptype cstring" \
+ "type = character\\\*53" \
+ "type of cstring in subr1"
+
+ # Continue running the program and check the output from the second
+ # breakpoint
+
+ gdb_test "continue" \
+ "Breakpoint.*cstring='cd'.*" \
+ "stop in subr2; called from subr1"
+
+ gdb_test "ptype cstring" \
+ "type = character\\\*50" \
+ "type of cstring in subr2"
+
+ # Continue to second breakpoint again; called from main this time
+
+ gdb_test "continue" \
+ "Breakpoint.*cstring='ef'.*" \
+ "stop in subr2; called from subr1"
+
+ gdb_test "ptype cstring" \
+ "type = character\\\*50" \
+ "type of cstring in subr2"
+
+ # Continue to third breakpoint -- testing multiple string parameters
+
+ gdb_test "continue" \
+ "Breakpoint.*cstring1='ef'.*cstring2='cdefg'.*" \
+ "stop in subr3; called from main"
+
+ gdb_test "ptype cstring1" \
+ "type = character\\\*53" \
+ "type of cstring1 in subr3"
+
+ gdb_test "ptype cstring2" \
+ "type = character\\\*55" \
+ "type of cstring2 in subr3"
+
+ # Continue to fourth breakpoint -- testing string parameters in function
+ # compiled separately
+
+ if {[istarget "hppa2.0w*-*-hpux*"]} {
+ xfail "remaining test points ignored -- see JAGab25245"
+ continue
+ }
+
+ gdb_test "continue" \
+ "Breakpoint.*cstring='9876543210', ' ' <repeats 43 times>, cstring_arr=\\(<assumed size array> \\( ' ' <repeats 80 times>, ' ' <repeats 80 times>\\) \\).*" \
+ "stop in subr4; called from main"
+
+ gdb_test "ptype cstring" \
+ "type = character\\\*53" \
+ "type of cstring in subr4"
+
+ gdb_test "ptype cstring_arr" \
+ "type = character\\\*80 \\(2,\\\*\\)" \
+ "type of cstring_arr in subr4"
+
+ gdb_test "until 10" \
+ "subr4.*at.*$srcfile1:10.*end" \
+ "continue until end of subr4"
+
+ gdb_test "print cstring_arr(1,2)" \
+ ".*= '98765', ' ' <repeats 75 times>" \
+ "print cstring_arr(1,2) in subr4"
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/strings.f gdb/testsuite/gdb.fortran/strings.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/strings.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/strings.f Thu Jul 22 17:50:00 1999
***************
*** 0 ****
--- 1,37 ----
+ integer i
+ character (53) two
+ data two /'ab'/
+ character (55) three
+ data three /'cdefg'/
+ character four (2,2)*80
+ data four /4*' '/
+
+ i = 1
+ call subr1 (i, two)
+ call subr2 (i, two)
+ call subr3 (two, three, i)
+ call subr4 (two, four)
+ end
+
+ subroutine subr1 (i, cstring)
+ integer i
+ character (*) cstring
+ cstring = "cd"
+ j = i*2
+ call subr2 (i, cstring)
+ end
+
+ subroutine subr2 (i, cstring)
+ integer i,j
+ character (50) cstring
+ cstring = "ef"
+ j = i*2
+ end
+
+ subroutine subr3 (cstring1, cstring2, i)
+ integer i,j
+ character (*) cstring1, cstring2
+ cstring1 = "9876543210"
+ cstring2 = "1234xxx890"
+ j = i*2
+ end
diff -c -N ../gdb-19990719/gdb/testsuite/gdb.fortran/strings_a.f gdb/testsuite/gdb.fortran/strings_a.f
*** ../gdb-19990719/gdb/testsuite/gdb.fortran/strings_a.f Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.fortran/strings_a.f Thu Jul 22 17:50:03 1999
***************
*** 0 ****
--- 1,11 ----
+ subroutine subr4 ( cstring, cstring_arr )
+
+ character cstring*(*)
+ character cstring_arr(2,*)*(*)
+ integer k1
+
+ k1 = 5
+ cstring_arr(1,2)(1:k1) = cstring
+
+ end
+
^ permalink raw reply [flat|nested] 7+ messages in thread
* gdb.hp testsuite patch
1999-07-22 18:19 gdb.disasm testsuite patch Jimmy Guo
1999-07-22 18:23 ` tools/ tar " Jimmy Guo
1999-07-22 18:28 ` gdb.fortran " Jimmy Guo
@ 1999-07-22 18:43 ` Jimmy Guo
1999-07-22 18:52 ` gdb.threads " Jimmy Guo
1999-08-04 17:01 ` gdb.disasm " Stan Shebs
4 siblings, 0 replies; 7+ messages in thread
From: Jimmy Guo @ 1999-07-22 18:43 UTC (permalink / raw)
To: gdb-patches
This patch contains merged gdb.hp testsuite.
It includes merge changes, new tests in gdb.base-hp/, gdb.defects/, and
gdb.threads-hp/, mainly for pa2.0w, regression, and thread testing. A
FSF copyright assignment is on its way.
File renames / moves (a tar file of gdb.hp has been ftp'd over as
ftp.cygnus.com:/incoming/hp_gdb.hp.tar, *** since there're binaries
included please apply the actual change from the tar file ***):
Old New
--- ---
gdb.hp/ gdb.hp/
============================== ==============================
ambiguous.cc gdb.c++/ambiguous.cc
ambiguous.exp gdb.c++/ambiguous.exp
attach.c gdb.base/attach.c
attach.exp gdb.base/attach.exp
attach2.c gdb.base/attach2.c
attach2.exp gdb.threads/attach2.exp
average.c gdb.hp/gdb.compat/average.c
classes-hp.exp
compiler.c
compiler.cc
configure
configure.in
ctti-add.cc gdb.c++/cttiadd.cc
ctti-add1.cc gdb.c++/cttiadd1.cc
ctti-add2.cc gdb.c++/cttiadd2.cc
ctti-add3.cc gdb.c++/cttiadd3.cc
ctti.exp gdb.c++/ctti.exp
dbx.exp gdb.base/dbx.exp
exception.cc gdb.hp/gdb.aCC/exception.cc
exception.exp gdb.hp/gdb.aCC/exception.exp
execd-program.c gdb.base/execd-prog.c
foll-exec.c gdb.base/foll-exec.c
foll-exec.exp gdb.base/foll-exec.exp
foll-fork.c gdb.base/foll-fork.c
foll-fork.exp gdb.base/foll-fork.exp
foll-vfork.c gdb.base/foll-vfork.c
foll-vfork.exp gdb.base/foll-vfork.exp
gdb.aCC/
gdb.base-hp/
gdb.compat/
gdb.defects/
gdb.objdbg/
gdb.threads-hp/
gen-so-thresh.c gdb.hp/gdb.base-hp/genso-thresh.c
hwwatchbus.c gdb.hp/gdb.base-hp/hwwatchbus.c
hwwatchbus.exp gdb.hp/gdb.base-hp/hwwatchbus.exp
inherit-hp.exp
misc-hp.cc
more-steps.c gdb.threads/more-steps.c
more-steps.exp gdb.threads/more-steps.exp
namespace.cc gdb.hp/gdb.aCC/namespace.cc
namespace.exp gdb.hp/gdb.aCC/namespace.exp
optimize.c gdb.hp/gdb.aCC/optimize.c
optimize.exp gdb.hp/gdb.aCC/optimize.exp
pxdb.c gdb.hp/gdb.base-hp/pxdb.c
pxdb.exp gdb.hp/gdb.base-hp/pxdb.exp
quicksort.c gdb.threads/quicksort.c
quicksort.exp gdb.threads/quicksort.exp
reg-test.exp gdb.hp/gdb.base-hp/reg.exp
reg-test.s gdb.hp/gdb.base-hp/reg.s
run-hp.c gdb.hp/gdb.aCC/run.c
sized-enum.c gdb.hp/gdb.base-hp/sized-enum.c
sized-enum.exp gdb.hp/gdb.base-hp/sized-enum.exp
so-thresh.exp gdb.hp/gdb.base-hp/so-thresh.exp
so-thresh.linkopts
so-thresh.mk gdb.hp/gdb.base-hp/so-thresh.mk
so-thresh.sh gdb.hp/gdb.base-hp/so-thresh.sh
start-stop.c gdb.threads/start-stop.c
start-stop.exp gdb.threads/start-stop.exp
sum.c gdb.hp/gdb.compat/sum.c
templ-hp.cc
templ-hp.exp
thr-lib.c gdb.threads/thr-lib.c
thr-lib.exp gdb.threads/thr-lib.exp
thr-lib.h gdb.threads/thr-lib.h
thr-liblib.c gdb.threads/thr-liblib.c
thr-stg.exp gdb.threads/thr-stg.exp
tools/
vforked-program.c gdb.base/vforked-prog.c
virtfun-hp.cc
virtfun-hp.exp
watch-cmd.exp gdb.hp/gdb.aCC/watch-cmd.exp
watch-hp.c
watch-hp.exp
xdb.c gdb.hp/gdb.compat/xdb.c
xdb0.c gdb.hp/gdb.compat/xdb0.c
xdb0.h gdb.hp/gdb.compat/xdb0.h
xdb1.c gdb.hp/gdb.compat/xdb1.c
xdb1.exp gdb.hp/gdb.compat/xdb1.exp
xdb2.exp gdb.hp/gdb.compat/xdb2.exp
xdb3.exp gdb.hp/gdb.compat/xdb3.exp
gdb.hp/gdb.aCC/
============================== ==============================
Makefile.in
compiler.c
compiler.cc
configure
configure.in
gdb.hp/exception.cc exception.cc
gdb.hp/exception.exp exception.exp
gdb.hp/namespace.cc namespace.cc
gdb.hp/namespace.exp namespace.exp
gdb.hp/optimize.c optimize.c
gdb.hp/optimize.exp optimize.exp
gdb.hp/run-hp.c run.c
gdb.hp/watch-cmd.exp watch-cmd.exp
gdb.hp/gdb.base-hp/
============================== ==============================
Makefile.in
compiler.c
compiler.cc
configure
configure.in
dollar.c
gdb.base/dollar.exp dollar.exp
gdb.hp/gen-so-thresh.c genso-thresh.c
gdb.hp/hwwatchbus.c hwwatchbus.c
gdb.hp/hwwatchbus.exp hwwatchbus.exp
gdb.hp/pxdb.c pxdb.c
gdb.hp/pxdb.exp pxdb.exp
reg-pa64.exp
reg-pa64.s
gdb.hp/reg-test.exp reg.exp
gdb.hp/reg-test.s reg.s
gdb.hp/sized-enum.c sized-enum.c
gdb.hp/sized-enum.exp sized-enum.exp
gdb.hp/so-thresh.exp so-thresh.exp
gdb.hp/so-thresh.mk so-thresh.mk
gdb.hp/so-thresh.sh so-thresh.sh
gdb.hp/gdb.compat/
============================== ==============================
Makefile.in
gdb.hp/average.c average.c
compiler.c
compiler.cc
configure
configure.in
gdb.hp/sum.c sum.c
gdb.hp/xdb.c xdb.c
gdb.hp/xdb0.c xdb0.c
gdb.hp/xdb0.h xdb0.h
gdb.hp/xdb1.c xdb1.c
gdb.hp/xdb1.exp xdb1.exp
gdb.hp/xdb2.exp xdb2.exp
gdb.hp/xdb3.exp xdb3.exp
gdb.hp/gdb.defects/
============================== ==============================
Makefile.in
bs14602.c
bs14602.exp
bs15503.cc
bs15503.exp
compiler.c
compiler.cc
configure
configure.in
solib-d.c
solib-d.exp
solib-d1.c
solib-d2.c
gdb.hp/gdb.objdbg/
============================== ==============================
Makefile.in
compiler.c
compiler.cc
configure
configure.in
objdbg01/
objdbg01.exp
objdbg02/
objdbg02.exp
objdbg03/
objdbg03.exp
objdbg04/
objdbg04.exp
tools/
gdb.hp/gdb.objdbg/objdbg01/
============================== ==============================
x1.cc
x2.cc
x3.cc
x3.h
gdb.hp/gdb.objdbg/objdbg02/
============================== ==============================
x1.cc
x2.cc
x3.cc
gdb.hp/gdb.objdbg/objdbg03/
============================== ==============================
x1.cc
x2.cc
x3.cc
gdb.hp/gdb.objdbg/objdbg04/
============================== ==============================
x.h
x1.cc
x2.cc
gdb.hp/gdb.objdbg/tools/
============================== ==============================
symaddr
symaddr.pa64
test-objdbg.cc
gdb.hp/gdb.threads-hp/
============================== ==============================
Makefile.in
compiler.c
compiler.cc
configure
configure.in
usrthbasic
usrthbasic.c
usrthbasic.exp
usrthcore
usrthcore.c
usrthcore.exp
usrthfork
usrthfork.c
usrthfork.exp
gdb.hp/tools/
============================== ==============================
odump
(needed by new
gdb.hp/gdb.objdbg/tools/symaddr)
- Jimmy Guo, guo@cup.hp.com
/opt/gnu/bin/diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp gdb/testsuite/gdb.hp
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/Makefile.in gdb/testsuite/gdb.hp/Makefile.in
*** ../gdb-19990719/gdb/testsuite/gdb.hp/Makefile.in Fri Jan 29 16:03:21 1999
--- gdb/testsuite/gdb.hp/Makefile.in Thu Jul 22 17:50:16 1999
***************
*** 1,25 ****
VPATH = @srcdir@
srcdir = @srcdir@
! PROGS = ambiguous ctti-add exception gen-so-thresh namespace \
! optimize pxdb so-thresh templ-hp watch-hp xdb
! MISCELLANEOUS = \
! lib00-so-thresh.c lib00-so-thresh.sl \
! lib01-so-thresh.c lib01-so-thresh.sl \
! lib02-so-thresh.c lib02-so-thresh.sl \
! so-thresh.c so-thresh.linkopts
!
! all:
@echo "Nothing to be done for all..."
! #### host, target, and site specific Makefile frags come in here.
clean mostlyclean:
! -rm -f *.ci *.o $(OBJS) $(PROGS) $(MISCELLANEOUS) *~ core
distclean maintainer-clean realclean: clean
-rm -f Makefile config.status config.log
! Makefile: $(srcdir)/Makefile.in $(srcdir)/configure.in
$(SHELL) ./config.status --recheck
--- 1,44 ----
VPATH = @srcdir@
srcdir = @srcdir@
! SUBDIRS = @subdirs@
! all:
@echo "Nothing to be done for all..."
! info:
! install-info:
! dvi:
! install:
! uninstall: force
! installcheck:
! check:
clean mostlyclean:
! -rm -f *~ core *.o
! if [ x"${SUBDIRS}" != x ] ; then \
! for dir in ${SUBDIRS}; \
! do \
! echo "$$dir:"; \
! if [ -d $$dir ]; then \
! (cd $$dir; $(MAKE) clean); \
! fi; \
! done ; \
! else true; fi
distclean maintainer-clean realclean: clean
-rm -f Makefile config.status config.log
+ -rm -f *-init.exp
+ -rm -fr *.log summary detail *.plog *.sum *.psum site.*
+ if [ x"${SUBDIRS}" != x ] ; then \
+ for dir in ${SUBDIRS}; \
+ do \
+ echo "$$dir:"; \
+ if [ -d $$dir ]; then \
+ (cd $$dir; $(MAKE) distclean); \
+ fi; \
+ done ; \
+ else true; fi
! Makefile : $(srcdir)/Makefile.in $(srcdir)/configure.in
$(SHELL) ./config.status --recheck
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/ambiguous.cc gdb/testsuite/gdb.hp/ambiguous.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/ambiguous.cc Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/ambiguous.cc Wed Dec 31 16:00:00 1969
***************
*** 1,110 ****
-
- void marker1()
- {
- return;
- }
-
- class A1 {
- public:
- int x;
- int y;
- };
-
- class A2 {
- public:
- int x;
- int y;
- };
-
- class A3 {
- public:
- int x;
- int y;
- };
-
- class X : public A1, public A2 {
- public:
- int z;
- };
-
- class L : public A1 {
- public:
- int z;
- };
-
- class LV : public virtual A1 {
- public:
- int z;
- };
-
- class M : public A2 {
- public:
- int w;
- };
-
- class N : public L, public M {
- public:
- int r;
- };
-
- class K : public A1 {
- public:
- int i;
- };
-
- class KV : public virtual A1 {
- public:
- int i;
- };
-
- class J : public K, public L {
- public:
- int j;
- };
-
- class JV : public KV, public LV {
- public:
- int jv;
- };
-
- class JVA1 : public KV, public LV, public A1 {
- public:
- int jva1;
- };
-
- class JVA2 : public KV, public LV, public A2 {
- public:
- int jva2;
- };
-
- class JVA1V : public KV, public LV, public virtual A1 {
- public:
- int jva1v;
- };
-
- int main()
- {
- A1 a1;
- A2 a2;
- A3 a3;
- X x;
- L l;
- M m;
- N n;
- K k;
- J j;
- JV jv;
- JVA1 jva1;
- JVA2 jva2;
- JVA1V jva1v;
-
- int i;
-
- i += k.i + m.w + a1.x + a2.x + a3.x + x.z + l.z + n.r + j.j;
-
- marker1();
-
- }
-
-
-
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/ambiguous.exp gdb/testsuite/gdb.hp/ambiguous.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/ambiguous.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/ambiguous.exp Wed Dec 31 16:00:00 1969
***************
*** 1,217 ****
- # Copyright (C) 1998 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
- # (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.
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # This file is part of the gdb testsuite
-
- # tests relating to ambiguous class members
- # Written by Satish Pai <pai@apollo.hp.com> 1997-07-28
-
- # This file is part of the gdb testsuite
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- #
- # test running programs
- #
-
- set prms_id 0
- set bug_id 0
-
- if { [skip_hp_tests] } then { continue }
-
- set testfile "ambiguous"
- set srcfile ${testfile}.cc
- set binfile ${objdir}/${subdir}/${testfile}
-
- if [get_compiler_info ${binfile} "c++"] {
- return -1;
- }
-
- if { $gcc_compiled } then { continue }
-
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
-
- 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
- }
-
- send_gdb "break marker1\n" ; gdb_expect -re ".*$gdb_prompt $"
- send_gdb "cont\n"
- gdb_expect {
- -re "Break.* marker1 \\(\\) at .*:$decimal.*$gdb_prompt $" {
- send_gdb "up\n"
- gdb_expect {
- -re ".*$gdb_prompt $" { pass "up from marker1" }
- timeout { fail "up from marker1" }
- }
- }
- -re "$gdb_prompt $" { fail "continue to marker1" }
- timeout { fail "(timeout) continue to marker1" }
- }
-
- # print out various class objects' members. The values aren't
- # important, just check that the warning is emitted at the
- # right times.
-
- # X is derived from A1 and A2; both A1 and A2 have a member 'x'
- send_gdb "print x.x\n"
- gdb_expect {
- -re "warning: x ambiguous; using X::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = 0\r\n$gdb_prompt $" {
- pass "print x.x"
- }
- -re ".*$gdb_prompt $" { fail "print x.x" }
- timeout { fail "(timeout) print x.x" }
- }
-
-
- # N is derived from A1 and A2, but not immediately -- two steps
- # up in the hierarchy. Both A1 and A2 have a member 'x'.
- send_gdb "print n.x\n"
- gdb_expect {
- -re "warning: x ambiguous; using N::L::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = 0\r\n$gdb_prompt $" {
- pass "print n.x"
- }
- -re ".*$gdb_prompt $" { fail "print n.x" }
- timeout { fail "(timeout) print n.x" }
- }
-
- # J is derived from A1 twice. A1 has a member x.
- send_gdb "print j.x\n"
- gdb_expect {
- -re "warning: x ambiguous; using J::K::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = 0\r\n$gdb_prompt $" {
- pass "print j.x"
- }
- -re ".*$gdb_prompt $" { fail "print j.x" }
- timeout { fail "(timeout) print j.x" }
- }
-
- # JV is derived from A1 but A1 is a virtual base. Should not
- # report an ambiguity in this case.
- send_gdb "print jv.x\n"
- gdb_expect {
- -re "warning: x ambiguous.*Use a cast to disambiguate.\r\n\\$\[0-9\]* = 0\r\n$gdb_prompt $" {
- fail "print jv.x (ambiguity reported)"
- }
- -re "\\$\[0-9\]* = 0\r\n$gdb_prompt $" { pass "print jv.x" }
- -re ".*$gdb_prompt $" { fail "print jv.x (??)" }
- timeout { fail "(timeout) print jv.x" }
- }
-
- # JVA1 is derived from A1; A1 occurs as a virtual base in two
- # ancestors, and as a non-virtual immediate base. Ambiguity must
- # be reported.
- send_gdb "print jva1.x\n"
- gdb_expect {
- -re "warning: x ambiguous; using JVA1::KV::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = 0\r\n$gdb_prompt $" {
- pass "print jva1.x"
- }
- -re ".*$gdb_prompt $" { fail "print jva1.x" }
- timeout { fail "(timeout) print jva1.x" }
- }
-
- # JVA2 is derived from A1 & A2; A1 occurs as a virtual base in two
- # ancestors, and A2 is a non-virtual immediate base. Ambiguity must
- # be reported as A1 and A2 both have a member 'x'.
- send_gdb "print jva2.x\n"
- gdb_expect {
- -re "warning: x ambiguous; using JVA2::KV::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = 0\r\n$gdb_prompt $" {
- pass "print jva2.x"
- }
- -re ".*$gdb_prompt $" { fail "print jva2.x" }
- timeout { fail "(timeout) print jva2.x" }
- }
-
- # JVA1V is derived from A1; A1 occurs as a virtual base in two
- # ancestors, and also as a virtual immediate base. Ambiguity must
- # not be reported.
- send_gdb "print jva1v.x\n"
- gdb_expect {
- -re "warning: x ambiguous.*Use a cast to disambiguate.\r\n\\$\[0-9\]* = 0\r\n$gdb_prompt $" {
- fail "print jva1v.x (ambiguity reported)"
- }
- -re "\\$\[0-9\]* = 0\r\n$gdb_prompt $" { pass "print jva1v.x" }
- -re ".*$gdb_prompt $" { fail "print jva1v.x (??)" }
- timeout { fail "(timeout) print jva1v.x" }
- }
-
- # Now check for ambiguous bases.
-
- # J is derived from A1 twice; report ambiguity if a J is
- # cast to an A1.
- send_gdb "print (A1)j\n"
- gdb_expect {
- -re "warning: A1 ambiguous; using J::K::A1. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \{x = 0, y = 0\}\r\n$gdb_prompt $" {
- pass "print (A1)j"
- }
- -re ".*$gdb_prompt $" { fail "print (A1)j" }
- timeout { fail "(timeout) print (A1)j" }
- }
-
- # JV is derived from A1 twice, but A1 is a virtual base; should
- # not report ambiguity when a JV is cast to an A1.
- send_gdb "print (A1)jv\n"
- gdb_expect {
- -re "warning: A1 ambiguous.*Use a cast to disambiguate.\r\n\\$\[0-9\]* = \{x = 0, y = 0\}\r\n$gdb_prompt $" {
- fail "print (A1)jv (ambiguity reported)"
- }
- -re "\\$\[0-9\]* = \{x = 0, y = 0\}\r\n$gdb_prompt $" { pass "print (A1)jv" }
- -re ".*$gdb_prompt $" { fail "print (A1)jv (??)" }
- timeout { fail "(timeout) print (A1)jv" }
- }
-
- # JVA1 is derived from A1; A1 is a virtual base and also a
- # non-virtual base. Must report ambiguity if a JVA1 is cast to an A1.
- send_gdb "print (A1)jva1\n"
- gdb_expect {
- -re "warning: A1 ambiguous; using JVA1::KV::A1. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \{x = 0, y = 0\}\r\n$gdb_prompt $" {
- pass "print (A1)jva1"
- }
- -re ".*$gdb_prompt $" { fail "print (A1)jva1" }
- timeout { fail "(timeout) print (A1)jva1" }
- }
-
- # JVA1V is derived from A1; A1 is a virtual base indirectly
- # and also directly; must not report ambiguity when a JVA1V is cast to an A1.
- send_gdb "print (A1)jva1v\n"
- gdb_expect {
- -re "warning: A1 ambiguous.*Use a cast to disambiguate.\r\n\\$\[0-9\]* = \{x = 0, y = 0\}\r\n$gdb_prompt $" {
- fail "print (A1)jva1v (ambiguity reported)"
- }
- -re "\\$\[0-9\]* = \{x = 0, y = 0\}\r\n$gdb_prompt $" { pass "print (A1)jva1v"
- }
- -re ".*$gdb_prompt $" { fail "print (A1)jva1v (??)" }
- timeout { fail "(timeout) print (A1)jva1v" }
- }
-
-
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/attach.c gdb/testsuite/gdb.hp/attach.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/attach.c Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/attach.c Wed Dec 31 16:00:00 1969
***************
*** 1,19 ****
- /* This program is intended to be started outside of gdb, and then
- attached to by gdb. Thus, it simply spins in a loop. The loop
- is exited when & if the variable 'should_exit' is non-zero. (It
- is initialized to zero in this program, so the loop will never
- exit unless/until gdb sets the variable to non-zero.)
- */
- #include <stdio.h>
-
- int should_exit = 0;
-
- main ()
- {
- int local_i = 0;
-
- while (! should_exit)
- {
- local_i++;
- }
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/attach.exp gdb/testsuite/gdb.hp/attach.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/attach.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/attach.exp Wed Dec 31 16:00:00 1969
***************
*** 1,412 ****
- # Copyright (C) 1997 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # On HP-UX 11.0, this test is causing a process running
- # the program "attach" to be left around spinning.
- # Until we figure out why, I am commenting out the test
- # to avoid polluting tiamat (our 11.0 nightly test machine)
- # with these processes. RT
- #
- # Setting the magic bit in the target app should work.
- # I added a "kill", and also a test for the R3 register
- # warning. JB
- #
- if $tracelevel then {
- strace $tracelevel
- }
-
- set prms_id 0
- set bug_id 0
-
- if { [skip_hp_tests] } then { continue }
-
- if { ![istarget "hppa*-*-hpux10.30"] && ![istarget "hppa*-*-hpux11.*"] } {
- #setup_xfail "*-*-*"
- return 0
- }
-
- set testfile "attach"
- set srcfile ${testfile}.c
- set srcfile2 ${testfile}2.c
- set binfile ${objdir}/${subdir}/${testfile}
- set binfile2 ${objdir}/${subdir}/${testfile}2
- set cleanupfile ${objdir}/${subdir}/${testfile}.awk
-
- #execute_anywhere "rm -f ${binfile} ${binfile2}"
- remote_exec build "rm -f ${binfile} ${binfile2}"
- # For debugging this test
- #
- #log_user 1
-
- # Clean out any old files from past runs.
- #
- remote_exec build "${cleanupfile}"
-
- # build the first test case
- #
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- # Build the in-system-call test
-
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${binfile2}" executable {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- #if { [compile "-E ${srcdir}/${subdir}/compiler.c >> ${objdir}/${subdir}/${testfile}.tmp"] != ""# } {
- # perror "Couldn't make ${testfile}.tmp"
- # return -1
- #}
-
- #execute_anywhere "mv ${objdir}/${subdir}/${testfile}.tmp ${binfile}.ci"
-
- #source ${binfile}.ci
-
- proc do_attach_tests {} {
- global gdb_prompt
- global binfile
- global srcfile
- global testfile
- global objdir
- global subdir
- global timeout
-
- # Start the program running and then wait for a bit, to be sure
- # that it can be attached to.
- #
- set testpid [eval exec $binfile &]
- exec sleep 2
-
- # Verify that we cannot attach to nonsense.
- #
- send_gdb "attach abc\n"
- gdb_expect {
- -re "Illegal process-id: abc.*$gdb_prompt $"\
- {pass "attach to nonsense is prohibited"}
- -re "Attaching to.*$gdb_prompt $"\
- {fail "attach to nonsense is prohibited (bogus pid allowed)"}
- -re "$gdb_prompt $" {fail "attach to nonsense is prohibited"}
- timeout {fail "(timeout) attach to nonsense is prohibited"}
- }
-
- # Verify that we cannot attach to what appears to be a valid
- # process ID, but is a process that doesn't exist. (I don't
- # believe any process is ever assigned #0, at least on HPUX.)
- #
- send_gdb "attach 0\n"
- gdb_expect {
- # This reponse is expected on HP-UX 10.20 (i.e., ptrace-based).
- -re "Attaching to.*, process 0.*No such process.*$gdb_prompt $"\
- {pass "attach to nonexistent process is prohibited"}
- # This response is expected on HP-UX 10.30 & 11.0 (i.e., ttrace-based).
- -re "Attaching to.*, process 0.*Permission denied.*$gdb_prompt $"\
- {pass "attach to nonexistent process is prohibited"}
- -re "$gdb_prompt $" {fail "attach to nonexistent process is prohibited"}
- timeout {fail "(timeout) attach to nonexistent process is prohibited"}
- }
-
- # Verify that we can attach to the process by first giving its
- # executable name via the file command, and using attach with
- # the process ID.
- #
- # (Actually, the test system appears to do this automatically
- # for us. So, we must also be prepared to be asked if we want
- # to discard an existing set of symbols.)
- #
- send_gdb "file $binfile\n"
- gdb_expect {
- -re "Load new symbol table from.*y or n.*$" {
- send_gdb "y\n"
- gdb_expect {
- -re "Reading symbols from $binfile\.\.\.*done.*$gdb_prompt $"\
- {pass "(re)set file, before attach1"}
- -re "$gdb_prompt $" {fail "(re)set file, before attach1"}
- timeout {fail "(timeout) (re)set file, before attach1"}
- }
- }
- -re "Reading symbols from $binfile\.\.\.*done.*$gdb_prompt $"\
- {pass "set file, before attach1"}
- -re "$gdb_prompt $" {fail "set file, before attach1"}
- timeout {fail "(timeout) set file, before attach1"}
- }
-
- send_gdb "attach $testpid\n"
- gdb_expect {
- -re "Attaching to program.*$binfile, process $testpid.*main.*at .*$srcfile:.*$gdb_prompt $"\
- {pass "attach1, after setting file"}
- -re "$gdb_prompt $" {fail "attach1, after setting file"}
- timeout {fail "(timeout) attach1, after setting file"}
- }
-
- # Verify that we can "see" the variable "should_exit" in the
- # program, and that it is zero.
- #
- send_gdb "print should_exit\n"
- gdb_expect {
- -re ".* = 0.*$gdb_prompt $"\
- {pass "after attach1, print should_exit"}
- -re "$gdb_prompt $" {fail "after attach1, print should_exit"}
- timeout {fail "(timeout) after attach1, print should_exit"}
- }
-
- # Detach the process.
- #
- send_gdb "detach\n"
- gdb_expect {
- -re "Detaching from program: .*$binfile.*$gdb_prompt $"\
- {pass "attach1 detach"}
- -re "$gdb_prompt $" {fail "attach1 detach"}
- timeout {fail "(timeout) attach1 detach"}
- }
-
- # Wait a bit for gdb to finish detaching
- #
- exec sleep 5
-
- # Purge the symbols from gdb's brain. (We want to be certain
- # the next attach, which won't be preceded by a "file" command,
- # is really getting the executable file without our help.)
- #
- set old_timeout $timeout
- set timeout [expr $timeout + 20]
- send_gdb "file\n"
- gdb_expect {
- -re ".*gdb internal error.*$" {
- fail "Internal error, prob. Memory corruption"
- }
- -re "No exec file now.*Discard symbol table.*y or n.*$" {
- send_gdb "y\n"
- gdb_expect {
- -re "No symbol file now.*$gdb_prompt $"\
- {pass "attach1, purging symbols after detach"}
- -re "$gdb_prompt $" {fail "attach1, purging symbols after detach"}
- timeout {fail "(timeout) attach1, purging symbols after detach"}
- }
- }
- -re "$gdb_prompt $" {fail "attach1, purging file after detach"}
- timeout {
- fail "(timeout) attach1, purging file after detach"
- }
- }
- set timeout $old_timeout
-
- # Verify that we can attach to the process just by giving the
- # process ID.
- #
- send_gdb "attach $testpid\n"
- gdb_expect {
- -re "Attaching to process $testpid.*Reading symbols from $binfile.*main.*at .*$gdb_prompt $"\
- {pass "attach2"}
- -re "$gdb_prompt $" {fail "attach2"}
- timeout {fail "(timeout) attach2"}
- }
-
- # Verify that we can modify the variable "should_exit" in the
- # program.
- #
- send_gdb "set should_exit=1\n"
- gdb_expect {
- -re "$gdb_prompt $" {pass "after attach2, set should_exit"}
- timeout {fail "(timeout) after attach2, set should_exit"}
- }
-
- # Verify that the modification really happened.
- #
- send_gdb "tbreak 19\n"
- gdb_expect {
- -re "Breakpoint .*at.*$srcfile, line 19.*$gdb_prompt $"\
- {pass "after attach2, set tbreak postloop"}
- -re "$gdb_prompt $" {fail "after attach2, set tbreak postloop"}
- timeout {fail "(timeout) after attach2, set tbreak postloop"}
- }
- send_gdb "continue\n"
- gdb_expect {
- -re "main.*at.*$srcfile:19.*$gdb_prompt $"\
- {pass "after attach2, reach tbreak postloop"}
- -re "$gdb_prompt $" {fail "after attach2, reach tbreak postloop"}
- timeout {fail "(timeout) after attach2, reach tbreak postloop"}
- }
-
- # Allow the test process to exit, to cleanup after ourselves.
- #
- send_gdb "continue\n"
- gdb_expect {
- -re "Program exited normally.*$gdb_prompt $"\
- {pass "after attach2, exit"}
- -re "$gdb_prompt $" {fail "after attach2, exit"}
- timeout {fail "(timeout) after attach2, exit"}
- }
-
- # Make sure we don't leave a process around to confuse
- # the next test run (and prevent the compile by keeping
- # the text file busy), in case the "set should_exit" didn't
- # work.
- #
- # execute_anywhere "kill -9 ${testpid}"
- remote_exec build "kill -9 ${testpid}"
- # Start the program running and then wait for a bit, to be sure
- # that it can be attached to.
- #
- set testpid [eval exec $binfile &]
- exec sleep 2
-
- # Verify that we can attach to the process, and find its a.out
- # when we're cd'd to some directory that doesn't contain the
- # a.out. (We use the source path set by the "dir" command.)
- #
- send_gdb "dir ${objdir}/${subdir}\n"
- gdb_expect {
- -re ".*Source directories searched: .*$gdb_prompt $"\
- {pass "set source path"}
- -re "$gdb_prompt $" {fail "set source path"}
- timeout {fail "(timeout) set source path"}
- }
-
- send_gdb "cd /tmp\n"
- gdb_expect {
- -re ".*Working directory /tmp.*$gdb_prompt $"\
- {pass "cd away from process' a.out"}
- -re "$gdb_prompt $" {fail "cd away from process' a.out"}
- timeout {fail "(timeout) cd away from process' a.out"}
- }
-
- # Explicitly flush out any knowledge of the previous attachment.
- send_gdb "symbol\n"
- gdb_expect {
- -re ".*Discard symbol table from.*y or n. $"\
- {send_gdb "y\n"
- gdb_expect {
- -re ".*No symbol file now.*$gdb_prompt $"\
- {pass "before attach3, flush symbols"}
- -re "$gdb_prompt $" {fail "before attach3, flush symbols"}
- timeout {fail "(timeout) before attach3, flush symbols"}
- }
- }
- -re ".*No symbol file now.*$gdb_prompt $"\
- {pass "before attach3, flush symbols"}
- -re "$gdb_prompt $" {fail "before attach3, flush symbols"}
- timeout {fail "(timeout) before attach3, flush symbols"}
- }
- send_gdb "exec\n"
- gdb_expect {
- -re ".*No exec file now.*$gdb_prompt $"\
- {pass "before attach3, flush exec"}
- -re "$gdb_prompt $" {fail "before attach3, flush exec"}
- timeout {fail "(timeout) before attach3, flush exec"}
- }
-
- send_gdb "attach $testpid\n"
- gdb_expect {
- -re "Attaching to process $testpid.*Reading symbols from $binfile.*main.*at .*$gdb_prompt $"\
- {pass "attach when process' a.out not in cwd"}
- -re "$gdb_prompt $" {fail "attach when process' a.out not in cwd"}
- timeout {fail "(timeout) attach when process' a.out not in cwd"}
- }
-
- send_gdb "kill\n"
- gdb_expect {
- -re ".*Kill the program being debugged.*y or n. $"\
- {send_gdb "y\n"
- gdb_expect {
- -re "$gdb_prompt $" {pass "after attach3, exit"}
- timeout {fail "(timeout) after attach3, exit"}
- }
- }
- -re "$gdb_prompt $" {fail "after attach3, exit"}
- timeout {fail "(timeout) after attach3, exit"}
- }
- }
-
- proc do_call_attach_tests {} {
- global gdb_prompt
- global binfile2
-
- # Start the program running and then wait for a bit, to be sure
- # that it can be attached to.
- #
- set testpid [eval exec $binfile2 &]
- exec sleep 2
-
- # Attach
- #
- send_gdb "attach $testpid\n"
- gdb_expect {
- -re ".*warning: reading register.*I.*O error.*$gdb_prompt $" {
- fail "attach call, read register 3 error"
- }
- -re "Attaching to.*process $testpid.*libc.*$gdb_prompt $" {
- pass "attach call"
- }
- -re "$gdb_prompt $" {fail "attach call"}
- timeout {fail "(timeout) attach call"}
- }
-
- # See if other registers are problems
- #
- send_gdb "i r r3\n"
- gdb_expect {
- -re ".*warning: reading register.*$gdb_prompt $" {
- pass "CHFts23490: known bug"
- }
- -re ".*r3.*$gdb_prompt $" {
- pass "Bug fixed, Yayyy!"
- }
- timeout { fail "timeout on info reg" }
- }
-
- # Get rid of the process
- #
- gdb_test "p should_exit = 1" ".*" ""
- gdb_test "c" ".*Program exited normally.*" ""
-
- # Be paranoid
- #
- # execute_anywhere "kill -9 ${testpid}"
- remote_exec build "kill -9 ${testpid}"
-
- }
-
-
- # Start with a fresh gdb
- #
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
- # This is a test of gdb's ability to attach to a running process.
- #
- do_attach_tests
-
- # Test attaching when the target is inside a system call
- #
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- do_call_attach_tests
-
- # Until "set follow-fork-mode" and "catch fork" are implemented on
- # other targets...
- #
- if ![istarget "hppa*-hp-hpux*"] then {
- setup_xfail "*-*-*"
- }
-
- return 0
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/attach2.c gdb/testsuite/gdb.hp/attach2.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/attach2.c Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/attach2.c Wed Dec 31 16:00:00 1969
***************
*** 1,23 ****
- /* This program is intended to be started outside of gdb, and then
- attached to by gdb. Thus, it simply spins in a loop. The loop
- is exited when & if the variable 'should_exit' is non-zero. (It
- is initialized to zero in this program, so the loop will never
- exit unless/until gdb sets the variable to non-zero.)
- */
- #include <stdio.h>
- #include <stdlib.h>
-
- int should_exit = 0;
-
- main ()
- {
- int local_i = 0;
-
- sleep( 10 ); /* System call causes register fetch to fail */
- /* This is a known HPUX "feature" */
- while (! should_exit)
- {
- local_i++;
- }
- return (0);
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/attach2.exp gdb/testsuite/gdb.hp/attach2.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/attach2.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/attach2.exp Wed Dec 31 16:00:00 1969
***************
*** 1,265 ****
- # attach.exp -- Expect script to test attaching to a threaded pgm
- # Copyright (C) 1992 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # use this to debug:
- #
- #log_user 1
-
- # Temporarily comment out - hanging
- #return 0
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- # Thread stuff is _slow_; prepare for long waits.
- #
- # Further, this test has some "null" lines designed
- # to consume output from gdb that was too late to be
- # matched (sequence is "gdb_test" sends; timeout and
- # on to next send; result finally comes in; mismatch).
- #
- # The null command is 'gdb_test "p \$pc" ".*" ""'
- # NOTE: this command undoes any up/down stuff!
- #
- proc pre_timeout { how_long } {
- global timeout
-
- set timeout [expr "$timeout + $how_long"]
- }
-
- proc post_timeout {} {
- global timeout
- global oldtimeout
-
- set timeout $oldtimeout
- gdb_test "p \$pc" ".*" ""
- }
-
- if { ![istarget "hppa*-*-hpux10.30"] && ![istarget "hppa*-*-hpux11.*"] } {
- verbose "HPUX thread test ignored for non-hppa or pre-HP/UX-10.30 targets."
- return 0
- }
-
- # We used to wait 5 seconds , but tiamat is faster than
- # hydra...or is it that the OS allocates time differently(?).
- #
- set delay 5
- if { ![istarget "hppa*-*-hpux11.*"] } {
- set delay 45
- }
-
- set testfile quicksort
- set srcfile ${srcdir}/${subdir}/${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
-
- if [get_compiler_info ${binfile}] {
- return -1
- }
-
- set oldtimeout $timeout
- #set timeout [expr "$timeout + 100"]
- set oldverbose $verbose
- #set verbose 40
-
- # To build the executable we need to link against the thread library.
- #
- # cc -Ae -g -o quicksort -lpthread quicksort.c
- #
- #remote_exec build "${srcfile} -Ae -g -lpthread -o ${binfile}"
- #gdb_compile "${srcfile} -Ae -g -lpthread -o ${binfile}"
-
- if {$gcc_compiled == 0} {
- set additional_flags "additional_flags=-Ae"
- } else {
- set additional_flags ""
- }
-
- if { [gdb_compile "${srcdir}/${subdir}/${testfile}.c" "${binfile}.o" object [list debug $additional_flags]] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
- remote_exec build "ld /usr/ccs/lib/crt0.o ${binfile}.o -lcl -lpthread -lc /opt/langtools/lib/end.o -o ${binfile}"
-
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
-
- # Start the application running and get its pid.
- # Then we wait for it to get started and attach.
- #
- set testpid [eval exec $binfile 1 &]
- exec sleep $delay
-
- # Now attach to the file.
- #
- pre_timeout 100
- gdb_test "attach $testpid" ".*Attaching to process.*Reading symbols from.*done.*" "attach to target"
- post_timeout
-
- # Wait for things to quiesce.
- #
- exec sleep 0
-
- send_gdb "bt\n"
-
- set do_return 0
- set do_go_to_118 0
- pre_timeout 400
- gdb_expect {
- -re ".*sleep.*work_init.*main.*$gdb_prompt $" {
- pass "at expected location"
- }
- -re ".*drand48.*$gdb_prompt $" {
- set do_go_to_118 1
- }
- -re ".*pthread_mutex_lock.*$gdb_prompt $" {
- set do_go_to_118 1
- }
- -re ".*pthread_mutex_unlock.*$gdb_prompt $" {
- set do_go_to_118 1
- }
- -re ".*main.*$gdb_prompt $" {
- set do_go_to_118 1
- }
- -re ".*No stack.*$gdb_prompt $" {
- fail "Failed attach, change wait amount down, rest would fail"
- set do_return 1
- }
- -re ".*$gdb_prompt $" {
- # Who knows?
- #
- set do_go_to_118 1
- }
- timeout {
- set do_return 1
- fail "timeout on bt, avoiding rest of test"
- }
- }
- post_timeout
-
- # Too late; just give up.
- #
- if { $do_return } {
- set timeout $oldtimeout
- set verbose $oldverbose
- return 0
- }
-
- # Maybe too early--set a temp break and continue.
- # We have to set this on both paths, so that we can
- # know what numbers breakpoints will be.
- #
- gdb_test "tb 118" ".*Breakpoint 1.*118.*" ""
- if { $do_go_to_118 } {
- pre_timeout 100
- send_gdb "c\n"
- gdb_expect {
- -re ".*at.*118.*118.*$gdb_prompt $" {
- # Ok, just keep going
- }
- -re ".*Program exited.*$gdb_prompt $" {
- fail "Attached too late, set wait amount downwards"
- set timeout $oldtimeout
- set verbose $oldverbose
- return 0
- }
- -re ".*$gdb_prompt $" {
- fail "Unexpected result on attach"
- set timeout $oldtimeout
- set verbose $oldverbose
- return 0
- }
- timeout {
- fail "timeout on continue "
- }
- }
- post_timeout
- }
-
- # Look at the threads.
- #
- pre_timeout 100
- gdb_test "info thread" ".*7.*6.*5.*4.*3.*2.*\\\* 1.*thread.*" "first info thread"
- post_timeout
-
- # We expect to be inside the "sleep" call, so check that.
- #
- if { [expr "!$do_go_to_118"] } {
- gdb_test "up" ".*\#1.*nanosleep.*" "up 1"
- gdb_test "up" ".*\#2.*sleep.*" "up 2"
- pre_timeout 100
- gdb_test "up" ".*\#3.*work_init.*$testfile.*c:118.*sleep.*" "up 3"
- post_timeout
- } else {
- send_user "Skipped three tests\n"
- }
-
- # Get out of that call.
- #
- gdb_test "b 120" ".*Breakpoint 2.*120.*" "set bp"
- pre_timeout 100
- gdb_test "c" ".*Breakpoint 2.*at.*120.*" "hit bp"
- post_timeout
-
- # Look at the threads.
- #
- pre_timeout 100
- gdb_test "info thread" ".*7.*6.*5.*4.*3.*2.*1.*thread.*$testfile.*c*120.*" "2nd info thread"
- post_timeout
-
- # Do some more stuff, to make sure we can
- #
- gdb_test "thread 3" ".*Switching to.*thread.*ksleep.*" "switch thread"
-
- gdb_test "up" ".*_lwp_cond_timedwait.*" "up 5"
- gdb_test "up" ".*pthread_cond_wait.*" "up 6"
- gdb_test "up" ".*\#3.*worker.*144.*" "up 7"
- gdb_test "up" ".*__pthread_exit.*" "up 8"
- gdb_test "up" ".*Initial.*cannot go up.*" "found thread base"
-
- gdb_test "b 145 thr 3" ".*Breakpoint 3.*145.*" "thread-specific bp"
- gdb_test "i b" ".*2.*breakpoint.*at.*120.*3.*breakpoint.*at.*145 thread 3.*" "show thread-specific bp"
- gdb_test "del 2" ".*" ""
-
- gdb_test "c" ".*Breakpoint 3.*145.*" "hit thread-specific bp"
- gdb_test "i th" ".*\\\* 3.*145.*" "at correct thread"
-
- pre_timeout 100
- gdb_test "n" ".*146.*" "next from thread-specific bp"
- post_timeout
-
- gdb_test "d 3" ".*" ""
- gdb_test "c" ".*Program exited normally\..*" "run to finish"
-
- # Done!
- #
- gdb_exit
-
- set timeout $oldtimeout
- set verbose $oldverbose
-
- # execute_anywhere "rm -f ${binfile}"
- #
- return 0
-
-
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/average.c gdb/testsuite/gdb.hp/average.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/average.c Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/average.c Wed Dec 31 16:00:00 1969
***************
*** 1,39 ****
- /* This is a sample program for the HP WDB debugger. */
-
- #include <stdio.h>
-
- #define num 10
-
- static int my_list[num] = {3,4,2,0,2,1,8,3,6,7};
-
- #ifdef __STDC__
- void print_average(int list[], int low, int high)
- #else
- void print_average(list, low, high)
- int list[], low, high;
- #endif
- {
- int total, num_elements, average;
- total = sum(list, low, high);
- num_elements = high - low; /* note this is an off-by-one bug */
-
- average = total / num_elements;
- printf("%10.d\n", average);
- }
-
- #ifdef __STDC__
- int main(void)
- #else
- main ()
- #endif
- {
- char c;
- int first = 0;
- int last = num-1;
-
- /* Try two test cases. */
- print_average (my_list, first, last);
- print_average (my_list, first, last - 3);
- foo:
- exit(0);
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/classes-hp.exp gdb/testsuite/gdb.hp/classes-hp.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/classes-hp.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/classes-hp.exp Wed Dec 31 16:00:00 1969
***************
*** 1,859 ****
- # Copyright (C) 1992, 1994, 1995, 1997 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
- # (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.
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # This file was written by Fred Fish. (fnf@cygnus.com)
-
- set ws "\[\r\n\t \]+"
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- # Check to see if we have an executable to test. If not, then either we
- # haven't tried to compile one, or the compilation failed for some reason.
- # In either case, just notify the user and skip the tests in this file.
-
- set testfile "misc-hp"
- set srcfile ${testfile}.cc
- set binfile ${objdir}/${subdir}/${testfile}
-
- if [get_compiler_info ${binfile} "c++"] {
- return -1;
- }
-
- if { $gcc_compiled } then { continue }
-
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- #
- # Test ptype of class objects.
- #
-
- proc test_ptype_class_objects {} {
- global gdb_prompt
- global ws
-
- # Note that struct members are public by default, so we don't print
- # "public:" for the public members of structs.
- # Accept it as an expected failure if gdb just fails to distinguish between
- # class and struct, and everything else is OK.
-
- send_gdb "ptype struct default_public_struct\n"
- gdb_expect {
- -re "type = struct default_public_struct \{${ws}int a;${ws}int b;\r\n\}\r\n$gdb_prompt $" {
- pass "ptype struct default_public_struct"
- }
- -re "type = class default_public_struct \{\r\n.*int a;${ws}int b;\r\n.*\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype struct default_public_struct"
- }
- -re ".*$gdb_prompt $" { fail "ptype struct default_public_struct" }
- timeout { fail "ptype struct default_public_struct (timeout)" ; return }
- }
-
- # Note that struct members are public by default, so we don't print
- # "public:" for the public members of structs.
- # Accept it as an expected failure if gdb just fails to distinguish between
- # class and struct, and everything else is OK.
-
- send_gdb "ptype struct explicit_public_struct\n"
- gdb_expect {
- -re "type = struct explicit_public_struct \{${ws}int a;${ws}int b;\r\n.*\}\r\n$gdb_prompt $" {
- pass "ptype struct explicit_public_struct"
- }
- -re "type = class explicit_public_struct \{\r\n.*int a;${ws}int b;\r\n.*\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype struct explicit_public_struct"
- }
- -re ".*$gdb_prompt $" { fail "ptype struct explicit_public_struct" }
- timeout { fail "ptype struct explicit_public_struct (timeout)" ; return }
- }
-
- # Accept it as an expected failure if gdb just fails to distinguish between
- # class and struct, and everything else is OK.
-
- setup_xfail_format "DWARF 1"
- send_gdb "ptype struct protected_struct\n"
- gdb_expect {
- -re "type = struct protected_struct \{${ws}protected:${ws}int a;${ws}int b;\r\n\}\r\n$gdb_prompt $" {
- pass "ptype struct protected_struct (FIXME)"
- }
- -re "type = class protected_struct \{${ws}protected:${ws}int a;${ws}int b;\r\n.*\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype struct protected_struct (FIXME)"
- }
- -re ".*$gdb_prompt $" { fail "ptype struct protected_struct" }
- timeout { fail "ptype struct protected_struct (timeout)" ; return }
- }
-
- # Accept it as an expected failure if gdb just fails to distinguish between
- # class and struct, and everything else is OK.
-
- setup_xfail_format "DWARF 1"
- send_gdb "ptype struct private_struct\n"
- gdb_expect {
- -re "type = struct private_struct \{${ws}private:${ws}int a;${ws}int b;\r\n\}\r\n$gdb_prompt $" {
- pass "ptype struct private_struct (FIXME)"
- }
- -re "type = class private_struct \{${ws}private:${ws}int a;${ws}int b;\r\n.*\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype struct private_struct (FIXME)"
- }
- -re ".*$gdb_prompt $" { fail "ptype struct private_struct" }
- timeout { fail "ptype struct private_struct (timeout)" ; return }
- }
-
- # Accept it as an expected failure if gdb just fails to distinguish between
- # class and struct, and everything else is OK.
-
- setup_xfail_format "DWARF 1"
- send_gdb "ptype struct mixed_protection_struct\n"
- gdb_expect {
- -re "type = struct mixed_protection_struct \{${ws}int a;${ws}int b;${ws}private:${ws}int c;${ws}int d;${ws}protected:${ws}int e;${ws}int f;${ws}public:${ws}int g;${ws}private:${ws}int h;${ws}protected:${ws}int i;\[\r\n\]+\}\[\r\n\]+$gdb_prompt $" {
- pass "ptype struct mixed_protection_struct (FIXME)"
- }
- -re "type = struct mixed_protection_struct \{\r\n\[ \]*public:\r\n\[ \]*int a;\r\n\[ \]*int b;\r\n\[ \]*private:\r\n\[ \]*int c;\r\n\[ \]*int d;\r\n\[ \]*protected:\r\n\[ \]*int e;\r\n\[ \]*int f;\r\n\[ \]*public:\r\n\[ \]*int g;\r\n\[ \]*private:\r\n\[ \]*int h;\r\n\[ \]*protected:\r\n\[ \]*int i;\r\n.*\}\r\n$gdb_prompt $" {
- pass "ptype struct mixed_protection_struct (extra public)"
- }
- -re "type = class mixed_protection_struct \{${ws}public:${ws}int a;${ws}int b;${ws}private:${ws}int c;${ws}int d;${ws}protected:${ws}int e;${ws}int f;${ws}public:${ws}int g;${ws}private:${ws}int h;${ws}protected:${ws}int i;\r\n.*\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype struct mixed_protection_struct (FIXME)"
- }
- -re ".*$gdb_prompt $" { fail "ptype struct mixed_protection_struct" }
- timeout { fail "ptype struct mixed_protection_struct (timeout)" ; return }
- }
-
- # Accept it as an expected failure if gdb just fails to distinguish between
- # class and struct, and everything else is OK.
-
- send_gdb "ptype class public_class\n"
- gdb_expect {
- -re "type = class public_class \{${ws}public:${ws}int a;${ws}int b;\r\n.*\}\r\n$gdb_prompt $" {
- pass "ptype class public_class (FIXME)"
- }
- -re "type = struct public_class \{${ws}int a;${ws}int b;\r\n\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype class public_class (FIXME)"
- }
- -re ".*$gdb_prompt $" { fail "ptype class public_class" }
- timeout { fail "ptype class public_class (timeout)" ; return }
- }
-
- send_gdb "ptype class protected_class\n"
- gdb_expect {
- -re "type = class protected_class \{${ws}protected:${ws}int a;${ws}int b;\r\n.*\}\r\n$gdb_prompt $" {
- pass "ptype class protected_class"
- }
- -re "type = struct protected_class \{${ws}int a;${ws}int b;\r\n\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype class protected_class"
- }
- -re ".*$gdb_prompt $" { fail "ptype class protected_class" }
- timeout { fail "ptype class protected_class (timeout)" ; return }
- }
-
- # Accept it as an expected failure if gdb just emits a superflous "private:"
- # attribute, since classes default to private and for consistency with
- # structs (where we don't print the "public:" attribute) we don't print
- # the "private:" attribute.
-
- setup_xfail_format "DWARF 1"
- send_gdb "ptype class default_private_class\n"
- gdb_expect {
- -re "type = class default_private_class \{${ws}int a;${ws}int b;\r\n.*\}\r\n$gdb_prompt $" {
- pass "ptype class default_private_class (FIXME)"
- }
- -re "type = class default_private_class \{${ws}private:${ws}int a;${ws}int b;\r\n.*\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype class default_private_class (FIXME)"
- }
- -re ".*$gdb_prompt $" { fail "ptype class default_private_class" }
- timeout { fail "ptype class default_private_class (timeout)" ; return }
- }
-
- send_gdb "ptype class explicit_private_class\n"
- gdb_expect {
- -re "type = class explicit_private_class \{${ws}private:${ws}int a;${ws}int b;\r\n.*\}\r\n$gdb_prompt $" {
- pass "ptype class explicit_private_class"
- }
- -re "type = class explicit_private_class \{\r\n\[ \]*int a;\r\n\[ \]*int b;\r\n.*\}\r\n$gdb_prompt $" {
- pass "ptype class explicit_private_class (OK for HP aCC)"
- }
- -re "type = struct explicit_private_class \{${ws}int a;${ws}int b;\r\n.*\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype class explicit_private_class"
- }
- -re ".*$gdb_prompt $" { fail "ptype class explicit_private_class" }
- timeout { fail "ptype class explicit_private_class (timeout)" ; return }
- }
-
- send_gdb "ptype class mixed_protection_class\n"
- gdb_expect {
- -re "type = class mixed_protection_class \{${ws}public:${ws}int a;${ws}int b;${ws}private:${ws}int c;${ws}int d;${ws}protected:${ws}int e;${ws}int f;${ws}public:${ws}int g;${ws}private:${ws}int h;${ws}protected:${ws}int i;\r\n.*\}\r\n$gdb_prompt $" {
- pass "ptype class mixed_protection_class"
- }
- -re "type = struct mixed_protection_class \{${ws}int a;${ws}int b;${ws}int c;${ws}int d;${ws}int e;${ws}int f;${ws}int g;${ws}int h;${ws}int i;\r\n.*\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype class mixed_protection_class"
- }
- -re ".*$gdb_prompt $" { fail "ptype class mixed_protection_class" }
- timeout { fail "ptype class mixed_protection_class (timeout)" ; return }
- }
-
- # This class does not use any C++-specific features, so it's fine for
- # it to print as "struct".
- send_gdb "ptype class A\n"
- gdb_expect {
- -re "type = (class|struct) A \{(${ws}public:|)${ws}int a;${ws}int x;((${ws}A & operator=\\(A const &\\);)|(${ws}A\\(A const &\\);)|(${ws}A\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype class A"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype class A"
- }
- timeout {
- fail "ptype class A (timeout)"
- return
- }
- }
-
- setup_xfail_format "DWARF 1"
- send_gdb "ptype class B\n"
- gdb_expect {
- -re "type = class B : public A \{${ws}public:${ws}int b;${ws}int x;${ws}B & operator=\\(B const &\\);${ws}B\\(B const &\\);${ws}B\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype class B"
- }
- -re "type = class B : public A \{${ws}public:${ws}int b;${ws}int x;((${ws}B & operator=\\(B const &\\);)|(${ws}B\\(B const &\\);)|(${ws}B\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype class B (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype class B"
- }
- timeout {
- fail "ptype class B (timeout)"
- return
- }
- }
-
- setup_xfail_format "DWARF 1"
- send_gdb "ptype class C\n"
- gdb_expect {
- -re "type = class C : public A \{${ws}public:${ws}int c;${ws}int x;${ws}C & operator=\\(C const &\\);${ws}C\\(C const &\\);${ws}C\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype class C"
- }
- -re "type = class C : public A \{${ws}public:${ws}int c;${ws}int x;((${ws}C & operator=\\(C const &\\);)|(${ws}C\\(C const &\\);)|(${ws}C\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype class C (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype class C"
- }
- timeout {
- fail "ptype class C (timeout)"
- return
- }
- }
-
- setup_xfail_format "DWARF 1"
- send_gdb "ptype class D\n"
- gdb_expect {
- -re "type = class D : public B, public C \{${ws}public:${ws}int d;${ws}int x;${ws}D & operator=\\(D const &\\);${ws}D\\(D const &\\);${ws}D\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype class D"
- }
- -re "type = class D : public B, public C \{${ws}public:${ws}int d;${ws}int x;((${ws}D & operator=\\(D const &\\);)|(${ws}D\\(D const &\\);)|(${ws}D\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype class D (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype class D"
- }
- timeout {
- fail "ptype class D (timeout)"
- return
- }
- }
-
- setup_xfail_format "DWARF 1"
- send_gdb "ptype class E\n"
- gdb_expect {
- -re "type = class E : public D \{${ws}public:${ws}int e;${ws}int x;${ws}E & operator=\\(E const &\\);${ws}E\\(E const &\\);${ws}E\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype class E"
- }
- -re "type = class E : public D \{${ws}public:${ws}int e;${ws}int x;((${ws}E & operator=\\(E const &\\);)|(${ws}E\\(E const &\\);)|(${ws}E\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype class E"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype class E"
- }
- timeout {
- fail "ptype class E (timeout)"
- return
- }
- }
-
- send_gdb "ptype class vA\n"
- gdb_expect {
- -re "type = (class|struct) vA \{(${ws}public:|)${ws}int va;${ws}int vx;${ws}vA & operator=\\(vA const &\\);${ws}vA\\(vA const &\\);${ws}vA\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype class vA"
- }
- -re "type = (class|struct) vA \{(${ws}public:|)${ws}int va;${ws}int vx;((${ws}vA & operator=\\(vA const &\\);)|(${ws}vA\\(vA const &\\);)|(${ws}vA\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype class vA (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype class vA"
- }
- timeout {
- fail "ptype class vA (timeout)"
- return
- }
- }
-
- # Accept the form with embedded GNU style mangled virtual table constructs
- # for now, but with a FIXME. At some future point, gdb should use a
- # portable representation for the virtual table constructs.
-
- setup_xfail_format "DWARF 1"
- send_gdb "ptype class vB\n"
- gdb_expect {
- -re "type = class vB : public virtual vA \{${ws}private:${ws}vA \\*_vb.vA;${ws}public:${ws}int vb;${ws}int vx;${ws}vB & operator=\\(vB const &\\);${ws}vB\\(int, vB const &\\);${ws}vB\\(int\\);${ws}\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype class vB (FIXME: non-portable virtual table constructs)"
- }
- -re "type = class vB : public virtual vA \{\r\n\[ \]*public:\r\n\[ \]*int vb;\r\n\[ \]*int vx;\[\r\n\t \]+\}\r\n$gdb_prompt $" {
- pass "ptype class vB (aCC)"
- }
- -re "type = class vB : public virtual vA \{${ws}private:${ws}vA \\*_vb.vA;${ws}public:${ws}int vb;${ws}int vx;((${ws}vB & operator=\\(vB const &\\);)|(${ws}vB\\(int, vB const &\\);)|(${ws}vB\\(int\\);))*${ws}\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype class vB (FIXME) (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype class vB"
- }
- timeout {
- fail "ptype class vB (timeout)"
- return
- }
- }
-
- # Accept the form with embedded GNU style mangled virtual table constructs
- # for now, but with a FIXME. At some future point, gdb should use a
- # portable representation for the virtual table constructs.
-
- setup_xfail_format "DWARF 1"
- send_gdb "ptype class vC\n"
- gdb_expect {
- -re "type = class vC : public virtual vA \{${ws}private:${ws}vA \\*_vb.vA;${ws}public:${ws}int vc;${ws}int vx;${ws}vC & operator=\\(vC const &\\);${ws}vC\\(int, vC const &\\);${ws}vC\\(int\\);${ws}\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype class vC (FIXME: non-portable virtual table constructs)"
- }
- -re "type = class vC : public virtual vA \{\r\n\[ \]*public:\r\n\[ \]*int vc;\r\n\[ \]*int vx;\[\r\n\t \]+\}\r\n$gdb_prompt $" {
- pass "ptype class vC (aCC)"
- }
- -re "type = class vC : public virtual vA \{${ws}private:${ws}vA \\*_vb.vA;${ws}public:${ws}int vc;${ws}int vx;((${ws}vC & operator=\\(vC const &\\);)|(${ws}vC\\(int, vC const &\\);)|(${ws}vC\\(int\\);))*${ws}\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype class vC (FIXME) (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype class vC"
- }
- timeout {
- fail "ptype class vC (timeout)"
- return
- }
- }
-
- # Accept the form with embedded GNU style mangled virtual table constructs
- # for now, but with a FIXME. At some future point, gdb should use a
- # portable representation for the virtual table constructs.
-
- setup_xfail_format "DWARF 1"
- send_gdb "ptype class vD\n"
- gdb_expect {
- -re "type = class vD : public virtual vB, public virtual vC \{${ws}private:${ws}vC \\*_vb.vC;${ws}vB \\*_vb.vB;${ws}public:${ws}int vd;${ws}int vx;${ws}vD & operator=\\(vD const &\\);${ws}vD\\(int, vD const &\\);${ws}vD\\(int\\);${ws}\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype class vD (FIXME: non-portable virtual table constructs)"
- }
- -re "type = class vD : public virtual vB, public virtual vC \{\r\n\[ \]*public:\r\n\[ \]*int vd;\r\n\[ \]*int vx;\[\r\n\t \]+\}\r\n$gdb_prompt $" {
- pass "ptype class vD (aCC)"
- }
- -re "type = class vD : public virtual vB, public virtual vC \{${ws}private:${ws}vC \\*_vb.vC;${ws}vB \\*_vb.vB;${ws}public:${ws}int vd;${ws}int vx;((${ws}vD & operator=\\(vD const &\\);)|(${ws}vD\\(int, vD const &\\);)|(${ws}vD\\(int\\);))*${ws}\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype class vD (FIXME) (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype class vD"
- }
- timeout {
- fail "ptype class vD (timeout)"
- return
- }
- }
-
- # Accept the form with embedded GNU style mangled virtual table constructs
- # for now, but with a FIXME. At some future point, gdb should use a
- # portable representation for the virtual table constructs.
-
- setup_xfail_format "DWARF 1"
- send_gdb "ptype class vE\n"
- gdb_expect {
- -re "type = class vE : public virtual vD \{${ws}private:${ws}vD \\*_vb.vD;${ws}public:${ws}int ve;${ws}int vx;${ws}vE & operator=\\(vE const &\\);${ws}vE\\(int, vE const &\\);${ws}vE\\(int\\);${ws}\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype class vE (FIXME: non-portable virtual table constructs)"
- }
- -re "type = class vE : public virtual vD \{\r\n\[ \]*public:\r\n\[ \]*int ve;\r\n\[ \]*int vx;\[\r\n\t \]+\}\r\n$gdb_prompt $" {
- pass "ptype class vE (aCC)"
- }
- -re "type = class vE : public virtual vD \{${ws}private:${ws}vD \\*_vb.vD;${ws}public:${ws}int ve;${ws}int vx;((${ws}vE & operator=\\(vE const &\\);)|(${ws}vE\\(int, vE const &\\);)|(${ws}vE\\(int\\);))*${ws}\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype class vE (FIXME) (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype class vE"
- }
- timeout {
- fail "ptype class vE (timeout)"
- return
- }
- }
-
- setup_xfail_format "DWARF 1"
- send_gdb "ptype class Base1\n"
- gdb_expect {
- -re "type = class Base1 \{${ws}public:${ws}int x;${ws}Base1 & operator=\\(Base1 const &\\);${ws}Base1\\(Base1 const &\\);${ws}Base1\\(int\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype class Base1"
- }
- -re "type = class Base1 \{${ws}public:${ws}int x;((${ws}Base1 & operator=\\(Base1 const &\\);)|(${ws}Base1\\(Base1 const &\\);)|(${ws}Base1\\(int\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype class Base1 (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype class Base1"
- }
- timeout {
- fail "ptype class Base1 (timeout)"
- return
- }
- }
-
- setup_xfail_format "DWARF 1"
- send_gdb "ptype class Foo\n"
- gdb_expect {
- -re "type = class Foo \{\r\n\[ \]*public:\r\n\[ \]*int x;\r\n\[ \]*int y;\r\n\[ \]*static int st;\r\n\r\n\[ \]*Foo\\(int, int\\);\r\n\[ \]*int operator!.void.;\r\n\[ \]*operator int.void.;\r\n\[ \]*int times.int.;\r\n\}\r\n$gdb_prompt $" {
- pass "ptype class Foo(aCC)"
- }
- -re "type = class Foo \{${ws}public:${ws}int x;${ws}int y;${ws}static int st;${ws}Foo & operator=\\(Foo const &\\);${ws}Foo\\(Foo const &\\);${ws}Foo\\(int, int\\);${ws}int operator!\\(void\\);${ws}int operator int\\(void\\);${ws}int times\\(int\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype class Foo"
- }
- -re "type = class Foo \{${ws}public:${ws}int x;${ws}int y;${ws}static int st;((${ws}Foo & operator=\\(Foo const &\\);)|(${ws}Foo\\(Foo const &\\);)|(${ws}Foo\\(int, int\\);)|(${ws}int operator!\\(void\\);)|(${ws}int operator int\\(void\\);)|(${ws}int times\\(int\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype class Foo (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype class Foo"
- }
- timeout {
- fail "ptype class Foo (timeout)"
- return
- }
- }
-
- setup_xfail_format "DWARF 1"
- send_gdb "ptype class Bar\n"
- gdb_expect {
- -re "type = class Bar : public Base1, public Foo \{${ws}public:${ws}int z;${ws}Bar & operator=\\(Bar const &\\);${ws}Bar\\(Bar const &\\);${ws}Bar\\(int, int, int\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype class Bar"
- }
- -re "type = class Bar : public Base1, public Foo \{${ws}public:${ws}int z;((${ws}Bar & operator=\\(Bar const &\\);)|(${ws}Bar\\(Bar const &\\);)|(${ws}Bar\\(int, int, int\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype class Bar (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype class Bar"
- }
- timeout {
- fail "ptype class Bar (timeout)"
- return
- }
- }
- }
-
- #
- # Test simple access to class members.
- #
-
- proc test_non_inherited_member_access {} {
- global gdb_prompt
-
- # Print non-inherited members of g_A.
-
- gdb_test "print g_A.a" ".* = 1" "g_A.a incorrect"
-
- gdb_test "print g_A.x" ".* = 2" "g_A.x incorrect"
-
- # Print non-inherited members of g_B.
-
- gdb_test "print g_B.b" ".* = 5" "g_B.b incorrect"
-
- gdb_test "print g_B.x" ".* = 6" "g_B.x incorrect"
-
- # Print non-inherited members of g_C.
-
- gdb_test "print g_C.c" ".* = 9" "g_C.c incorrect"
-
- gdb_test "print g_C.x" ".* = 10" "g_C.x incorrect"
-
- # Print non-inherited members of g_D.
-
- gdb_test "print g_D.d" ".* = 19" "g_D.d incorrect"
-
- gdb_test "print g_D.x" ".* = 20" "g_D.x incorrect"
-
- # Print non-inherited members of g_E.
-
- gdb_test "print g_E.e" ".* = 31" "g_E.e incorrect"
-
- gdb_test "print g_E.x" ".* = 32" "g_E.x incorrect"
- }
-
- #
- # Try access to non-members that are members of another class.
- # Should give errors.
- #
-
- proc test_wrong_class_members {} {
- global gdb_prompt
-
- gdb_test "print g_A.b" "There is no member( or method|) named b." "print g_A.b should be error"
-
- gdb_test "print g_B.c" "There is no member( or method|) named c." "print g_B.c should be error"
-
- gdb_test "print g_B.d" "There is no member( or method|) named d." "print g_B.d should be error"
-
- gdb_test "print g_C.b" "There is no member( or method|) named b." "print g_C.b should be error"
-
- gdb_test "print g_C.d" "There is no member( or method|) named d." "print g_C.d should be error"
-
- gdb_test "print g_D.e" "There is no member( or method|) named e." "print g_D.e should be error"
- }
-
- #
- # Try access to non-members that are not members of any class.
- # Should give errors.
- #
-
- proc test_nonexistant_members {} {
- global gdb_prompt
-
- gdb_test "print g_A.y" "There is no member( or method|) named y." "print g_A.y should be error"
-
- gdb_test "print g_B.z" "There is no member( or method|) named z." "print g_B.z should be error"
-
- gdb_test "print g_C.q" "There is no member( or method|) named q." "print g_C.q should be error"
-
- gdb_test "print g_D.p" "There is no member( or method|) named p." "print g_D.p should be error"
- }
-
- #
- # Pointers to class members
- #
-
- proc test_pointers_to_class_members {} {
- global gdb_prompt
- global decimal
-
- gdb_test "print Bar::z" ".* = .int\[ \]*\[( \]*Bar::&\[)\]+\[ \]*Bar::z" "print Bar::z"
-
- gdb_test "print &Foo::x" ".* = .int\[ \]*\[( \]*Foo::\[*)\]+\[ \]*&Foo::x" "print &Foo::x"
-
- gdb_test "print (int)&Foo::x" ".* = 0" "print (int)&Foo::x"
-
- send_gdb "print (int)&Bar::y == 2*sizeof(int)\n"
- gdb_expect {
- -re ".* = true\r\n$gdb_prompt $" {
- pass "print (int)&Bar::y == 2*sizeof(int)"
- }
- -re "There is no field named y.*$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "print (int)&Bar::y == 2*sizeof(int)"
- }
- -re ".*$gdb_prompt $" { fail "print (int)&Bar::y == 2*sizeof(int)" }
- timeout { fail "print (int)&Bar::y == 2*sizeof(int) (timeout)" ; return }
- }
-
- send_gdb "next\n"
- setup_xfail "*-*-*"
- gdb_expect {
- -re "$decimal\[ \t\]+inheritance3 \[)(\]+;\r\n$gdb_prompt $" {}
- -re ".*$gdb_prompt $" { fail "next to inheritance3" ; return }
- }
- clear_xfail "*-*-*"
-
- setup_xfail_format "DWARF 1"
- gdb_test "print (int)pmi == sizeof(int)" ".* = false" "print (int)pmi == sizeof(int)"
- }
-
- #
- # Test static members.
- #
-
- proc test_static_members {} {
- global gdb_prompt
- global hex
-
- send_gdb "print Foo::st\n"
- gdb_expect {
- -re ".* = 100\r\n$gdb_prompt $" {
- pass "print Foo::st"
- }
- -re "There is no field named st.*$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "print Foo::st"
- }
- -re ".*$gdb_prompt $" { fail "print Foo::st" }
- timeout { fail "print Foo::st (timeout)" ; return }
- }
-
- send_gdb "set foo.st = 200\n"
- gdb_expect {
- -re ".*$gdb_prompt $" {}
- }
-
- send_gdb "print bar.st\n"
- gdb_expect {
- -re ".* = 200\r\n$gdb_prompt $" {
- pass "print bar.st"
- }
- -re "There is no member( or method|) named st.*$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "print bar.st"
- }
- -re ".*$gdb_prompt $" { fail "print bar.st" }
- timeout { fail "print bar.st (timeout)" ; return }
- }
-
- send_gdb "print &foo.st\n"
- gdb_expect {
- -re ".* = .int \[*)\]+ $hex\r\n$gdb_prompt $" {
- pass "print &foo.st"
- }
- -re "There is no member( or method|) named st.*$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "print &foo.st"
- }
- -re ".*$gdb_prompt $" { fail "print &foo.st" }
- timeout { fail "print &foo.st (timeout)" ; return }
- }
-
- set got_bar_st 0
- send_gdb "print &Bar::st\n"
- gdb_expect {
- -re ".* = .int \[*)\]+ $hex\r\n$gdb_prompt $" {
- pass "print &Bar::st"
- set got_bar_st 1
- }
- -re "There is no field named st.*$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "print &Bar::st"
- }
- -re ".*$gdb_prompt $" { fail "print &Bar::st" }
- timeout { fail "print &Bar::st (timeout)" ; return }
- }
-
- if $got_bar_st then {
- gdb_test "print *\$" ".* = 200" "print *\$"
- }
-
- gdb_test "set print static-members off" ""
- gdb_test "print csi" \
- "{x = 10, y = 20}" \
- "print csi without static members"
- gdb_test "print cnsi" \
- "{x = 30, y = 40}" \
- "print cnsi without static members"
-
- gdb_test "set print static-members on" ""
- setup_xfail_format "DWARF 1"
- gdb_test "print csi" \
- "{x = 10, y = 20, static null = {x = 0, y = 0, static null = <same as static member of an already seen type>}}" \
- "print csi with static members"
- setup_xfail_format "DWARF 1"
- gdb_test "print cnsi" \
- "{x = 30, y = 40, static null = {x = 0, y = 0, static null = <same as static member of an already seen type>, static yy = {z = 5, static xx = {x = 1, y = 2, static null = <same as static member of an already seen type>, static yy = <same as static member of an already seen type>}}}, static yy = <same as static member of an already seen type>}" \
- "print cnsi with static members"
- }
-
- proc do_tests {} {
- global prms_id
- global bug_id
- global subdir
- global objdir
- global srcdir
- global binfile
- global gdb_prompt
-
- set prms_id 0
- set bug_id 0
-
- # Start with a fresh gdb.
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load $binfile
-
- send_gdb "set language c++\n"
- gdb_expect -re "$gdb_prompt $"
- send_gdb "set width 0\n"
- gdb_expect -re "$gdb_prompt $"
-
- # Get the debug format for the compiled test case.
-
- if [ runto_main ] then {
- get_debug_format
- }
-
- test_ptype_class_objects
-
- if [ runto 'inheritance2(void)' ] then {
- test_non_inherited_member_access
- test_wrong_class_members
- test_nonexistant_members
- }
-
- if [istarget "mips-idt-*"] then {
- # Restart because IDT/SIM runs out of file descriptors.
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load $binfile
- }
-
- if [ runto_main ] then {
- test_pointers_to_class_members
- test_static_members
- }
-
- if [istarget "mips-idt-*"] then {
- # Restart because IDT/SIM runs out of file descriptors.
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load $binfile
- }
-
- if [ runto marker_reg1 ] then {
-
- gdb_test "finish" "Run till exit from.*" "finish from marker_reg1"
-
- send_gdb "print v.method ()\n"
- gdb_expect {
- -re "= 82.*$gdb_prompt $" {
- pass "calling method for small class"
- }
- -re "Address requested for identifier .v. which is in a register.*$gdb_prompt $" {
- setup_xfail "*-*-*" 2972
- fail "calling method for small class"
- }
- -re ".*$gdb_prompt $" { fail "calling method for small class" }
- timeout { fail "calling method for small class (timeout)" }
- eof { fail "calling method for small class (eof)" }
- }
- }
-
- }
-
- do_tests
-
-
- # Some additional tests for enums inside classes
-
-
- # set a breakpoint and go there
- send_gdb "break 498\n"
- gdb_expect {
- -re "Breakpoint \[0-9\] at.*$gdb_prompt $" { pass "set break 498" }
- -re "$gdb_prompt $" { fail "set break 498" }
- timeout { fail "(timeout) set break 498" }
- }
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing\\.\r\n\r\nBreakpoint \[0-9\]*, main....at ${srcdir}/${subdir}/${srcfile}:498\r\n498.*\r\n$gdb_prompt $" { pass "continue" }
- -re "$gdb_prompt $" { fail "continue" }
- timeout { fail "(timeout) continue" }
- }
-
- # print the object
- send_gdb "print obj_with_enum\n"
- gdb_expect {
- -re "\\$\[0-9\]* = \\{priv_enum = red, x = 0\\}.*$gdb_prompt $" { pass "print obj_with_enum (1)" }
- -re "$gdb_prompt $" { fail "print obj_with_enum (1)" }
- timeout { fail "(timeout) print obj_with_enum (1)" }
- }
-
- send_gdb "next\n"
- gdb_expect {
- -re "$gdb_prompt $" { pass "next" }
- timeout { fail "(timeout) next" }
- }
-
- # print the object again
- send_gdb "print obj_with_enum\n"
- gdb_expect {
- -re "\\$\[0-9\]* = \\{priv_enum = green, x = 0\\}.*$gdb_prompt $" { pass "print obj_with_enum (2)" }
- -re "$gdb_prompt $" { fail "print obj_with_enum (2)" }
- timeout { fail "(timeout) print obj_with_enum (2)" }
- }
-
- # print out the enum member
- send_gdb "print obj_with_enum.priv_enum\n"
- gdb_expect {
- -re "\\$\[0-9\]* = green.*$gdb_prompt $" { pass "print obj_with_enum.priv_enum" }
- -re "$gdb_prompt $" { fail "print obj_with_enum.priv_enum" }
- timeout { fail "(timeout) print obj_with_enum.priv_enum" }
- }
-
- # ptype on the enum member
- send_gdb "ptype obj_with_enum.priv_enum\n"
- gdb_expect {
- -re "type = enum ClassWithEnum::PrivEnum \\{red, green, blue, yellow = 42\\}.*$gdb_prompt $" { pass "ptype obj_with_enum.priv_enum" }
- -re "$gdb_prompt $" { fail "ptype obj_with_enum.priv_enum" }
- timeout { fail "(timeout) ptype obj_with_enum.priv_enum" }
- }
-
- # ptype on the object
- send_gdb "ptype obj_with_enum\n"
- gdb_expect {
- -re "type = class ClassWithEnum \\{\r\n\[ \t\]*public:\r\n\[ \t\]*enum ClassWithEnum::PrivEnum priv_enum;\r\n\[ \t\]*int x;\r\n\\}\r\n$gdb_prompt $" { pass "ptype obj_with_enum" }
- -re "$gdb_prompt $" { fail "ptype obj_with_enum" }
- timeout { fail "(timeout) ptype obj_with_enum" }
- }
-
- send_gdb "print (ClassWithEnum::PrivEnum) 42\n"
- gdb_expect {
- -re "\\$\[0-9\]* = yellow.*$gdb_prompt $" { pass "print (ClassWithEnum::PrivEnum) 42" }
- -re "$gdb_prompt $" { fail "print (ClassWithEnum::PrivEnum) 42" }
- timeout { fail "(timeout) print (ClassWithEnum::PrivEnum) 42" }
- }
-
-
- send_gdb "maint demangle inheritance1__Fv\n"
- gdb_expect {
- -re "inheritance1\\(void\\).*$gdb_prompt $" { pass "demangle" }
- -re ".*$gdb_prompt $" { fail "demangle" }
- timeout { fail "(timeout) demangle" }
- }
-
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/compiler.c gdb/testsuite/gdb.hp/compiler.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/compiler.c Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/compiler.c Wed Dec 31 16:00:00 1969
***************
*** 1,31 ****
- /* Often the behavior of any particular test depends upon what compiler was
- used to compile the test. As each test is compiled, this file is
- preprocessed by the same compiler used to compile that specific test
- (different tests might be compiled by different compilers, particularly
- if compiled at different times), and used to generate a *.ci (compiler
- info) file for that test.
-
- I.E., when callfuncs is compiled, a callfuncs.ci file will be generated,
- which can then be sourced by callfuncs.exp to give callfuncs.exp access
- to information about the compilation environment.
-
- TODO: It might be a good idea to add expect code that tests each
- definition made with 'set" to see if one already exists, and if so
- warn about conflicts if it is being set to something else. */
-
- /* This needs to be kept in sync with whatis.c and gdb.exp(get_compiler_info).
- If this ends up being hairy, we could use a common header file. */
-
- #if defined (__STDC__) || defined (_AIX)
- set signed_keyword_not_used 0
- #else
- set signed_keyword_not_used 1
- #endif
-
- #if defined (__GNUC__)
- set gcc_compiled __GNUC__
- #else
- set gcc_compiled 0
- #endif
-
- return 0
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/compiler.cc gdb/testsuite/gdb.hp/compiler.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/compiler.cc Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/compiler.cc Wed Dec 31 16:00:00 1969
***************
*** 1,34 ****
- /* Often the behavior of any particular test depends upon what compiler was
- used to compile the test. As each test is compiled, this file is
- preprocessed by the same compiler used to compile that specific test
- (different tests might be compiled by different compilers, particularly
- if compiled at different times), and used to generate a *.ci (compiler
- info) file for that test.
-
- I.E., when callfuncs is compiled, a callfuncs.ci file will be generated,
- which can then be sourced by callfuncs.exp to give callfuncs.exp access
- to information about the compilation environment.
-
- TODO: It might be a good idea to add expect code that tests each
- definition made with 'set" to see if one already exists, and if so
- warn about conflicts if it is being set to something else. */
-
- #if defined(__GNUC__) && __GNUC__ >= 2 && __GNUC_MINOR__ >= 6
- set supports_template_debugging 1
- #else
- set supports_template_debugging 0
- #endif
-
- #if defined(__cplusplus)
- set supports_template_debugging 1
- #else
- set supports_template_debugging 0
- #endif
-
- #if defined (__GNUC__)
- set gcc_compiled __GNUC__
- #else
- set gcc_compiled 0
- #endif
-
- return 0
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/configure gdb/testsuite/gdb.hp/configure
*** ../gdb-19990719/gdb/testsuite/gdb.hp/configure Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/configure Thu Jul 22 17:50:16 1999
***************
*** 0 ****
--- 1,1008 ----
+ #! /bin/sh
+
+ # Guess values for system-dependent variables and create Makefiles.
+ # Generated automatically using autoconf version 2.13
+ # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+ #
+ # This configure script is free software; the Free Software Foundation
+ # gives unlimited permission to copy, distribute and modify it.
+
+ # Defaults:
+ ac_help=
+ ac_default_prefix=/usr/local
+ # Any additions from configure.in:
+
+ # Initialize some variables set by options.
+ # The variables have the same names as the options, with
+ # dashes changed to underlines.
+ build=NONE
+ cache_file=./config.cache
+ exec_prefix=NONE
+ host=NONE
+ no_create=
+ nonopt=NONE
+ no_recursion=
+ prefix=NONE
+ program_prefix=NONE
+ program_suffix=NONE
+ program_transform_name=s,x,x,
+ silent=
+ site=
+ srcdir=
+ target=NONE
+ verbose=
+ x_includes=NONE
+ x_libraries=NONE
+ bindir='${exec_prefix}/bin'
+ sbindir='${exec_prefix}/sbin'
+ libexecdir='${exec_prefix}/libexec'
+ datadir='${prefix}/share'
+ sysconfdir='${prefix}/etc'
+ sharedstatedir='${prefix}/com'
+ localstatedir='${prefix}/var'
+ libdir='${exec_prefix}/lib'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+ infodir='${prefix}/info'
+ mandir='${prefix}/man'
+
+ # Initialize some other variables.
+ subdirs=
+ MFLAGS= MAKEFLAGS=
+ SHELL=${CONFIG_SHELL-/bin/sh}
+ # Maximum number of lines to put in a shell here document.
+ ac_max_here_lines=12
+
+ ac_prev=
+ for ac_option
+ do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+ Usage: configure [options] [host]
+ Options: [defaults in brackets after descriptions]
+ Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --version print the version of autoconf that created configure
+ Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+ EOF
+ cat << EOF
+ Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+ Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+ EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.13"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+ done
+
+ if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+ fi
+
+ trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+ # File descriptor usage:
+ # 0 standard input
+ # 1 file creation
+ # 2 errors and warnings
+ # 3 some systems may open it to /dev/tty
+ # 4 used on the Kubota Titan
+ # 6 checking for... messages and results
+ # 5 compiler messages saved in config.log
+ if test "$silent" = yes; then
+ exec 6>/dev/null
+ else
+ exec 6>&1
+ fi
+ exec 5>./config.log
+
+ echo "\
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+ " 1>&5
+
+ # Strip out --no-create and --no-recursion so they do not pile up.
+ # Also quote any args containing shell metacharacters.
+ ac_configure_args=
+ for ac_arg
+ do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+ done
+
+ # NLS nuisances.
+ # Only set these to C if already set. These must not be set unconditionally
+ # because not all systems understand e.g. LANG=C (notably SCO).
+ # Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+ # Non-C LC_CTYPE values break the ctype check.
+ if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+ if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+ if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+ if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+ # confdefs.h avoids OS command line length limits that DEFS can exceed.
+ rm -rf conftest* confdefs.h
+ # AIX cpp loses on an empty file, so make sure it contains at least a newline.
+ echo > confdefs.h
+
+ # A filename unique to this package, relative to the directory that
+ # configure is in, which we can look for to find out if srcdir is correct.
+ ac_unique_file=gdb.aCC
+
+ # Find the source files, if location was not specified.
+ if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+ else
+ ac_srcdir_defaulted=no
+ fi
+ if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+ fi
+ srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+ # Prefer explicitly selected file to automatically selected ones.
+ if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+ fi
+ for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+ done
+
+ if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+ else
+ echo "creating cache $cache_file"
+ > $cache_file
+ fi
+
+ ac_ext=c
+ # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ cross_compiling=$ac_cv_prog_cc_cross
+
+ ac_exeext=
+ ac_objext=o
+ if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+ ' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+ else
+ ac_n= ac_c='\c' ac_t=
+ fi
+
+
+
+ CC=${CC-cc}
+
+ ac_aux_dir=
+ for ac_dir in `cd $srcdir;pwd`/../../.. $srcdir/`cd $srcdir;pwd`/../../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+ done
+ if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in `cd $srcdir;pwd`/../../.. $srcdir/`cd $srcdir;pwd`/../../.." 1>&2; exit 1; }
+ fi
+ ac_config_guess=$ac_aux_dir/config.guess
+ ac_config_sub=$ac_aux_dir/config.sub
+ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+
+ # Do some error checking and defaulting for the host and target type.
+ # The inputs are:
+ # configure --host=HOST --target=TARGET --build=BUILD NONOPT
+ #
+ # The rules are:
+ # 1. You are not allowed to specify --host, --target, and nonopt at the
+ # same time.
+ # 2. Host defaults to nonopt.
+ # 3. If nonopt is not specified, then host defaults to the current host,
+ # as determined by config.guess.
+ # 4. Target and build default to nonopt.
+ # 5. If nonopt is not specified, then target and build default to host.
+
+ # The aliases save the names the user supplied, while $host etc.
+ # will get canonicalized.
+ case $host---$target---$nonopt in
+ NONE---*---* | *---NONE---* | *---*---NONE) ;;
+ *) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
+ esac
+
+
+ # Make sure we can run config.sub.
+ if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+ fi
+
+ echo $ac_n "checking host system type""... $ac_c" 1>&6
+ echo "configure:575: checking host system type" >&5
+
+ host_alias=$host
+ case "$host_alias" in
+ NONE)
+ case $nonopt in
+ NONE)
+ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+ else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+ fi ;;
+ *) host_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+ host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$host" 1>&6
+
+ echo $ac_n "checking target system type""... $ac_c" 1>&6
+ echo "configure:596: checking target system type" >&5
+
+ target_alias=$target
+ case "$target_alias" in
+ NONE)
+ case $nonopt in
+ NONE) target_alias=$host_alias ;;
+ *) target_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
+ target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$target" 1>&6
+
+ echo $ac_n "checking build system type""... $ac_c" 1>&6
+ echo "configure:614: checking build system type" >&5
+
+ build_alias=$build
+ case "$build_alias" in
+ NONE)
+ case $nonopt in
+ NONE) build_alias=$host_alias ;;
+ *) build_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+ build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$build" 1>&6
+
+ test "$host_alias" != "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+
+ # Directories to use in all configurations.
+ configdirs="gdb.aCC \
+ gdb.base-hp \
+ gdb.compat \
+ gdb.defects \
+ gdb.objdbg \
+ gdb.threads-hp"
+
+ # configure the subdirectories too
+ subdirs="$configdirs"
+
+
+ trap '' 1 2 15
+ cat > confcache <<\EOF
+ # This file is a shell script that caches the results of configure
+ # tests run on this system so they can be shared between configure
+ # scripts and configure runs. It is not useful on other systems.
+ # If it contains results you don't want to keep, you may remove or edit it.
+ #
+ # By default, configure uses ./config.cache as the cache file,
+ # creating it if it does not exist already. You can give configure
+ # the --cache-file=FILE option to use a different cache file; that is
+ # what configure does when it calls configure scripts in
+ # subdirectories, so they share the cache.
+ # Giving --cache-file=/dev/null disables caching, for debugging configure.
+ # config.status only pays attention to the cache file if you give it the
+ # --recheck option to rerun configure.
+ #
+ EOF
+ # The following way of writing the cache mishandles newlines in values,
+ # but we know of no workaround that is simple, portable, and efficient.
+ # So, don't put newlines in cache variables' values.
+ # Ultrix sh set writes to stderr and can't be redirected directly,
+ # and sets the high bit in the cache file unless we assign to the vars.
+ (set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+ if cmp -s $cache_file confcache; then
+ :
+ else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+ fi
+ rm -f confcache
+
+ trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+ test "x$prefix" = xNONE && prefix=$ac_default_prefix
+ # Let make expand exec_prefix.
+ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+ # Any assignment to VPATH causes Sun make to only execute
+ # the first set of double-colon rules, so remove it if not needed.
+ # If there is a colon in the path, we need to keep it.
+ if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+ fi
+
+ trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+ # Transform confdefs.h into DEFS.
+ # Protect against shell expansion while executing Makefile rules.
+ # Protect against Makefile macro expansion.
+ cat > conftest.defs <<\EOF
+ s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+ s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
+ s%\[%\\&%g
+ s%\]%\\&%g
+ s%\$%$$%g
+ EOF
+ DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+ rm -f conftest.defs
+
+
+ # Without the "./", some shells look in PATH for config.status.
+ : ${CONFIG_STATUS=./config.status}
+
+ echo creating $CONFIG_STATUS
+ rm -f $CONFIG_STATUS
+ cat > $CONFIG_STATUS <<EOF
+ #! /bin/sh
+ # Generated automatically by configure.
+ # Run this file to recreate the current configuration.
+ # This directory was configured as follows,
+ # on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+ #
+ # $0 $ac_configure_args
+ #
+ # Compiler output produced by configure, useful for debugging
+ # configure, is in ./config.log if it exists.
+
+ ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+ for ac_option
+ do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.13"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+ done
+
+ ac_given_srcdir=$srcdir
+
+ trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+ EOF
+ cat >> $CONFIG_STATUS <<EOF
+
+ # Protect against being on the right side of a sed subst in config.status.
+ sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+ $ac_vpsub
+ $extrasub
+ s%@SHELL@%$SHELL%g
+ s%@CFLAGS@%$CFLAGS%g
+ s%@CPPFLAGS@%$CPPFLAGS%g
+ s%@CXXFLAGS@%$CXXFLAGS%g
+ s%@FFLAGS@%$FFLAGS%g
+ s%@DEFS@%$DEFS%g
+ s%@LDFLAGS@%$LDFLAGS%g
+ s%@LIBS@%$LIBS%g
+ s%@exec_prefix@%$exec_prefix%g
+ s%@prefix@%$prefix%g
+ s%@program_transform_name@%$program_transform_name%g
+ s%@bindir@%$bindir%g
+ s%@sbindir@%$sbindir%g
+ s%@libexecdir@%$libexecdir%g
+ s%@datadir@%$datadir%g
+ s%@sysconfdir@%$sysconfdir%g
+ s%@sharedstatedir@%$sharedstatedir%g
+ s%@localstatedir@%$localstatedir%g
+ s%@libdir@%$libdir%g
+ s%@includedir@%$includedir%g
+ s%@oldincludedir@%$oldincludedir%g
+ s%@infodir@%$infodir%g
+ s%@mandir@%$mandir%g
+ s%@CC@%$CC%g
+ s%@host@%$host%g
+ s%@host_alias@%$host_alias%g
+ s%@host_cpu@%$host_cpu%g
+ s%@host_vendor@%$host_vendor%g
+ s%@host_os@%$host_os%g
+ s%@target@%$target%g
+ s%@target_alias@%$target_alias%g
+ s%@target_cpu@%$target_cpu%g
+ s%@target_vendor@%$target_vendor%g
+ s%@target_os@%$target_os%g
+ s%@build@%$build%g
+ s%@build_alias@%$build_alias%g
+ s%@build_cpu@%$build_cpu%g
+ s%@build_vendor@%$build_vendor%g
+ s%@build_os@%$build_os%g
+ s%@subdirs@%$subdirs%g
+
+ CEOF
+ EOF
+
+ cat >> $CONFIG_STATUS <<\EOF
+
+ # Split the substitutions into bite-sized pieces for seds with
+ # small command number limits, like on Digital OSF/1 and HP-UX.
+ ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ ac_file=1 # Number of current file.
+ ac_beg=1 # First line for current file.
+ ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ ac_more_lines=:
+ ac_sed_cmds=""
+ while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+ done
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+ fi
+ EOF
+
+ cat >> $CONFIG_STATUS <<EOF
+
+ CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+ EOF
+ cat >> $CONFIG_STATUS <<\EOF
+ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+ # $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+ s%@configure_input@%$configure_input%g
+ s%@srcdir@%$srcdir%g
+ s%@top_srcdir@%$top_srcdir%g
+ " $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+ fi; done
+ rm -f conftest.s*
+
+ EOF
+ cat >> $CONFIG_STATUS <<EOF
+
+ EOF
+ cat >> $CONFIG_STATUS <<\EOF
+
+ exit 0
+ EOF
+ chmod +x $CONFIG_STATUS
+ rm -fr confdefs* $ac_clean_files
+ test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
+ if test "$no_recursion" != yes; then
+
+ # Remove --cache-file and --srcdir arguments so they do not pile up.
+ ac_sub_configure_args=
+ ac_prev=
+ for ac_arg in $ac_configure_args; do
+ if test -n "$ac_prev"; then
+ ac_prev=
+ continue
+ fi
+ case "$ac_arg" in
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ ;;
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ ;;
+ *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;;
+ esac
+ done
+
+ for ac_config_dir in $configdirs; do
+
+ # Do not complain, so a configure script can configure whichever
+ # parts of a large source tree are present.
+ if test ! -d $srcdir/$ac_config_dir; then
+ continue
+ fi
+
+ echo configuring in $ac_config_dir
+
+ case "$srcdir" in
+ .) ;;
+ *)
+ if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :;
+ else
+ { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; }
+ fi
+ ;;
+ esac
+
+ ac_popdir=`pwd`
+ cd $ac_config_dir
+
+ # A "../" for each directory in /$ac_config_dir.
+ ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'`
+
+ case "$srcdir" in
+ .) # No --srcdir option. We are building in place.
+ ac_sub_srcdir=$srcdir ;;
+ /*) # Absolute path.
+ ac_sub_srcdir=$srcdir/$ac_config_dir ;;
+ *) # Relative path.
+ ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;;
+ esac
+
+ # Check for guested configure; otherwise get Cygnus style configure.
+ if test -f $ac_sub_srcdir/configure; then
+ ac_sub_configure=$ac_sub_srcdir/configure
+ elif test -f $ac_sub_srcdir/configure.in; then
+ ac_sub_configure=$ac_configure
+ else
+ echo "configure: warning: no configuration information is in $ac_config_dir" 1>&2
+ ac_sub_configure=
+ fi
+
+ # The recursion is here.
+ if test -n "$ac_sub_configure"; then
+
+ # Make the cache file name correct relative to the subdirectory.
+ case "$cache_file" in
+ /*) ac_sub_cache_file=$cache_file ;;
+ *) # Relative path.
+ ac_sub_cache_file="$ac_dots$cache_file" ;;
+ esac
+
+ echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir"
+ # The eval makes quoting arguments work.
+ if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir
+ then :
+ else
+ { echo "configure: error: $ac_sub_configure failed for $ac_config_dir" 1>&2; exit 1; }
+ fi
+ fi
+
+ cd $ac_popdir
+ done
+ fi
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/configure.in gdb/testsuite/gdb.hp/configure.in
*** ../gdb-19990719/gdb/testsuite/gdb.hp/configure.in Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/configure.in Thu Jul 22 17:50:17 1999
***************
*** 0 ****
--- 1,17 ----
+ dnl Process this file file with autoconf to produce a configure script.
+ dnl This file is a shell script fragment that supplies the information
+ dnl necessary to tailor a template configure script into the configure
+ dnl script appropriate for this directory. For more information, check
+ dnl any existing configure script.
+
+ AC_PREREQ(2.5)
+ AC_INIT(gdb.aCC)
+
+ CC=${CC-cc}
+ AC_SUBST(CC)
+ AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../../..)
+ AC_CANONICAL_SYSTEM
+
+ AC_CONFIG_SUBDIRS(gdb.aCC gdb.base-hp gdb.compat gdb.defects gdb.objdbg gdb.threads-hp)
+
+ AC_OUTPUT(Makefile)
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/ctti-add.cc gdb/testsuite/gdb.hp/ctti-add.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/ctti-add.cc Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/ctti-add.cc Wed Dec 31 16:00:00 1969
***************
*** 1,29 ****
- template<class T> T add(T v1, T v2)
- {
- T v3;
- v3 = v1;
- v3 += v2;
- return v3;
- }
-
- int main()
- {
- char c;
- int i;
- float f;
- extern void add1();
- extern void subr2();
- extern void subr3();
-
- c = 'a';
- i = 2;
- f = 4.5;
-
- c = add(c, c);
- i = add(i, i);
- f = add(f, f);
-
- add1();
- subr2();
- subr3();
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/ctti-add1.cc gdb/testsuite/gdb.hp/ctti-add1.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/ctti-add1.cc Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/ctti-add1.cc Wed Dec 31 16:00:00 1969
***************
*** 1,16 ****
- template<class T> T add(T v1, T v2);
-
- void add1()
- {
- char c;
- int i;
- float f;
-
- c = 'b';
- i = 3;
- f = 6.5;
-
- c = add(c, c);
- i = add(i, i);
- f = add(f, f);
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/ctti-add2.cc gdb/testsuite/gdb.hp/ctti-add2.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/ctti-add2.cc Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/ctti-add2.cc Wed Dec 31 16:00:00 1969
***************
*** 1,22 ****
- template<class T> T add2(T v1, T v2)
- {
- T v3;
- v3 = v1;
- v3 += v2;
- return v3;
- }
-
- void subr2()
- {
- char c;
- int i;
- float f;
-
- c = 'b';
- i = 3;
- f = 6.5;
-
- c = add2(c, c);
- i = add2(i, i);
- f = add2(f, f);
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/ctti-add3.cc gdb/testsuite/gdb.hp/ctti-add3.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/ctti-add3.cc Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/ctti-add3.cc Wed Dec 31 16:00:00 1969
***************
*** 1,33 ****
- template<class T> T add3(T v1, T v2)
- {
- T v3;
- v3 = v1;
- v3 += v2;
- return v3;
- }
-
- template<class T> T add4(T v1, T v2)
- {
- T v3;
- v3 = v1;
- v3 += v2;
- return v3;
- }
-
- void subr3()
- {
- char c;
- int i;
- float f;
-
- c = 'b';
- i = 3;
- f = 6.5;
-
- c = add3(c, c);
- i = add3(i, i);
- f = add3(f, f);
- c = add4(c, c);
- i = add4(i, i);
- f = add4(f, f);
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/ctti.exp gdb/testsuite/gdb.hp/ctti.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/ctti.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/ctti.exp Wed Dec 31 16:00:00 1969
***************
*** 1,269 ****
- # Copyright (C) 1998 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
- # (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.
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
-
- # This file is part of the gdb testsuite
- # file written by Elena Zannoni (ezannoni@cygnus.com)
- #
- # source files ctti-add.cc, ctti-add1.cc, ctti-add2.cc, ctti-add3.cc
- #
-
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- # Check to see if we have an executable to test. If not, then either we
- # haven't tried to compile one, or the compilation failed for some reason.
- # In either case, just notify the user and skip the tests in this file.
-
- set testfile "ctti-add"
- set srcfile ${testfile}.cc
- set srcfile1 ${testfile}1.cc
- set srcfile2 ${testfile}2.cc
- set srcfile3 ${testfile}3.cc
- set binfile ${objdir}/${subdir}/${testfile}
-
- if [get_compiler_info ${binfile} "c++"] {
- return -1;
- }
-
- if { $gcc_compiled } then { continue }
-
- #if { [gdb_compile "${srcdir}/${subdir}/${srcfile} ${srcdir}/${subdir}/${srcfile1} ${srcdir}/${subdir}/${srcfile2} ${srcdir}/${subdir}/${srcfile3}" "${binfile}" executable {debug c++}] != "" } {
- # gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- #}
-
- set cmdline "$CXX ${srcdir}/${subdir}/${srcfile} ${srcdir}/${subdir}/${srcfile1} ${srcdir}/${subdir}/${srcfile2} ${srcdir}/${subdir}/${srcfile3} -g -o ${binfile}"
-
- remote_exec build $cmdline
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
-
-
- if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
- }
-
-
- send_gdb "n\n"
- gdb_expect {
- -re "$decimal.*i = 2;.*$gdb_prompt $" {
- pass "next "
- }
- -re ".*$gdb_prompt $" { fail "next " }
- timeout { fail "next " }
- }
-
-
- send_gdb "n\n"
- gdb_expect {
- -re "$decimal.*f = 4.5;.*$gdb_prompt $" {
- pass "next "
- }
- -re ".*$gdb_prompt $" { fail "next " }
- timeout { fail "next " }
- }
-
- send_gdb "n\n"
- gdb_expect {
- -re "$decimal.*c = add\\(c, c\\);.*$gdb_prompt $" {
- pass "next "
- }
- -re ".*$gdb_prompt $" { fail "next " }
- timeout { fail "next " }
- }
-
- send_gdb "n\n"
- gdb_expect {
- -re "$decimal.*i = add\\(i, i\\);.*$gdb_prompt $" {
- pass "next "
- }
- -re ".*$gdb_prompt $" { fail "next " }
- timeout { fail "next " }
- }
-
- send_gdb "n\n"
- gdb_expect {
- -re "$decimal.*f = add\\(f, f\\);.*$gdb_prompt $" {
- pass "next "
- }
- -re ".*$gdb_prompt $" { fail "next " }
- timeout { fail "next " }
- }
-
- send_gdb "n\n"
- gdb_expect {
- -re "$decimal.*add1\\(\\);.*$gdb_prompt $" {
- pass "next "
- }
- -re ".*$gdb_prompt $" { fail "next " }
- timeout { fail "next " }
- }
-
- send_gdb "print c\n"
- gdb_expect {
- -re ".$decimal = -62.*\r\n$gdb_prompt $" {
- pass "print value of c"
- }
- -re ".*$gdb_prompt $" { fail "print value of c" }
- timeout { fail "(timeout) print value of c" }
- }
-
-
- send_gdb "print f\n"
- gdb_expect {
- -re ".$decimal = 9\r\n$gdb_prompt $" {
- pass "print value of f"
- }
- -re ".*$gdb_prompt $" { fail "print value of f" }
- timeout { fail "(timeout) print value of f" }
- }
-
-
- send_gdb "print i\n"
- gdb_expect {
- -re ".$decimal = 4\r\n$gdb_prompt $" {
- pass "print value of i"
- }
- -re ".*$gdb_prompt $" { fail "print value of i" }
- timeout { fail "(timeout) print value of i" }
- }
-
-
-
- send_gdb "print add<int>(2,2)\n"
- gdb_expect {
- -re ".$decimal = 4\r\n$gdb_prompt $" {
- pass "print value of add<int>(2,2)"
- }
- -re ".*$gdb_prompt $" { fail "print value of add<int>(2,2)" }
- timeout { fail "(timeout) print value of add<int>(2,2)" }
- }
-
- send_gdb "print add<float>(2.3,2.3)\n"
- gdb_expect {
- -re ".$decimal = 4\\.5\[0-9\]+\r\n$gdb_prompt $" {
- pass "print value of add<float>(2.3,2.3)"
- }
- -re ".*$gdb_prompt $" { fail "print value of add<float>(2.3,2.3)" }
- timeout { fail "(timeout) print value of add<float>(2.3,2.3)" }
- }
-
- send_gdb "print add<char>('A','A')\n"
- gdb_expect {
- -re ".$decimal = -126.*202.\r\n$gdb_prompt $" {
- pass "print value of add<char>('A','A')"
- }
- -re ".*$gdb_prompt $" { fail "print value of add<char>('A','A')" }
- timeout { fail "(timeout) print value of add<char>('A','A')" }
- }
-
-
- send_gdb "print add2<int>(2,2)\n"
- gdb_expect {
- -re ".$decimal = 4\r\n$gdb_prompt $" {
- pass "print value of add2<int>(2,2)"
- }
- -re ".*$gdb_prompt $" { fail "print value of add2<int>(2,2)" }
- timeout { fail "(timeout) print value of add2<int>(2,2)" }
- }
-
- send_gdb "print add2<float>(2.3,2.3)\n"
- gdb_expect {
- -re ".$decimal = 4\\.5\[0-9\]+\r\n$gdb_prompt $" {
- pass "print value of add2<float>(2.3,2.3)"
- }
- -re ".*$gdb_prompt $" { fail "print value of add2<float>(2.3,2.3)" }
- timeout { fail "(timeout) print value of add2<float>(2.3,2.3)" }
- }
-
- send_gdb "print add2<char>('A','A')\n"
- gdb_expect {
- -re ".$decimal = -126.*202.\r\n$gdb_prompt $" {
- pass "print value of add2<char>('A','A')"
- }
- -re ".*$gdb_prompt $" { fail "print value of add2<char>('A','A')" }
- timeout { fail "(timeout) print value of add2<char>('A','A')" }
- }
-
- send_gdb "print add3<int>(2,2)\n"
- gdb_expect {
- -re ".$decimal = 4\r\n$gdb_prompt $" {
- pass "print value of add3<int>(2,2)"
- }
- -re ".*$gdb_prompt $" { fail "print value of add3<int>(2,2)" }
- timeout { fail "(timeout) print value of add3<int>(2,2)" }
- }
-
- send_gdb "print add3<float>(2.3,2.3)\n"
- gdb_expect {
- -re ".$decimal = 4\\.5\[0-9\]+\r\n$gdb_prompt $" {
- pass "print value of add3<float>(2.3,2.3)"
- }
- -re ".*$gdb_prompt $" { fail "print value of add3<float>(2.3,2.3)" }
- timeout { fail "(timeout) print value of add3<float>(2.3,2.3)" }
- }
-
- send_gdb "print add3<char>('A','A')\n"
- gdb_expect {
- -re ".$decimal = -126.*202.\r\n$gdb_prompt $" {
- pass "print value of add3<char>('A','A')"
- }
- -re ".*$gdb_prompt $" { fail "print value of add3<char>('A','A')" }
- timeout { fail "(timeout) print value of add3<char>('A','A')" }
- }
-
- send_gdb "print add4<int>(2,2)\n"
- gdb_expect {
- -re ".$decimal = 4\r\n$gdb_prompt $" {
- pass "print value of add4<int>(2,2)"
- }
- -re ".*$gdb_prompt $" { fail "print value of add4<int>(2,2)" }
- timeout { fail "(timeout) print value of add4<int>(2,2)" }
- }
-
- send_gdb "print add4<float>(2.3,2.3)\n"
- gdb_expect {
- -re ".$decimal = 4\\.5\[0-9\]+\r\n$gdb_prompt $" {
- pass "print value of add4<float>(2.3,2.3)"
- }
- -re ".*$gdb_prompt $" { fail "print value of add4<float>(2.3,2.3)" }
- timeout { fail "(timeout) print value of add4<float>(2.3,2.3)" }
- }
-
- send_gdb "print add4<char>('A','A')\n"
- gdb_expect {
- -re ".$decimal = -126.*202.\r\n$gdb_prompt $" {
- pass "print value of add4<char>('A','A')"
- }
- -re ".*$gdb_prompt $" { fail "print value of add4<char>('A','A')" }
- timeout { fail "(timeout) print value of add4<char>('A','A')" }
- }
-
-
- gdb_exit
- return 0
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/dbx.exp gdb/testsuite/gdb.hp/dbx.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/dbx.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/dbx.exp Wed Dec 31 16:00:00 1969
***************
*** 1,223 ****
- # Copyright (C) 1998 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- set testfile1 "average"
- set testfile2 "sum"
- set testfile "dbx-test"
- set binfile1 ${objdir}/${subdir}/${testfile1}
- set binfile2 ${objdir}/${subdir}/${testfile2}
- set binfile ${objdir}/${subdir}/${testfile}
-
-
-
- if { [gdb_compile "${srcdir}/${subdir}/average.c" "${binfile1}.o" object {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- if { [gdb_compile "${srcdir}/${subdir}/sum.c" "${binfile2}.o" object {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- if { [gdb_compile "${binfile1}.o ${binfile2}.o" ${binfile} executable {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- if [get_compiler_info ${binfile}] {
- return -1;
- }
- if { $gcc_compiled } then { continue }
-
- proc dbx_reinitialize_dir { subdir } {
- global gdb_prompt
-
- send_gdb "use\n"
- gdb_expect {
- -re "Reinitialize source path to empty.*y or n. " {
- send_gdb "y\n"
- gdb_expect {
- -re "Source directories searched.*$gdb_prompt $" {
- send_gdb "use $subdir\n"
- gdb_expect {
- -re "Source directories searched.*$gdb_prompt $" {
- verbose "Dir set to $subdir"
- }
- -re ".*$gdb_prompt $" {
- perror "Dir \"$subdir\" failed."
- }
- }
- }
- -re ".*$gdb_prompt $" {
- perror "Dir \"$subdir\" failed."
- }
- }
- }
- -re ".*$gdb_prompt $" {
- perror "Dir \"$subdir\" failed."
- }
- }
- }
-
- # In "testsuite/config/unix-gdb.exp", the routine "gdb_load"
- # is defined as "gdb_file_cmd". The binding of "gdb_file_cmd"
- # is done at invocation time. Before this file is processed,
- # it binds to the definition in "testsuite/lib/gdb.exp"; after
- # this file is processed, it binds to this definition.
- # TCL lets us overrides a previous routine definition without a
- # warning (isn't that special?).
- #
- # This means that tests before use "file" to load a target, and
- # tests afterwards use the pair "symbol-file" "exec-file".
- #
- # I'm leaving it as it is for now because at the moment it
- # is the only test we have of the use of the combination of
- # "symbol-file" and "exec-file" to load a debugging target (the
- # other definition uses "file".
- #
- # Symbol-file and exec-file should be tested explicitly, not
- # as a side effect of running a particular test (in this case,
- # "testsuite/gdb.compat/dbx.exp").
- #
- #
- proc gdb_file_cmd {arg } {
- global verbose
- global loadpath
- global loadfile
- global GDB
- global gdb_prompt
- global spawn_id
- upvar timeout timeout
-
- send_gdb "symbol-file $arg\n"
- gdb_expect {
- -re "Reading symbols from.*done.*$gdb_prompt $" {
- verbose "\t\tLoaded $arg into the $GDB"
- send_gdb "exec-file $arg\n"
- return 0
- }
- -re "has no symbol-table.*$gdb_prompt $" {
- perror "$arg wasn't compiled with \"-g\""
- return -1
- }
- -re "A program is being debugged already.*Kill it.*y or n. $" {
- send_gdb "y\n"
- verbose "\t\tKilling previous program being debugged"
- exp_continue
- }
- -re "Load new symbol table from \".*\".*y or n. $" {
- send_gdb "y\n"
- gdb_expect {
- -re "Reading symbols from.*done.*$gdb_prompt $" {
- verbose "\t\tLoaded $arg with new symbol table into $GDB"
- return 0
- }
- timeout {
- perror "(timeout) Couldn't load $arg, other program already loaded."
- return -1
- }
- }
- }
- -re ".*No such file or directory.*$gdb_prompt $" {
- perror "($arg) No such file or directory\n"
- return -1
- }
- -re "$gdb_prompt $" {
- perror "couldn't load $arg into $GDB."
- return -1
- }
- timeout {
- perror "couldn't load $arg into $GDB (timed out)."
- return -1
- }
- eof {
- # This is an attempt to detect a core dump, but seems not to
- # work. Perhaps we need to match .* followed by eof, in which
- # expect does not seem to have a way to do that.
- perror "couldn't load $arg into $GDB (end of file)."
- return -1
- }
- }
- }
-
- #
- #test_breakpoints
- #
- proc test_breakpoints { } {
- gdb_test "stop in main" "Breakpoint.*at.*: file.*average\.c, line 31\."
- gdb_test "status" "Num.*Type.*Disp.*Enb.*Address.*What\r\n1\[ \r\]+breakpoint\[ \r\]+keep y.*in main at.*average\.c:31.*"
- gdb_test "stop at 36" "Breakpoint.*at.*: file.*average\.c, line 36.*"
- gdb_test "stop in 36" "Usage: stop in <function . address>"
- gdb_test "stop at main" "Usage: stop at <line>"
- }
-
- #
- #test_assign
- #
- proc test_assign { } {
- gdb_test "run" ""
- gdb_test "assign first=1" ""
- gdb_test "print first" ".1 = 1"
- }
-
- #
- #test_whereis
- #
- proc test_whereis { } {
- gdb_test "whereis my_list" "All variables matching regular expression \"my_list\":\r\n\r\nFile.*average\.c:\r\nstatic int my_list\\\[10\\\];"
- }
-
- #
- #test_func
- #
- proc test_func { } {
- gdb_test "cont" ""
- gdb_test "step" ""
- gdb_test "func sum" "'sum' not within current stack frame\."
- gdb_test "stop in sum" "Breakpoint.*at.*: file.*sum\.c, line 11\."
- gdb_test "cont"
- gdb_test "func print_average" ".*in print_average.*\\(list=.*, low=0, high=6\\).*at.*average\.c:17\r\n17\[ \t\]+total = sum\\(list, low, high\\);"
- }
-
- # Start with a fresh gdb.
-
- gdb_exit
- global GDBFLAGS
- set saved_gdbflags $GDBFLAGS
-
- set GDBFLAGS "$GDBFLAGS --dbx"
- gdb_start
- dbx_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
- send_gdb "set width 0\n"
- gdb_expect -re "$gdb_prompt $"
- test_breakpoints
- test_assign
- test_whereis
- gdb_test "file average.c:1" "1\[ \t\]+/. This is a sample program.*"
- test_func
-
- gdb_exit
- set GDBFLAGS $saved_gdbflags
- return 0
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/exception.cc gdb/testsuite/gdb.hp/exception.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/exception.cc Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/exception.cc Wed Dec 31 16:00:00 1969
***************
*** 1,48 ****
- // Test file for exception handling support.
-
- #include <iostream.h>
-
- int foo (int i)
- {
- if (i < 32)
- throw (int) 13;
- else
- return i * 2;
- }
-
- extern "C" int bar (int k, unsigned long eharg, int flag);
-
- int bar (int k, unsigned long eharg, int flag)
- {
- cout << "k is " << k << " eharg is " << eharg << " flag is " << flag << endl;
- return 1;
- }
-
- int main()
- {
- int j;
-
- try {
- j = foo (20);
- }
- catch (int x) {
- cout << "Got an except " << x << endl;
- }
-
- try {
- try {
- j = foo (20);
- }
- catch (int x) {
- cout << "Got an except " << x << endl;
- throw;
- }
- }
- catch (int y) {
- cout << "Got an except (rethrown) " << y << endl;
- }
-
- // Not caught
- foo (20);
-
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/exception.exp gdb/testsuite/gdb.hp/exception.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/exception.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/exception.exp Wed Dec 31 16:00:00 1969
***************
*** 1,409 ****
- # Copyright (C) 1997, 1998 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
- # (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.
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- #
- # tests for exception-handling support
- # Written by Satish Pai <pai@apollo.hp.com> 1997-07-23
-
- # This file is part of the gdb testsuite
-
- # Note: These tests are geared to the HP aCC compiler,
- # which has an idiosyncratic way of emitting debug info
- # for exceptions -- it uses a callback mechanism, which
- # is different from the way g++ records exception info
- # for debugging
-
- # The tests are in two parts; the first part deals with
- # statically linked (archive-bound) executables, and the
- # second part repeats those tests with dynamically linked
- # (shared bound) executables. (In the latter case we use
- # a different mechanism to get the address of the notification
- # hook in the C++ support library.) The tests themselves are
- # the same in both parts.
- #
- # IMPORTANT:
- # ---------
- # IF YOU CHANGE A TEST IN ONE PART MAKE SURE YOU CHANGE IT
- # --------------------------------------------------------
- # IN THE OTHER PART TOO!
- # ----------------------
-
-
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- #
- # test running programs
- #
-
- # Part I : Archive-bound executables
- # ----------------------------------
-
- set testfile "exception"
- set srcfile ${testfile}.cc
- set binfile ${objdir}/${subdir}/${testfile}
-
- if [get_compiler_info ${binfile} "c++"] {
- return -1;
- }
-
-
- if { $gcc_compiled } then { continue }
-
- set cmdline "$CXX ${srcdir}/${subdir}/${srcfile} +A -Wl,-a,archive -g -o ${binfile}"
-
- remote_exec build $cmdline
-
- # Start with a fresh gdb
-
- set prms_id 0
- set bug_id 0
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
- if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
- }
-
- # Set a catch catchpoint
-
- send_gdb "catch catch\n"
- gdb_expect {
- -re "Catchpoint \[0-9\]* \\(catch\\)\r\n$gdb_prompt $" {
- pass "catch catch (static executable)"
- }
- -re ".*$gdb_prompt $" { fail "catch catch (static executable)" }
- timeout { fail "(timeout) catch catch (static executable)" }
- }
-
- # Set a throw catchpoint
-
- send_gdb "catch throw\n"
- gdb_expect {
- -re "Catchpoint \[0-9\]* \\(throw\\)\r\n$gdb_prompt $" {
- pass "catch throw (static executable)"
- }
- -re ".*$gdb_prompt $" { fail "catch throw (static executable)" }
- timeout { fail "(timeout) catch throw (static executable)" }
- }
-
- # The catchpoints should be listed in the list of breakpoints.
-
- send_gdb "info break\n"
- gdb_expect {
- -re ".*\[0-9\]*\[ \]*catch catch\[ \]*keep y\[ \]*exception catch\[ \]*\r\n\[0-9\]*\[ \]*catch throw\[ \]*keep y\[ \]*exception throw\[ \]*\r\n$gdb_prompt $" {
- pass "info break with catchpoints (static executable)"
- }
- -re ".*$gdb_prompt $" { fail "info break (static executable)" }
- timeout { fail "(timeout) info break (static executable)" }
- }
-
- # Info catch currently does not work with HP aCC. No easy way to
- # list the active handlers on the stack.
-
- send_gdb "info catch\n"
- gdb_expect {
- -re "Info catch not supported with this target/compiler combination.\r\n$gdb_prompt $" {
- pass "info catch (static executable)"
- }
- -re ".*$gdb_prompt $" { fail "info catch (static executable)" }
- timeout { fail "(timeout) info catch (static executable)" }
- }
-
- # Get the first exception thrown
-
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing.*Catchpoint \[0-9\]* \\(exception thrown\\), throw location.*exception\\.cc:8, catch location .*exception\\.cc:28\r\n.*$gdb_prompt $" {
- pass "caught a throw (static executable)"
- }
- -re ".*$gdb_prompt $" { fail "didn't catch a throw (static executable)" }
- timeout { fail "(timeout) after continue -- didn't catch a throw? (static executable)" }
- }
-
- send_gdb "backtrace\n"
- gdb_expect {
- -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=__EH_NOTIFY_THROW.*\r\n#2\[ \]*$hex in __eh_notify_throw.*\r\n#3\[ \]*$hex in foo \\(i=20\\) at .*exception\\.cc:8\r\n#4\[ \]*$hex in main.* at .*exception\\.cc:26\r\n$gdb_prompt $" {
- pass "backtrace after throw (static executable)"
- }
- -re ".*$gdb_prompt $" { fail "backtrace after throw (static executable)" }
- timeout { fail "(timeout) backtrace after throw (static executable)" }
- }
-
- # Now intercept it when it is caught.
-
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing.*Catchpoint \[0-9\]* \\(exception caught\\), throw location.*exception\\.cc:8, catch location .*exception\\.cc:28\r\n.*$gdb_prompt $" {
- pass "caught a catch (static executable)"
- }
- -re ".*$gdb_prompt $" { fail "didn't catch a catch (static executable)" }
- timeout { fail "(timeout) after continue -- didn't catch a catch? (static executable)" }
- }
-
- send_gdb "backtrace\n"
- gdb_expect {
- -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=__EH_NOTIFY_CATCH.*\r\n.*\r\n#3\[ \]*$hex in __throw__.*\r\n#4\[ \]*$hex in foo \\(i=20\\) at .*exception.cc:8\r\n#5\[ \]*$hex in main.* at .*exception.cc:26\r\n$gdb_prompt $" {
- pass "backtrace after catch (static executable)"
- }
- -re ".*$gdb_prompt $" { fail "backtrace after catch (static executable)" }
- timeout { fail "(timeout) backtrace after catch (static executable)" }
- }
-
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing\\.\r\nGot.*\r\nCatchpoint \[0-9\]* \\(exception thrown\\), throw location.*exception\\.cc:8, catch location .*exception\\.cc:36\r\n.*$gdb_prompt $" {
- pass "caught a throw (2) (static executable)"
- }
- -re ".*$gdb_prompt $" { fail "didn't catch a throw (2) (static executable)" }
- timeout { fail "(timeout) after continue -- didn't catch a throw (2)? (static executable)" }
- }
-
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing.*Catchpoint \[0-9\]* \\(exception caught\\), throw location.*exception\\.cc:8, catch location .*exception\\.cc:36\r\n.*$gdb_prompt $" {
- pass "caught a catch (2) (static executable)"
- }
- -re ".*$gdb_prompt $" { fail "didn't catch a catch (2) (static executable)" }
- timeout { fail "(timeout) after continue -- didn't catch a catch (2)? (static executable)" }
- }
-
- # Now the exception will be rethrown.
-
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing\\.\r\nGot.*\r\nCatchpoint \[0-9\]* \\(exception thrown\\), throw location.*exception\\.cc:38, catch location .*exception\\.cc:41\r\n.*$gdb_prompt $" {
- pass "caught a rethrow (static executable)"
- }
- -re ".*$gdb_prompt $" { fail "didn't catch a rethrow (static executable)" }
- timeout { fail "(timeout) after continue -- didn't catch a rethrow? (static executable)" }
- }
-
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing.*Catchpoint \[0-9\]* \\(exception caught\\), throw location.*exception\\.cc:38, catch location .*exception\\.cc:41\r\n.*$gdb_prompt $" {
- pass "caught a catch (3) (static executable)"
- }
- -re ".*$gdb_prompt $" { fail "didn't catch a catch (3) (static executable)" }
- timeout { fail "(timeout) after continue -- didn't catch a catch (3)? (static executable)" }
- }
-
- send_gdb "backtrace\n"
- gdb_expect {
- -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=__EH_NOTIFY_CATCH.*\r\n.*\r\n#3\[ \]*$hex in __rethrow.*\r\n#4\[ \]*$hex in main.* at .*exception\\.cc:38\r\n#5\[ \]*$hex in foo \\(i=20\\) at .*exception.cc:8\r\n#6\[ \]*$hex in main.* at .*exception.cc:34\r\n$gdb_prompt $" {
- pass "backtrace after catch (3) (static executable)"
- }
- -re ".*$gdb_prompt $" { fail "backtrace after catch (3) (static executable)" }
- timeout { fail "(timeout) backtrace after catch (3) (static executable)" }
- }
-
- # Now the exception will be thrown, but not catch-able anywhere.
-
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing\\.\r\nGot.*\r\nCatchpoint \[0-9\]* \\(exception thrown\\), throw location.*exception\\.cc:8, catch location unknown\r\n.*$gdb_prompt $" {
- pass "caught an uncatchable throw (static executable)"
- }
- -re ".*$gdb_prompt $" { fail "didn't catch an uncatchable throw (static executable)" }
- timeout { fail "(timeout) after continue -- didn't catch an uncatchable throw? (static executable)" }
- }
-
- # Part II : Shared-bound executables
- # ----------------------------------
-
- # Start with a fresh gdb
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
-
- set prms_id 0
- set bug_id 0
-
- set testfile "exception"
- set srcfile ${testfile}.cc
- set binfile ${objdir}/${subdir}/${testfile}
-
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will a
- utomatically fail."
- }
-
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
-
- if ![runto_main] then {
- perror "couldn't run to breakpoint"
- continue
- }
-
- # Set a catch catchpoint
-
- send_gdb "catch catch\n"
- gdb_expect {
- -re "Catchpoint \[0-9\]* \\(catch\\)\r\n$gdb_prompt $" {
- pass "catch catch (dynamic executable)"
- }
- -re ".*$gdb_prompt $" { fail "catch catch (dynamic executable)" }
- timeout { fail "(timeout) catch catch (dynamic executable)" }
- }
-
- # Set a throw catchpoint
-
- send_gdb "catch throw\n"
- gdb_expect {
- -re "Catchpoint \[0-9\]* \\(throw\\)\r\n$gdb_prompt $" {
- pass "catch throw (dynamic executable)"
- }
- -re ".*$gdb_prompt $" { fail "catch throw (dynamic executable)" }
- timeout { fail "(timeout) catch throw (dynamic executable)" }
- }
-
- # The catchpoints should be listed in the list of breakpoints.
-
- send_gdb "info break\n"
- gdb_expect {
- -re ".*\[0-9\]*\[ \]*catch catch\[ \]*keep y\[ \]*exception catch\[ \]*\r\n\[0-9\]*\[ \]*catch throw\[ \]*keep y\[ \]*exception throw\[ \]*\r\n$gdb_prompt $" {
- pass "info break with catchpoints (dynamic executable)"
- }
- -re ".*$gdb_prompt $" { fail "info break (dynamic executable)" }
- timeout { fail "(timeout) info break (dynamic executable)" }
- }
-
- # Info catch currently does not work with HP aCC. No easy way to
- # list the active handlers on the stack.
-
- send_gdb "info catch\n"
- gdb_expect {
- -re "Info catch not supported with this target/compiler combination.\r\n$gdb_prompt $" {
- pass "info catch (dynamic executable)"
- }
- -re ".*$gdb_prompt $" { fail "info catch (dynamic executable)" }
- timeout { fail "(timeout) info catch (dynamic executable)" }
- }
-
- # Get the first exception thrown
-
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing.*Catchpoint \[0-9\]* \\(exception thrown\\), throw location.*exception\\.cc:8, catch location .*exception\\.cc:28\r\n.*$gdb_prompt $" {
- pass "caught a throw (dynamic executable)"
- }
- -re ".*$gdb_prompt $" { fail "didn't catch a throw (dynamic executable)" }
- timeout { fail "(timeout) after continue -- didn't catch a throw? (dynamic executable)" }
- }
-
- send_gdb "backtrace\n"
- gdb_expect {
- -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=__EH_NOTIFY_THROW.*\r\n#2\[ \]*$hex in __eh_notify_throw.*\r\n#3\[ \]*$hex in foo \\(i=20\\) at .*exception\\.cc:8\r\n#4\[ \]*$hex in main.* at .*exception\\.cc:26\r\n$gdb_prompt $" {
- pass "backtrace after throw (dynamic executable)"
- }
- -re ".*$gdb_prompt $" { fail "backtrace after throw (dynamic executable)" }
- timeout { fail "(timeout) backtrace after throw (dynamic executable)" }
- }
-
- # Now intercept it when it is caught.
-
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing.*Catchpoint \[0-9\]* \\(exception caught\\), throw location.*exception\\.cc:8, catch location .*exception\\.cc:28\r\n.*$gdb_prompt $" {
- pass "caught a catch (dynamic executable)"
- }
- -re ".*$gdb_prompt $" { fail "didn't catch a catch (dynamic executable)" }
- timeout { fail "(timeout) after continue -- didn't catch a catch? (dynamic executable)" }
- }
-
- send_gdb "backtrace\n"
- gdb_expect {
- -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=__EH_NOTIFY_CATCH.*\r\n.*\r\n#3\[ \]*$hex in __throw__.*\r\n#4\[ \]*$hex in foo \\(i=20\\) at .*exception.cc:8\r\n#5\[ \]*$hex in main.* at .*exception.cc:26\r\n$gdb_prompt $" {
- pass "backtrace after catch (dynamic executable)"
- }
- -re ".*$gdb_prompt $" { fail "backtrace after catch (dynamic executable)" }
- timeout { fail "(timeout) backtrace after catch (dynamic executable)" }
- }
-
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing\\.\r\nGot.*\r\nCatchpoint \[0-9\]* \\(exception thrown\\), throw location.*exception\\.cc:8, catch location .*exception\\.cc:36\r\n.*$gdb_prompt $" {
- pass "caught a throw (2) (dynamic executable)"
- }
- -re ".*$gdb_prompt $" { fail "didn't catch a throw (2) (dynamic executable)" }
- timeout { fail "(timeout) after continue -- didn't catch a throw (2)? (dynamic executable)" }
- }
-
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing.*Catchpoint \[0-9\]* \\(exception caught\\), throw location.*exception\\.cc:8, catch location .*exception\\.cc:36\r\n.*$gdb_prompt $" {
- pass "caught a catch (2) (dynamic executable)"
- }
- -re ".*$gdb_prompt $" { fail "didn't catch a catch (2) (dynamic executable)" }
- timeout { fail "(timeout) after continue -- didn't catch a catch (2)? (dynamic executable)" }
- }
-
- # Now the exception will be rethrown.
-
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing\\.\r\nGot.*\r\nCatchpoint \[0-9\]* \\(exception thrown\\), throw location.*exception\\.cc:38, catch location .*exception\\.cc:41\r\n.*$gdb_prompt $" {
- pass "caught a rethrow (dynamic executable)"
- }
- -re ".*$gdb_prompt $" { fail "didn't catch a rethrow (dynamic executable)" }
- timeout { fail "(timeout) after continue -- didn't catch a rethrow? (dynamic executable)" }
- }
-
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing.*Catchpoint \[0-9\]* \\(exception caught\\), throw location.*exception\\.cc:38, catch location .*exception\\.cc:41\r\n.*$gdb_prompt $" {
- pass "caught a catch (3) (dynamic executable)"
- }
- -re ".*$gdb_prompt $" { fail "didn't catch a catch (3) (dynamic executable)" }
- timeout { fail "(timeout) after continue -- didn't catch a catch (3)? (dynamic executable)" }
- }
-
- send_gdb "backtrace\n"
- gdb_expect {
- -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=__EH_NOTIFY_CATCH.*\r\n.*\r\n#3\[ \]*$hex in __rethrow.*\r\n#4\[ \]*$hex in main.* at .*exception\\.cc:38\r\n#5\[ \]*$hex in foo \\(i=20\\) at .*exception.cc:8\r\n#6\[ \]*$hex in main.* at .*exception.cc:34\r\n$gdb_prompt $" {
- pass "backtrace after catch (3) (dynamic executable)"
- }
- -re ".*$gdb_prompt $" { fail "backtrace after catch (3) (dynamic executable)" }
- timeout { fail "(timeout) backtrace after catch (3) (dynamic executable)" }
- }
-
- # Now the exception will be thrown, but not catch-able anywhere.
-
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing\\.\r\nGot.*\r\nCatchpoint \[0-9\]* \\(exception thrown\\), throw location.*exception\\.cc:8, catch location unknown\r\n.*$gdb_prompt $" {
- pass "caught an uncatchable throw (dynamic executable)"
- }
- -re ".*$gdb_prompt $" { fail "didn't catch an uncatchable throw (dynamic executable)" }
- timeout { fail "(timeout) after continue -- didn't catch an uncatchable throw? (dynamic executable)" }
- }
-
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/execd-program.c gdb/testsuite/gdb.hp/execd-program.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/execd-program.c Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/execd-program.c Wed Dec 31 16:00:00 1969
***************
*** 1,28 ****
- #include <stdio.h>
-
- /* There is a global_i in follow_exec, which exec's us. We
- should not be able to see that other definition of global_i
- after we are exec'd.
- */
- int global_i = 0;
-
- main (argc, argv)
- int argc;
- char * argv[];
- {
- /* There is a local_j in follow_exec, which exec's us. We
- should not be able to see that other definition of local_j
- after we are exec'd.
- */
- int local_j = argc;
- char * s;
-
- printf ("Hello from execd_program...\n");
- if (argc != 2)
- {
- printf ("expected one string argument\n");
- exit (-1);
- }
- s = argv[1];
- printf ("argument received: %s\n", s);
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/foll-exec.c gdb/testsuite/gdb.hp/foll-exec.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/foll-exec.c Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/foll-exec.c Wed Dec 31 16:00:00 1969
***************
*** 1,35 ****
- #include <stdio.h>
-
- int global_i = 100;
-
- main ()
- {
- int local_j = global_i+1;
- int local_k = local_j+1;
-
- printf ("follow-exec is about to execlp(execd-program)...\n");
-
- execlp ("gdb.hp/execd-program",
- "gdb.hp/execd-program",
- "execlp arg1 from follow-exec",
- (char *)0);
-
- printf ("follow-exec is about to execl(execd-program)...\n");
-
- execl ("gdb.hp/execd-program",
- "gdb.hp/execd-program",
- "execl arg1 from follow-exec",
- "execl arg2 from follow-exec",
- (char *)0);
-
- {
- static char * argv[] = {
- "gdb.hp/execd-program",
- "execv arg1 from follow-exec",
- 0};
-
- printf ("follow-exec is about to execv(execd-program)...\n");
-
- execv ("gdb.hp/execd-program", argv);
- }
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/foll-exec.exp gdb/testsuite/gdb.hp/foll-exec.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/foll-exec.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/foll-exec.exp Wed Dec 31 16:00:00 1969
***************
*** 1,409 ****
- # Copyright (C) 1997 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- set prms_id 0
- set bug_id 0
-
- if { [skip_hp_tests] } then { continue }
-
- if {![istarget "hppa*-*-hpux10.30"] && ![istarget "hppa*-*-hpux11.*"]} {
- #setup_xfail "*-*.*"
- return 0
- }
-
- set testfile "foll-exec"
- set testfile2 "execd-program"
- set srcfile ${testfile}.c
- set srcfile2 ${testfile2}.c
- set binfile ${objdir}/${subdir}/${testfile}
- set binfile2 ${objdir}/${subdir}/${testfile2}
-
- # build the first test case
- #if { [compile "-g -DNO_PROTOTYPES ${srcdir}/${subdir}/${srcfile2} -o ${binfile2} "] != "" } {
- # perror "Couldn't compile ${srcfile2}"
- # return -1
- #}
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${binfile2}" executable {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- #if { [compile "-g ${srcdir}/${subdir}/${srcfile} -o ${binfile} "] != "" } {
- # execute_anywhere "rm -f ${objdir}/${subdir}/${testfile}.tmp"
- # built the second test case since we can't use prototypes
- # warning "Prototypes not supported, rebuilding with -DNO_PROTOTYPES"
- # execute_anywhere "echo set prototypes 0 > ${objdir}/${subdir}/${testfile}.tmp"
- # if { [compile "-g -DNO_PROTOTYPES ${srcdir}/${subdir}/${srcfile} -o ${binfile} "] != "" } {
- # perror "Couldn't compile ${testfile}.c"
- # return -1
- # }
- #}
-
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
-
- # Until "catch exec" is implemented on other targets...
- #
- if ![istarget "hppa*-hp-hpux*"] then {
- setup_xfail "*-*-*"
- }
-
- proc zap_session {} {
- global gdb_prompt
- global binfile
-
- send_gdb "kill\n"
- gdb_expect {
- -re ".*Kill the program being debugged.*y or n. $" {
- send_gdb "y\n"
- send_gdb "file $binfile\n"
- gdb_expect {
- -re ".*Load new symbol table from.*y or n. $" {
- send_gdb "y\n"
- gdb_expect {
- -re "Reading symbols from.*$gdb_prompt $" {}
- timeout { fail "loading symbols (timeout)"; return }
- }
- }
- -re ".*gdb_prompt $" {}
- timeout { fail "loading symbols (timeout)"; return }
- }
- }
- -re ".*$gdb_prompt $" {}
- timeout { fail "killing inferior (timeout)" ; return }
- }
- }
-
- proc do_exec_tests {} {
- global gdb_prompt
- global binfile
- global srcfile
- global srcfile2
- global testfile
- global testfile2
-
- # Start the program running, and stop at main.
- #
- if ![runto_main] then {
- perror "Couldn't run ${testfile}"
- return
- }
-
- # Verify that we can see various global and local variables
- # in this program, and that they have expected values. Some
- # of these variables are also declared in the program we'll
- # exec in a moment.
- #
- send_gdb "next 3\n"
- gdb_expect {
- -re "12.*execlp.*$gdb_prompt $"\
- {pass "step to exec call"}
- -re "$gdb_prompt $" {fail "step to exec call"}
- timeout {fail "(timeout) step to exec call"}
- }
- send_gdb "print global_i\n"
- gdb_expect {
- -re ".* = 100.*$gdb_prompt $"\
- {pass "print follow-exec/global_i"}
- -re "$gdb_prompt $" {fail "print follow-exec/global_i"}
- timeout {fail "(timeout) print follow-exec/global_i"}
- }
- send_gdb "print local_j\n"
- gdb_expect {
- -re ".* = 101.*$gdb_prompt $"\
- {pass "print follow-exec/local_j"}
- -re "$gdb_prompt $" {fail "print follow-exec/local_j"}
- timeout {fail "(timeout) print follow-exec/local_j"}
- }
- send_gdb "print local_k\n"
- gdb_expect {
- -re ".* = 102.*$gdb_prompt $"\
- {pass "print follow-exec/local_k"}
- -re "$gdb_prompt $" {fail "print follow-exec/local_k"}
- timeout {fail "(timeout) print follow-exec/local_k"}
- }
-
- # Try stepping through an execlp call, without catching it.
- # We should stop in execd-program, at its first statement.
- #
- send_gdb "next\n"
- gdb_expect {
- -re "Executing new program: .*${testfile2}.*${srcfile2}:17.*int local_j = argc;.*$gdb_prompt $"\
- {pass "step through execlp call"}
- -re "$gdb_prompt $" {fail "step through execlp call"}
- timeout {fail "(timeout) step through execlp call"}
- }
-
- # Verify that we can see the variables defined in the newly-exec'd
- # program, and CANNOT see those defined in the exec'ing program.
- #
- send_gdb "next\n"
- gdb_expect {
- -re "20.*printf.*$gdb_prompt $"\
- {pass "step after execlp call"}
- -re "$gdb_prompt $" {fail "step after execlp call"}
- timeout {fail "(timeout) step after execlp call"}
- }
- send_gdb "print global_i\n"
- gdb_expect {
- -re ".* = 0.*$gdb_prompt $"\
- {pass "print execd-program/global_i (after execlp)"}
- -re "$gdb_prompt $" {fail "print execd-program/global_i (after execlp)"}
- timeout {fail "(timeout) print execd-program/global_i (after execlp)"}
- }
- send_gdb "print local_j\n"
- gdb_expect {
- -re ".* = 2.*$gdb_prompt $"\
- {pass "print execd-program/local_j (after execlp)"}
- -re "$gdb_prompt $" {fail "print execd-program/local_j (after execlp)"}
- timeout {fail "(timeout) print execd-program/local_j (after execlp)"}
- }
- send_gdb "print local_k\n"
- gdb_expect {
- -re "No symbol \"local_k\" in current context.*$gdb_prompt $"\
- {pass "print follow-exec/local_k (after execlp)"}
- -re "$gdb_prompt $" {fail "print follow-exec/local_k (after execlp)"}
- timeout {fail "(timeout) print follow-exec/local_k (after execlp)"}
- }
-
- # Explicitly kill this program, or a subsequent rerun actually runs
- # the exec'd program, not the original program...
- zap_session
-
- # Start the program running, and stop at main.
- #
- if ![runto_main] then {
- perror "Couldn't run ${testfile} (2nd try)"
- return
- }
-
- # Verify that we can catch an exec event, and then continue
- # to follow through the exec. (Since there's a breakpoint on
- # "main", it'll also be transferred to the exec'd program,
- # and we expect to stop there.)
- #
- send_gdb "catch exec\n"
- gdb_expect {
- -re "Catchpoint .*(exec).*$gdb_prompt $"\
- {pass "set catch exec"}
- -re "$gdb_prompt $" {fail "set catch exec"}
- timeout {fail "(timeout) set catch exec"}
- }
-
- # Verify that the catchpoint is mentioned in an "info breakpoints",
- # and further that the catchpoint mentions no program name.
- #
- send_gdb "info breakpoints\n"
- gdb_expect {
- -re ".*catch exec.*keep y.*$gdb_prompt $"\
- {pass "info shows catchpoint without exec pathname"}
- -re ".*catch exec.*program \"\".*$gdb_prompt $"\
- {fail "info shows catchpoint without exec pathname"}
- -re "$gdb_prompt $" {fail "info shows catchpoint without exec pathname"}
- timeout {fail "(timeout) info shows catchpoint without exec pathname"}
- }
-
- send_gdb "continue\n"
- gdb_expect {
- -re ".*Executing new program:.*${testfile2}.*Catchpoint .*(exec\'d .*${testfile2}).*in .START..*$gdb_prompt $"\
- {pass "hit catch exec"}
- -re "$gdb_prompt $" {fail "hit catch exec"}
- timeout {fail "(timeout) hit catch exec"}
- }
-
- # Verify that the catchpoint is mentioned in an "info breakpoints",
- # and further that the catchpoint managed to capture the exec'd
- # program's name.
- #
- send_gdb "info breakpoints\n"
- gdb_expect {
- -re ".*catch exec .*program \".*${testfile2}\".*$gdb_prompt $"\
- {pass "info shows catchpoint exec pathname"}
- -re "$gdb_prompt $" {fail "info shows catchpoint exec pathname"}
- timeout {fail "(timeout) info shows catchpoint exec pathname"}
- }
-
- # Verify that we can continue from the catchpoint, and land in the
- # main of the newly-exec'd program.
- #
- send_gdb "continue\n"
- gdb_expect {
- -re ".*${srcfile2}:17.*$gdb_prompt $"\
- {pass "continue after hit catch exec"}
- -re "$gdb_prompt $" {fail "continue after hit catch exec"}
- timeout {fail "(timeout) continue after hit catch exec"}
- }
-
- # Explicitly kill this program, or a subsequent rerun actually runs
- # the exec'd program, not the original program...
- zap_session
-
- # Start the program running, and stop at main.
- #
- if ![runto_main] then {
- perror "Couldn't run ${testfile} (3rd try)"
- return
- }
-
- # Verify that we can follow through follow an execl()
- # call. (We must jump around earlier exec* calls.)
- #
- send_gdb "tbreak 19\n"
- gdb_expect {
- -re "Breakpoint .*file .*${srcfile}, line 19.*$gdb_prompt $"\
- {pass "prepare to jump to execl call"}
- -re "$gdb_prompt $" {fail "prepare to jump to execl call"}
- timeout {fail "(timeout) prepare to jump to execl call"}
- }
- send_gdb "jump 19\n"
- gdb_expect {
- -re "main.* at .*${srcfile}:19.*$gdb_prompt $"\
- {pass "jump to execl call"}
- -re "$gdb_prompt $" {fail "jump to execl call"}
- timeout {fail "(timeout) jump to execl call"}
- }
- # Note that stepping through an exec call causes the step-count
- # to be reset to zero. I.e.: you may specify "next 2" at the
- # call, but you'll actually stop at the first breakpoint set in
- # the newly-exec'd program, not after the remaining step-count
- # reaches zero.
- #
- send_gdb "next 2\n"
- gdb_expect {
- -re "Executing new program: .*${testfile2}.*${srcfile2}:17.*int local_j = argc;.*$gdb_prompt $"\
- {pass "step through execl call"}
- -re "$gdb_prompt $" {fail "step through execl call"}
- timeout {fail "(timeout) step through execl call"}
- }
- send_gdb "next\n"
- gdb_expect {
- -re "20.*printf.*$gdb_prompt $"\
- {pass "step after execl call"}
- -re "$gdb_prompt $" {fail "step after execl call"}
- timeout {fail "(timeout) step after execl call"}
- }
-
- # Verify that we can print a local variable (which happens to be
- # assigned the value of main's argc).
- #
- send_gdb "print local_j\n"
- gdb_expect {
- -re ".* = 3.*$gdb_prompt $"\
- {pass "print execd-program/local_j (after execl)"}
- -re "$gdb_prompt $" {fail "print execd-program/local_j (after execl)"}
- timeout {fail "(timeout) print execd-program/local_j (after execl)"}
- }
-
- # Explicitly kill this program, or a subsequent rerun actually runs
- # the exec'd program, not the original program...
- zap_session
-
- # Start the program running, and stop at main.
- #
- if ![runto_main] then {
- perror "Couldn't run ${testfile} (4th try)"
- return
- }
-
- # Verify that we can follow through follow an execv()
- # call. (We must jump around earlier exec* calls.)
- #
- send_gdb "tbreak 33\n"
- gdb_expect {
- -re "Breakpoint .*file .*${srcfile}, line 33.*$gdb_prompt $"\
- {pass "prepare to jump to execv call"}
- -re "$gdb_prompt $" {fail "prepare to jump to execv call"}
- timeout {fail "(timeout) prepare to jump to execv call"}
- }
- send_gdb "jump 33\n"
- gdb_expect {
- -re "main.* at .*${srcfile}:33.*$gdb_prompt $"\
- {pass "jump to execv call"}
- -re "$gdb_prompt $" {fail "jump to execv call"}
- timeout {fail "(timeout) jump to execv call"}
- }
- send_gdb "next\n"
- gdb_expect {
- -re "Executing new program: .*${testfile2}.*${srcfile2}:17.*int local_j = argc;.*$gdb_prompt $"\
- {pass "step through execv call"}
- -re "$gdb_prompt $" {fail "step through execv call"}
- timeout {fail "(timeout) step through execv call"}
- }
- send_gdb "next\n"
- gdb_expect {
- -re "20.*printf.*$gdb_prompt $"\
- {pass "step after execv call"}
- -re "$gdb_prompt $" {fail "step after execv call"}
- timeout {fail "(timeout) step after execv call"}
- }
-
- # Verify that we can print a local variable (which happens to be
- # assigned the value of main's argc).
- #
- send_gdb "print local_j\n"
- gdb_expect {
- -re ".* = 2.*$gdb_prompt $"\
- {pass "print execd-program/local_j (after execv)"}
- -re "$gdb_prompt $" {fail "print execd-program/local_j (after execv)"}
- timeout {fail "(timeout) print execd-program/local_j (after execv)"}
- }
-
- # Explicitly kill this program, or a subsequent rerun actually runs
- # the exec'd program, not the original program...
- zap_session
-
- # Start the program running, and stop at main.
- #
- if ![runto_main] then {
- perror "Couldn't run ${testfile} (4th try)"
- return
- }
-
- # Verify that we can just continue and thereby follow through an
- # exec call. (Since the breakpoint on "main" is reset, we should
- # just stop in main of the newly-exec'd program.)
- #
- send_gdb "continue\n"
- gdb_expect {
- -re "Executing new program: .*${testfile2}.*${srcfile2}:17.*int local_j = argc;.*$gdb_prompt $"\
- {pass "continue through exec"}
- -re "$gdb_prompt $" {fail "continue through exec"}
- timeout {fail "(timeout) continue through exec"}
- }
- }
-
- # Start with a fresh gdb
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
-
- # This is a test of gdb's ability to follow a process through a
- # Unix exec() system call.
- #
- do_exec_tests
-
- return 0
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/foll-fork.c gdb/testsuite/gdb.hp/foll-fork.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/foll-fork.c Tue Jan 12 07:19:11 1999
--- gdb/testsuite/gdb.hp/foll-fork.c Wed Dec 31 16:00:00 1969
***************
*** 1,25 ****
- #include <stdio.h>
-
- void callee (i)
- int i;
- {
- printf("callee: %d\n", i);
- }
-
- main ()
- {
- int pid;
- int v = 5;
-
- pid = fork ();
- if (pid == 0)
- {
- v++;
- /* printf ("I'm the child!\n"); */
- }
- else
- {
- v--;
- /* printf ("I'm the proud parent of child #%d!\n", pid); */
- }
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/foll-fork.exp gdb/testsuite/gdb.hp/foll-fork.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/foll-fork.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/foll-fork.exp Wed Dec 31 16:00:00 1969
***************
*** 1,382 ****
- # Copyright (C) 1997 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- set prms_id 0
- set bug_id 0
-
- if { [skip_hp_tests] } then { continue }
-
- if {![istarget "hppa*-*-hpux10.30"] && ![istarget "hppa*-*-hpux11.*"]} {
- #setup_xfail "*-*.*"
- return 0
- }
-
- set testfile "foll-fork"
- set srcfile ${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
-
- # build the first test case
- #if { [compile "-g ${srcdir}/${subdir}/${srcfile} -o ${binfile} "] != "" } {
- # execute_anywhere "rm -f ${objdir}/${subdir}/${testfile}.tmp"
- # built the second test case since we can't use prototypes
- # warning "Prototypes not supported, rebuilding with -DNO_PROTOTYPES"
- # execute_anywhere "echo set prototypes 0 > ${objdir}/${subdir}/${testfile}.tmp"
- # if { [compile "-g -DNO_PROTOTYPES ${srcdir}/${subdir}/${srcfile} -o ${binfile} "] != "" } {
- # perror "Couldn't compile ${testfile}.c"
- # return -1
- # }
- #}
-
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
-
-
- # Until "set follow-fork-mode" and "catch fork" are implemented on
- # other targets...
- #
- if ![istarget "hppa*-hp-hpux*"] then {
- setup_xfail "*-*-*"
- }
-
- proc default_fork_parent_follow {} {
- global gdb_prompt
-
- send_gdb "show follow\n"
- gdb_expect {
- -re "Debugger response to a program call of fork or vfork is \"parent\"..*$gdb_prompt $"\
- {pass "default show parent follow, no catchpoints"}
- -re "$gdb_prompt $" {fail "default show parent follow, no catchpoints"}
- timeout {fail "(timeout) default show parent follow, no catchpoints"}
- }
- send_gdb "next 2\n"
- gdb_expect {
- -re "Detaching after fork from.*$gdb_prompt $"\
- {pass "default parent follow, no catchpoints"}
- -re "$gdb_prompt $" {fail "default parent follow, no catchpoints"}
- timeout {fail "(timeout) default parent follow, no catchpoints" }
- }
- # The child has been detached; allow time for any output it might
- # generate to arrive, so that output doesn't get confused with
- # any expected debugger output from a subsequent testpoint.
- #
- exec sleep 1
- }
-
- proc explicit_fork_parent_follow {} {
- global gdb_prompt
-
- send_gdb "set follow parent\n"
- gdb_expect {
- -re "$gdb_prompt $" {pass "set follow parent"}
- timeout {fail "(timeout) set follow parent"}
- }
- send_gdb "show follow\n"
- gdb_expect {
- -re "Debugger response to a program call of fork or vfork is \"parent\"..*$gdb_prompt $"\
- {pass "explicit show parent follow, no catchpoints"}
- -re "$gdb_prompt $" {fail "explicit show parent follow, no catchpoints"}
- timeout {fail "(timeout) explicit show parent follow, no catchpoints"}
- }
- send_gdb "next 2\n"
- gdb_expect {
- -re "Detaching after fork from.*$gdb_prompt $"\
- {pass "explicit parent follow, no catchpoints"}
- -re "$gdb_prompt $" {fail "explicit parent follow, no catchpoints"}
- timeout {fail "(timeout) explicit parent follow, no catchpoints"}
- }
- # The child has been detached; allow time for any output it might
- # generate to arrive, so that output doesn't get confused with
- # any expected debugger output from a subsequent testpoint.
- #
- exec sleep 1
- }
-
- proc explicit_fork_child_follow {} {
- global gdb_prompt
-
- send_gdb "set follow child\n"
- gdb_expect {
- -re "$gdb_prompt $" {pass "set follow child"}
- timeout {fail "(timeout) set follow child"}
- }
- send_gdb "show follow\n"
- gdb_expect {
- -re "Debugger response to a program call of fork or vfork is \"child\"..*$gdb_prompt $"\
- {pass "explicit show child follow, no catchpoints"}
- -re "$gdb_prompt $" {fail "explicit show child follow, no catchpoints"}
- timeout {fail "(timeout) explicit show child follow, no catchpoints"}
- }
- send_gdb "next 2\n"
- gdb_expect {
- -re "Detaching from program:.*Attaching after fork to.*$gdb_prompt $"\
- {pass "explicit child follow, no catchpoints"}
- -re "$gdb_prompt $" {fail "explicit child follow, no catchpoints"}
- timeout {fail "(timeout) explicit child follow, no catchpoints"}
- }
- # The child has been detached; allow time for any output it might
- # generate to arrive, so that output doesn't get confused with
- # any gdb_expected debugger output from a subsequent testpoint.
- #
- exec sleep 1
- }
-
- proc catch_fork_child_follow {} {
- global gdb_prompt
-
- send_gdb "catch fork\n"
- gdb_expect {
- -re "Catchpoint .*(fork).*$gdb_prompt $"\
- {pass "explicit child follow, set catch fork"}
- -re "$gdb_prompt $" {fail "explicit child follow, set catch fork"}
- timeout {fail "(timeout) explicit child follow, set catch fork"}
- }
-
- # Verify that the catchpoint is mentioned in an "info breakpoints",
- # and further that the catchpoint mentions no process id.
- #
- send_gdb "info breakpoints\n"
- gdb_expect {
- -re ".*catch fork.*keep y.*$gdb_prompt $"\
- {pass "info shows catchpoint without pid"}
- -re ".*catch fork.*process .*$gdb_prompt $"\
- {fail "info shows catchpoint without pid"}
- -re "$gdb_prompt $" {fail "info shows catchpoint without pid"}
- timeout {fail "(timeout) info shows catchpoint without pid"}
- }
-
- send_gdb "continue\n"
- gdb_expect {
- -re "Catchpoint.*(forked process.*),.*in _fork_sys.*$gdb_prompt $"\
- {pass "explicit child follow, catch fork"}
- -re "$gdb_prompt $" {fail "explicit child follow, catch fork"}
- timeout {fail "(timeout) explicit child follow, catch fork"}
- }
-
- # Verify that the catchpoint is mentioned in an "info breakpoints",
- # and further that the catchpoint managed to capture a process id.
- #
- send_gdb "info breakpoints\n"
- gdb_expect {
- -re ".*catch fork .*process \[0-9\]+.*$gdb_prompt $"\
- {pass "info shows catchpoint pid"}
- -re "$gdb_prompt $" {fail "info shows catchpoint pid"}
- timeout {fail "(timeout) info shows catchpoint pid"}
- }
-
- send_gdb "set follow child\n"
- gdb_expect {
- -re "$gdb_prompt $" {pass "set follow child"}
- timeout {fail "(timeout) set follow child"}
- }
- send_gdb "tbreak 15\n"
- gdb_expect {
- -re "Breakpoint.*, line 15.*$gdb_prompt $"\
- {pass "set follow child, tbreak"}
- -re "$gdb_prompt $" {fail "set follow child, tbreak"}
- timeout {fail "(timeout) set follow child, tbreak"}
- }
- send_gdb "continue\n"
- gdb_expect {
- -re ".*Detaching from program:.*Attaching after fork to.* at .*15.*$gdb_prompt $"\
- {pass "set follow child, hit tbreak"}
- -re "$gdb_prompt $" {fail "set follow child, hit tbreak"}
- timeout {fail "(timeout) set follow child, hit tbreak"}
- }
- # The child has been detached; allow time for any output it might
- # generate to arrive, so that output doesn't get confused with
- # any expected debugger output from a subsequent testpoint.
- #
- exec sleep 1
- send_gdb "delete breakpoints\n"
- gdb_expect {
- -re "Delete all breakpoints.*$" {
- send_gdb "y\n"
- gdb_expect {
- -re "$gdb_prompt $"\
- {pass "set follow child, cleanup"}
- timeout {fail "(timeout) set follow child, cleanup"}
- }
- }
- -re "$gdb_prompt $" {fail "set follow child, cleanup"}
- timeout {fail "(timeout) set follow child, cleanup"}
- }
- }
-
- proc tcatch_fork_parent_follow {} {
- global gdb_prompt
-
- send_gdb "catch fork\n"
- gdb_expect {
- -re "Catchpoint .*(fork).*$gdb_prompt $"\
- {pass "explicit parent follow, set tcatch fork"}
- -re "$gdb_prompt $" {fail "explicit parent follow, set tcatch fork"}
- timeout {fail "(timeout) explicit parent follow, set tcatch fork"}
- }
- # ??rehrauer: I don't yet know how to get the id of the tcatch
- # via this script, so that I can add a -do list to it. For now,
- # do the follow stuff after the catch happens.
-
- send_gdb "continue\n"
- gdb_expect {
- -re ".*in _fork_sys.*$gdb_prompt $"\
- {pass "explicit parent follow, tcatch fork"}
- -re "$gdb_prompt $" {fail "explicit parent follow, tcatch fork"}
- timeout {fail "(timeout) explicit parent follow, tcatch fork"}
- }
- send_gdb "set follow parent\n"
- gdb_expect {
- -re "$gdb_prompt $" {pass "set follow parent"}
- timeout {fail "(timeout) set follow parent"}
- }
- send_gdb "tbreak 15\n"
- gdb_expect {
- -re "Breakpoint.*, line 15.*$gdb_prompt $"\
- {pass "set follow parent, tbreak"}
- -re "$gdb_prompt $" {fail "set follow parent, tbreak"}
- timeout {fail "(timeout) set follow child, tbreak"}
- }
- send_gdb "continue\n"
- gdb_expect {
- -re ".*Detaching after fork from.* at .*15.*$gdb_prompt $"\
- {pass "set follow parent, hit tbreak"}
- -re "$gdb_prompt $" {fail "set follow parent, hit tbreak"}
- timeout {fail "(timeout) set follow parent, hit tbreak"}
- }
- # The child has been detached; allow time for any output it might
- # generate to arrive, so that output doesn't get confused with
- # any expected debugger output from a subsequent testpoint.
- #
- exec sleep 1
- send_gdb "delete breakpoints\n"
- gdb_expect {
- -re "Delete all breakpoints.*$" {
- send_gdb "y\n"
- gdb_expect {
- -re "$gdb_prompt $"\
- {pass "set follow parent, cleanup"}
- timeout {fail "(timeout) set follow parent, cleanup"}
- }
- }
- -re "$gdb_prompt $" {fail "set follow parent, cleanup"}
- timeout {fail "(timeout) set follow parent, cleanup"}
- }
- }
-
- proc do_fork_tests {} {
- global gdb_prompt
-
- # Verify that help is available for "set follow-fork-mode".
- #
- send_gdb "help set follow-fork-mode\n"
- gdb_expect {
- -re "Set debugger response to a program call of fork or vfork..*
- A fork or vfork creates a new process. follow-fork-mode can be:.*
- .*parent - the original process is debugged after a fork.*
- .*child - the new process is debugged after a fork.*
- .*ask - the debugger will ask for one of the above choices.*
- For \"parent\" or \"child\", the unfollowed process will run free..*
- By default, the debugger will follow the parent process..*$gdb_prompt $"\
- { pass "help set follow" }
- -re "$gdb_prompt $" { fail "help set follow" }
- timeout { fail "(timeout) help set follow" }
- }
-
- # Verify that we can set follow-fork-mode, using an abbreviation
- # for both the flag and its value.
- #
- send_gdb "set follow ch\n"
- send_gdb "show fol\n"
- gdb_expect {
- -re "Debugger response to a program call of fork or vfork is \"child\".*$gdb_prompt $"\
- {pass "set follow, using abbreviations"}
- timeout {fail "(timeout) set follow, using abbreviations"}
- }
-
- # Verify that we cannot set follow-fork-mode to nonsense.
- #
- send_gdb "set follow chork\n"
- gdb_expect {
- -re "Undefined item: \"chork\".*$gdb_prompt $"\
- {pass "set follow to nonsense is prohibited"}
- -re "$gdb_prompt $" {fail "set follow to nonsense is prohibited"}
- timeout {fail "(timeout) set follow to nonsense is prohibited"}
- }
- send_gdb "set follow parent\n"
- gdb_expect {
- -re "$gdb_prompt $" {pass "set follow to nonsense is prohibited (reset parent)"}
- timeout {fail "set follow to nonsense is prohibited (reset parent)"}
- }
-
- # Test the default behaviour, which is to follow the parent of a
- # fork, and detach from the child. Do this without catchpoints.
- #
- if [runto_main] then { default_fork_parent_follow }
-
- # Test the ability to explicitly follow the parent of a fork, and
- # detach from the child. Do this without catchpoints.
- #
- if [runto_main] then { explicit_fork_parent_follow }
-
- # Test the ability to follow the child of a fork, and detach from
- # the parent. Do this without catchpoints.
- #
- if [runto_main] then { explicit_fork_child_follow }
-
- # Test the ability to follow both child and parent of a fork. Do
- # this without catchpoints.
- # ??rehrauer: NYI. Will add testpoints here when implemented.
- #
-
- # Test the ability to have the debugger ask the user at fork-time
- # whether to follow the parent, child or both. Do this without
- # catchpoints.
- # ??rehrauer: NYI. Will add testpoints here when implemented.
- #
-
- # Test the ability to catch a fork, specify that the child be
- # followed, and continue. Make the catchpoint permanent.
- #
- if [runto_main] then { catch_fork_child_follow }
-
- # Test the ability to catch a fork, specify via a -do clause that
- # the parent be followed, and continue. Make the catchpoint temporary.
- #
- if [runto_main] then { tcatch_fork_parent_follow }
- }
-
- # Start with a fresh gdb
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
-
- # This is a test of gdb's ability to follow the parent, child or both
- # parent and child of a Unix fork() system call.
- #
- do_fork_tests
-
- return 0
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/foll-vfork.c gdb/testsuite/gdb.hp/foll-vfork.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/foll-vfork.c Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/foll-vfork.c Wed Dec 31 16:00:00 1969
***************
*** 1,15 ****
- #include <stdio.h>
-
- main ()
- {
- int pid;
-
- pid = vfork ();
- if (pid == 0) {
- printf ("I'm the child!\n");
- execlp ("gdb.hp/vforked-program", "gdb.hp/vforked-program", (char *)0);
- }
- else {
- printf ("I'm the proud parent of child #%d!\n", pid);
- }
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/foll-vfork.exp gdb/testsuite/gdb.hp/foll-vfork.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/foll-vfork.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/foll-vfork.exp Wed Dec 31 16:00:00 1969
***************
*** 1,378 ****
- # Copyright (C) 1997 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- set prms_id 0
- set bug_id 0
-
- if { [skip_hp_tests] } then { continue }
-
- if {![istarget "hppa*-*-hpux10.30"] && ![istarget "hppa*-*-hpux11.*"]} {
- #setup_xfail "*-*.*"
- return 0
- }
-
- set testfile "foll-vfork"
- set testfile2 "vforked-program"
- set srcfile ${testfile}.c
- set srcfile2 ${testfile2}.c
- set binfile ${objdir}/${subdir}/${testfile}
- set binfile2 ${objdir}/${subdir}/${testfile2}
-
- # build the first test case
- #execute_anywhere "echo set prototypes 1 > ${objdir}/${subdir}/${testfile}.tmp"
- #if { [compile "-g -DNO_PROTOTYPES ${srcdir}/${subdir}/${srcfile2} -o ${binfile2} "] != "" } {
- # perror "Couldn't compile ${srcfile2}"
- # return -1
- #}
-
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- #if { [compile "-g ${srcdir}/${subdir}/${srcfile} -o ${binfile} "] != "" } {
- # execute_anywhere "rm -f ${objdir}/${subdir}/${testfile}.tmp"
- # built the second test case since we can't use prototypes
- # warning "Prototypes not supported, rebuilding with -DNO_PROTOTYPES"
- # execute_anywhere "echo set prototypes 0 > ${objdir}/${subdir}/${testfile}.tmp"
- # if { [compile "-g -DNO_PROTOTYPES ${srcdir}/${subdir}/${srcfile} -o ${binfile} "] != "" } {
- # perror "Couldn't compile ${testfile}.c"
- # return -1
- # }
- #}
-
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${binfile2}" executable {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
-
- # Until "set follow-fork-mode" and "catch vfork" are implemented on
- # other targets...
- #
- if ![istarget "hppa*-hp-hpux*"] then {
- setup_xfail "*-*-*"
- }
-
-
- # A few of these tests require a little more time than the standard
- # timeout allows.
- set oldtimeout $timeout
- set timeout [expr "$timeout + 10"]
-
- proc vfork_parent_follow_through_step {} {
- global gdb_prompt
-
- send_gdb "set follow parent\n"
- gdb_expect {
- -re "$gdb_prompt $" {pass "set follow parent, vfork through step"}
- timeout {fail "set follow parent, vfork through step"}
- }
- send_gdb "next\n"
- gdb_expect {
- -re "Detaching after fork from.*8.*$gdb_prompt $"\
- {pass "vfork parent follow, through step"}
- -re "$gdb_prompt $" {fail "vfork parent follow, through step"}
- timeout {fail "(timeout) vfork parent follow, through step" }
- }
- # The child has been detached; allow time for any output it might
- # generate to arrive, so that output doesn't get confused with
- # any gdb_expected debugger output from a subsequent testpoint.
- #
- exec sleep 1
- }
-
- proc vfork_parent_follow_to_bp {} {
- global gdb_prompt
-
- send_gdb "set follow parent\n"
- gdb_expect {
- -re "$gdb_prompt $" {pass "set follow parent, vfork to bp"}
- timeout {fail "set follow parent, vfork to bp"}
- }
- send_gdb "break 13\n"
- gdb_expect {
- -re "$gdb_prompt $" {pass "break, vfork to bp"}
- timeout {fail "break, vfork to bp"}
- }
- send_gdb "continue\n"
- gdb_expect {
- -re ".*Detaching after fork from process.*Breakpoint.*13.*$gdb_prompt $"\
- {pass "vfork parent follow, to bp"}
- -re "$gdb_prompt $" {fail "vfork parent follow, to bp"}
- timeout {fail "(timeout) vfork parent follow, to bp" }
- }
- # The child has been detached; allow time for any output it might
- # generate to arrive, so that output doesn't get confused with
- # any expected debugger output from a subsequent testpoint.
- #
- exec sleep 1
- }
-
- proc vfork_and_exec_child_follow_to_main_bp {} {
- global gdb_prompt
- global binfile
-
- send_gdb "set follow child\n"
- gdb_expect {
- -re "$gdb_prompt $" {pass "set follow child, vfork and exec to main bp"}
- timeout {fail "set follow child, vfork and exec to main bp"}
- }
- send_gdb "continue\n"
- gdb_expect {
- -re "Detaching from program.*Attaching after fork to.*Executing new program.*Breakpoint.*vforked-program.c:5.*$gdb_prompt $"\
- {pass "vfork and exec child follow, to main bp"}
- -re "$gdb_prompt $" {fail "vfork and exec child follow, to main bp"}
- timeout {fail "(timeout) vfork and exec child follow, to main bp" }
- }
- # The parent has been detached; allow time for any output it might
- # generate to arrive, so that output doesn't get confused with
- # any gdb_expected debugger output from a subsequent testpoint.
- #
- exec sleep 1
-
- # Explicitly kill this child, or a subsequent rerun actually runs
- # the exec'd child, not the original program...
- send_gdb "kill\n"
- gdb_expect {
- -re ".*Kill the program being debugged.*y or n. $" {
- send_gdb "y\n"
- send_gdb "file $binfile\n"
- gdb_expect {
- -re ".*Load new symbol table from.*y or n. $" {
- send_gdb "y\n"
- gdb_expect {
- -re "Reading symbols from.*$gdb_prompt $" {}
- timeout { fail "loading symbols (timeout)"; return }
- }
- }
- -re ".*gdb_prompt $" {}
- timeout { fail "loading symbols (timeout)"; return }
- }
- }
- -re ".*$gdb_prompt $" {}
- timeout { fail "killing inferior (timeout)" ; return }
- }
- }
-
- proc vfork_and_exec_child_follow_through_step {} {
- global gdb_prompt
- global binfile
-
- # This test cannot be performed prior to HP-UX 10.30, because ptrace-based
- # debugging of a vforking program basically doesn't allow the child to do
- # things like hit a breakpoint between a vfork and exec. This means that
- # saying "set follow child; next" at a vfork() call won't work, because
- # the implementation of "next" sets a "step resume" breakpoint at the
- # return from the vfork(), which the child will hit on its way to exec'ing.
- #
- if { ![istarget "hppa*-*-hpux10.30"] && ![istarget "hppa*-*-hpux11.*"] } {
- verbose "vfork child-following next test ignored for non-hppa or pre-HP/UX-10.30 targets."
- return 0
- }
-
- send_gdb "set follow child\n"
- gdb_expect {
- -re "$gdb_prompt $" {pass "set follow child, vfork and exec through step"}
- timeout {fail "set follow child, vfork and exec through step"}
- }
- send_gdb "next\n"
- gdb_expect {
- -re "Detaching from program.*Attaching after fork to.*Executing new program.*Breakpoint.*vforked_program.c:5.*$gdb_prompt $"\
- {pass "vfork and exec child follow, through step"}
- -re "$gdb_prompt $" {fail "vfork and exec child follow, through step"}
- timeout {fail "(timeout) vfork and exec child follow, through step" }
- }
- # The parent has been detached; allow time for any output it might
- # generate to arrive, so that output doesn't get confused with
- # any expected debugger output from a subsequent testpoint.
- #
- exec sleep 1
-
- # Explicitly kill this child, or a subsequent rerun actually runs
- # the exec'd child, not the original program...
- send_gdb "kill\n"
- gdb_expect {
- -re ".*Kill the program being debugged.*y or n. $" {
- send_gdb "y\n"
- send_gdb "file $binfile\n"
- gdb_expect {
- -re ".*Load new symbol table from.*y or n. $" {
- send_gdb "y\n"
- gdb_expect {
- -re "Reading symbols from.*$gdb_prompt $" {}
- timeout { fail "loading symbols (timeout)"; return }
- }
- }
- -re ".*gdb_prompt $" {}
- timeout { fail "loading symbols (timeout)"; return }
- }
- }
- -re ".*$gdb_prompt $" {}
- timeout { fail "killing inferior (timeout)" ; return }
- }
- }
-
- proc tcatch_vfork_then_parent_follow {} {
- global gdb_prompt
- global srcfile
-
- send_gdb "set follow parent\n"
- gdb_expect {
- -re "$gdb_prompt $" {pass "set follow parent, tcatch vfork"}
- timeout {fail "set follow parent, tcatch vfork"}
- }
- send_gdb "tcatch vfork\n"
- gdb_expect {
- -re "Catchpoint .*(vfork).*$gdb_prompt $"\
- {pass "vfork parent follow, set tcatch vfork"}
- -re "$gdb_prompt $" {fail "vfork parent follow, set tcatch vfork"}
- timeout {fail "(timeout) vfork parent follow, set tcatch vfork"}
- }
- send_gdb "continue\n"
- # HP-UX 10.20 seems to stop you in "vfork", while more recent HP-UXs
- # stop you in "_vfork".
- gdb_expect {
- -re "0x\[0-9a-fA-F\]*.*vfork.*$gdb_prompt $"\
- {pass "vfork parent follow, tcatch vfork"}
- -re "0x\[0-9a-fA-F\]*.*_vfork.*$gdb_prompt $"\
- {pass "vfork parent follow, tcatch vfork"}
- -re "$gdb_prompt $" {fail "vfork parent follow, tcatch vfork"}
- timeout {fail "(timeout) vfork parent follow, tcatch vfork"}
- }
- send_gdb "finish\n"
- gdb_expect {
- -re "Run till exit from.*vfork.*0x\[0-9a-fA-F\]* in main .* at .*${srcfile}:7.*$gdb_prompt $"\
- {pass "vfork parent follow, finish after tcatch vfork"}
- -re "$gdb_prompt $" {fail "vfork parent follow, finish after tcatch vfork"}
- timeout {fail "(timeout) vfork parent follow, finish after tcatch vfork" }
- }
- # The child has been detached; allow time for any output it might
- # generate to arrive, so that output doesn't get confused with
- # any expected debugger output from a subsequent testpoint.
- #
- exec sleep 1
- }
-
- proc tcatch_vfork_then_child_follow {} {
- global gdb_prompt
- global srcfile2
-
- send_gdb "set follow child\n"
- gdb_expect {
- -re "$gdb_prompt $" {pass "set follow child, tcatch vfork"}
- timeout {fail "set follow child, tcatch vfork"}
- }
- send_gdb "tcatch vfork\n"
- gdb_expect {
- -re "Catchpoint .*(vfork).*$gdb_prompt $"\
- {pass "vfork child follow, set tcatch vfork"}
- -re "$gdb_prompt $" {fail "vfork child follow, set tcatch vfork"}
- timeout {fail "(timeout) vfork child follow, set tcatch vfork"}
- }
- send_gdb "continue\n"
- # HP-UX 10.20 seems to stop you in "vfork", while more recent HP-UXs
- # stop you in "_vfork".
- gdb_expect {
- -re "0x\[0-9a-fA-F\]*.*vfork.*$gdb_prompt $"\
- {pass "vfork child follow, tcatch vfork"}
- -re "0x\[0-9a-fA-F\]*.*_vfork.*$gdb_prompt $"\
- {pass "vfork child follow, tcatch vfork"}
- -re "$gdb_prompt $" {fail "vfork child follow, tcatch vfork"}
- timeout {fail "(timeout) vfork child follow, tcatch vfork"}
- }
- send_gdb "finish\n"
- gdb_expect {
- -re "Run till exit from.*vfork.*${srcfile2}:5.*$gdb_prompt $"\
- {pass "vfork child follow, finish after tcatch vfork"}
- -re "$gdb_prompt $" {fail "vfork child follow, finish after tcatch vfork"}
- timeout {fail "(timeout) vfork child follow, finish after tcatch vfork" }
- }
- # The parent has been detached; allow time for any output it might
- # generate to arrive, so that output doesn't get confused with
- # any expected debugger output from a subsequent testpoint.
- #
- exec sleep 1
- }
-
- proc do_vfork_and_exec_tests {} {
- global gdb_prompt
-
- # Try following the parent process by stepping through a call to
- # vfork. Do this without catchpoints.
- if [runto_main] then { vfork_parent_follow_through_step }
-
- # Try following the parent process by setting a breakpoint on the
- # other side of a vfork, and running to that point. Do this
- # without catchpoints.
- if [runto_main] then { vfork_parent_follow_to_bp }
-
- # Try following the child process by just continuing through the
- # vfork, and letting the parent's breakpoint on "main" be auto-
- # magically reset in the child.
- #
- if [runto_main] then { vfork_and_exec_child_follow_to_main_bp }
-
- # Try following the child process by stepping through a call to
- # vfork. The child also executes an exec. Since the child cannot
- # be debugged until after it has exec'd, and since there's a bp on
- # "main" in the parent, and since the bp's for the parent are
- # recomputed in the exec'd child, the step through a vfork should
- # land us in the "main" for the exec'd child, too.
- #
- if [runto_main] then { vfork_and_exec_child_follow_through_step }
-
- # Try catching a vfork, and stepping out to the parent.
- #
- if [runto_main] then { tcatch_vfork_then_parent_follow }
-
- # Try catching a vfork, and stepping out to the child.
- #
- if [runto_main] then { tcatch_vfork_then_child_follow }
-
- # Test the ability to follow both child and parent of a vfork. Do
- # this without catchpoints.
- # ??rehrauer: NYI. Will add testpoints here when implemented.
- #
-
- # Test the ability to have the debugger ask the user at vfork-time
- # whether to follow the parent, child or both. Do this without
- # catchpoints.
- # ??rehrauer: NYI. Will add testpoints here when implemented.
- #
- }
-
- # Start with a fresh gdb
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
-
- # This is a test of gdb's ability to follow the parent or child
- # of a Unix vfork() system call. (The child will subsequently
- # call a variant of a Unix exec() system call.)
- #
- do_vfork_and_exec_tests
-
- set timeout $oldtimeout
- return 0
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/Makefile.in gdb/testsuite/gdb.hp/gdb.aCC/Makefile.in
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/Makefile.in Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.aCC/Makefile.in Thu Jul 22 17:50:07 1999
***************
*** 0 ****
--- 1,27 ----
+ VPATH = @srcdir@
+ srcdir = @srcdir@
+
+ EXECUTABLES = exception namespace optimize run
+
+ all:
+ @echo "Nothing to be done for all..."
+
+ info:
+ install-info:
+ dvi:
+ install:
+ uninstall: force
+ installcheck:
+ check:
+
+ clean mostlyclean:
+ -rm -f *~ *.o *.ci
+ -rm -f core $(EXECUTABLES)
+
+ distclean maintainer-clean realclean: clean
+ -rm -f Makefile config.status config.log
+ -rm -f *-init.exp
+ -rm -fr *.log summary detail *.plog *.sum *.psum site.*
+
+ Makefile : $(srcdir)/Makefile.in $(srcdir)/configure.in
+ $(SHELL) ./config.status --recheck
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/compiler.c gdb/testsuite/gdb.hp/gdb.aCC/compiler.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/compiler.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.aCC/compiler.c Thu Jul 22 17:48:46 1999
***************
*** 0 ****
--- 1,31 ----
+ /* Often the behavior of any particular test depends upon what compiler was
+ used to compile the test. As each test is compiled, this file is
+ preprocessed by the same compiler used to compile that specific test
+ (different tests might be compiled by different compilers, particularly
+ if compiled at different times), and used to generate a *.ci (compiler
+ info) file for that test.
+
+ I.E., when callfuncs is compiled, a callfuncs.ci file will be generated,
+ which can then be sourced by callfuncs.exp to give callfuncs.exp access
+ to information about the compilation environment.
+
+ TODO: It might be a good idea to add expect code that tests each
+ definition made with 'set" to see if one already exists, and if so
+ warn about conflicts if it is being set to something else. */
+
+ /* This needs to be kept in sync with whatis.c and gdb.exp(get_compiler_info).
+ If this ends up being hairy, we could use a common header file. */
+
+ #if defined (__STDC__) || defined (_AIX)
+ set signed_keyword_not_used 0
+ #else
+ set signed_keyword_not_used 1
+ #endif
+
+ #if defined (__GNUC__)
+ set gcc_compiled __GNUC__
+ #else
+ set gcc_compiled 0
+ #endif
+
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/compiler.cc gdb/testsuite/gdb.hp/gdb.aCC/compiler.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/compiler.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.aCC/compiler.cc Thu Jul 22 17:49:19 1999
***************
*** 0 ****
--- 1,34 ----
+ /* Often the behavior of any particular test depends upon what compiler was
+ used to compile the test. As each test is compiled, this file is
+ preprocessed by the same compiler used to compile that specific test
+ (different tests might be compiled by different compilers, particularly
+ if compiled at different times), and used to generate a *.ci (compiler
+ info) file for that test.
+
+ I.E., when callfuncs is compiled, a callfuncs.ci file will be generated,
+ which can then be sourced by callfuncs.exp to give callfuncs.exp access
+ to information about the compilation environment.
+
+ TODO: It might be a good idea to add expect code that tests each
+ definition made with 'set" to see if one already exists, and if so
+ warn about conflicts if it is being set to something else. */
+
+ #if defined(__GNUC__) && __GNUC__ >= 2 && __GNUC_MINOR__ >= 6
+ set supports_template_debugging 1
+ #else
+ set supports_template_debugging 0
+ #endif
+
+ #if defined(__cplusplus)
+ set supports_template_debugging 1
+ #else
+ set supports_template_debugging 0
+ #endif
+
+ #if defined (__GNUC__)
+ set gcc_compiled __GNUC__
+ #else
+ set gcc_compiled 0
+ #endif
+
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/configure gdb/testsuite/gdb.hp/gdb.aCC/configure
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/configure Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.aCC/configure Thu Jul 22 17:50:07 1999
***************
*** 0 ****
--- 1,899 ----
+ #! /bin/sh
+
+ # Guess values for system-dependent variables and create Makefiles.
+ # Generated automatically using autoconf version 2.12.1
+ # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+ #
+ # This configure script is free software; the Free Software Foundation
+ # gives unlimited permission to copy, distribute and modify it.
+
+ # Defaults:
+ ac_help=
+ ac_default_prefix=/usr/local
+ # Any additions from configure.in:
+
+ # Initialize some variables set by options.
+ # The variables have the same names as the options, with
+ # dashes changed to underlines.
+ build=NONE
+ cache_file=./config.cache
+ exec_prefix=NONE
+ host=NONE
+ no_create=
+ nonopt=NONE
+ no_recursion=
+ prefix=NONE
+ program_prefix=NONE
+ program_suffix=NONE
+ program_transform_name=s,x,x,
+ silent=
+ site=
+ srcdir=
+ target=NONE
+ verbose=
+ x_includes=NONE
+ x_libraries=NONE
+ bindir='${exec_prefix}/bin'
+ sbindir='${exec_prefix}/sbin'
+ libexecdir='${exec_prefix}/libexec'
+ datadir='${prefix}/share'
+ sysconfdir='${prefix}/etc'
+ sharedstatedir='${prefix}/com'
+ localstatedir='${prefix}/var'
+ libdir='${exec_prefix}/lib'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+ infodir='${prefix}/info'
+ mandir='${prefix}/man'
+
+ # Initialize some other variables.
+ subdirs=
+ MFLAGS= MAKEFLAGS=
+ SHELL=${CONFIG_SHELL-/bin/sh}
+ # Maximum number of lines to put in a shell here document.
+ ac_max_here_lines=12
+
+ ac_prev=
+ for ac_option
+ do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+ Usage: configure [options] [host]
+ Options: [defaults in brackets after descriptions]
+ Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --version print the version of autoconf that created configure
+ Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+ EOF
+ cat << EOF
+ Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+ Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+ EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.12.1"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+ done
+
+ if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+ fi
+
+ trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+ # File descriptor usage:
+ # 0 standard input
+ # 1 file creation
+ # 2 errors and warnings
+ # 3 some systems may open it to /dev/tty
+ # 4 used on the Kubota Titan
+ # 6 checking for... messages and results
+ # 5 compiler messages saved in config.log
+ if test "$silent" = yes; then
+ exec 6>/dev/null
+ else
+ exec 6>&1
+ fi
+ exec 5>./config.log
+
+ echo "\
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+ " 1>&5
+
+ # Strip out --no-create and --no-recursion so they do not pile up.
+ # Also quote any args containing shell metacharacters.
+ ac_configure_args=
+ for ac_arg
+ do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+ done
+
+ # NLS nuisances.
+ # Only set these to C if already set. These must not be set unconditionally
+ # because not all systems understand e.g. LANG=C (notably SCO).
+ # Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+ # Non-C LC_CTYPE values break the ctype check.
+ if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+ if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+ if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+ if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+ # confdefs.h avoids OS command line length limits that DEFS can exceed.
+ rm -rf conftest* confdefs.h
+ # AIX cpp loses on an empty file, so make sure it contains at least a newline.
+ echo > confdefs.h
+
+ # A filename unique to this package, relative to the directory that
+ # configure is in, which we can look for to find out if srcdir is correct.
+ ac_unique_file=exception.exp
+
+ # Find the source files, if location was not specified.
+ if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+ else
+ ac_srcdir_defaulted=no
+ fi
+ if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+ fi
+ srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+ # Prefer explicitly selected file to automatically selected ones.
+ if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+ fi
+ for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+ done
+
+ if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+ else
+ echo "creating cache $cache_file"
+ > $cache_file
+ fi
+
+ ac_ext=c
+ # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ cross_compiling=$ac_cv_prog_cc_cross
+
+ if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+ ' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+ else
+ ac_n= ac_c='\c' ac_t=
+ fi
+
+
+
+ CC=${CC-cc}
+
+ ac_aux_dir=
+ for ac_dir in `cd $srcdir;pwd`/../../../.. $srcdir/`cd $srcdir;pwd`/../../../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+ done
+ if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in `cd $srcdir;pwd`/../../../.. $srcdir/`cd $srcdir;pwd`/../../../.." 1>&2; exit 1; }
+ fi
+ ac_config_guess=$ac_aux_dir/config.guess
+ ac_config_sub=$ac_aux_dir/config.sub
+ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+
+ # Do some error checking and defaulting for the host and target type.
+ # The inputs are:
+ # configure --host=HOST --target=TARGET --build=BUILD NONOPT
+ #
+ # The rules are:
+ # 1. You are not allowed to specify --host, --target, and nonopt at the
+ # same time.
+ # 2. Host defaults to nonopt.
+ # 3. If nonopt is not specified, then host defaults to the current host,
+ # as determined by config.guess.
+ # 4. Target and build default to nonopt.
+ # 5. If nonopt is not specified, then target and build default to host.
+
+ # The aliases save the names the user supplied, while $host etc.
+ # will get canonicalized.
+ case $host---$target---$nonopt in
+ NONE---*---* | *---NONE---* | *---*---NONE) ;;
+ *) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
+ esac
+
+
+ # Make sure we can run config.sub.
+ if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+ fi
+
+ echo $ac_n "checking host system type""... $ac_c" 1>&6
+ echo "configure:573: checking host system type" >&5
+
+ host_alias=$host
+ case "$host_alias" in
+ NONE)
+ case $nonopt in
+ NONE)
+ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+ else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+ fi ;;
+ *) host_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+ host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$host" 1>&6
+
+ echo $ac_n "checking target system type""... $ac_c" 1>&6
+ echo "configure:594: checking target system type" >&5
+
+ target_alias=$target
+ case "$target_alias" in
+ NONE)
+ case $nonopt in
+ NONE) target_alias=$host_alias ;;
+ *) target_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
+ target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$target" 1>&6
+
+ echo $ac_n "checking build system type""... $ac_c" 1>&6
+ echo "configure:612: checking build system type" >&5
+
+ build_alias=$build
+ case "$build_alias" in
+ NONE)
+ case $nonopt in
+ NONE) build_alias=$host_alias ;;
+ *) build_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+ build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$build" 1>&6
+
+ test "$host_alias" != "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+
+ trap '' 1 2 15
+ cat > confcache <<\EOF
+ # This file is a shell script that caches the results of configure
+ # tests run on this system so they can be shared between configure
+ # scripts and configure runs. It is not useful on other systems.
+ # If it contains results you don't want to keep, you may remove or edit it.
+ #
+ # By default, configure uses ./config.cache as the cache file,
+ # creating it if it does not exist already. You can give configure
+ # the --cache-file=FILE option to use a different cache file; that is
+ # what configure does when it calls configure scripts in
+ # subdirectories, so they share the cache.
+ # Giving --cache-file=/dev/null disables caching, for debugging configure.
+ # config.status only pays attention to the cache file if you give it the
+ # --recheck option to rerun configure.
+ #
+ EOF
+ # The following way of writing the cache mishandles newlines in values,
+ # but we know of no workaround that is simple, portable, and efficient.
+ # So, don't put newlines in cache variables' values.
+ # Ultrix sh set writes to stderr and can't be redirected directly,
+ # and sets the high bit in the cache file unless we assign to the vars.
+ (set) 2>&1 |
+ case `(ac_space=' '; set) 2>&1 | grep ac_space` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+ if cmp -s $cache_file confcache; then
+ :
+ else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+ fi
+ rm -f confcache
+
+ trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+ test "x$prefix" = xNONE && prefix=$ac_default_prefix
+ # Let make expand exec_prefix.
+ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+ # Any assignment to VPATH causes Sun make to only execute
+ # the first set of double-colon rules, so remove it if not needed.
+ # If there is a colon in the path, we need to keep it.
+ if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+ fi
+
+ trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+ # Transform confdefs.h into DEFS.
+ # Protect against shell expansion while executing Makefile rules.
+ # Protect against Makefile macro expansion.
+ cat > conftest.defs <<\EOF
+ s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+ s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
+ s%\[%\\&%g
+ s%\]%\\&%g
+ s%\$%$$%g
+ EOF
+ DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+ rm -f conftest.defs
+
+
+ # Without the "./", some shells look in PATH for config.status.
+ : ${CONFIG_STATUS=./config.status}
+
+ echo creating $CONFIG_STATUS
+ rm -f $CONFIG_STATUS
+ cat > $CONFIG_STATUS <<EOF
+ #! /bin/sh
+ # Generated automatically by configure.
+ # Run this file to recreate the current configuration.
+ # This directory was configured as follows,
+ # on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+ #
+ # $0 $ac_configure_args
+ #
+ # Compiler output produced by configure, useful for debugging
+ # configure, is in ./config.log if it exists.
+
+ ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+ for ac_option
+ do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.12.1"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+ done
+
+ ac_given_srcdir=$srcdir
+
+ trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+ EOF
+ cat >> $CONFIG_STATUS <<EOF
+
+ # Protect against being on the right side of a sed subst in config.status.
+ sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+ $ac_vpsub
+ $extrasub
+ s%@SHELL@%$SHELL%g
+ s%@CFLAGS@%$CFLAGS%g
+ s%@CPPFLAGS@%$CPPFLAGS%g
+ s%@CXXFLAGS@%$CXXFLAGS%g
+ s%@DEFS@%$DEFS%g
+ s%@LDFLAGS@%$LDFLAGS%g
+ s%@LIBS@%$LIBS%g
+ s%@exec_prefix@%$exec_prefix%g
+ s%@prefix@%$prefix%g
+ s%@program_transform_name@%$program_transform_name%g
+ s%@bindir@%$bindir%g
+ s%@sbindir@%$sbindir%g
+ s%@libexecdir@%$libexecdir%g
+ s%@datadir@%$datadir%g
+ s%@sysconfdir@%$sysconfdir%g
+ s%@sharedstatedir@%$sharedstatedir%g
+ s%@localstatedir@%$localstatedir%g
+ s%@libdir@%$libdir%g
+ s%@includedir@%$includedir%g
+ s%@oldincludedir@%$oldincludedir%g
+ s%@infodir@%$infodir%g
+ s%@mandir@%$mandir%g
+ s%@CC@%$CC%g
+ s%@host@%$host%g
+ s%@host_alias@%$host_alias%g
+ s%@host_cpu@%$host_cpu%g
+ s%@host_vendor@%$host_vendor%g
+ s%@host_os@%$host_os%g
+ s%@target@%$target%g
+ s%@target_alias@%$target_alias%g
+ s%@target_cpu@%$target_cpu%g
+ s%@target_vendor@%$target_vendor%g
+ s%@target_os@%$target_os%g
+ s%@build@%$build%g
+ s%@build_alias@%$build_alias%g
+ s%@build_cpu@%$build_cpu%g
+ s%@build_vendor@%$build_vendor%g
+ s%@build_os@%$build_os%g
+
+ CEOF
+ EOF
+
+ cat >> $CONFIG_STATUS <<\EOF
+
+ # Split the substitutions into bite-sized pieces for seds with
+ # small command number limits, like on Digital OSF/1 and HP-UX.
+ ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ ac_file=1 # Number of current file.
+ ac_beg=1 # First line for current file.
+ ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ ac_more_lines=:
+ ac_sed_cmds=""
+ while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+ done
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+ fi
+ EOF
+
+ cat >> $CONFIG_STATUS <<EOF
+
+ CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+ EOF
+ cat >> $CONFIG_STATUS <<\EOF
+ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+ # $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+ s%@configure_input@%$configure_input%g
+ s%@srcdir@%$srcdir%g
+ s%@top_srcdir@%$top_srcdir%g
+ " $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+ fi; done
+ rm -f conftest.s*
+
+ EOF
+ cat >> $CONFIG_STATUS <<EOF
+
+ EOF
+ cat >> $CONFIG_STATUS <<\EOF
+
+ exit 0
+ EOF
+ chmod +x $CONFIG_STATUS
+ rm -fr confdefs* $ac_clean_files
+ test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/configure.in gdb/testsuite/gdb.hp/gdb.aCC/configure.in
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/configure.in Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.aCC/configure.in Thu Jul 22 17:50:07 1999
***************
*** 0 ****
--- 1,15 ----
+ dnl Process this file file with autoconf to produce a configure script.
+ dnl This file is a shell script fragment that supplies the information
+ dnl necessary to tailor a template configure script into the configure
+ dnl script appropriate for this directory. For more information, check
+ dnl any existing configure script.
+
+ AC_PREREQ(2.5)
+ AC_INIT(exception.exp)
+
+ CC=${CC-cc}
+ AC_SUBST(CC)
+ AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../../../..)
+ AC_CANONICAL_SYSTEM
+
+ AC_OUTPUT(Makefile)
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/exception.cc gdb/testsuite/gdb.hp/gdb.aCC/exception.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/exception.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.aCC/exception.cc Thu Jul 22 17:50:09 1999
***************
*** 0 ****
--- 1,48 ----
+ // Test file for exception handling support.
+
+ #include <iostream.h>
+
+ int foo (int i)
+ {
+ if (i < 32)
+ throw (int) 13;
+ else
+ return i * 2;
+ }
+
+ extern "C" int bar (int k, unsigned long eharg, int flag);
+
+ int bar (int k, unsigned long eharg, int flag)
+ {
+ cout << "k is " << k << " eharg is " << eharg << " flag is " << flag << endl;
+ return 1;
+ }
+
+ int main()
+ {
+ int j;
+
+ try {
+ j = foo (20);
+ }
+ catch (int x) {
+ cout << "Got an except " << x << endl;
+ }
+
+ try {
+ try {
+ j = foo (20);
+ }
+ catch (int x) {
+ cout << "Got an except " << x << endl;
+ throw;
+ }
+ }
+ catch (int y) {
+ cout << "Got an except (rethrown) " << y << endl;
+ }
+
+ // Not caught
+ foo (20);
+
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/exception.exp gdb/testsuite/gdb.hp/gdb.aCC/exception.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/exception.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.aCC/exception.exp Thu Jul 22 17:50:08 1999
***************
*** 0 ****
--- 1,439 ----
+ # Copyright (C) 1997, 1998 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
+ # (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.
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ #
+ # tests for exception-handling support
+ # Written by Satish Pai <pai@apollo.hp.com> 1997-07-23
+
+ # This file is part of the gdb testsuite
+
+ # Note: These tests are geared to the HP aCC compiler,
+ # which has an idiosyncratic way of emitting debug info
+ # for exceptions -- it uses a callback mechanism, which
+ # is different from the way g++ records exception info
+ # for debugging
+
+ # The tests are in two parts; the first part deals with
+ # statically linked (archive-bound) executables, and the
+ # second part repeats those tests with dynamically linked
+ # (shared bound) executables. (In the latter case we use
+ # a different mechanism to get the address of the notification
+ # hook in the C++ support library.) The tests themselves are
+ # the same in both parts.
+ #
+ # IMPORTANT:
+ # ---------
+ # IF YOU CHANGE A TEST IN ONE PART MAKE SURE YOU CHANGE IT
+ # --------------------------------------------------------
+ # IN THE OTHER PART TOO!
+ # ----------------------
+
+
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ if { [skip_hp_tests] } then { continue }
+
+ #
+ # test running programs
+ #
+
+ # Part I : Archive-bound executables
+ # ----------------------------------
+
+ set testfile "exception"
+ set srcfile ${testfile}.cc
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} "c++"] {
+ return -1;
+ }
+
+
+ if { $gcc_compiled } then { continue }
+
+ set cmdline "$CXX_FOR_TARGET ${srcdir}/${subdir}/${srcfile} +A -Wl,-a,archive -g -o ${binfile}"
+
+ remote_exec build $cmdline
+
+ # Start with a fresh gdb
+
+ set prms_id 0
+ set bug_id 0
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ if ![runto_main] then {
+ perror "couldn't run to breakpoint"
+ continue
+ }
+
+ # Set a catch catchpoint
+
+ send_gdb "catch catch\n"
+ gdb_expect {
+ -re "Catchpoint \[0-9\]* \\(catch\\)\r\n$gdb_prompt $" {
+ pass "catch catch (static executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "catch catch (static executable)" }
+ timeout { fail "(timeout) catch catch (static executable)" }
+ }
+
+ # Set a throw catchpoint
+
+ send_gdb "catch throw\n"
+ gdb_expect {
+ -re "Catchpoint \[0-9\]* \\(throw\\)\r\n$gdb_prompt $" {
+ pass "catch throw (static executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "catch throw (static executable)" }
+ timeout { fail "(timeout) catch throw (static executable)" }
+ }
+
+ # The catchpoints should be listed in the list of breakpoints.
+
+ send_gdb "info break\n"
+ gdb_expect {
+ -re ".*\[0-9\]*\[ \]*catch catch\[ \]*keep y\[ \]*exception catch\[ \]*\r\n\[0-9\]*\[ \]*catch throw\[ \]*keep y\[ \]*exception throw\[ \]*\r\n$gdb_prompt $" {
+ pass "info break with catchpoints (static executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "info break (static executable)" }
+ timeout { fail "(timeout) info break (static executable)" }
+ }
+
+ # Info catch currently does not work with HP aCC. No easy way to
+ # list the active handlers on the stack.
+
+ send_gdb "info catch\n"
+ gdb_expect {
+ -re "Info catch not supported with this target/compiler combination.\r\n$gdb_prompt $" {
+ pass "info catch (static executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "info catch (static executable)" }
+ timeout { fail "(timeout) info catch (static executable)" }
+ }
+
+ # Get the first exception thrown
+
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing.*Catchpoint \[0-9\]* \\(exception thrown\\), throw location.*exception\\.cc:8, catch location .*exception\\.cc:28\r\n.*$gdb_prompt $" {
+ pass "caught a throw (static executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "didn't catch a throw (static executable)" }
+ timeout { fail "(timeout) after continue -- didn't catch a throw? (static executable)" }
+ }
+
+ send_gdb "backtrace\n"
+ gdb_expect {
+ -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=__EH_NOTIFY_THROW.*\r\n#2\[ \]*$hex in __eh_notify_throw.*\r\n#3\[ \]*$hex in foo \\(i=20\\) at .*exception\\.cc:8\r\n#4\[ \]*$hex in main.* at .*exception\\.cc:26\r\n$gdb_prompt $" {
+ pass "backtrace after throw (static executable)"
+ }
+ -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=\[0-9\].*\r\n#2\[ \]*$hex in __eh_notify_throw.*\r\n#3\[ \]*$hex in foo \\(i=20\\) at .*exception\\.cc:8\r\n#4\[ \]*$hex in main.* at .*exception\\.cc:26\r\n$gdb_prompt $" {
+ pass "backtrace after throw (static executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "backtrace after throw (static executable)" }
+ timeout { fail "(timeout) backtrace after throw (static executable)" }
+ }
+
+ # Now intercept it when it is caught.
+
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing.*Catchpoint \[0-9\]* \\(exception caught\\), throw location.*exception\\.cc:8, catch location .*exception\\.cc:28\r\n.*$gdb_prompt $" {
+ pass "caught a catch (static executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "didn't catch a catch (static executable)" }
+ timeout { fail "(timeout) after continue -- didn't catch a catch? (static executable)" }
+ }
+
+ send_gdb "backtrace\n"
+ gdb_expect {
+ -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=__EH_NOTIFY_CATCH.*\r\n.*\r\n#3\[ \]*$hex in __throw__.*\r\n#4\[ \]*$hex in foo \\(i=20\\) at .*exception.cc:8\r\n#5\[ \]*$hex in main.* at .*exception.cc:26\r\n$gdb_prompt $" {
+ pass "backtrace after catch (static executable)"
+ }
+ -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=\[0-9\].*\r\n.*\r\n#3\[ \]*$hex in __throw__.*\r\n#4\[ \]*$hex in foo \\(i=20\\) at .*exception.cc:8\r\n#5\[ \]*$hex in main.* at .*exception.cc:26\r\n$gdb_prompt $" {
+ pass "backtrace after catch (static executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "backtrace after catch (static executable)" }
+ timeout { fail "(timeout) backtrace after catch (static executable)" }
+ }
+
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing\\.\r\nGot.*\r\nCatchpoint \[0-9\]* \\(exception thrown\\), throw location.*exception\\.cc:8, catch location .*exception\\.cc:36\r\n.*$gdb_prompt $" {
+ pass "caught a throw (2) (static executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "didn't catch a throw (2) (static executable)" }
+ timeout { fail "(timeout) after continue -- didn't catch a throw (2)? (static executable)" }
+ }
+
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing.*Catchpoint \[0-9\]* \\(exception caught\\), throw location.*exception\\.cc:8, catch location .*exception\\.cc:36\r\n.*$gdb_prompt $" {
+ pass "caught a catch (2) (static executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "didn't catch a catch (2) (static executable)" }
+ timeout { fail "(timeout) after continue -- didn't catch a catch (2)? (static executable)" }
+ }
+
+ # Now the exception will be rethrown.
+
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing\\.\r\nGot.*\r\nCatchpoint \[0-9\]* \\(exception thrown\\), throw location.*exception\\.cc:38, catch location .*exception\\.cc:41\r\n.*$gdb_prompt $" {
+ pass "caught a rethrow (static executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "didn't catch a rethrow (static executable)" }
+ timeout { fail "(timeout) after continue -- didn't catch a rethrow? (static executable)" }
+ }
+
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing.*Catchpoint \[0-9\]* \\(exception caught\\), throw location.*exception\\.cc:3\[68\], catch location .*exception\\.cc:41\r\n.*$gdb_prompt $" {
+ # FIXME: guo: why XFAIL? need comment
+ xfail "caught a catch (3) (static executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "didn't catch a catch (3) (static executable)" }
+ timeout { fail "(timeout) after continue -- didn't catch a catch (3)? (static executable)" }
+ }
+
+ send_gdb "backtrace\n"
+ gdb_expect {
+ -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=__EH_NOTIFY_CATCH.*\r\n.*\r\n#3\[ \]*$hex in __rethrow.*\r\n#4\[ \]*$hex in main.* at .*exception\\.cc:3\[68\]\r\n#5\[ \]*$hex in foo \\(i=20\\) at .*exception.cc:8\r\n#6\[ \]*$hex in main.* at .*exception.cc:34\r\n$gdb_prompt $" {
+ # FIXME: guo: why XFAIL? need comment
+ xfail "backtrace after catch (3) (static executable)"
+ }
+ -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=\[0-9\].*\r\n.*\r\n#3\[ \]*$hex in __rethrow.*\r\n#4\[ \]*$hex in main.* at .*exception\\.cc:3\[68\]\r\n#5\[ \]*$hex in foo \\(i=20\\) at .*exception.cc:8\r\n#6\[ \]*$hex in main.* at .*exception.cc:34\r\n$gdb_prompt $" {
+ # FIXME: guo: why XFAIL? need comment
+ xfail "backtrace after catch (3) (static executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "backtrace after catch (3) (static executable)" }
+ timeout { fail "(timeout) backtrace after catch (3) (static executable)" }
+ }
+
+ # Now the exception will be thrown, but not catch-able anywhere.
+
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing\\.\r\nGot.*\r\nCatchpoint \[0-9\]* \\(exception thrown\\), throw location.*exception\\.cc:8, catch location unknown\r\n.*$gdb_prompt $" {
+ pass "caught an uncatchable throw (static executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "didn't catch an uncatchable throw (static executable)" }
+ timeout { fail "(timeout) after continue -- didn't catch an uncatchable throw? (static executable)" }
+ }
+
+ # Part II : Shared-bound executables
+ # ----------------------------------
+
+ # Start with a fresh gdb
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "exception"
+ set srcfile ${testfile}.cc
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will a
+ utomatically fail."
+ }
+
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+
+ if ![runto_main] then {
+ perror "couldn't run to breakpoint"
+ continue
+ }
+
+ # Set a catch catchpoint
+
+ send_gdb "catch catch\n"
+ gdb_expect {
+ -re "Catchpoint \[0-9\]* \\(catch\\)\r\n$gdb_prompt $" {
+ pass "catch catch (dynamic executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "catch catch (dynamic executable)" }
+ timeout { fail "(timeout) catch catch (dynamic executable)" }
+ }
+
+ # Set a throw catchpoint
+
+ send_gdb "catch throw\n"
+ gdb_expect {
+ -re "Catchpoint \[0-9\]* \\(throw\\)\r\n$gdb_prompt $" {
+ pass "catch throw (dynamic executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "catch throw (dynamic executable)" }
+ timeout { fail "(timeout) catch throw (dynamic executable)" }
+ }
+
+ # The catchpoints should be listed in the list of breakpoints.
+
+ send_gdb "info break\n"
+ gdb_expect {
+ -re ".*\[0-9\]*\[ \]*catch catch\[ \]*keep y\[ \]*exception catch\[ \]*\r\n\[0-9\]*\[ \]*catch throw\[ \]*keep y\[ \]*exception throw\[ \]*\r\n$gdb_prompt $" {
+ pass "info break with catchpoints (dynamic executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "info break (dynamic executable)" }
+ timeout { fail "(timeout) info break (dynamic executable)" }
+ }
+
+ # Info catch currently does not work with HP aCC. No easy way to
+ # list the active handlers on the stack.
+
+ send_gdb "info catch\n"
+ gdb_expect {
+ -re "Info catch not supported with this target/compiler combination.\r\n$gdb_prompt $" {
+ pass "info catch (dynamic executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "info catch (dynamic executable)" }
+ timeout { fail "(timeout) info catch (dynamic executable)" }
+ }
+
+ # Get the first exception thrown
+
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing.*Catchpoint \[0-9\]* \\(exception thrown\\), throw location.*exception\\.cc:8, catch location .*exception\\.cc:28\r\n.*$gdb_prompt $" {
+ pass "caught a throw (dynamic executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "didn't catch a throw (dynamic executable)" }
+ timeout { fail "(timeout) after continue -- didn't catch a throw? (dynamic executable)" }
+ }
+
+ send_gdb "backtrace\n"
+ gdb_expect {
+ -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=__EH_NOTIFY_THROW.*\r\n#2\[ \]*$hex in __eh_notify_throw.*\r\n#3\[ \]*$hex in foo \\(i=20\\) at .*exception\\.cc:8\r\n#4\[ \]*$hex in main.* at .*exception\\.cc:26\r\n$gdb_prompt $" {
+ pass "backtrace after throw (dynamic executable)"
+ }
+ -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=\[0-9\].*\r\n#2\[ \]*$hex in __eh_notify_throw.*\r\n#3\[ \]*$hex in foo \\(i=20\\) at .*exception\\.cc:8\r\n#4\[ \]*$hex in main.* at .*exception\\.cc:26\r\n$gdb_prompt $" {
+ pass "backtrace after throw (dynamic executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "backtrace after throw (dynamic executable)" }
+ timeout { fail "(timeout) backtrace after throw (dynamic executable)" }
+ }
+
+ # Now intercept it when it is caught.
+
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing.*Catchpoint \[0-9\]* \\(exception caught\\), throw location.*exception\\.cc:8, catch location .*exception\\.cc:28\r\n.*$gdb_prompt $" {
+ pass "caught a catch (dynamic executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "didn't catch a catch (dynamic executable)" }
+ timeout { fail "(timeout) after continue -- didn't catch a catch? (dynamic executable)" }
+ }
+
+ send_gdb "backtrace\n"
+ gdb_expect {
+ -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=__EH_NOTIFY_CATCH.*\r\n.*\r\n#3\[ \]*$hex in __throw__.*\r\n#4\[ \]*$hex in foo \\(i=20\\) at .*exception.cc:8\r\n#5\[ \]*$hex in main.* at .*exception.cc:26\r\n$gdb_prompt $" {
+ pass "backtrace after catch (dynamic executable)"
+ }
+ -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=\[0-9\].*\r\n.*\r\n#3\[ \]*$hex in __throw__.*\r\n#4\[ \]*$hex in foo \\(i=20\\) at .*exception.cc:8\r\n#5\[ \]*$hex in main.* at .*exception.cc:26\r\n$gdb_prompt $" {
+ pass "backtrace after catch (dynamic executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "backtrace after catch (dynamic executable)" }
+ timeout { fail "(timeout) backtrace after catch (dynamic executable)" }
+ }
+
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing\\.\r\nGot.*\r\nCatchpoint \[0-9\]* \\(exception thrown\\), throw location.*exception\\.cc:8, catch location .*exception\\.cc:36\r\n.*$gdb_prompt $" {
+ pass "caught a throw (2) (dynamic executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "didn't catch a throw (2) (dynamic executable)" }
+ timeout { fail "(timeout) after continue -- didn't catch a throw (2)? (dynamic executable)" }
+ }
+
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing.*Catchpoint \[0-9\]* \\(exception caught\\), throw location.*exception\\.cc:8, catch location .*exception\\.cc:36\r\n.*$gdb_prompt $" {
+ pass "caught a catch (2) (dynamic executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "didn't catch a catch (2) (dynamic executable)" }
+ timeout { fail "(timeout) after continue -- didn't catch a catch (2)? (dynamic executable)" }
+ }
+
+ # Now the exception will be rethrown.
+
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing\\.\r\nGot.*\r\nCatchpoint \[0-9\]* \\(exception thrown\\), throw location.*exception\\.cc:38, catch location .*exception\\.cc:41\r\n.*$gdb_prompt $" {
+ pass "caught a rethrow (dynamic executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "didn't catch a rethrow (dynamic executable)" }
+ timeout { fail "(timeout) after continue -- didn't catch a rethrow? (dynamic executable)" }
+ }
+
+ #DTS CLLbs14858
+ #The throw location should be at line 38 instead of 36.
+ setup_xfail hppa*-*-* CLLbs14858
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing.*Catchpoint \[0-9\]* \\(exception caught\\), throw location.*exception\\.cc:3\[68\], catch location .*exception\\.cc:41\r\n.*$gdb_prompt $" {
+ # FIXME: guo: according to comment above the RE is wrong!
+ pass "caught a catch (3) (dynamic executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "didn't catch a catch (3) (dynamic executable)" }
+ timeout { fail "(timeout) after continue -- didn't catch a catch (3)? (dynamic executable)" }
+ }
+
+ #DTS CLLbs14858
+ #The line number for main() should be at exception.cc:38 instead of exception.cc:36
+ setup_xfail hppa*-*-* CLLbs14858
+ send_gdb "backtrace\n"
+ gdb_expect {
+ -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=__EH_NOTIFY_CATCH.*\r\n.*\r\n#3\[ \]*$hex in __rethrow.*\r\n#4\[ \]*$hex in main.* at .*exception\\.cc:3\[68\]\r\n#5\[ \]*$hex in foo \\(i=20\\) at .*exception.cc:8\r\n#6\[ \]*$hex in main.* at .*exception.cc:34\r\n$gdb_prompt $" {
+ # FIXME: guo: according to comment above the RE is wrong!
+ pass "backtrace after catch (3) (dynamic executable)"
+ }
+ -re "#0\[ \]*__d_eh_break.*\r\n#1\[ \]*$hex in __d_eh_notify_callback \\(eh_type=\[0-9\].*\r\n.*\r\n#3\[ \]*$hex in __rethrow.*\r\n#4\[ \]*$hex in main.* at .*exception\\.cc:3\[68\]\r\n#5\[ \]*$hex in foo \\(i=20\\) at .*exception.cc:8\r\n#6\[ \]*$hex in main.* at .*exception.cc:34\r\n$gdb_prompt $" {
+ # FIXME: guo: according to comment above the RE is wrong!
+ pass "backtrace after catch (3) (dynamic executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "backtrace after catch (3) (dynamic executable)" }
+ timeout { fail "(timeout) backtrace after catch (3) (dynamic executable)" }
+ }
+
+ # Now the exception will be thrown, but not catch-able anywhere.
+
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing\\.\r\nGot.*\r\nCatchpoint \[0-9\]* \\(exception thrown\\), throw location.*exception\\.cc:8, catch location unknown\r\n.*$gdb_prompt $" {
+ pass "caught an uncatchable throw (dynamic executable)"
+ }
+ -re ".*$gdb_prompt $" { fail "didn't catch an uncatchable throw (dynamic executable)" }
+ timeout { fail "(timeout) after continue -- didn't catch an uncatchable throw? (dynamic executable)" }
+ }
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/namespace.cc gdb/testsuite/gdb.hp/gdb.aCC/namespace.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/namespace.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.aCC/namespace.cc Thu Jul 22 17:50:09 1999
***************
*** 0 ****
--- 1,103 ----
+ namespace AAA {
+ char c;
+ int i;
+ int A_xyzq (int);
+ char xyzq (char);
+ class inA {
+ public:
+ int xx;
+ int fum (int);
+ };
+ };
+
+ int AAA::inA::fum (int i)
+ {
+ return 10 + i;
+ }
+
+ namespace BBB {
+ char c;
+ int i;
+ int B_xyzq (int);
+ char xyzq (char);
+
+ namespace CCC {
+ char xyzq (char);
+ };
+
+ class Class {
+ public:
+ char xyzq (char);
+ int dummy;
+ };
+ };
+
+ int AAA::A_xyzq (int x)
+ {
+ return 2 * x;
+ }
+
+ char AAA::xyzq (char c)
+ {
+ return 'a';
+ }
+
+
+ int BBB::B_xyzq (int x)
+ {
+ return 3 * x;
+ }
+
+ char BBB::xyzq (char c)
+ {
+ return 'b';
+ }
+
+ char BBB::CCC::xyzq (char c)
+ {
+ return 'z';
+ }
+
+ char BBB::Class::xyzq (char c)
+ {
+ return 'o';
+ }
+
+ void marker1(void)
+ {
+ return;
+ }
+
+
+ int main ()
+ {
+ using AAA::inA;
+ char c1;
+
+ using namespace BBB;
+
+ c1 = xyzq ('x');
+ c1 = AAA::xyzq ('x');
+ c1 = BBB::CCC::xyzq ('m');
+
+ inA ina;
+
+ ina.xx = 33;
+
+ int y;
+
+ y = AAA::A_xyzq (33);
+ y += B_xyzq (44);
+
+ BBB::Class cl;
+
+ c1 = cl.xyzq('e');
+
+ marker1();
+
+ }
+
+
+
+
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/namespace.exp gdb/testsuite/gdb.hp/gdb.aCC/namespace.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/namespace.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.aCC/namespace.exp Thu Jul 22 17:50:08 1999
***************
*** 0 ****
--- 1,193 ----
+ # Copyright (C) 1997, 1998 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
+ # (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.
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ # tests for namespaces
+ # Written by Satish Pai <pai@apollo.hp.com> 1997-07-23
+
+ # This file is part of the gdb testsuite
+
+ # Note: These tests are geared to the HP aCC compiler,
+ # which has an idiosyncratic way of emitting debug info
+ # for namespaces.
+
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ set prms_id 0
+ set bug_id 0
+
+ if { [skip_hp_tests] } then { continue }
+
+ set testfile "namespace"
+ set srcfile ${testfile}.cc
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile}] {
+ return -1;
+ }
+
+ if { $gcc_compiled } then { continue }
+ if {[skip_hp_tests]} then { continue }
+
+
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will a
+ utomatically fail."
+ }
+
+
+
+ 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
+ }
+
+ send_gdb "break marker1\n" ; gdb_expect -re ".*$gdb_prompt $"
+ send_gdb "cont\n"
+ gdb_expect {
+ -re "Break.* marker1 \\(\\) at .*:$decimal.*$gdb_prompt $" {
+ send_gdb "up\n"
+ gdb_expect {
+ -re ".*$gdb_prompt $" { pass "up from marker1" }
+ timeout { fail "up from marker1" }
+ }
+ }
+ -re "$gdb_prompt $" { fail "continue to marker1" }
+ timeout { fail "(timeout) continue to marker1" }
+ }
+
+ # Access a data item inside a namespace using colons and
+ # single quotes :-(
+
+ send_gdb "print 'AAA::c'\n"
+ gdb_expect {
+ -re "\\$\[0-9\]* = 0 '\\\\000'\r\n$gdb_prompt $" { pass "print 'AAA::c'" }
+ -re ".*$gdb_prompt $" { fail "print 'AAA::c'" }
+ timeout { fail "(timeout) print 'AAA::c'" }
+ }
+
+ # An object declared using "using".
+
+ send_gdb "print ina\n"
+ gdb_expect {
+ -re "\\$\[0-9\]+ = {xx = 33}.*$gdb_prompt $" {
+ pass "print ina"
+ }
+ -re ".*$gdb_prompt $" { fail "print ina" }
+ timeout { fail "(timeout) print ina" }
+ }
+
+ send_gdb "ptype ina\n"
+ gdb_expect {
+ -re "type = class AAA::inA \{\r\n\[ \]*public:\r\n\[ \]*int xx;\r\n\[ \]*\r\n\[ \]*int fum\\(int\\);\r\n\}\r\n$gdb_prompt $" {
+ pass "ptype ina"
+ }
+ -re ".*$gdb_prompt $" { fail "ptype ina" }
+ timeout { fail "(timeout) ptype ina" }
+ }
+
+ # Check all functions are known to GDB
+
+ setup_xfail hppa*-*-*11* CLLbs14869
+ send_gdb "info func xyzq\n"
+ gdb_expect {
+ -re "All functions.*File.*namespace.cc:\r\nint AAA::A_xyzq\\(int\\);\r\nint BBB::B_xyzq\\(int\\);\r\nchar AAA::xyzq\\(char\\);\r\nchar BBB::xyzq\\(char\\);\r\nchar BBB::CCC::xyzq\\(char\\);\r\nchar BBB::Class::xyzq\\(char\\);\r\n$gdb_prompt $" {
+ pass "info func xyzq"
+ }
+ -re ".*$gdb_prompt $" { fail "info func xyzq" }
+ timeout { fail "(timeout) info func xyzq" }
+ }
+
+ # Call a function in a namespace
+
+ send_gdb "print 'AAA::xyzq'('x')\n"
+ gdb_expect {
+ -re "\\$\[0-9\]* = 97 'a'\r\n$gdb_prompt $" {
+ pass "print 'AAA::xyzq'('x')"
+ }
+ -re ".*$gdb_prompt $" { fail "print 'AAA::xyzq'('x')" }
+ timeout { fail "(timeout) print 'AAA::xyzq'('x')" }
+ }
+
+ # Break on a function in a namespace
+
+ send_gdb "break AAA::xyzq\n"
+ gdb_expect {
+ -re "Breakpoint.*at $hex: file.*namespace.cc, line 42\\.\r\n$gdb_prompt $" {
+ pass "break AAA::xyzq"
+ }
+ -re ".*$gdb_prompt $" { fail "break AAA::xyzq" }
+ timeout { fail "(timeout) break AAA::xyzq" }
+ }
+
+ # Call a function in a nested namespace
+
+ send_gdb "print 'BBB::CCC::xyzq'('x')\n"
+ gdb_expect {
+ -re "\\$\[0-9\]* = 122 'z'\r\n$gdb_prompt $" {
+ pass "print 'BBB::CCC::xyzq'('x')"
+ }
+ -re ".*$gdb_prompt $" { fail "print 'BBB::CCC::xyzq'('x')" }
+ timeout { fail "(timeout) print 'BBB::CCC::xyzq'('x')" }
+ }
+
+ # Break on a function in a nested namespace
+
+ send_gdb "break BBB::CCC::xyzq\n"
+ gdb_expect {
+ -re "Breakpoint.*at $hex: file.*namespace.cc, line 58\\.\r\n$gdb_prompt $" {
+ pass "break BBB::CCC::xyzq"
+ }
+ -re ".*$gdb_prompt $" { fail "break BBB::CCC::xyzq" }
+ timeout { fail "(timeout) break BBB::CCC::xyzq" }
+ }
+
+ # Print address of a function in a class in a namespace
+
+ send_gdb "print 'BBB::Class'::xyzq\n"
+ gdb_expect {
+ -re "\\$\[0-9\]* = \{char \\(BBB::Class \\*, char\\)\} $hex <BBB::Class::xyzq\\(char\\)>\r\n$gdb_prompt $" {
+ pass "print 'BBB::Class'::xyzq"
+ }
+ -re ".*$gdb_prompt $" { fail "print 'BBB::Class'::xyzq" }
+ timeout { fail "(timeout) print 'BBB::Class'::xyzq" }
+ }
+
+ # Break on a function in a class in a namespace
+
+ send_gdb "break BBB::Class::xyzq\n"
+ gdb_expect {
+ -re "Breakpoint.*at $hex: file.*namespace.cc, line 63\\.\r\n$gdb_prompt $" {
+ pass "break BBB::Class::xyzq"
+ }
+ -re ".*$gdb_prompt $" { fail "break BBB::Class::xyzq" }
+ timeout { fail "(timeout) break BBB::Class::xyzq" }
+ }
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/optimize.c gdb/testsuite/gdb.hp/gdb.aCC/optimize.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/optimize.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.aCC/optimize.c Thu Jul 22 17:50:09 1999
***************
*** 0 ****
--- 1,76 ----
+ /* Source for debugging optimimzed code test.
+
+ cc -g -O -o optimize optimize.c
+ */
+ int callee();
+ int test_opt;
+
+ int main()
+ {
+ int a,b,c,d,e,f,g,h;
+
+ a = 10;;
+
+ /* Value propagate
+ */
+ b = 2 * a + 1;
+ c = 3 * b + 2;
+
+ /* Re-use expressions
+ */
+ d = (2 * a + 1) * (3 * b + 2);
+ e = (2 * a + 1) * (3 * b + 2);
+
+ /* Create dead stores--do lines still exist?
+ */
+ d = (2 * a + 1) * (3 * b + 2);
+ e = (2 * a + 1) * (3 * b + 2);
+ d = (2 * a + 1) * (3 * b + 2);
+ e = (2 * a + 1) * (3 * b + 2);
+
+ /* Alpha and psi motion
+ */
+ if( test_opt ) {
+ f = e - d;
+ f = f--;
+ }
+ else {
+ f = e - d;
+ f = f + d * e;
+ }
+
+ /* Chi and Rho motion
+ */
+ h = 0;
+ do {
+ h++;
+ a = b * c + d * e; /* Chi */
+ f = f + d * e;
+ g = f + d * e; /* Rho */
+ callee( g+1 );
+ test_opt = (test_opt != 1); /* Cycles */
+ } while( g && h < 10);
+
+ /* Opps for tail recursion, unrolling,
+ * folding, evaporating
+ */
+ for( a = 0; a < 100; a++ ) {
+ callee( callee ( callee( a )));
+ callee( callee ( callee( a )));
+ callee( callee ( callee( a )));
+ }
+
+ return callee( test_opt );
+ }
+
+ /* defined late to keep line numbers the same
+ */
+ int callee( x )
+ int x; /* not used! */
+ {
+ test_opt++; /* side effect */
+
+ return test_opt;
+ }
+
+ /* end */
\ No newline at end of file
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/optimize.exp gdb/testsuite/gdb.hp/gdb.aCC/optimize.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/optimize.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.aCC/optimize.exp Thu Jul 22 17:50:09 1999
***************
*** 0 ****
--- 1,149 ----
+ # Copyright (C) 1998 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ # optimize.exp -- Expect script for testing apps compiled with -O
+
+ # There is no DOC support for gdb yet, return 0 for now.
+ return 0
+
+ global timeout
+
+ # use this to debug:
+ #
+ #log_user 1
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ if { [skip_hp_tests] } then { continue }
+
+ set testfile optimize
+ set srcfile ${testfile}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile}] {
+ return -1;
+ }
+
+
+ if { $gcc_compiled } then { continue }
+
+
+ # Vanilla -O, which is the same as +O2
+ #
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug optimize=+O2}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+
+ send_gdb "file $binfile\n"
+ gdb_expect {
+ -re ".*no debugging symbols found.*$gdb_prompt $" {
+ fail "Didn't find debug symbols; CHFts23488"
+ }
+ -re ".*No header section (PXDB data).*$gdb_prompt $" {
+ fail "pointless warning"
+ }
+ -re ".*done.*$gdb_prompt $" {
+ pass "load debug symbols"
+ }
+ timeout { fail "timeout on file" }
+ }
+
+ # Two lines at the same place after opt.
+ #
+ gdb_test "b 28" ".*"
+ gdb_test "b 26" ".*also set at.*" "same line"
+
+ gdb_test "b 47" ".*"
+ gdb_test "b 48" ".*also set at.*" "same line"
+
+ gdb_test "tb main" ".*"
+
+ set old_timeout $timeout
+ set timeout [expr "$timeout + 200"]
+ send_gdb "r\n"
+ gdb_expect {
+ -re ".*No header section (PXDB data).*$gdb_prompt $" {
+ fail "pointless warning"
+ }
+ -re ".*main.*2\[12].*$gdb_prompt $" {
+ # All the lines before line 21 or 22 are
+ # evaporated by the compiler.
+ #
+ pass "hit main"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "didn't hit main"
+ }
+ timeout { fail "timeout on run" }
+ }
+ set timeout $old_timeout
+
+ gdb_test "c" ".*Breakpoint 1.*33.*"
+ gdb_test "c" ".*51.*"
+ gdb_test "cle" ".*Deleted breakpoints.*" "set 2, so del 2"
+
+ gdb_test "b callee" ".*"
+ gdb_test "c" ".*callee.*" "hit called rtn"
+
+ gdb_exit
+
+ # +O4, don't use -g
+ #
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {optimize=+O4}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+
+ send_gdb "file $binfile\n"
+ gdb_expect {
+ -re ".*no debugging symbols found.*$gdb_prompt $" {
+ pass "Didn't find debug symbols, as expected"
+ }
+ -re ".*No header section (PXDB data).*$gdb_prompt $" {
+ fail "pointless warning"
+ }
+ -re ".*done.*$gdb_prompt $" {
+ fail "Somehow found debug symbols--make this a pass?"
+ }
+ timeout { fail "timeout on file" }
+ }
+
+ gdb_test "b main" ".*"
+ gdb_test "b callee" ".*"
+ gdb_test "r" ".*Breakpoint 1.*main.*"
+ gdb_test "si 3" ".*main.*" "steps"
+ gdb_test "x/4i \$pc" ".*main.*main+4.*main+8.*"
+ gdb_test "c" ".*callee.*" "hit bp"
+ gdb_test "disas" ".*callee.*callee+4.*callee+12.*"
+ gdb_test "si" ".*callee.*"
+ gdb_test "fin" ".*Run till exit.*main.*" "finish"
+ gdb_test "x/i \$pc" ".*main+.*" "back in main"
+ gdb_exit
+
+ #remote_exec build "rm -f ${binfile}"
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/run.c gdb/testsuite/gdb.hp/gdb.aCC/run.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/run.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.aCC/run.c Thu Jul 22 17:50:08 1999
***************
*** 0 ****
--- 1,72 ----
+ /*
+ * This simple classical example of recursion is useful for
+ * testing stack backtraces and such.
+ */
+
+ #ifdef vxworks
+
+ # include <stdio.h>
+
+ /* VxWorks does not supply atoi. */
+ static int
+ atoi (char *z)
+ /* char *z;*/
+ {
+ int i = 0;
+
+ while (*z >= '0' && *z <= '9')
+ i = i * 10 + (*z++ - '0');
+ return i;
+ }
+
+ /* I don't know of any way to pass an array to VxWorks. This function
+ can be called directly from gdb. */
+
+ void vxmain (char *arg)
+ /*char *arg;*/
+ {
+ char *argv[2];
+
+ argv[0] = "";
+ argv[1] = arg;
+ main (2, argv, (char **) 0);
+ }
+
+ #else /* ! vxworks */
+ # include <stdio.h>
+ # include <stdlib.h>
+ #endif /* ! vxworks */
+
+ int main (int argc, char *argv[], char **envp)
+ /*int argc;
+ char *argv[], **envp;*/
+ {
+ int factorial (int);
+ #ifdef usestubs
+ set_debug_traps();
+ breakpoint();
+ #endif
+ #ifdef FAKEARGV
+ printf ("%d\n", factorial (1));
+ #else
+ if (argc != 2) {
+ printf ("usage: factorial <number>\n");
+ return 1;
+ } else {
+ printf ("%d\n", factorial (atoi (argv[1])));
+ }
+ #endif
+ return 0;
+ }
+
+ int factorial (int value)
+ /*int value;*/
+ {
+ int local_var;
+
+ if (value > 1) {
+ value *= factorial (value - 1);
+ }
+ local_var = value;
+ return (value);
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/watch-cmd.exp gdb/testsuite/gdb.hp/gdb.aCC/watch-cmd.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.aCC/watch-cmd.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.aCC/watch-cmd.exp Thu Jul 22 17:50:10 1999
***************
*** 0 ****
--- 1,157 ----
+ # Copyright (C) 1998 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
+ # (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.
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ #
+ # test special commands
+ #
+ set prms_id 0
+ set bug_id 0
+
+ if { [skip_hp_tests] } then { continue }
+
+ set testfile "run"
+ set srcfile ${testfile}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DFAKEARGV}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+
+ }
+
+ if [get_compiler_info ${binfile}] {
+ return -1;
+ }
+ if { $gcc_compiled } then { continue }
+
+
+ gdb_exit
+ gdb_start
+ delete_breakpoints
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+
+
+ proc watchpoint_command_test {} {
+ global gdb_prompt
+
+ if [target_info exists noargs] {
+ verbose "Skipping watchpoint_command_test because of noargs."
+ return
+ }
+
+ if { ![runto factorial] } then { gdb_suppress_tests }
+ # Don't depend upon argument passing, since most simulators don't currently
+ # support it. Bash value variable to be what we want.
+ gdb_test "p value=6" "" "set value to 6 in watchpoint_command_test"
+ delete_breakpoints
+
+ # Verify that we can create a watchpoint, and give it a commands
+ # list that continues the inferior. We set the watchpoint on a
+ # local variable, too, so that it self-deletes when the watched
+ # data goes out of scope.
+ #
+ # What should happen is: Each time the watchpoint triggers, it
+ # continues the inferior. Eventually, the watchpoint will self-
+ # delete, when the watched variable is out of scope. But by that
+ # time, the inferior should have exited. GDB shouldn't crash or
+ # anything untoward as a result of this.
+ #
+ send_gdb "watch local_var\n"
+ gdb_expect {
+ -re ".*\[Ww\]atchpoint (\[0-9\]*): local_var.*$gdb_prompt $"\
+ { pass "watch local_var"
+ set wp_id $expect_out(1,string)
+ send_gdb "commands $wp_id\n"
+ gdb_expect {
+ -re "Type commands for when breakpoint $wp_id is hit, one per line.*>"\
+ { pass "begin commands on watch"}
+ -re "$gdb_prompt $"\
+ {fail "begin commands on watch"}
+ timeout {fail "(timeout) begin commands on watch"}
+ }
+ }
+ -re "$gdb_prompt $"\
+ {fail "watch local_var"}
+ timeout {fail "(timeout) watch local_var"}
+ }
+ # set wp_id $expect_out(1,string)
+ # send_gdb "commands $wp_id\n"
+ # gdb_expect {
+ # -re "Type commands for when breakpoint $wp_id is hit, one per line.*>"\
+ # {pass "begin commands on watch"}
+ # -re "$gdb_prompt $"\
+ # {fail "begin commands on watch"}
+ # timeout {fail "(timeout) begin commands on watch"}
+ # }
+ send_gdb "print value\n"
+ gdb_expect {
+ -re ">"\
+ {pass "add print command to watch"}
+ -re "$gdb_prompt $"\
+ {fail "add print command to watch"}
+ timeout {fail "(timeout) add print command to watch"}
+ }
+ send_gdb "continue\n"
+ gdb_expect {
+ -re ">"\
+ {pass "add continue command to watch"}
+ -re "$gdb_prompt $"\
+ {fail "add continue command to watch"}
+ timeout {fail "(timeout) add continue command to watch"}
+ }
+ send_gdb "end\n"
+ gdb_expect {
+ -re "$gdb_prompt $"\
+ {pass "begin commands on watch"}
+ timeout {fail "(timeout) begin commands on watch"}
+ }
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing.*\[Ww\]atchpoint $wp_id deleted because the program has left the block in.*which its expression is valid.*in main.*$gdb_prompt $"\
+ {pass "continue with watch"}
+ -re "$gdb_prompt $"\
+ {fail "continue with watch"}
+ timeout {fail "(timeout) continue with watch"}
+ }
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing.*$gdb_prompt $"\
+ {pass "continue until exit"}
+ -re "$gdb_prompt $"\
+ {fail "continue until exit"}
+ timeout {fail "(timeout) continue until exit"}
+ }
+ }
+
+ watchpoint_command_test
+
+
+
+
+
+
+
+
+
+
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/Makefile.in gdb/testsuite/gdb.hp/gdb.base-hp/Makefile.in
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/Makefile.in Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/Makefile.in Thu Jul 22 17:50:17 1999
***************
*** 0 ****
--- 1,32 ----
+ VPATH = @srcdir@
+ srcdir = @srcdir@
+
+ EXECUTABLES = dollar hwwatchbus.bak pxdb reg reg-pa64 \
+ so-thresh genso-thresh sized-enum
+
+ MISCELLANEOUS = so-thresh.c so-thresh.lopt so-thresh.make.out \
+ lib*-so-thresh.*
+
+ all:
+ @echo "Nothing to be done for all..."
+
+ info:
+ install-info:
+ dvi:
+ install:
+ uninstall: force
+ installcheck:
+ check:
+
+ clean mostlyclean:
+ -rm -f *~ *.o *.ci
+ -rm -f core $(EXECUTABLES)
+ -rm -f $(MISCELLANEOUS)
+
+ distclean maintainer-clean realclean: clean
+ -rm -f Makefile config.status config.log
+ -rm -f *-init.exp
+ -rm -fr *.log summary detail *.plog *.sum *.psum site.*
+
+ Makefile : $(srcdir)/Makefile.in $(srcdir)/configure.in
+ $(SHELL) ./config.status --recheck
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/compiler.c gdb/testsuite/gdb.hp/gdb.base-hp/compiler.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/compiler.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/compiler.c Thu Jul 22 17:48:46 1999
***************
*** 0 ****
--- 1,31 ----
+ /* Often the behavior of any particular test depends upon what compiler was
+ used to compile the test. As each test is compiled, this file is
+ preprocessed by the same compiler used to compile that specific test
+ (different tests might be compiled by different compilers, particularly
+ if compiled at different times), and used to generate a *.ci (compiler
+ info) file for that test.
+
+ I.E., when callfuncs is compiled, a callfuncs.ci file will be generated,
+ which can then be sourced by callfuncs.exp to give callfuncs.exp access
+ to information about the compilation environment.
+
+ TODO: It might be a good idea to add expect code that tests each
+ definition made with 'set" to see if one already exists, and if so
+ warn about conflicts if it is being set to something else. */
+
+ /* This needs to be kept in sync with whatis.c and gdb.exp(get_compiler_info).
+ If this ends up being hairy, we could use a common header file. */
+
+ #if defined (__STDC__) || defined (_AIX)
+ set signed_keyword_not_used 0
+ #else
+ set signed_keyword_not_used 1
+ #endif
+
+ #if defined (__GNUC__)
+ set gcc_compiled __GNUC__
+ #else
+ set gcc_compiled 0
+ #endif
+
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/compiler.cc gdb/testsuite/gdb.hp/gdb.base-hp/compiler.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/compiler.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/compiler.cc Thu Jul 22 17:49:19 1999
***************
*** 0 ****
--- 1,34 ----
+ /* Often the behavior of any particular test depends upon what compiler was
+ used to compile the test. As each test is compiled, this file is
+ preprocessed by the same compiler used to compile that specific test
+ (different tests might be compiled by different compilers, particularly
+ if compiled at different times), and used to generate a *.ci (compiler
+ info) file for that test.
+
+ I.E., when callfuncs is compiled, a callfuncs.ci file will be generated,
+ which can then be sourced by callfuncs.exp to give callfuncs.exp access
+ to information about the compilation environment.
+
+ TODO: It might be a good idea to add expect code that tests each
+ definition made with 'set" to see if one already exists, and if so
+ warn about conflicts if it is being set to something else. */
+
+ #if defined(__GNUC__) && __GNUC__ >= 2 && __GNUC_MINOR__ >= 6
+ set supports_template_debugging 1
+ #else
+ set supports_template_debugging 0
+ #endif
+
+ #if defined(__cplusplus)
+ set supports_template_debugging 1
+ #else
+ set supports_template_debugging 0
+ #endif
+
+ #if defined (__GNUC__)
+ set gcc_compiled __GNUC__
+ #else
+ set gcc_compiled 0
+ #endif
+
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/configure gdb/testsuite/gdb.hp/gdb.base-hp/configure
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/configure Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/configure Thu Jul 22 17:50:19 1999
***************
*** 0 ****
--- 1,899 ----
+ #! /bin/sh
+
+ # Guess values for system-dependent variables and create Makefiles.
+ # Generated automatically using autoconf version 2.12.1
+ # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+ #
+ # This configure script is free software; the Free Software Foundation
+ # gives unlimited permission to copy, distribute and modify it.
+
+ # Defaults:
+ ac_help=
+ ac_default_prefix=/usr/local
+ # Any additions from configure.in:
+
+ # Initialize some variables set by options.
+ # The variables have the same names as the options, with
+ # dashes changed to underlines.
+ build=NONE
+ cache_file=./config.cache
+ exec_prefix=NONE
+ host=NONE
+ no_create=
+ nonopt=NONE
+ no_recursion=
+ prefix=NONE
+ program_prefix=NONE
+ program_suffix=NONE
+ program_transform_name=s,x,x,
+ silent=
+ site=
+ srcdir=
+ target=NONE
+ verbose=
+ x_includes=NONE
+ x_libraries=NONE
+ bindir='${exec_prefix}/bin'
+ sbindir='${exec_prefix}/sbin'
+ libexecdir='${exec_prefix}/libexec'
+ datadir='${prefix}/share'
+ sysconfdir='${prefix}/etc'
+ sharedstatedir='${prefix}/com'
+ localstatedir='${prefix}/var'
+ libdir='${exec_prefix}/lib'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+ infodir='${prefix}/info'
+ mandir='${prefix}/man'
+
+ # Initialize some other variables.
+ subdirs=
+ MFLAGS= MAKEFLAGS=
+ SHELL=${CONFIG_SHELL-/bin/sh}
+ # Maximum number of lines to put in a shell here document.
+ ac_max_here_lines=12
+
+ ac_prev=
+ for ac_option
+ do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+ Usage: configure [options] [host]
+ Options: [defaults in brackets after descriptions]
+ Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --version print the version of autoconf that created configure
+ Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+ EOF
+ cat << EOF
+ Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+ Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+ EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.12.1"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+ done
+
+ if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+ fi
+
+ trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+ # File descriptor usage:
+ # 0 standard input
+ # 1 file creation
+ # 2 errors and warnings
+ # 3 some systems may open it to /dev/tty
+ # 4 used on the Kubota Titan
+ # 6 checking for... messages and results
+ # 5 compiler messages saved in config.log
+ if test "$silent" = yes; then
+ exec 6>/dev/null
+ else
+ exec 6>&1
+ fi
+ exec 5>./config.log
+
+ echo "\
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+ " 1>&5
+
+ # Strip out --no-create and --no-recursion so they do not pile up.
+ # Also quote any args containing shell metacharacters.
+ ac_configure_args=
+ for ac_arg
+ do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+ done
+
+ # NLS nuisances.
+ # Only set these to C if already set. These must not be set unconditionally
+ # because not all systems understand e.g. LANG=C (notably SCO).
+ # Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+ # Non-C LC_CTYPE values break the ctype check.
+ if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+ if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+ if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+ if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+ # confdefs.h avoids OS command line length limits that DEFS can exceed.
+ rm -rf conftest* confdefs.h
+ # AIX cpp loses on an empty file, so make sure it contains at least a newline.
+ echo > confdefs.h
+
+ # A filename unique to this package, relative to the directory that
+ # configure is in, which we can look for to find out if srcdir is correct.
+ ac_unique_file=dollar.exp
+
+ # Find the source files, if location was not specified.
+ if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+ else
+ ac_srcdir_defaulted=no
+ fi
+ if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+ fi
+ srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+ # Prefer explicitly selected file to automatically selected ones.
+ if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+ fi
+ for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+ done
+
+ if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+ else
+ echo "creating cache $cache_file"
+ > $cache_file
+ fi
+
+ ac_ext=c
+ # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ cross_compiling=$ac_cv_prog_cc_cross
+
+ if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+ ' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+ else
+ ac_n= ac_c='\c' ac_t=
+ fi
+
+
+
+ CC=${CC-cc}
+
+ ac_aux_dir=
+ for ac_dir in `cd $srcdir;pwd`/../../../.. $srcdir/`cd $srcdir;pwd`/../../../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+ done
+ if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in `cd $srcdir;pwd`/../../../.. $srcdir/`cd $srcdir;pwd`/../../../.." 1>&2; exit 1; }
+ fi
+ ac_config_guess=$ac_aux_dir/config.guess
+ ac_config_sub=$ac_aux_dir/config.sub
+ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+
+ # Do some error checking and defaulting for the host and target type.
+ # The inputs are:
+ # configure --host=HOST --target=TARGET --build=BUILD NONOPT
+ #
+ # The rules are:
+ # 1. You are not allowed to specify --host, --target, and nonopt at the
+ # same time.
+ # 2. Host defaults to nonopt.
+ # 3. If nonopt is not specified, then host defaults to the current host,
+ # as determined by config.guess.
+ # 4. Target and build default to nonopt.
+ # 5. If nonopt is not specified, then target and build default to host.
+
+ # The aliases save the names the user supplied, while $host etc.
+ # will get canonicalized.
+ case $host---$target---$nonopt in
+ NONE---*---* | *---NONE---* | *---*---NONE) ;;
+ *) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
+ esac
+
+
+ # Make sure we can run config.sub.
+ if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+ fi
+
+ echo $ac_n "checking host system type""... $ac_c" 1>&6
+ echo "configure:573: checking host system type" >&5
+
+ host_alias=$host
+ case "$host_alias" in
+ NONE)
+ case $nonopt in
+ NONE)
+ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+ else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+ fi ;;
+ *) host_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+ host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$host" 1>&6
+
+ echo $ac_n "checking target system type""... $ac_c" 1>&6
+ echo "configure:594: checking target system type" >&5
+
+ target_alias=$target
+ case "$target_alias" in
+ NONE)
+ case $nonopt in
+ NONE) target_alias=$host_alias ;;
+ *) target_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
+ target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$target" 1>&6
+
+ echo $ac_n "checking build system type""... $ac_c" 1>&6
+ echo "configure:612: checking build system type" >&5
+
+ build_alias=$build
+ case "$build_alias" in
+ NONE)
+ case $nonopt in
+ NONE) build_alias=$host_alias ;;
+ *) build_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+ build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$build" 1>&6
+
+ test "$host_alias" != "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+
+ trap '' 1 2 15
+ cat > confcache <<\EOF
+ # This file is a shell script that caches the results of configure
+ # tests run on this system so they can be shared between configure
+ # scripts and configure runs. It is not useful on other systems.
+ # If it contains results you don't want to keep, you may remove or edit it.
+ #
+ # By default, configure uses ./config.cache as the cache file,
+ # creating it if it does not exist already. You can give configure
+ # the --cache-file=FILE option to use a different cache file; that is
+ # what configure does when it calls configure scripts in
+ # subdirectories, so they share the cache.
+ # Giving --cache-file=/dev/null disables caching, for debugging configure.
+ # config.status only pays attention to the cache file if you give it the
+ # --recheck option to rerun configure.
+ #
+ EOF
+ # The following way of writing the cache mishandles newlines in values,
+ # but we know of no workaround that is simple, portable, and efficient.
+ # So, don't put newlines in cache variables' values.
+ # Ultrix sh set writes to stderr and can't be redirected directly,
+ # and sets the high bit in the cache file unless we assign to the vars.
+ (set) 2>&1 |
+ case `(ac_space=' '; set) 2>&1 | grep ac_space` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+ if cmp -s $cache_file confcache; then
+ :
+ else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+ fi
+ rm -f confcache
+
+ trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+ test "x$prefix" = xNONE && prefix=$ac_default_prefix
+ # Let make expand exec_prefix.
+ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+ # Any assignment to VPATH causes Sun make to only execute
+ # the first set of double-colon rules, so remove it if not needed.
+ # If there is a colon in the path, we need to keep it.
+ if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+ fi
+
+ trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+ # Transform confdefs.h into DEFS.
+ # Protect against shell expansion while executing Makefile rules.
+ # Protect against Makefile macro expansion.
+ cat > conftest.defs <<\EOF
+ s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+ s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
+ s%\[%\\&%g
+ s%\]%\\&%g
+ s%\$%$$%g
+ EOF
+ DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+ rm -f conftest.defs
+
+
+ # Without the "./", some shells look in PATH for config.status.
+ : ${CONFIG_STATUS=./config.status}
+
+ echo creating $CONFIG_STATUS
+ rm -f $CONFIG_STATUS
+ cat > $CONFIG_STATUS <<EOF
+ #! /bin/sh
+ # Generated automatically by configure.
+ # Run this file to recreate the current configuration.
+ # This directory was configured as follows,
+ # on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+ #
+ # $0 $ac_configure_args
+ #
+ # Compiler output produced by configure, useful for debugging
+ # configure, is in ./config.log if it exists.
+
+ ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+ for ac_option
+ do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.12.1"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+ done
+
+ ac_given_srcdir=$srcdir
+
+ trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+ EOF
+ cat >> $CONFIG_STATUS <<EOF
+
+ # Protect against being on the right side of a sed subst in config.status.
+ sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+ $ac_vpsub
+ $extrasub
+ s%@SHELL@%$SHELL%g
+ s%@CFLAGS@%$CFLAGS%g
+ s%@CPPFLAGS@%$CPPFLAGS%g
+ s%@CXXFLAGS@%$CXXFLAGS%g
+ s%@DEFS@%$DEFS%g
+ s%@LDFLAGS@%$LDFLAGS%g
+ s%@LIBS@%$LIBS%g
+ s%@exec_prefix@%$exec_prefix%g
+ s%@prefix@%$prefix%g
+ s%@program_transform_name@%$program_transform_name%g
+ s%@bindir@%$bindir%g
+ s%@sbindir@%$sbindir%g
+ s%@libexecdir@%$libexecdir%g
+ s%@datadir@%$datadir%g
+ s%@sysconfdir@%$sysconfdir%g
+ s%@sharedstatedir@%$sharedstatedir%g
+ s%@localstatedir@%$localstatedir%g
+ s%@libdir@%$libdir%g
+ s%@includedir@%$includedir%g
+ s%@oldincludedir@%$oldincludedir%g
+ s%@infodir@%$infodir%g
+ s%@mandir@%$mandir%g
+ s%@CC@%$CC%g
+ s%@host@%$host%g
+ s%@host_alias@%$host_alias%g
+ s%@host_cpu@%$host_cpu%g
+ s%@host_vendor@%$host_vendor%g
+ s%@host_os@%$host_os%g
+ s%@target@%$target%g
+ s%@target_alias@%$target_alias%g
+ s%@target_cpu@%$target_cpu%g
+ s%@target_vendor@%$target_vendor%g
+ s%@target_os@%$target_os%g
+ s%@build@%$build%g
+ s%@build_alias@%$build_alias%g
+ s%@build_cpu@%$build_cpu%g
+ s%@build_vendor@%$build_vendor%g
+ s%@build_os@%$build_os%g
+
+ CEOF
+ EOF
+
+ cat >> $CONFIG_STATUS <<\EOF
+
+ # Split the substitutions into bite-sized pieces for seds with
+ # small command number limits, like on Digital OSF/1 and HP-UX.
+ ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ ac_file=1 # Number of current file.
+ ac_beg=1 # First line for current file.
+ ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ ac_more_lines=:
+ ac_sed_cmds=""
+ while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+ done
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+ fi
+ EOF
+
+ cat >> $CONFIG_STATUS <<EOF
+
+ CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+ EOF
+ cat >> $CONFIG_STATUS <<\EOF
+ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+ # $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+ s%@configure_input@%$configure_input%g
+ s%@srcdir@%$srcdir%g
+ s%@top_srcdir@%$top_srcdir%g
+ " $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+ fi; done
+ rm -f conftest.s*
+
+ EOF
+ cat >> $CONFIG_STATUS <<EOF
+
+ EOF
+ cat >> $CONFIG_STATUS <<\EOF
+
+ exit 0
+ EOF
+ chmod +x $CONFIG_STATUS
+ rm -fr confdefs* $ac_clean_files
+ test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/configure.in gdb/testsuite/gdb.hp/gdb.base-hp/configure.in
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/configure.in Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/configure.in Thu Jul 22 17:50:19 1999
***************
*** 0 ****
--- 1,15 ----
+ dnl Process this file file with autoconf to produce a configure script.
+ dnl This file is a shell script fragment that supplies the information
+ dnl necessary to tailor a template configure script into the configure
+ dnl script appropriate for this directory. For more information, check
+ dnl any existing configure script.
+
+ AC_PREREQ(2.5)
+ AC_INIT(dollar.exp)
+
+ CC=${CC-cc}
+ AC_SUBST(CC)
+ AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../../../..)
+ AC_CANONICAL_SYSTEM
+
+ AC_OUTPUT(Makefile)
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/dollar.c gdb/testsuite/gdb.hp/gdb.base-hp/dollar.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/dollar.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/dollar.c Thu Jul 22 17:50:19 1999
***************
*** 0 ****
--- 1,10 ----
+ #ifdef PROTOTYPES
+ int main (int argc, char **argv)
+ #else
+ main (argc, argv, envp)
+ int argc;
+ char **argv;
+ #endif
+ {
+ return 0;
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/dollar.exp gdb/testsuite/gdb.hp/gdb.base-hp/dollar.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/dollar.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/dollar.exp Thu Jul 22 17:50:19 1999
***************
*** 0 ****
--- 1,155 ----
+ # Copyright (C) 1997, 1998 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
+ # (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.
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ # GDB tests for names beginning with '$'
+
+ # This is aimed at HP-UX systems where a lot of system
+ # routines and names begin with '$' or '$$'. GDB 4.16 was
+ # unable to deal with these names as they clashed with
+ # convenience variables. Wildebeest should accept such
+ # names in preference to convenience variables.
+
+ # This file was written by Satish Pai <pai@apollo.hp.com>
+ # 1997-09-24
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ if { [skip_hp_tests] } { continue }
+
+ set testfile "dollar"
+ set srcfile ${testfile}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ #source ${binfile}.ci
+
+ 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
+ }
+
+ # Test for millicode routines
+ # hppa2.0w does not support dyncall
+ if ![istarget "hppa2.0w*-*-*"] {
+ send_gdb "print \$\$dyncall\n"
+ gdb_expect {
+ -re "\\$\[0-9\]* = \\{<text variable, no debug info>\\} $hex <>.*$gdb_prompt $" { pass "print \$\$dyncall" }
+ -re "\\$\[0-9\]* = \\{<text variable, no debug info>\\} $hex <.*dyncall>.*$gdb_prompt $" { pass "print \$\$dyncall" }
+ -re "\\$\[0-9\]* = void" { fail "print \$\$dyncall -- interpreted as convenience var" }
+ -re "$gdb_prompt $" { fail "print \$\$dyncall" }
+ timeout { fail "(timeout) print \$\$dyncall" }
+ }
+ send_gdb "print \$\$dyncall_external\n"
+ gdb_expect {
+ -re "\\$\[0-9\]* = \\{<text variable, no debug info>\\} $hex <>.*$gdb_prompt $" { pass "print \$\$dyncall_external" }
+ -re "\\$\[0-9\]* = \\{<text variable, no debug info>\\} $hex <.*dyncall_external>.*$gdb_prompt $" { pass "print \$\$dyncall_external" }
+ -re "\\$\[0-9\]* = void" { fail "print \$\$dyncall_external -- interpreted as convenience var" }
+ -re "$gdb_prompt $" { fail "print \$\$dyncall_external" }
+ timeout { fail "(timeout) print \$\$dyncall_external" }
+ }
+
+ # Set a breakpoint on a millicode routine
+ send_gdb "break \$\$dyncall\n"
+ gdb_expect {
+ -re "Breakpoint \[0-9\]* at $hex.*$gdb_prompt $" { pass "break \$\$dyncall" }
+ -re "Function.*not defined.*$gdb_prompt $" {fail "break \$\$dyncall -- no \$\$dyncall?" }
+ -re "Convenience variables used in line specs must have integer values\\..*$gdb_prompt $" {
+ fail "break \$\$dyncall -- treated as convenince variable"
+ }
+ -re "$gdb_prompt $" { fail "print break \$\$dyncall" }
+ timeout { fail "(timeout) print break \$\$dyncall" }
+ }
+
+ # Disassemble $$dyncall
+ send_gdb "disassemble \$\$dyncall\n"
+ gdb_expect {
+ -re "Dump of assembler code for function.*$gdb_prompt $" { pass "disas \$\$dyncall" }
+ -re "$gdb_prompt $" { fail "disas \$\$dyncall" }
+ timeout { fail "(timeout) disas \$\$dyncall" }
+ }
+
+ # Try to set $$dyncall like a convenience var.
+ send_gdb "set \$\$dyncall = 77\n"
+ gdb_expect {
+ -re "Invalid cast.*$gdb_prompt $" { pass "set \$\$dyncall = 77" }
+ -re "$gdb_prompt $" { fail "set \$\$dyncall = 77" }
+ timeout { fail "(timeout) set \$\$dyncall = 77" }
+ }
+ }
+
+ # Try out some other $ name, not millicode
+ if [istarget "hppa2.0w*-*-*"] {
+ #hppa2.0w uses __argv instead of $ARGV.
+ send_gdb "print \__argv\n"
+ gdb_expect {
+ -re "\\$\[0-9\]* = \[0-9\]*.*$gdb_prompt $" { pass "print \__argv" }
+ -re "\\$\[0-9\]* = void.*$gdb_prompt $" {
+ fail "print \__argv (interpreted as convenience var)"
+ }
+ -re "$gdb_prompt $" { fail "print \__argv" }
+ timeout { fail "(timeout) print \__argv" }
+ }
+
+ send_gdb "ptype \__argv\n"
+ gdb_expect {
+ -re "type = <data variable, no debug info>.*$gdb_prompt $" {
+ pass "ptype \__argv"
+ }
+ -re "type = void.*$gdb_prompt $" {
+ fail "ptype \__argv (interpreted as convenience var)"
+ }
+ -re "$gdb_prompt $" { fail "ptype \__argv" }
+ timeout { fail "(timeout) ptype \__argv" }
+ }
+ } else {
+ send_gdb "print \$ARGV\n"
+ gdb_expect {
+ -re "\\$\[0-9\]* = \[0-9\]*.*$gdb_prompt $" { pass "print \$ARGV" }
+ -re "\\$\[0-9\]* = void.*$gdb_prompt $" { fail "print \$ARGV (interpreted as convenience var)" }
+ -re "$gdb_prompt $" { fail "print \$ARGV" }
+ timeout { fail "(timeout) print \$ARGV" }
+ }
+ send_gdb "ptype \$ARGV\n"
+ gdb_expect {
+ -re "type = <data variable, no debug info>.*$gdb_prompt $" { pass "ptype \$ARGV" }
+ -re "type = void.*$gdb_prompt $" { fail "ptype \$ARGV (interpreted as convenience var)" }
+ -re "$gdb_prompt $" { fail "ptype \$ARGV" }
+ timeout { fail "(timeout) ptype \$ARGV" }
+ }
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/genso-thresh.c gdb/testsuite/gdb.hp/gdb.base-hp/genso-thresh.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/genso-thresh.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/genso-thresh.c Thu Jul 22 17:50:19 1999
***************
*** 0 ****
--- 1,229 ----
+ /*
+ * Program to generate the so-thresh testcase,
+ * including associated linked-against shared libraries.
+ * Build as:
+ *
+ * cc -g -o genso-thresh genso-thresh.c
+ *
+ * Invoke as:
+ *
+ * genso-thresh
+ *
+ * It will put all the code in the current directory (".").
+ *
+ * A makefile can also be generated if the -makemake option is used.
+ * To use the makefile:
+ *
+ * make -f so-thresh.mk all
+ *
+ * The name of the application is
+ *
+ * so-thresh
+ *
+ * (Revised from a program by John Bishop. --rehrauer)
+ */
+
+ #include <stdio.h>
+ #include <sys/stat.h>
+ #include <sys/fcntl.h>
+
+ int main (argc, argv)
+ int argc;
+ char **argv;
+ {
+ #define NUMBER_OF_INT_VARS 1500
+ #define NUMBER_OF_LIBS 3
+ int lib_num = NUMBER_OF_LIBS;
+ int i;
+ int i2;
+ FILE *main_file;
+ FILE *lib_file;
+ FILE *make_file;
+ FILE *link_file;
+
+ char testcase_name [1000];
+ char linkfile_name [1000];
+ char makefile_name [1000];
+ char mainfile_name [1000];
+
+ char file_name[100];
+ /*
+ * 0123456789 <-- length of field
+ * "./fil0000000002.c"; <-- typical filename
+ * 12345678901234567890 <-- length of string
+ * 10 20
+ * ^where null goes
+ */
+ char file_name_core[100];
+
+ /* Verify input.
+ */
+ if ((argc < 1) || (argc > 2) || (argv == NULL) ||
+ ((argc == 2) && (strcmp (argv[1], "-makemake") != 0)))
+ {
+ printf ("** Syntax: %s [-makemake]\n", argv[0]);
+ return;
+ }
+
+ if (strncmp (argv[0], "gen", 3) != 0)
+ {
+ printf ("** This tool expected to be named \"gen<something>\"\n");
+ return;
+ }
+ strcpy (testcase_name, argv[0]+3);
+
+ strcpy (linkfile_name, testcase_name);
+ strcat (linkfile_name, ".lopt");
+ link_file = fopen (linkfile_name, "w");
+ fprintf (link_file, "# Linker options for %s test\n", testcase_name);
+
+ /* Generate the makefile, if requested.
+ */
+ if (argc == 2)
+ {
+ strcpy (makefile_name, testcase_name);
+ strcat (makefile_name, ".mk.new");
+ make_file = fopen (makefile_name, "w");
+ printf (" Note: New makefile (%s) generated.\n", makefile_name);
+ printf (" May want to update existing makefile, if any.\n");
+ fprintf (make_file, "# Generated automatically by %s\n", argv[0]);
+ fprintf (make_file, "# Make file for %s test\n", testcase_name);
+ fprintf (make_file, "\n");
+ fprintf (make_file, "CFLAGS = +DA1.1 -g\n");
+ fprintf (make_file, "\n");
+ fprintf (make_file, "# This is how to build this generator.\n");
+ fprintf (make_file, "%s.o: %s.c\n", argv[0], argv[0]);
+ fprintf (make_file, "\t$(CC) $(CFLAGS) -o %s.o -c %s.c\n", argv[0], argv[0]);
+ fprintf (make_file, "%s: %s.o\n", argv[0], argv[0]);
+ fprintf (make_file, "\t$(CC) $(CFLAGS) -o %s %s.o\n", argv[0], argv[0]);
+ fprintf (make_file, "\n");
+ fprintf (make_file, "# This is how to run this generator.\n");
+ fprintf (make_file, "# This target should be made before the 'all' target,\n");
+ fprintf (make_file, "# to ensure that the shlib sources are all available.\n");
+ fprintf (make_file, "require_shlibs: %s\n", argv[0]);
+ for (i=0; i < lib_num; i++)
+ {
+ fprintf (make_file, "\tif ! [ -a lib%2.2d_%s.c ] ; then \\\n", i, testcase_name);
+ fprintf (make_file, "\t %s ; \\\n", argv[0]);
+ fprintf (make_file, "\tfi\n");
+ }
+ fprintf (make_file, "\n");
+ fprintf (make_file, "# This is how to build all the shlibs.\n");
+ fprintf (make_file, "# Be sure to first make the require_shlibs target!\n");
+ for (i=0; i < lib_num; i++)
+ {
+ fprintf (make_file, "lib%2.2d_%s.o: lib%2.2d_%s.c\n", i, testcase_name, i, testcase_name);
+ fprintf (make_file, "\t$(CC) $(CFLAGS) +Z -o lib%2.2d_%s.o -c lib%2.2d_%s.c\n", i, testcase_name, i, testcase_name);
+ fprintf (make_file, "lib%2.2d-%s.sl: lib%2.2d-%s.o\n", i, testcase_name, i, testcase_name);
+ fprintf (make_file, "\t$(LD) $(LDFLAGS) -b -o lib%2.2d-%s.sl lib%2.2d-%s.o\n", i, testcase_name, i, testcase_name);
+ }
+ fprintf (make_file, "\n");
+ fprintf (make_file, "# For convenience, here's names for all pieces of all shlibs.\n");
+ fprintf (make_file, "SHLIB_SOURCES = \\\n");
+ for (i=0; i < lib_num-1; i++)
+ fprintf (make_file, "\tlib%2.2d-%s.c \\\n", i, testcase_name);
+ fprintf (make_file, "\tlib%2.2d-%s.c\n", lib_num-1, testcase_name);
+ fprintf (make_file, "SHLIB_OBJECTS = $(SHLIB_SOURCES:.c=.o)\n");
+ fprintf (make_file, "SHLIBS = $(SHLIB_SOURCES:.c=.sl)\n");
+ fprintf (make_file, "SHLIB_NAMES = $(SHLIB_SOURCES:.c=)\n");
+ fprintf (make_file, "EXECUTABLES = $(SHLIBS) %s %s\n", argv[0], testcase_name);
+ fprintf (make_file, "OBJECT_FILES = $(SHLIB_OBJECTS) %s.o %s.o\n", argv[0], testcase_name);
+ fprintf (make_file, "\n");
+ fprintf (make_file, "shlib_objects: $(SHLIB_OBJECTS)\n");
+ fprintf (make_file, "shlibs: $(SHLIBS)\n");
+ fprintf (make_file, "\n");
+ fprintf (make_file, "# This is how to build the debuggable testcase that uses the shlibs.\n");
+ fprintf (make_file, "%s.o: %s.c\n", testcase_name, testcase_name);
+ fprintf (make_file, "\t$(CC) $(CFLAGS) -o %s.o -c %s.c\n", testcase_name, testcase_name);
+ fprintf (make_file, "%s: shlibs %s.o\n", testcase_name, testcase_name);
+ fprintf (make_file, "\t$(LD) $(LDFLAGS) -o %s -lc -L. ", testcase_name);
+ fprintf (make_file, "-c %s /opt/langtools/lib/end.o /lib/crt0.o %s.o\n", linkfile_name, testcase_name);
+ fprintf (make_file, "\n");
+ fprintf (make_file, "# Yeah, but you should first make the require_shlibs target!\n");
+ fprintf (make_file, "all: %s %s\n", testcase_name, argv[0]);
+ fprintf (make_file, "\n");
+ fprintf (make_file, "# To remove everything built via this makefile...\n");
+ fprintf (make_file, "clean:\n");
+ /* Do this carefully, to avoid hitting silly HP-UX ARG_MAX limits... */
+ fprintf (make_file, "\trm -f lib0*-%s.*\n", testcase_name);
+ fprintf (make_file, "\trm -f lib1*-%s.*\n", testcase_name);
+ fprintf (make_file, "\trm -f lib2*-%s.*\n", testcase_name);
+ fprintf (make_file, "\trm -f lib3*-%s.*\n", testcase_name);
+ fprintf (make_file, "\trm -f lib4*-%s.*\n", testcase_name);
+ fprintf (make_file, "\trm -f lib5*-%s.*\n", testcase_name);
+ fprintf (make_file, "\trm -f lib6*-%s.*\n", testcase_name);
+ fprintf (make_file, "\trm -f lib7*-%s.*\n", testcase_name);
+ fprintf (make_file, "\trm -f lib8*-%s.*\n", testcase_name);
+ fprintf (make_file, "\trm -f lib9*-%s.*\n", testcase_name);
+ fprintf (make_file, "\trm -f %s %s %s %s.c\n", argv[0], testcase_name, linkfile_name, testcase_name);
+ fprintf (make_file, "\n");
+ fclose (make_file);
+ }
+
+ /* Generate the code for the libraries.
+ */
+ for (i=0; i < lib_num; i++) {
+
+ /* Generate the names for the library.
+ */
+ sprintf (file_name, "lib%2.2d-%s.c", i, testcase_name);
+ sprintf (file_name_core, "lib%2.2d-%s", i, testcase_name);
+
+ /* Generate the source code.
+ */
+ lib_file = fopen (file_name, "w");
+ fprintf (lib_file, "/* Shared library file number %d */\n", i);
+ fprintf (lib_file, "#include <stdio.h>\n\n");
+ fprintf (lib_file, "/* The following variables largely exist to bloat this library's debug info. */\n");
+ fprintf (lib_file, "static char c_static_buf_%d [100];\n", i);
+ for (i2=0; i2<NUMBER_OF_INT_VARS; i2++)
+ fprintf (lib_file, "int i_%d_%d;\n", i, i2);
+ fprintf (lib_file, "\nint r_%d ()\n", i);
+ fprintf (lib_file, "{\n");
+ for (i2=0; i2<NUMBER_OF_INT_VARS; i2++)
+ fprintf (lib_file, " i_%d_%d = %d*%d;\n", i, i2, i2, i2);
+ fprintf (lib_file, " return 1;\n");
+ fprintf (lib_file, "}\n\n");
+ fprintf (lib_file, "/* end of generated file */\n");
+ fclose (lib_file);
+
+ /* Add a linker options line
+ */
+ fprintf (link_file, "-l%2.2d-%s\n", i, testcase_name);
+ }
+
+ /* Generate the "main" file.
+ */
+ strcpy (mainfile_name, testcase_name);
+ strcat (mainfile_name, ".c");
+ main_file = fopen (mainfile_name, "w");
+ fprintf (main_file, "/* Generated test progam with %d shared libraries. */\n\n",
+ lib_num);
+ fprintf (main_file, "#include <stdio.h>\n\n");
+
+ for (i = 0; i < lib_num; i++) {
+ fprintf (main_file, "extern int r_%d();\n", i);
+ }
+
+ fprintf (main_file, "\n");
+ fprintf (main_file, "int main()\n");
+ fprintf (main_file, "{\n");
+ fprintf (main_file, " int accum;\n");
+ fprintf (main_file, " int lib_num = %d;\n", lib_num);
+
+ for (i = 0; i < lib_num; i++) {
+ fprintf (main_file, " accum += r_%d();\n", i);
+ }
+
+ fprintf (main_file, " printf( \"Final value: %%d, should be %%d\\n\", accum, lib_num );\n\n");
+ fprintf (main_file, " return 0;\n");
+ fprintf (main_file, "}\n\n");
+ fprintf (main_file, "/* end of generated file */\n");
+ fclose (main_file);
+
+ /* Finish up the link file and the build file
+ */
+ fclose (link_file);
+ }
+
+ /* End of file */
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/hwwatchbus.c gdb/testsuite/gdb.hp/gdb.base-hp/hwwatchbus.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/hwwatchbus.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/hwwatchbus.c Thu Jul 22 17:50:20 1999
***************
*** 0 ****
--- 1,9 ----
+ /* This program raises a SIGBUS signal on HP-UX when the
+ pointer "bogus_p" is dereferenced.
+ */
+ int * bogus_p = (int *)3;
+
+ int main()
+ {
+ *bogus_p = 0xdeadbeef;
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/hwwatchbus.exp gdb/testsuite/gdb.hp/gdb.base-hp/hwwatchbus.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/hwwatchbus.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/hwwatchbus.exp Thu Jul 22 17:50:20 1999
***************
*** 0 ****
--- 1,83 ----
+ # Copyright (C) 1997, 1998 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ set prms_id 0
+ set bug_id 0
+
+ if { [skip_hp_tests] } then { continue }
+
+ if { ![istarget "hppa*-*-hpux11.*"] } {
+ verbose "HPUX h/w watch test ignored for non-hppa or pre-HP/UX-10.30 targets."
+ return 0
+ }
+
+ set testfile "hwwatchbus"
+ set srcfile ${testfile}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ # build the first test case
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ if [get_compiler_info ${binfile}] {
+ return -1
+ }
+
+ # Start with a fresh gdb
+
+ gdb_exit
+ remote_exec build "rm -f ${binfile}.bak"
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+
+ # We ought to be able to set a hardware watchpoint, step, and
+ # get a SIGBUS signal reported.
+ #
+ if ![runto_main] then {
+ fail "can't run to main"
+ return 0
+ }
+
+ send_gdb "watch bogus_p\n"
+ gdb_expect {
+ -re "Hardware watchpoint \[0-9\]*: bogus_p.*$gdb_prompt $"\
+ {pass "set h/w watchpoint"}
+ -re "$gdb_prompt $"\
+ {fail "set h/w watchpoint"}
+ timeout {fail "(timeout) set h/w watchpoint"}
+ }
+
+ send_gdb "step\n"
+ gdb_expect {
+ -re "Program received signal SIGBUS, Bus error.* in main .*${srcfile}:8.*$gdb_prompt $"\
+ {pass "see real SIGBUS when h/w watchpoint set"}
+ -re "$gdb_prompt $"\
+ {fail "see real SIGBUS when h/w watchpoint set"}
+ timeout {fail "(timeout) see real SIGBUS when h/w watchpoint set"}
+ }
+
+ remote_exec build "mv ${binfile} ${binfile}.bak"
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/pxdb.c gdb/testsuite/gdb.hp/gdb.base-hp/pxdb.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/pxdb.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/pxdb.c Thu Jul 22 17:50:18 1999
***************
*** 0 ****
--- 1,37 ----
+ #include <stdio.h>
+
+ #ifdef PROTOTYPES
+ int callee (int x)
+ #else
+ int callee( x )
+ int x;
+ #endif
+ {
+ int y = x * x;
+ return (y - 2);
+ }
+
+ int main()
+ {
+ int i;
+ for (i = 1; i < 10; i++)
+ {
+ printf( "%d ", callee( i ));
+
+ }
+ printf( " Goodbye!\n" );
+ return 0;
+ }
+ /* This routine exists only for aCC. The way we compile this test is
+ that we use aCC for the actual compile into the object file but then
+ use ld directly for the link. When we do this, we get an undefined
+ symbol _main(). Therefore, for aCC, we have this routine in here and
+ ld is happy. */
+
+ #ifdef __cplusplus
+ extern "C" {
+ void _main()
+ {
+ }
+ }
+ #endif
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/pxdb.exp gdb/testsuite/gdb.hp/gdb.base-hp/pxdb.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/pxdb.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/pxdb.exp Thu Jul 22 17:50:18 1999
***************
*** 0 ****
--- 1,128 ----
+ # Copyright (C) 1998 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
+ # (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.
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+
+ # This file is part of the gdb testsuite
+
+
+ # pxdb.exp Test that gdb calls pxdb on an application
+ # built without it.
+ #
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ set prms_id 0
+ set bug_id 0
+
+ if { [skip_hp_tests] } then { continue }
+
+ set testfile pxdb
+ set srcfile ${testfile}.c
+ set objfile ${objdir}/${subdir}/${testfile}.o
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile} "c++"] {
+ return -1;
+ }
+
+ if { $gcc_compiled } then { continue }
+
+ # To build a non-pxdb-ed file, use
+ #
+ # <compile to .o file>
+ # export LD_PXDB /dev/null
+ # ld -o hello_no_pxdb hello.o /opt/langtools/lib/end.o /usr/ccs/lib/crt0.o -lc
+ #
+
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ #
+ # use this to debug:
+ #log_user 1
+
+
+ # Following should get the error message:
+ #
+ # ld: (Warning) Can't exec pxdb using path: /dev/null
+ #
+ #execute_anywhere "ksh -c \"export LD_PXDB=/dev/null\""
+
+ if [istarget "hppa2.0w-*-*"] {
+ set cmdline "ksh -c \"LD_PXDB=/dev/null ld -o ${binfile} ${objfile} /opt/langtools/lib/pa20_64/crt0.o /opt/langtools/lib/pa20_64/end.o -lc\""
+ } else {
+ set cmdline "ksh -c \"LD_PXDB=/dev/null ld -o ${binfile} ${objfile} /usr/ccs/lib/crt0.o /opt/langtools/lib/end.o -lc\""
+ }
+
+ remote_exec build "rm ${binfile}"
+ remote_exec build $cmdline
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+
+ # We expect to see this:
+ #
+ # "warning: File not processed by pxdb--about to process now.
+ # "
+ # ".
+ # "Procedures: 7
+ # "Files: 2
+ # "Reading symbols from ~/c_code.dir/hello_no_pxdb...done.
+ # "(gdb)
+ #
+ send_gdb "file ${binfile}\n"
+ gdb_expect {
+
+ -re ".*warning: File not processed by pxdb.*Procedures: \[0-9\]+.*$gdb_prompt $"\
+ { pass "PXDB call" }
+
+ -re "$gdb_prompt $" {
+ if [istarget hppa*-*-hpux*] {
+ pass "Didn't call pxdb"
+ } else {
+ fail "Didn't call pxdb"
+ }
+ }
+
+ -re ".*$gdb_prompt $" { fail "Some other message" }
+
+ timeout { fail "call pxdb (timeout)" }
+ }
+
+ # Make sure the new data makes sense
+ #
+ if { ![runto callee] } then { return }
+
+ send_gdb "print x\n"
+ gdb_expect {
+ -re ".*= 1.*$gdb_prompt $" { pass "Good data after pxdb call" }
+ -re ".*$gdb_prompt $" { fail "No data after pxdb call" }
+ timeout { fail "(timeout)" }
+ }
+
+ gdb_exit
+ return 0
+
+
+
+
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/reg-pa64.exp gdb/testsuite/gdb.hp/gdb.base-hp/reg-pa64.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/reg-pa64.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/reg-pa64.exp Thu Jul 22 17:50:20 1999
***************
*** 0 ****
--- 1,189 ----
+ # Tests of wide register displays for GDB on HPPA 2.0 machines
+ # Copyright 1994, 1995 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ # use this to debug:
+ #log_user 1
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ if { [skip_hp_tests] } { continue }
+
+ if ![istarget "hppa*-*-*"] {
+ verbose "Wide register test ignored for non-hppa targets."
+ return 0
+ }
+
+ if ![istarget "hppa2.0w-hp-hpux*"] {
+ verbose "reg-pa64.exp is only for PA2.0W."
+ return 0
+ }
+
+ set testfile "reg-pa64"
+ set srcfile ${testfile}.s
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ # To build a pa 2.0 executable
+ #
+ # as +DA2.0W -o reg-pa64 reg-pa64.s
+ # or
+ # cc +DA2.0W -g -o reg-pa64 reg-pa64.s
+ #
+ # Don't reject if there are warnings, as we expect this warning:
+ #
+ # (Warning) At least one PA 2.0 object file (pa2.0_test2.o) was detected.
+ # The linked output may not run on a PA 1.x system.
+ #
+
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ # test machine--there's no 2.0n architecture, so we have
+ # to try to run the app.
+ #
+ gdb_test "break main" "Breakpoint.*" "initial set-up"
+
+ send_gdb "run\n"
+ gdb_expect {
+ -re ".*Executable file incompatible with hardware.*$gdb_prompt $" {
+ # Not hppa2.0 machine
+ #
+ return 0
+ }
+ -re "Cannot exec.*$gdb_prompt $" {
+ # Not hppa2.0 machine
+ #
+ return 0
+ }
+ -re ".*Starting program:.*$gdb_prompt $" {
+ pass "Ready to start test"
+ }
+ timeout {
+ fail "initial set-up, part 2 (timeout)"
+ return 0
+ }
+ }
+
+ # Let the program set known values. This secretly deletes
+ # the breakpoint at main and re-runs to mainend.
+ #
+ runto mainend
+
+ # Look for known values
+ #
+ gdb_test "info reg r1" "r1 1"
+ gdb_test "info reg r4" "r4 2"
+ gdb_test "info reg r5" "r5 4"
+ gdb_test "info reg r6" "r6 8"
+ gdb_test "info reg r7" "r7 10"
+ gdb_test "info reg r8" "r8 20"
+ gdb_test "info reg r9" "r9 40"
+ gdb_test "info reg r10" "r10 80"
+ gdb_test "info reg r11" "r11 100"
+ gdb_test "info reg r12" "r12 200"
+ gdb_test "info reg r13" "r13 400"
+ gdb_test "info reg r14" "r14 800"
+ gdb_test "info reg r15" "r15 1000"
+ gdb_test "info reg r16" "r16 2000"
+
+ # Two odd variants that GDB supports are:
+ # "1" means "r1", and
+ # "$1" means "r1"
+ #
+ gdb_test "info reg 1 4" "r1 1.*r4 2"
+ gdb_test "info reg \$1" "r1 1"
+
+ # Verify that GDB responds gracefully to a register ID number that
+ # is out of range.
+ #
+ gdb_test "info reg 999" "999: invalid register"
+
+ # Make sure the floating point status and error registers
+ # don't show up as floating point numbers!
+ #
+ gdb_test "info reg fpsr" ".*fpsr 0.*" "fpsr"
+ gdb_test "info reg fpe1" ".*fpe1 .*" "fpe1"
+ gdb_test "info reg fpe2" ".*fpe2 .*" "fpe2"
+ gdb_test "info reg fpe3" ".*fpe3 .*" "fpe3"
+ #DTS CLLbs16708
+ #info reg should recognize fpe4..fpe7.
+ setup_xfail hppa2.0w-hp-hpux* CLLbs16708
+ gdb_test "info reg fpe4" ".*fpe4 .*" "fpe4"
+ setup_xfail hppa2.0w-hp-hpux* CLLbs16708
+ gdb_test "info reg fpe5" ".*fpe5 .*" "fpe5"
+ setup_xfail hppa2.0w-hp-hpux* CLLbs16708
+ gdb_test "info reg fpe6" ".*fpe6 .*" "fpe6"
+ setup_xfail hppa2.0w-hp-hpux* CLLbs16708
+ gdb_test "info reg fpe7" ".*fpe7 .*" "fpe7"
+
+ gdb_test "info reg fr4" ".*fr4.*(double precision).* 1.*"
+ gdb_test "info reg fr5" ".*fr5.*(double precision).* 2.*"
+ gdb_test "info reg fr6" ".*fr6.*(double precision).* 2.*"
+ gdb_test "info reg fr7" ".*fr7.*(double precision).* 4.*"
+ gdb_test "info reg fr8" ".*fr8.*(double precision).* 8.*"
+ gdb_test "info reg fr9" ".*fr9.*(double precision).* 32.*"
+ gdb_test "info reg fr10" ".*fr10.*(double precision).* 256.*"
+
+ gdb_test "info reg r19" "r19 deadbeefbadcadee"
+
+ # Need to add test of use of $<register-name>
+ #
+ # Q: How do you say a literal "$" in expect?
+ # A: You say "\$". A literal "\" is "\\".
+ #
+ # Please note that this test will fail as long as we are running
+ # in 32-bit mode: it will produce "$1 = 0xbadcadee". To fix it
+ # would require building a real 64-bit gdb (expression evaluation,
+ # in particular).
+ #
+ send_gdb "p/x \$r19\n"
+ gdb_expect {
+ -re ".*= 0xdeadbeefbadcadee.*$gdb_prompt $" {
+ pass "64-bit works"
+ }
+ -re ".*= 0xbadcadee.*$gdb_prompt $" {
+ pass "32-bit extract when using PRINT; expected but not good"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "didn't print any part of right value"
+ }
+ timeout {
+ fail "timeout on print"
+ }
+ }
+
+ # Need to add tests of setting wide regs too. E.g.
+ #
+ # set $r4 = 0x1234567890123456
+ # p/x $r4
+ #
+
+ # done
+ #
+ gdb_exit
+
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/reg-pa64.s gdb/testsuite/gdb.hp/gdb.base-hp/reg-pa64.s
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/reg-pa64.s Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/reg-pa64.s Thu Jul 22 17:50:20 1999
***************
*** 0 ****
--- 1,104 ----
+ ; assemble as "as -o reg-pa64 reg-pa64.s"
+ ; or
+ ; cc -g -o +DA2.0W
+ ;
+ ; PA-RISC 2.0 register contents test.
+ ;
+ .level 2.0W
+
+ .code
+ .export main,ENTRY
+ .export mainend,CODE
+ .export lab1,CODE
+ .space $TEXT$
+ .subspa $CODE$
+ one
+ .align 8
+ .stringz "?\xF0\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00"
+
+ main
+ .proc
+ .callinfo NO_CALLS,FRAME=0
+ .entry
+
+ ;; Test we have right register numbers
+ ;;
+ ADD %r0,%r0,%r1 ; 0
+ LDI 1,%r1 ; 1
+ ;;
+ ;; Don't put anything into r2 or r3--they are special registers.
+ ;;
+ ADD %r1,%r1,%r4 ; 2
+ ADD %r4,%r4,%r5 ; 4
+ ADD %r5,%r5,%r6 ; 8
+ ADD %r6,%r6,%r7 ; 16
+ ADD %r7,%r7,%r8 ; 32
+ ADD %r8,%r8,%r9 ; 64
+ ADD %r9,%r9,%r10 ; 128
+ ADD %r10,%r10,%r11 ; 256
+ ADD %r11,%r11,%r12 ; 512
+ ADD %r12,%r12,%r13 ; 1024
+ ADD %r13,%r13,%r14 ; 2048
+ ADD %r14,%r14,%r15 ; 4096
+ ADD %r15,%r15,%r16 ; 9192
+
+ ;; Test high bits, to be sure we show them.
+ ;;
+ LDI 0xde,%r19 ; "de"
+ DEPD,Z %r19,55,56,%r19 ; "de00"
+ LDI 0xad,%r18 ; "ad"
+ ADD %r18,%r19,%r19 ; "dead"
+ DEPD,Z %r19,55,56,%r19 ; "dead00"
+ LDI 0xbe,%r18 ; "be"
+ ADD %r18,%r19,%r19 ; "deadbe"
+ DEPD,Z %r19,55,56,%r19 ; "deadbe00"
+ LDI 0xef,%r18 ; "ef"
+ ADD %r18,%r19,%r19 ; "deadbeef"
+ ;
+ DEPD,Z %r19,55,56,%r19 ; "deadbeef00"
+ LDI 0xba,%r18 ; "ba"
+ ADD %r18,%r19,%r19 ; "deadbeefba"
+ DEPD,Z %r19,55,56,%r19 ; "deadbeefba00"
+ LDI 0xdc,%r18 ; "dc"
+ ADD %r18,%r19,%r19 ; "deadbeefbadc"
+ DEPD,Z %r19,55,56,%r19 ; "deadbeefbadc00"
+ LDI 0xad,%r18 ; "ad"
+ ADD %r18,%r19,%r19 ; "deadbeefbadcad"
+ DEPD,Z %r19,55,56,%r19 ; "deadbeefbadcad00"
+ LDI 0xee,%r18 ; "ee"
+ ADD %r18,%r19,%r19 ; "deadbeefbadcadee"
+
+ lab1 ;; Test floating point registers
+ ;;
+ ;; LDIL LR'one,%r22 ;
+ ;; FLDD RR'one(%r22),%fr4 ; 1.0
+ ;; FLDD RR'one+8(%r22),%fr5 ; 2.0
+ ;; FLDD RR'one+8(%r22),%fr6 ; 2.0
+ B,L here,%r2
+ NOP
+ here DEPDI 0x0,63,2,%r2
+ LDO one-here(%r2),%r2
+ FLDD 0(%r2),%fr4
+ FLDD 8(%r2),%fr5
+ FLDD 8(%r2),%fr6
+
+ FMPY,DBL %fr5,%fr6,%fr7 ; 4.0
+ FMPY,DBL %fr6,%fr7,%fr8 ; 8.0
+ FMPY,DBL %fr7,%fr8,%fr9 ; 32.0
+ FMPY,DBL %fr8,%fr9,%fr10 ; 256.0
+
+ ;; The NOP prevents anything from end.o or crt0.o from
+ ;; being appended immediately after "mainend". If that
+ ;; happens, then we may have other labels that have the
+ ;; same address as "mainend", and thus the debugger
+ ;; may symbolize this PC to something other than "mainend".
+ mainend
+ NOP
+ .exit
+ .procend
+
+ .space $TEXT$
+ .subspa $CODE$
+ .subspa $LIT$ ;; <don't use> ,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=16
+ .end
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/reg.exp gdb/testsuite/gdb.hp/gdb.base-hp/reg.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/reg.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/reg.exp Thu Jul 22 17:50:21 1999
***************
*** 0 ****
--- 1,192 ----
+ # Copyright (C) 1998 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ # Tests of wide register displays for GDB on HPPA 2.0 machines
+
+ # use this to debug:
+ #log_user 1
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ if { [skip_hp_tests] } then { continue }
+
+ set testfile "reg"
+
+ if [istarget "hppa2.0w-hp-hpux*"] {
+ verbose "reg.exp is not for PA2.0W."
+ return 0
+ }
+ set srcfile ${testfile}.s
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ # To build a pa 2.0 executable
+ #
+ # as -o reg reg.s
+ # or
+ # cc -g -o reg reg.s
+ #
+ # The +DA2.0N flag doesn't seem to be needed.
+ #
+ # Don't reject if there are warnings, as we expect this warning:
+ #
+ # (Warning) At least one PA 2.0 object file (pa2.0_test2.o) was detected.
+ # The linked output may not run on a PA 1.x system.
+ #
+
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ # test machine--there's no 2.0n architecture, so we have
+ # to try to run the app.
+ #
+ send_gdb "break main\n"
+ gdb_expect {
+ -re "Breakpoint.*$gdb_prompt $" {
+ pass "initial set-up"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "initial set-up"
+ }
+ timeout {
+ fail "initial set-up (timeout)"
+ }
+ }
+
+ send_gdb "run\n"
+ gdb_expect {
+ -re ".*Executable file incompatible with hardware.*$gdb_prompt $" {
+ # Not hppa2.0 machine
+ #
+ return 0
+ }
+ -re "Cannot exec.*$gdb_prompt $" {
+ # Not hppa2.0 machine
+ #
+ return 0
+ }
+ -re ".*Starting program:.*$gdb_prompt $" {
+ pass "Ready to start test"
+ }
+ timeout {
+ fail "initial set-up, part 2 (timeout)"
+ return 0
+ }
+ }
+
+ # Let the program set known values. This secretly deletes
+ # the breakpoint at main and re-runs to mainend.
+ #
+ runto mainend
+
+ # Look for known values
+ #
+ gdb_test "info reg r1" "r1 1"
+ gdb_test "info reg r4" "r4 2"
+ gdb_test "info reg r5" "r5 4"
+ gdb_test "info reg r6" "r6 8"
+ gdb_test "info reg r7" "r7 10"
+ gdb_test "info reg r8" "r8 20"
+ gdb_test "info reg r9" "r9 40"
+ gdb_test "info reg r10" "r10 80"
+ gdb_test "info reg r11" "r11 100"
+ gdb_test "info reg r12" "r12 200"
+ gdb_test "info reg r13" "r13 400"
+ gdb_test "info reg r14" "r14 800"
+ gdb_test "info reg r15" "r15 1000"
+ gdb_test "info reg r16" "r16 2000"
+
+ # Two odd variants that GDB supports are:
+ # "1" means "r1", and
+ # "$1" means "r1"
+ #
+ gdb_test "info reg 1 4" "r1 1.*r4 2"
+ gdb_test "info reg \$1" "r1 1"
+
+ # Verify that GDB responds gracefully to a register ID number that
+ # is out of range.
+ #
+ gdb_test "info reg 999" "999: invalid register"
+
+ # Make sure the floating point status and error registers
+ # don't show up as floating point numbers!
+ #
+ gdb_test "info reg fpsr" ".*fpsr 0.*" "fpsr"
+ gdb_test "info reg fpe1" ".*fpe1 0.*" "fpe1"
+ gdb_test "info reg fpe2" ".*fpe2 0.*" "fpe2"
+ gdb_test "info reg fpe3" ".*fpe3 0.*" "fpe3"
+ gdb_test "info reg fpe4" ".*fpe4 0.*" "fpe4"
+ gdb_test "info reg fpe5" ".*fpe5 0.*" "fpe5"
+ gdb_test "info reg fpe6" ".*fpe6 0.*" "fpe6"
+ gdb_test "info reg fpe7" ".*fpe7 0.*" "fpe7"
+
+ gdb_test "info reg fr4" ".*fr4.*(double precision).* 1"
+ gdb_test "info reg fr5" ".*fr5.*(double precision).* 2"
+ gdb_test "info reg fr6" ".*fr6.*(double precision).* 2"
+ gdb_test "info reg fr7" ".*fr7.*(double precision).* 4"
+ gdb_test "info reg fr8" ".*fr8.*(double precision).* 8"
+ gdb_test "info reg fr9" ".*fr9.*(double precision).* 32"
+ gdb_test "info reg fr10" ".*fr10.*(double precision).* 256"
+
+ gdb_test "info reg r19" "r19 deadbeefbadcadee"
+
+ # Need to add test of use of $<register-name>
+ #
+ # Q: How do you say a literal "$" in expect?
+ # A: You say "\$". A literal "\" is "\\".
+ #
+ # Please note that this test will fail as long as we are running
+ # in 32-bit mode: it will produce "$1 = 0xbadcadee". To fix it
+ # would require building a real 64-bit gdb (expression evaluation,
+ # in particular).
+ #
+ send_gdb "p/x \$r19\n"
+ gdb_expect {
+ -re ".*= 0xdeadbeefbadcadee.*$gdb_prompt $" {
+ pass "64-bit works"
+ }
+ -re ".*= 0xbadcadee.*$gdb_prompt $" {
+ pass "32-bit extract when using PRINT; expected but not good"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "didn't print any part of right value"
+ }
+ timeout {
+ fail "timeout on print"
+ }
+ }
+
+ # Need to add tests of setting wide regs too. E.g.
+ #
+ # set $r4 = 0x1234567890123456
+ # p/x $r4
+ #
+
+ # done
+ #
+ gdb_exit
+
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/reg.s gdb/testsuite/gdb.hp/gdb.base-hp/reg.s
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/reg.s Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/reg.s Thu Jul 22 17:50:21 1999
***************
*** 0 ****
--- 1,96 ----
+ ; assemble as "as -o reg reg.s"
+ ; or
+ ; cc -g -o +DA2.0N
+ ;
+ ; PA-RISC 2.0 register contents test.
+ ;
+ .level 2.0
+
+ .code
+ .export main,ENTRY
+ .export mainend,CODE
+ .export lab1,CODE
+ .space $TEXT$
+ .subspa $CODE$
+
+ main
+ .proc
+ .callinfo NO_CALLS,FRAME=0
+ .entry
+
+ ;; Test we have right register numbers
+ ;;
+ ADD %r0,%r0,%r1 ; 0
+ LDI 1,%r1 ; 1
+ ;;
+ ;; Don't put anything into r2 or r3--they are special registers.
+ ;;
+ ADD %r1,%r1,%r4 ; 2
+ ADD %r4,%r4,%r5 ; 4
+ ADD %r5,%r5,%r6 ; 8
+ ADD %r6,%r6,%r7 ; 16
+ ADD %r7,%r7,%r8 ; 32
+ ADD %r8,%r8,%r9 ; 64
+ ADD %r9,%r9,%r10 ; 128
+ ADD %r10,%r10,%r11 ; 256
+ ADD %r11,%r11,%r12 ; 512
+ ADD %r12,%r12,%r13 ; 1024
+ ADD %r13,%r13,%r14 ; 2048
+ ADD %r14,%r14,%r15 ; 4096
+ ADD %r15,%r15,%r16 ; 9192
+
+ ;; Test high bits, to be sure we show them.
+ ;;
+ LDI 0xde,%r19 ; "de"
+ DEPD,Z %r19,55,56,%r19 ; "de00"
+ LDI 0xad,%r18 ; "ad"
+ ADD %r18,%r19,%r19 ; "dead"
+ DEPD,Z %r19,55,56,%r19 ; "dead00"
+ LDI 0xbe,%r18 ; "be"
+ ADD %r18,%r19,%r19 ; "deadbe"
+ DEPD,Z %r19,55,56,%r19 ; "deadbe00"
+ LDI 0xef,%r18 ; "ef"
+ ADD %r18,%r19,%r19 ; "deadbeef"
+ ;
+ DEPD,Z %r19,55,56,%r19 ; "deadbeef00"
+ LDI 0xba,%r18 ; "ba"
+ ADD %r18,%r19,%r19 ; "deadbeefba"
+ DEPD,Z %r19,55,56,%r19 ; "deadbeefba00"
+ LDI 0xdc,%r18 ; "dc"
+ ADD %r18,%r19,%r19 ; "deadbeefbadc"
+ DEPD,Z %r19,55,56,%r19 ; "deadbeefbadc00"
+ LDI 0xad,%r18 ; "ad"
+ ADD %r18,%r19,%r19 ; "deadbeefbadcad"
+ DEPD,Z %r19,55,56,%r19 ; "deadbeefbadcad00"
+ LDI 0xee,%r18 ; "ee"
+ ADD %r18,%r19,%r19 ; "deadbeefbadcadee"
+
+ lab1 ;; Test floating point registers
+ ;;
+ LDIL LR'one,%r22 ;
+ FLDD RR'one(%r22),%fr4 ; 1.0
+ FLDD RR'one+8(%r22),%fr5 ; 2.0
+ FLDD RR'one+8(%r22),%fr6 ; 2.0
+ FMPY,DBL %fr5,%fr6,%fr7 ; 4.0
+ FMPY,DBL %fr6,%fr7,%fr8 ; 8.0
+ FMPY,DBL %fr7,%fr8,%fr9 ; 32.0
+ FMPY,DBL %fr8,%fr9,%fr10 ; 256.0
+
+ ;; The NOP prevents anything from end.o or crt0.o from
+ ;; being appended immediately after "mainend". If that
+ ;; happens, then we may have other labels that have the
+ ;; same address as "mainend", and thus the debugger
+ ;; may symbolize this PC to something other than "mainend".
+ mainend
+ NOP
+ .exit
+ .procend
+
+ .space $TEXT$
+ .subspa $CODE$
+ .subspa $LIT$ ;; <don't use> ,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=16
+ one
+ .align 8
+ .stringz "?\xF0\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00"
+ .end
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/sized-enum.c gdb/testsuite/gdb.hp/gdb.base-hp/sized-enum.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/sized-enum.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/sized-enum.c Thu Jul 22 17:50:21 1999
***************
*** 0 ****
--- 1,43 ----
+
+ enum Normal {
+ red,
+ blue,
+ green
+ };
+
+ short enum Small {
+ pink,
+ cyan,
+ grey
+ };
+
+ char enum Tiny {
+ orange,
+ yellow,
+ brown
+ };
+
+
+ main()
+ {
+ enum Normal normal[3];
+ short enum Small small[3];
+ char enum Tiny tiny[3];
+ int i;
+
+ for (i=0; i < 3; i++)
+ {
+ normal[i] = (enum Normal) i;
+ small[i] = (short enum Small) i;
+ tiny[i] = (char enum Tiny) i;
+ }
+ normal[0] = 0; /* place to hang a breakpoint */
+ }
+
+
+
+
+
+
+
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/sized-enum.exp gdb/testsuite/gdb.hp/gdb.base-hp/sized-enum.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/sized-enum.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/sized-enum.exp Thu Jul 22 17:50:21 1999
***************
*** 0 ****
--- 1,165 ----
+ # Copyright (C) 1997, 1998 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ # GDB tests for sized enumerations
+
+ # This is aimed at HP-UX systems. The HP C compiler
+ # allows specifying "char" or "short" for an enum, to
+ # indicate that it is 1 or 2 bytes long.
+
+ # This file was written by Satish Pai <pai@apollo.hp.com>
+ # 1997-09-24
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ if { [skip_hp_tests] } then { continue }
+
+ set testfile "sized-enum"
+ set srcfile ${testfile}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile}] {
+ return -1
+ }
+
+ if { $gcc_compiled } then { continue }
+ if {$hp_aCC_compiler} {continue}
+
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ 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
+ }
+
+ # set a breakpoint and go there
+ send_gdb "break 34\n"
+ gdb_expect {
+ -re "Breakpoint.*line 34.*$gdb_prompt $" { pass "set break 34" }
+ -re "$gdb_prompt $" { fail "set break 34" }
+ timeout { fail "(timeout) set break 34" }
+ }
+ send_gdb "continue\n"
+ gdb_expect {
+ -re "Continuing\\.\r\n\r\nBreakpoint \[0-9\]*, main....at.*sized-enum\\.c:34\r\n34.*\r\n$gdb_prompt $" { pass "continue" }
+ -re "$gdb_prompt $" { fail "continue" }
+ timeout { fail "(timeout) continue" }
+ }
+
+ # print stuff
+ send_gdb "print normal\n"
+ gdb_expect {
+ -re "\\$\[0-9\]* = \\{red, blue, green\\}.*$gdb_prompt $" { pass "print normal" }
+ -re "$gdb_prompt $" { fail "print normal" }
+ timeout { fail "(timeout) print normal" }
+ }
+ send_gdb "print small\n"
+ gdb_expect {
+ -re "\\$\[0-9\]* = \\{pink, cyan, grey\\}.*$gdb_prompt $" { pass "print small" }
+ -re "$gdb_prompt $" { fail "print small" }
+ timeout { fail "(timeout) print small" }
+ }
+ send_gdb "print tiny\n"
+ gdb_expect {
+ -re "\\$\[0-9\]* = \\{orange, yellow, brown\\}.*$gdb_prompt $" { pass "print tiny" }
+ -re "$gdb_prompt $" { fail "print tiny" }
+ timeout { fail "(timeout) print tiny" }
+ }
+
+ # print type sizes
+ send_gdb "print sizeof (Normal)\n"
+ gdb_expect {
+ -re "\\$\[0-9\]* = 4.*$gdb_prompt $" { pass "print sizeof (Normal)" }
+ -re "$gdb_prompt $" { fail "print sizeof (Normal)" }
+ timeout { fail "(timeout) print sizeof (Normal)" }
+ }
+ send_gdb "print sizeof (Small)\n"
+ gdb_expect {
+ -re "\\$\[0-9\]* = 2.*$gdb_prompt $" { pass "print sizeof (Small)" }
+ -re "$gdb_prompt $" { fail "print sizeof (Small)" }
+ timeout { fail "(timeout) print sizeof (Small)" }
+ }
+ send_gdb "print sizeof (Tiny)\n"
+ gdb_expect {
+ -re "\\$\[0-9\]* = 1.*$gdb_prompt $" { pass "print sizeof (Tiny)" }
+ -re "$gdb_prompt $" { fail "print sizeof (Tiny)" }
+ timeout { fail "(timeout) print sizeof (Tiny)" }
+ }
+
+ # print types
+ send_gdb "ptype normal\n"
+ gdb_expect {
+ -re "type = enum Normal \\{red, blue, green\\} \\\[3\\\].*$gdb_prompt $" { pass "ptype normal" }
+ -re "$gdb_prompt $" { fail "ptype normal" }
+ timeout { fail "(timeout) ptype normal" }
+ }
+ send_gdb "ptype small\n"
+ gdb_expect {
+ -re "type = short enum Small \\{pink, cyan, grey\\} \\\[3\\\].*$gdb_prompt $" { pass "ptype small" }
+ -re "$gdb_prompt $" { fail "ptype small" }
+ timeout { fail "(timeout) ptype small" }
+ }
+ send_gdb "ptype tiny\n"
+ gdb_expect {
+ -re "type = char enum Tiny \\{orange, yellow, brown\\} \\\[3\\\].*$gdb_prompt $" { pass "ptype tiny" }
+ -re "$gdb_prompt $" { fail "ptype tiny" }
+ timeout { fail "(timeout) ptype tiny" }
+ }
+
+ # convert to int
+ send_gdb "print (int) blue\n"
+ gdb_expect {
+ -re "\\$\[0-9\]* = 1.*$gdb_prompt $" { pass "print (int) blue" }
+ -re "$gdb_prompt $" { fail "print (int) blue" }
+ timeout { fail "(timeout) print (int) blue" }
+ }
+ send_gdb "print (int) cyan\n"
+ gdb_expect {
+ -re "\\$\[0-9\]* = 1.*$gdb_prompt $" { pass "print (int) cyan" }
+ -re "$gdb_prompt $" { fail "print (int) cyan" }
+ timeout { fail "(timeout) print (int) cyan" }
+ }
+ send_gdb "print (int) yellow\n"
+ gdb_expect {
+ -re "\\$\[0-9\]* = 1.*$gdb_prompt $" { pass "print (int) yellow" }
+ -re "$gdb_prompt $" { fail "print (int) yellow" }
+ timeout { fail "(timeout) print (int) yellow" }
+ }
+
+
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.exp gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.exp Thu Jul 22 17:50:22 1999
***************
*** 0 ****
--- 1,346 ----
+ # Copyright (C) 1997, 1998 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ set prms_id 0
+ set bug_id 0
+
+ if { [skip_hp_tests] } then { continue }
+
+ set testfile "so-thresh"
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile}] {
+ return -1
+ }
+
+ # This testcase is relatively large, and therefore can take awhile to
+ # load. We'd best set the timeout to something suitable, or we may
+ # seem to fail...
+ #
+ set timeout 60
+
+ # Build procedure for this testcase:
+ # ${srcdir}/${subdir}/so-thresh.sh ${subdir}
+ # which calls,
+ # make -f ${srcdir}/${subdir}/so-thresh.mk <targets> <macros>
+ # which builds,
+ # genso-thresh (from genso-thresh.c)
+ # which generates,
+ # lib00-so-thresh.c
+ # lib01-so-thresh.c
+ # lib02-so-thresh.c
+ # so-thresh.lopt (link options file)
+ # lib0*-so-thresh.sl (from .c files above)
+ # so-thresh (from so-thresh.c)
+ # using lib0*-so-thresh.sl and so-thresh.lopt
+ #
+ # Since so-thresh.mk requires SRCDIR and OBJDIR macro definitions,
+ # and SRCDIR / OBJDIR could be in relative path format, we use
+ # so-thresh.sh script to pin down SRCDIR / OBJDIR (using $PWD/ prefix
+ # when detected relative path values for srcdir / objdir), before the
+ # 'cd $subdir' call (when this can be done in TCL here, we can call
+ # make directly instead).
+ #
+ # remote_exec build "sh -c \\\"cd ${objdir}/${subdir}\\; make -v -f ${srcdir}/${subdir}/${testfile}.mk clean require_shlibs all SRCDIR=${srcdir}/${subdir} OBJDIR=${objdir}/${subdir}\\\""
+
+ send_user "Making with '${srcdir}/${subdir}/${testfile}.sh $subdir ...\n"
+ remote_exec build "${srcdir}/${subdir}/${testfile}.sh $subdir"
+
+ # Only HP-UX (and any other platforms using SOM shared libraries, I
+ # guess) interprets the auto-solib-add variable as a threshhold,
+ # rather than a boolean that strictly enables or disables automatic
+ # loading of shlib symbol tables.
+ #
+ # On HP-UX, it is the size threshhold (in megabytes) at which to
+ # stop auto loading of symbol tables.
+ #
+ if ![istarget "hppa*-hp-hpux*"] then {
+ setup_xfail "*-*-*"
+ }
+
+ # Start with a fresh gdb
+ #
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ # This is a test of gdb's ability on HP-UX to stop automatically
+ # loading symbols of shared libraries, when the total size of the
+ # debugger's symbol table reaches a specified threshhold.
+ #
+
+ # On HP-UX, the help text for auto-solib-add mentions that it
+ # serves as a threshhold.
+ #
+ send_gdb "help set auto-solib-add\n"
+ gdb_expect {
+ -re "Set autoloading size threshold .in megabytes. of shared library symbols.*
+ If nonzero, symbols from all shared object libraries will be loaded.*
+ automatically when the inferior begins execution or when the dynamic linker.*
+ informs gdb that a new library has been loaded, until the symbol table.*
+ of the program and libraries exceeds this threshold.*
+ Otherwise, symbols must be loaded manually, using `sharedlibrary'.*$gdb_prompt $"\
+ {pass "help set auto-solib-add"}
+ -re "$gdb_prompt $"\
+ {fail "help set auto-solib-add"}
+ timeout {fail "(timeout) help set auto-solib-add"}
+ }
+
+ # On HP-UX, the threshhold is by default set to 50, which means
+ # 50 megabytes.
+ #
+ send_gdb "show auto-solib-add\n"
+ gdb_expect {
+ -re "Autoloading size threshold .in megabytes. of shared library symbols is $decimal.*$gdb_prompt $"\
+ {pass "show auto-solib-add "}
+ -re "Autoloading size threshold \(in megabytes\) of shared library symbols is $decimal.$gdb_prompt $"\
+ {pass "show auto-solib-add "}
+ -re "$gdb_prompt $"\
+ {fail "show auto-solib-add "}
+ timeout {fail "(timeout) show auto-solib-add "}
+ }
+
+ send_gdb "set auto-solib-add 1\n"
+ gdb_expect {
+ -re ".*$gdb_prompt $"
+ {pass "set auto-solib-add to 1"}
+ -re ".*$gdb_prompt $"
+ {fail "set auto-solib-add to 1"}
+ timeout {fail "(timeout) set auto-solib-add to 1"}
+ }
+
+
+ # We have manually verified that our testcase exceeds 1 Mbytes
+ # of heap space in GDB to hold the symbols for the main program
+ # and all associated linked-against libraries. Thus, when we
+ # run to the program's main, and therefore notice all the linked-
+ # against shlibs, we expect to hit the threshhold.
+ #
+ # (Note that we're not using the expect [runto main] function here,
+ # 'cause we want to match on output from the run command.
+ #
+ send_gdb "break main\n"
+ gdb_expect {
+ -re "Breakpoint \[0-9\]* at.*$gdb_prompt $"\
+ {pass "1 set break at main"}
+ -re "$gdb_prompt $"\
+ {fail "1 set break at main"}
+ timeout {fail "(timeout) 1 set break at main"}
+ }
+
+ send_gdb "run\n"
+ gdb_expect {
+ -re ".*warning. Symbols for some libraries have not been loaded, because.*
+ doing so would exceed the size threshold specified by auto-solib-add.*
+ To manually load symbols, use the 'sharedlibrary' command.*
+ To raise the threshold, set auto-solib-add to a larger value and rerun.*
+ the program.*$gdb_prompt $"\
+ {pass "run to main hit auto-solib-add threshold"}
+ -re "$gdb_prompt $"\
+ {fail "run to main hit auto-solib-add threshold"}
+ timeout {fail "(timeout) run to main hit auto-solib-add threshold"}
+ }
+
+ # Verify that "info share" mentions something about libraries whose
+ # symbols weren't loaded.
+ #
+ # We'll assume that at least the last two shlib's symbols weren't
+ # loaded. As a side-effect of matching this pattern, the text start
+ # address of the last one is captured in expect_out(1,string).
+ # (we'll need it for the 'add-symbol-file' command in a nonce...)
+ #
+ send_gdb "info sharedlibrary\n"
+ gdb_expect {
+ -re ".*lib01_$testfile.sl .*symbols not loaded.*0x\[0-9\]* (0x\[0-9a-fA-F\]*).*$gdb_prompt $"\
+ { send_gdb "add-symbol-file lib02_$testfile.sl $expect_out(1,string)\n"
+ gdb_expect {
+ -re "add symbol table.*y or n.*$"\
+ {send_gdb "y\n"
+ gdb_expect {
+ -re "$gdb_prompt $" {pass "add-symbol-file and info sharedlib"}
+ timeout {fail "(timeout) add-symbol-file and info sharedlib"}
+ }}
+ -re "$gdb_prompt $"\
+ {fail "add-symbol-file and info sharedlib"}
+ timeout {fail "(timeout) add-symbol-file and info sharedlib"}
+ }
+ }
+ -re "$gdb_prompt $" {
+ setup_xfail hppa*-*-* CHFts24108
+ fail "info sharedlibrary shows shlibs with unloaded symbols"
+ }
+ timeout {fail "(timeout) info sharedlibrary shows shlibs with unloaded symbols"}
+ }
+
+ # Verify that we can manually load the symbol table of a library
+ # whose symbols weren't loaded. (We'll pick the last one.)
+ #
+
+ # I moved this test inside the one above, because the expect_out array is not ok if the
+ # previous test has failed, and expect would error out (elz)
+ #
+ #send_gdb "add-symbol-file lib02_$testfile.sl $expect_out(1,string)\n"
+ #gdb_expect {
+ # -re "add symbol table.*y or n.*$"\
+ # {send_gdb "y\n"
+ # gdb_expect {
+ # -re "$gdb_prompt $" {pass "add-symbol-file"}
+ # timeout {fail "(timeout) add-symbol-file"}
+ # }}
+ # -re "$gdb_prompt $"\
+ # {fail "add-symbol-file"}
+ # timeout {fail "(timeout) add-symbol-file"}
+ #}
+
+ # Verify that we can manually load the symbols for all libraries
+ # which weren't already loaded.
+ #
+ # Warning! On a machine with little free swap space, this may
+ # fail!
+ #
+ send_gdb "sharedlibrary\n"
+ gdb_expect {
+ -re "Reading symbols from.*done.*$gdb_prompt $"\
+ {pass "sharedlibrary"}
+ -re "$gdb_prompt $" {
+ setup_xfail hppa*-*-* CHFts24108
+ fail "sharedlibrary"
+ }
+ timeout {fail "(timeout) sharedlibrary"}
+ }
+
+ # Rerun the program, this time verifying that we can set the
+ # threshhold high enough to avoid hitting it.
+ #
+ # It appears that gdb isn't freeing memory when rerunning, as one
+ # would expect. To avoid potentially hitting a virtual memory
+ # ceiling, start with a fresh gdb.
+ #
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ send_gdb "break main\n"
+ gdb_expect {
+ -re "Breakpoint \[0-9\]* at.*$gdb_prompt $"\
+ {pass "2 set break at main"}
+ -re "$gdb_prompt $"\
+ {fail "2 set break at main"}
+ timeout {fail "(timeout) 2 set break at main"}
+ }
+
+ send_gdb "set auto-solib-add 9999\n"
+ gdb_expect {
+ -re "$gdb_prompt $"\
+ {pass "set auto-solib-add threshold to practical infinity"}
+ timeout {fail "(timeout) set auto-solib-add threshold to practical infinity"}
+ }
+ send_gdb "run\n"
+ gdb_expect {
+ -re ".*warning. Symbols for some libraries have not been loaded, because.*
+ doing so would exceed the size threshold specified by auto-solib-add.*
+ To manually load symbols, use the 'sharedlibrary' command.*
+ To raise the threshold, set auto-solib-add to a larger value and rerun.*
+ the program.*$gdb_prompt $"\
+ {fail "rerun threshold at practical infinity (still hit threshold)"}
+ -re "$gdb_prompt $"\
+ {pass "rerun with threshold at practical infinity"}
+ timeout {fail "(timeout) rerun with threshold at practical infinity"}
+ }
+
+ # Rerun the program, this time altogether disabling the auto loading
+ # feature. There should be no information at all about shared
+ # libraries now.
+ #
+ # ??rehrauer: Personally, I'd call that a bug, since it doesn't give
+ # you the ability to manually load single shlibs (you need the text
+ # start address that 'info share' normall gives you). On the other
+ # hand, one can easily choose to load them all...
+ #
+ # It appears that gdb isn't freeing memory when rerunning, as one
+ # would expect. To avoid potentially hitting a virtual memory
+ # ceiling, start with a fresh gdb.
+ #
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ send_gdb "break main\n"
+ gdb_expect {
+ -re "Breakpoint \[0-9\]* at.*$gdb_prompt $"\
+ {pass "3 set break at main"}
+ -re "$gdb_prompt $"\
+ {fail "3 set break at main"}
+ timeout {fail "(timeout) 3 set break at main"}
+ }
+
+ send_gdb "set auto-solib-add 0\n"
+ gdb_expect {
+ -re "$gdb_prompt $"\
+ {pass "set auto-solib-add threshold to 0"}
+ timeout {fail "(timeout) set auto-solib-add threshold to 0"}
+ }
+ send_gdb "run\n"
+ gdb_expect {
+ -re ".*warning. Symbols for some libraries have not been loaded, because.*
+ doing so would exceed the size threshold specified by auto-solib-add.*
+ To manually load symbols, use the 'sharedlibrary' command.*
+ To raise the threshold, set auto-solib-add to a larger value and rerun.*
+ the program.*$gdb_prompt $"\
+ {fail "rerun threshold at 0 (still hit threshold)"}
+ -re "$gdb_prompt $"\
+ {pass "rerun with threshold at 0"}
+ timeout {fail "(timeout) rerun with threshold at 0"}
+ }
+
+ # Verify that we can still manually load symbols for all libraries.
+ # (We'll assume that if the last shlib's symbols are loaded, that
+ # all of them were.)
+ #
+ # Note that we set the GDB "height" variable to prevent GDB from
+ # prompting
+ #
+ # Warning! On a machine with little free swap space, this may
+ # fail!
+ #
+ send_gdb "set height 9999\n"
+ gdb_expect {
+ -re "$gdb_prompt $"\
+ {pass "set screen page height to practical infinity"}
+ timeout {fail "(timeout) set screen page height to practical infinity"}
+ }
+ send_gdb "sharedlibrary\n"
+ gdb_expect {
+ -re ".*Reading symbols from .*/lib02-so-thresh\\.sl\\.\\.\\.done\\..*$gdb_prompt $"\
+ {pass "manually load all symbols"}
+ -re "$gdb_prompt $" {
+ setup_xfail hppa*-*-* CHFts24108
+ fail "manually load all symbols (CHFts24108)"
+ }
+ timeout {fail "(timeout) manually load all symbols"}
+ }
+
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.mk gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.mk
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.mk Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.mk Thu Jul 22 17:50:22 1999
***************
*** 0 ****
--- 1,73 ----
+ # Make file for so-thresh test
+
+ OBJDIR=.
+ SRCDIR=.
+ CFLAGS = +DA1.1 -g
+
+ # This is how to build this generator.
+ genso-thresh.o: ${SRCDIR}/genso-thresh.c
+ $(CC) $(CFLAGS) -o genso-thresh.o -c ${SRCDIR}/genso-thresh.c
+ genso-thresh: genso-thresh.o
+ $(CC) $(CFLAGS) -o genso-thresh genso-thresh.o
+
+ # This is how to run this generator.
+ # This target should be made before the 'all' target,
+ # to ensure that the shlib sources are all available.
+ require_shlibs: genso-thresh
+ if ! [ -a lib00-so-thresh.c ] ; then \
+ genso-thresh ; \
+ fi
+ if ! [ -a lib01-so-thresh.c ] ; then \
+ genso-thresh ; \
+ fi
+ if ! [ -a lib02-so-thresh.c ] ; then \
+ genso-thresh ; \
+ fi
+
+ # This is how to build all the shlibs.
+ # Be sure to first make the require_shlibs target!
+ lib00-so-thresh.o: lib00-so-thresh.c
+ $(CC) $(CFLAGS) +Z -o lib00-so-thresh.o -c lib00-so-thresh.c
+ lib00-so-thresh.sl: lib00-so-thresh.o
+ $(LD) $(LDFLAGS) -b -o lib00-so-thresh.sl lib00-so-thresh.o
+ lib01-so-thresh.o: lib01-so-thresh.c
+ $(CC) $(CFLAGS) +Z -o lib01-so-thresh.o -c lib01-so-thresh.c
+ lib01-so-thresh.sl: lib01-so-thresh.o
+ $(LD) $(LDFLAGS) -b -o lib01-so-thresh.sl lib01-so-thresh.o
+ lib02-so-thresh.o: lib02-so-thresh.c
+ $(CC) $(CFLAGS) +Z -o lib02-so-thresh.o -c lib02-so-thresh.c
+ lib02-so-thresh.sl: lib02-so-thresh.o
+ $(LD) $(LDFLAGS) -b -o lib02-so-thresh.sl lib02-so-thresh.o
+
+
+
+
+ # For convenience, here's names for all pieces of all shlibs.
+ SHLIB_SOURCES = \
+ lib00-so-thresh.c \
+ lib01-so-thresh.c \
+ lib02-so-thresh.c
+
+ SHLIB_OBJECTS = $(SHLIB_SOURCES:.c=.o)
+ SHLIBS = $(SHLIB_SOURCES:.c=.sl)
+ SHLIB_NAMES = $(SHLIB_SOURCES:.c=)
+ EXECUTABLES = $(SHLIBS) genso-thresh so-thresh
+ OBJECT_FILES = $(SHLIB_OBJECTS) genso-thresh.o so-thresh.o
+
+ shlib_objects: $(SHLIB_OBJECTS)
+ shlibs: $(SHLIBS)
+
+ # This is how to build the debuggable testcase that uses the shlibs.
+ so-thresh.o: so-thresh.c
+ $(CC) $(CFLAGS) -o so-thresh.o -c so-thresh.c
+ so-thresh: shlibs so-thresh.o
+ $(LD) $(LDFLAGS) -o so-thresh -lc -L${OBJDIR} -c so-thresh.lopt /opt/langtools/lib/end.o /lib/crt0.o so-thresh.o
+
+ # Yeah, but you should first make the require_shlibs target!
+ all: so-thresh genso-thresh
+
+ # To remove everything built via this makefile...
+ clean:
+ rm -f lib0*-so-thresh.*
+ rm -f *.o genso-thresh so-thresh.lopt so-thresh.c
+ rm -f so-thresh
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.sh gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.sh
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.sh Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.sh Thu Jul 22 17:50:22 1999
***************
*** 0 ****
--- 1,34 ----
+ #!/bin/ksh
+
+ # so-thresh.sh
+ #
+ # This script is a "wrapper" to use the so-thresh.mk
+ # Makefile. See the comments in so-thresh.exp
+ # regarding why this script exists.
+
+ #set -o xtrace
+ #set -o verbose
+
+ if [ "$srcdir" = "${srcdir#/}" ]
+ then
+ srcdir="$PWD/$srcdir"
+ fi
+
+ if [ "$objdir" = "${objdir#/}" ]
+ then
+ objdir="$PWD/$objdir"
+ fi
+
+ subdir="$1"
+
+ HERE=$PWD
+ cd $subdir
+
+ MAKEFLAGS=
+ make -f ${srcdir}/${subdir}/so-thresh.mk clean require_shlibs all SRCDIR=${srcdir}/${subdir} OBJDIR=${objdir}/${subdir} > ${objdir}/${subdir}/so-thresh.make.out 2>&1
+ STATUS=$?
+
+ cd $HERE
+ echo "return STATUS is $STATUS"
+
+ exit $STATUS
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/Makefile.in gdb/testsuite/gdb.hp/gdb.compat/Makefile.in
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/Makefile.in Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.compat/Makefile.in Thu Jul 22 17:50:15 1999
***************
*** 0 ****
--- 1,27 ----
+ VPATH = @srcdir@
+ srcdir = @srcdir@
+
+ EXECUTABLES = xdb xdb-test
+
+ all:
+ @echo "Nothing to be done for all..."
+
+ info:
+ install-info:
+ dvi:
+ install:
+ uninstall: force
+ installcheck:
+ check:
+
+ clean mostlyclean:
+ -rm -f *~ *.o *.ci
+ -rm -f core $(EXECUTABLES)
+
+ distclean maintainer-clean realclean: clean
+ -rm -f Makefile config.status config.log
+ -rm -f *-init.exp
+ -rm -fr *.log summary detail *.plog *.sum *.psum site.*
+
+ Makefile : $(srcdir)/Makefile.in $(srcdir)/configure.in
+ $(SHELL) ./config.status --recheck
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/average.c gdb/testsuite/gdb.hp/gdb.compat/average.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/average.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.compat/average.c Thu Jul 22 17:50:16 1999
***************
*** 0 ****
--- 1,46 ----
+ /* This is a sample program for the HP WDB debugger. */
+
+ #include <stdio.h>
+ #include <stdlib.h>
+
+ #ifdef PROTOTYPES
+ extern int sum(int *, int, int);
+ #else
+ extern int sum();
+ #endif
+
+ #define num 10
+
+ static int my_list[num] = {3,4,2,0,2,1,8,3,6,7};
+
+ #ifdef __STDC__
+ void print_average(int *list, int low, int high)
+ #else
+ void print_average(list, low, high)
+ int *list, low, high;
+ #endif
+ {
+ int total = 0, num_elements = 0, average = 0;
+ total = sum(list, low, high);
+ num_elements = high - low; /* note this is an off-by-one bug */
+
+ average = total / num_elements;
+ printf("%10.d\n", average);
+ }
+
+ #ifdef __STDC__
+ int main(void)
+ #else
+ main ()
+ #endif
+ {
+ char c;
+ int first = 0, last = 0;
+ last = num-1;
+
+ /* Try two test cases. */
+ print_average (my_list, first, last);
+ print_average (my_list, first, last - 3);
+
+ exit(0);
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/compiler.c gdb/testsuite/gdb.hp/gdb.compat/compiler.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/compiler.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.compat/compiler.c Thu Jul 22 17:48:46 1999
***************
*** 0 ****
--- 1,31 ----
+ /* Often the behavior of any particular test depends upon what compiler was
+ used to compile the test. As each test is compiled, this file is
+ preprocessed by the same compiler used to compile that specific test
+ (different tests might be compiled by different compilers, particularly
+ if compiled at different times), and used to generate a *.ci (compiler
+ info) file for that test.
+
+ I.E., when callfuncs is compiled, a callfuncs.ci file will be generated,
+ which can then be sourced by callfuncs.exp to give callfuncs.exp access
+ to information about the compilation environment.
+
+ TODO: It might be a good idea to add expect code that tests each
+ definition made with 'set" to see if one already exists, and if so
+ warn about conflicts if it is being set to something else. */
+
+ /* This needs to be kept in sync with whatis.c and gdb.exp(get_compiler_info).
+ If this ends up being hairy, we could use a common header file. */
+
+ #if defined (__STDC__) || defined (_AIX)
+ set signed_keyword_not_used 0
+ #else
+ set signed_keyword_not_used 1
+ #endif
+
+ #if defined (__GNUC__)
+ set gcc_compiled __GNUC__
+ #else
+ set gcc_compiled 0
+ #endif
+
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/compiler.cc gdb/testsuite/gdb.hp/gdb.compat/compiler.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/compiler.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.compat/compiler.cc Thu Jul 22 17:49:19 1999
***************
*** 0 ****
--- 1,34 ----
+ /* Often the behavior of any particular test depends upon what compiler was
+ used to compile the test. As each test is compiled, this file is
+ preprocessed by the same compiler used to compile that specific test
+ (different tests might be compiled by different compilers, particularly
+ if compiled at different times), and used to generate a *.ci (compiler
+ info) file for that test.
+
+ I.E., when callfuncs is compiled, a callfuncs.ci file will be generated,
+ which can then be sourced by callfuncs.exp to give callfuncs.exp access
+ to information about the compilation environment.
+
+ TODO: It might be a good idea to add expect code that tests each
+ definition made with 'set" to see if one already exists, and if so
+ warn about conflicts if it is being set to something else. */
+
+ #if defined(__GNUC__) && __GNUC__ >= 2 && __GNUC_MINOR__ >= 6
+ set supports_template_debugging 1
+ #else
+ set supports_template_debugging 0
+ #endif
+
+ #if defined(__cplusplus)
+ set supports_template_debugging 1
+ #else
+ set supports_template_debugging 0
+ #endif
+
+ #if defined (__GNUC__)
+ set gcc_compiled __GNUC__
+ #else
+ set gcc_compiled 0
+ #endif
+
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/configure gdb/testsuite/gdb.hp/gdb.compat/configure
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/configure Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.compat/configure Thu Jul 22 17:50:15 1999
***************
*** 0 ****
--- 1,899 ----
+ #! /bin/sh
+
+ # Guess values for system-dependent variables and create Makefiles.
+ # Generated automatically using autoconf version 2.12.1
+ # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+ #
+ # This configure script is free software; the Free Software Foundation
+ # gives unlimited permission to copy, distribute and modify it.
+
+ # Defaults:
+ ac_help=
+ ac_default_prefix=/usr/local
+ # Any additions from configure.in:
+
+ # Initialize some variables set by options.
+ # The variables have the same names as the options, with
+ # dashes changed to underlines.
+ build=NONE
+ cache_file=./config.cache
+ exec_prefix=NONE
+ host=NONE
+ no_create=
+ nonopt=NONE
+ no_recursion=
+ prefix=NONE
+ program_prefix=NONE
+ program_suffix=NONE
+ program_transform_name=s,x,x,
+ silent=
+ site=
+ srcdir=
+ target=NONE
+ verbose=
+ x_includes=NONE
+ x_libraries=NONE
+ bindir='${exec_prefix}/bin'
+ sbindir='${exec_prefix}/sbin'
+ libexecdir='${exec_prefix}/libexec'
+ datadir='${prefix}/share'
+ sysconfdir='${prefix}/etc'
+ sharedstatedir='${prefix}/com'
+ localstatedir='${prefix}/var'
+ libdir='${exec_prefix}/lib'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+ infodir='${prefix}/info'
+ mandir='${prefix}/man'
+
+ # Initialize some other variables.
+ subdirs=
+ MFLAGS= MAKEFLAGS=
+ SHELL=${CONFIG_SHELL-/bin/sh}
+ # Maximum number of lines to put in a shell here document.
+ ac_max_here_lines=12
+
+ ac_prev=
+ for ac_option
+ do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+ Usage: configure [options] [host]
+ Options: [defaults in brackets after descriptions]
+ Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --version print the version of autoconf that created configure
+ Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+ EOF
+ cat << EOF
+ Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+ Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+ EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.12.1"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+ done
+
+ if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+ fi
+
+ trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+ # File descriptor usage:
+ # 0 standard input
+ # 1 file creation
+ # 2 errors and warnings
+ # 3 some systems may open it to /dev/tty
+ # 4 used on the Kubota Titan
+ # 6 checking for... messages and results
+ # 5 compiler messages saved in config.log
+ if test "$silent" = yes; then
+ exec 6>/dev/null
+ else
+ exec 6>&1
+ fi
+ exec 5>./config.log
+
+ echo "\
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+ " 1>&5
+
+ # Strip out --no-create and --no-recursion so they do not pile up.
+ # Also quote any args containing shell metacharacters.
+ ac_configure_args=
+ for ac_arg
+ do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+ done
+
+ # NLS nuisances.
+ # Only set these to C if already set. These must not be set unconditionally
+ # because not all systems understand e.g. LANG=C (notably SCO).
+ # Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+ # Non-C LC_CTYPE values break the ctype check.
+ if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+ if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+ if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+ if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+ # confdefs.h avoids OS command line length limits that DEFS can exceed.
+ rm -rf conftest* confdefs.h
+ # AIX cpp loses on an empty file, so make sure it contains at least a newline.
+ echo > confdefs.h
+
+ # A filename unique to this package, relative to the directory that
+ # configure is in, which we can look for to find out if srcdir is correct.
+ ac_unique_file=xdb1.exp
+
+ # Find the source files, if location was not specified.
+ if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+ else
+ ac_srcdir_defaulted=no
+ fi
+ if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+ fi
+ srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+ # Prefer explicitly selected file to automatically selected ones.
+ if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+ fi
+ for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+ done
+
+ if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+ else
+ echo "creating cache $cache_file"
+ > $cache_file
+ fi
+
+ ac_ext=c
+ # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ cross_compiling=$ac_cv_prog_cc_cross
+
+ if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+ ' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+ else
+ ac_n= ac_c='\c' ac_t=
+ fi
+
+
+
+ CC=${CC-cc}
+
+ ac_aux_dir=
+ for ac_dir in `cd $srcdir;pwd`/../../../.. $srcdir/`cd $srcdir;pwd`/../../../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+ done
+ if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in `cd $srcdir;pwd`/../../../.. $srcdir/`cd $srcdir;pwd`/../../../.." 1>&2; exit 1; }
+ fi
+ ac_config_guess=$ac_aux_dir/config.guess
+ ac_config_sub=$ac_aux_dir/config.sub
+ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+
+ # Do some error checking and defaulting for the host and target type.
+ # The inputs are:
+ # configure --host=HOST --target=TARGET --build=BUILD NONOPT
+ #
+ # The rules are:
+ # 1. You are not allowed to specify --host, --target, and nonopt at the
+ # same time.
+ # 2. Host defaults to nonopt.
+ # 3. If nonopt is not specified, then host defaults to the current host,
+ # as determined by config.guess.
+ # 4. Target and build default to nonopt.
+ # 5. If nonopt is not specified, then target and build default to host.
+
+ # The aliases save the names the user supplied, while $host etc.
+ # will get canonicalized.
+ case $host---$target---$nonopt in
+ NONE---*---* | *---NONE---* | *---*---NONE) ;;
+ *) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
+ esac
+
+
+ # Make sure we can run config.sub.
+ if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+ fi
+
+ echo $ac_n "checking host system type""... $ac_c" 1>&6
+ echo "configure:573: checking host system type" >&5
+
+ host_alias=$host
+ case "$host_alias" in
+ NONE)
+ case $nonopt in
+ NONE)
+ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+ else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+ fi ;;
+ *) host_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+ host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$host" 1>&6
+
+ echo $ac_n "checking target system type""... $ac_c" 1>&6
+ echo "configure:594: checking target system type" >&5
+
+ target_alias=$target
+ case "$target_alias" in
+ NONE)
+ case $nonopt in
+ NONE) target_alias=$host_alias ;;
+ *) target_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
+ target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$target" 1>&6
+
+ echo $ac_n "checking build system type""... $ac_c" 1>&6
+ echo "configure:612: checking build system type" >&5
+
+ build_alias=$build
+ case "$build_alias" in
+ NONE)
+ case $nonopt in
+ NONE) build_alias=$host_alias ;;
+ *) build_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+ build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$build" 1>&6
+
+ test "$host_alias" != "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+
+ trap '' 1 2 15
+ cat > confcache <<\EOF
+ # This file is a shell script that caches the results of configure
+ # tests run on this system so they can be shared between configure
+ # scripts and configure runs. It is not useful on other systems.
+ # If it contains results you don't want to keep, you may remove or edit it.
+ #
+ # By default, configure uses ./config.cache as the cache file,
+ # creating it if it does not exist already. You can give configure
+ # the --cache-file=FILE option to use a different cache file; that is
+ # what configure does when it calls configure scripts in
+ # subdirectories, so they share the cache.
+ # Giving --cache-file=/dev/null disables caching, for debugging configure.
+ # config.status only pays attention to the cache file if you give it the
+ # --recheck option to rerun configure.
+ #
+ EOF
+ # The following way of writing the cache mishandles newlines in values,
+ # but we know of no workaround that is simple, portable, and efficient.
+ # So, don't put newlines in cache variables' values.
+ # Ultrix sh set writes to stderr and can't be redirected directly,
+ # and sets the high bit in the cache file unless we assign to the vars.
+ (set) 2>&1 |
+ case `(ac_space=' '; set) 2>&1 | grep ac_space` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+ if cmp -s $cache_file confcache; then
+ :
+ else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+ fi
+ rm -f confcache
+
+ trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+ test "x$prefix" = xNONE && prefix=$ac_default_prefix
+ # Let make expand exec_prefix.
+ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+ # Any assignment to VPATH causes Sun make to only execute
+ # the first set of double-colon rules, so remove it if not needed.
+ # If there is a colon in the path, we need to keep it.
+ if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+ fi
+
+ trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+ # Transform confdefs.h into DEFS.
+ # Protect against shell expansion while executing Makefile rules.
+ # Protect against Makefile macro expansion.
+ cat > conftest.defs <<\EOF
+ s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+ s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
+ s%\[%\\&%g
+ s%\]%\\&%g
+ s%\$%$$%g
+ EOF
+ DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+ rm -f conftest.defs
+
+
+ # Without the "./", some shells look in PATH for config.status.
+ : ${CONFIG_STATUS=./config.status}
+
+ echo creating $CONFIG_STATUS
+ rm -f $CONFIG_STATUS
+ cat > $CONFIG_STATUS <<EOF
+ #! /bin/sh
+ # Generated automatically by configure.
+ # Run this file to recreate the current configuration.
+ # This directory was configured as follows,
+ # on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+ #
+ # $0 $ac_configure_args
+ #
+ # Compiler output produced by configure, useful for debugging
+ # configure, is in ./config.log if it exists.
+
+ ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+ for ac_option
+ do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.12.1"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+ done
+
+ ac_given_srcdir=$srcdir
+
+ trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+ EOF
+ cat >> $CONFIG_STATUS <<EOF
+
+ # Protect against being on the right side of a sed subst in config.status.
+ sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+ $ac_vpsub
+ $extrasub
+ s%@SHELL@%$SHELL%g
+ s%@CFLAGS@%$CFLAGS%g
+ s%@CPPFLAGS@%$CPPFLAGS%g
+ s%@CXXFLAGS@%$CXXFLAGS%g
+ s%@DEFS@%$DEFS%g
+ s%@LDFLAGS@%$LDFLAGS%g
+ s%@LIBS@%$LIBS%g
+ s%@exec_prefix@%$exec_prefix%g
+ s%@prefix@%$prefix%g
+ s%@program_transform_name@%$program_transform_name%g
+ s%@bindir@%$bindir%g
+ s%@sbindir@%$sbindir%g
+ s%@libexecdir@%$libexecdir%g
+ s%@datadir@%$datadir%g
+ s%@sysconfdir@%$sysconfdir%g
+ s%@sharedstatedir@%$sharedstatedir%g
+ s%@localstatedir@%$localstatedir%g
+ s%@libdir@%$libdir%g
+ s%@includedir@%$includedir%g
+ s%@oldincludedir@%$oldincludedir%g
+ s%@infodir@%$infodir%g
+ s%@mandir@%$mandir%g
+ s%@CC@%$CC%g
+ s%@host@%$host%g
+ s%@host_alias@%$host_alias%g
+ s%@host_cpu@%$host_cpu%g
+ s%@host_vendor@%$host_vendor%g
+ s%@host_os@%$host_os%g
+ s%@target@%$target%g
+ s%@target_alias@%$target_alias%g
+ s%@target_cpu@%$target_cpu%g
+ s%@target_vendor@%$target_vendor%g
+ s%@target_os@%$target_os%g
+ s%@build@%$build%g
+ s%@build_alias@%$build_alias%g
+ s%@build_cpu@%$build_cpu%g
+ s%@build_vendor@%$build_vendor%g
+ s%@build_os@%$build_os%g
+
+ CEOF
+ EOF
+
+ cat >> $CONFIG_STATUS <<\EOF
+
+ # Split the substitutions into bite-sized pieces for seds with
+ # small command number limits, like on Digital OSF/1 and HP-UX.
+ ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ ac_file=1 # Number of current file.
+ ac_beg=1 # First line for current file.
+ ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ ac_more_lines=:
+ ac_sed_cmds=""
+ while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+ done
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+ fi
+ EOF
+
+ cat >> $CONFIG_STATUS <<EOF
+
+ CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+ EOF
+ cat >> $CONFIG_STATUS <<\EOF
+ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+ # $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+ s%@configure_input@%$configure_input%g
+ s%@srcdir@%$srcdir%g
+ s%@top_srcdir@%$top_srcdir%g
+ " $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+ fi; done
+ rm -f conftest.s*
+
+ EOF
+ cat >> $CONFIG_STATUS <<EOF
+
+ EOF
+ cat >> $CONFIG_STATUS <<\EOF
+
+ exit 0
+ EOF
+ chmod +x $CONFIG_STATUS
+ rm -fr confdefs* $ac_clean_files
+ test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/configure.in gdb/testsuite/gdb.hp/gdb.compat/configure.in
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/configure.in Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.compat/configure.in Thu Jul 22 17:50:15 1999
***************
*** 0 ****
--- 1,15 ----
+ dnl Process this file file with autoconf to produce a configure script.
+ dnl This file is a shell script fragment that supplies the information
+ dnl necessary to tailor a template configure script into the configure
+ dnl script appropriate for this directory. For more information, check
+ dnl any existing configure script.
+
+ AC_PREREQ(2.5)
+ AC_INIT(xdb1.exp)
+
+ CC=${CC-cc}
+ AC_SUBST(CC)
+ AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../../../..)
+ AC_CANONICAL_SYSTEM
+
+ AC_OUTPUT(Makefile)
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/sum.c gdb/testsuite/gdb.hp/gdb.compat/sum.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/sum.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.compat/sum.c Thu Jul 22 17:50:16 1999
***************
*** 0 ****
--- 1,15 ----
+ /* This is a sample program for the HP/DDE debugger. */
+ #include <stdio.h>
+
+ #ifdef __STDC__
+ int sum(int *list, int low, int high)
+ #else
+ int sum(list, low, high)
+ int *list, low, high;
+ #endif
+ {
+ int i = 0, s = 0;
+ for (i = low; i <= high; i++)
+ s += list[i];
+ return(s);
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/xdb.c gdb/testsuite/gdb.hp/gdb.compat/xdb.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/xdb.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.compat/xdb.c Thu Jul 22 17:50:13 1999
***************
*** 0 ****
--- 1,20 ----
+ #include <stdio.h>
+
+ int callee( x )
+ int x;
+ {
+ int y = x * x;
+ return (y - 2);
+ }
+
+ main()
+ {
+ int i;
+ for (i = 1; i < 10; i++)
+ {
+ printf( "%d ", callee( i ));
+
+ }
+ printf( " Goodbye!\n" );
+
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/xdb0.c gdb/testsuite/gdb.hp/gdb.compat/xdb0.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/xdb0.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.compat/xdb0.c Thu Jul 22 17:50:13 1999
***************
*** 0 ****
--- 1,42 ----
+ #include "xdb0.h"
+
+ main ()
+ {
+ int x;
+ #ifdef usestubs
+ set_debug_traps();
+ breakpoint();
+ #endif
+ x = 0;
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ foo (x++);
+ }
+
+ static void
+ unused ()
+ {
+ /* Not used for anything */
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/xdb0.h gdb/testsuite/gdb.hp/gdb.compat/xdb0.h
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/xdb0.h Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.compat/xdb0.h Thu Jul 22 17:50:14 1999
***************
*** 0 ****
--- 1,36 ----
+ /* An include file that actually causes code to be generated in the
+ including file. This is known to cause problems on some systems. */
+
+ static void
+ foo (x)
+ int x;
+ {
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ bar (x++);
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/xdb1.c gdb/testsuite/gdb.hp/gdb.compat/xdb1.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/xdb1.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.compat/xdb1.c Thu Jul 22 17:50:14 1999
***************
*** 0 ****
--- 1,33 ----
+ void
+ bar (x)
+ int x;
+ {
+ printf ("%d\n", x);
+
+ long_line ();
+ }
+
+ static void
+ unused ()
+ {
+ /* Not used for anything */
+ }
+
+
+ /* This routine has a very long line that will break searching in older
+ versions of GDB. */
+
+ long_line ()
+ {
+ oof (67);
+
+ oof (6789);
+
+ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 5 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 10 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 15 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 20 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 25 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 30 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 35 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 40 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 45 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 50 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 55 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 60 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 65 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (1234); /* 70 */
+ }
+
+ oof (n)
+ int n;
+ {
+ return n + 1;
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/xdb1.exp gdb/testsuite/gdb.hp/gdb.compat/xdb1.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/xdb1.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.compat/xdb1.exp Thu Jul 22 17:50:14 1999
***************
*** 0 ****
--- 1,78 ----
+ # Copyright (C) 1992, 1994, 1995 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ # This file was written by Fred Fish. (fnf@cygnus.com)
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ if { [skip_hp_tests] } then { continue }
+
+ global usestubs
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "xdb"
+ set srcfile ${testfile}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ if [get_compiler_info ${binfile}] {
+ return -1;
+ }
+ if { $gcc_compiled } then { continue }
+
+ global GDBFLAGS
+ set saved_gdbflags $GDBFLAGS
+
+ set GDBFLAGS "$GDBFLAGS --xdb"
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ gdb_test "set pagination off" ""
+ gdb_test "show pagination" "State of pagination is off."
+ gdb_test "set pagination on" ""
+ gdb_test "show pagination" "State of pagination is on."
+
+ gdb_test "txbreak callee" "Breakpoint.*at.*"
+ gdb_test "info break" "Num.*Type.*Disp.*Enb.*Address.*What\r\n.*breakpoint.*del.*y.*"
+
+ gdb_test "xbreak callee" "Breakpoint.*at.*.*"
+ gdb_test "info break" "Num.*Type.*Disp.*Enb.*Address.*What\r\n.*breakpoint.*keep.*y.*"
+
+ gdb_exit
+ set GDBFLAGS $saved_gdbflags
+ return 0
+
+
+
+
+
+
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/xdb2.exp gdb/testsuite/gdb.hp/gdb.compat/xdb2.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/xdb2.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.compat/xdb2.exp Thu Jul 22 17:50:14 1999
***************
*** 0 ****
--- 1,105 ----
+ # Copyright (C) 1992, 1994, 1995 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ # This file was written by Fred Fish. (fnf@cygnus.com)
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ if { [skip_hp_tests] } then { continue }
+
+ global message
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+ set testfile "xdb"
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if { [gdb_compile "${srcdir}/${subdir}/xdb0.c" "${binfile}0.o" object {debug}] != "" } {
+ perror "Couldn't compile ${testfile}0.c to object"
+ return -1
+ }
+
+ if { [gdb_compile "${srcdir}/${subdir}/xdb1.c" "${binfile}1.o" object {debug}] != "" } {
+ perror "Couldn't compile ${testfile}1.c to object"
+ return -1
+ }
+
+ if { [gdb_compile "${binfile}0.o ${binfile}1.o" ${binfile} executable {debug}] != "" } {
+ perror "Couldn't link ${testfile}."
+ return -1
+ }
+
+ if [get_compiler_info ${binfile}] {
+ return -1;
+ }
+
+ if { $gcc_compiled } then { continue }
+
+ global GDBFLAGS
+ set saved_gdbflags $GDBFLAGS
+ set GDBFLAGS "$GDBFLAGS --xdb"
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+ gdb_test "break main" ""
+ gdb_test "run" ""
+ gdb_test "go +2" "Breakpoint.*at.*file.*xdb0\.c, line 12\.\r\nContinuing at.*\r\nmain \\(\\) at.*xdb0\.c:12\r\n12\[ \t\]+foo \\(x\\+\\+\\);"
+ gdb_test "go -2" "Note: breakpoint.*also set at pc.*\.\r\nBreakpoint.*at.*file.*xdb0\.c, line 10\.\r\nContinuing at.*\.\r\n\r\nBreakpoint.*, main \\(\\) at.*xdb0\.c:10.*"
+ gdb_test "go 16" "Breakpoint.*at.*file.*xdb0\.c, line 16\.\r\nContinuing at.*\.\r\nmain \\(\\) at.*xdb0\.c:16\r\n16\[ \t\]+foo \\(x\\+\\+\\);"
+
+ send_gdb "go bar\n"
+ gdb_expect {
+ -re ".*Line 5 is not in .main.. Jump anyway.*y or n. $" {
+ send_gdb "y\n"
+ gdb_expect {
+ -re "$gdb_prompt $"\
+ {pass "go bar"}
+ timeout {fail "(timeout) go bar"}
+ }
+ }
+ -re "Continuing at.*\.\r\nbar \\(x=0\\) at.*xdb1\.c:5" {}
+ timeout { perror "(timeout) go bar" ; return }
+ }
+
+ # Verify that GDB responds gracefully to a "go" command without
+ # an argument.
+ #
+ gdb_test "go" "Usage: go <location>"
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ gdb_test "break bar" ""
+ gdb_test "run" ""
+ gdb_test "backtrace full" ".*bar \\(x=0\\) at.*xdb1\.c:5\r\nNo locals\.\r\n.1.* in foo \\(x=1\\) at.*xdb0\.h:8\r\nNo locals\.\r\n.2.* in main \\(\\) at.*xdb0\.c:11\r\n.*x = 1"
+ gdb_test "bt 1 full" ".*bar \\(x=0\\) at.*xdb1\.c:5\r\nNo locals\.\r\n\\(More stack frames follow\.\.\.\\)"
+ gdb_test "bt full 2" ".*bar \\(x=0\\) at.*xdb1\.c:5\r\nNo locals\.\r\n.1.* in foo \\(x=1\\) at.*xdb0\.h:8\r\nNo locals\.\r\n\\(More stack frames follow\.\.\.\\)"
+
+ set GDBFLAGS $saved_gdbflags
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/xdb3.exp gdb/testsuite/gdb.hp/gdb.compat/xdb3.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.compat/xdb3.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.compat/xdb3.exp Thu Jul 22 17:50:15 1999
***************
*** 0 ****
--- 1,321 ----
+ # Copyright (C) 1998 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ if { [skip_hp_tests] } then { continue }
+
+ set testfile1 "average"
+ set testfile2 "sum"
+ set testfile "xdb-test"
+ set binfile1 ${objdir}/${subdir}/${testfile1}
+ set binfile2 ${objdir}/${subdir}/${testfile2}
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if { [gdb_compile "${srcdir}/${subdir}/average.c" "${binfile1}.o" object {debug}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ if { [gdb_compile "${srcdir}/${subdir}/sum.c" "${binfile2}.o" object {debug}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ if { [gdb_compile "${binfile1}.o ${binfile2}.o" ${binfile} executable {debug}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ if [get_compiler_info ${binfile}] {
+ return -1;
+ }
+ if { $gcc_compiled } then { continue }
+
+
+ proc xdb_reinitialize_dir { subdir } {
+ global gdb_prompt
+
+ send_gdb "D\n"
+ gdb_expect {
+ -re "Reinitialize source path to empty.*y or n. " {
+ send_gdb "y\n"
+ gdb_expect {
+ -re "Source directories searched.*$gdb_prompt $" {
+ send_gdb "D $subdir\n"
+ gdb_expect {
+ -re "Source directories searched.*$gdb_prompt $" {
+ verbose "Dir set to $subdir"
+ }
+ -re ".*$gdb_prompt $" {
+ perror "Dir \"$subdir\" failed."
+ }
+ }
+ }
+ -re ".*$gdb_prompt $" {
+ perror "Dir \"$subdir\" failed."
+ }
+ }
+ }
+ -re ".*$gdb_prompt $" {
+ perror "Dir \"$subdir\" failed."
+ }
+ }
+ }
+
+ #
+ #test_search
+ #
+ proc test_search { } {
+ gdb_test "set listsize 4" ""
+ gdb_test "list average.c:1" "1\[ \t\]+/. This is a sample .*"
+ gdb_test "/ print_average" "17\[ \t\]+void print_average\\(int \\*list.*"
+ gdb_test "/ print_average" "19\[ \t\]+void print_average\\(list, low, high\\)"
+ gdb_test "/ print_average" "42\[ \t\]+print_average \\(my_list, first, last\\);"
+ gdb_test "? print_average" "19\[ \t\]+void print_average\\(list, low, high\\)"
+ gdb_test "? sum" "9\[ \t]+extern int sum\\(\\);"
+ }
+
+ #
+ #test_viewing_loc
+ #
+ proc test_viewing_loc { } {
+ gdb_test "L" "No stack."
+ gdb_test "break main" ""
+ gdb_test "R" ""
+ gdb_test "L" "#0\[ \t\]+main \\(\\) at.*average.c:38\r\n38\[ \t\]+int first = 0, last = 0;"
+ }
+
+ #
+ #test_dir_list
+ #
+ proc test_dir_list { } {
+ gdb_test "ld" "Source directories searched: .*"
+ }
+
+ #
+ #test_list_sources
+ #
+ proc test_list_sources { } {
+ if [istarget "hppa2.0w-*-*"] {
+ gdb_test "lf" "Source files for which symbols have been read in:\r\n\r\n.*average\\.c.*Source files for which symbols will be read in on demand:\r\n\r\nglobals,.*\[se\]\[un\]\[md\]\\.c.*\[se\]\[un\]\[md\]\\.c"
+ } else {
+ gdb_test "lf" "Source files for which symbols have been read in:\r\n\r\n.*average\\.c.*\r\n\r\nSource files for which symbols will be read in on demand:\r\n\r\nglobals, end\\.c,.*sum\\.c"
+ }
+ }
+ #
+ #test_vlist
+ #
+ proc test_vlist { } {
+ gdb_test "v main" "34\[ \t\]+main \\(\\)\r\n35\[ \t\]+#endif\r\n36\[ \t\]+.\r\n37\[ \t\]+char c;"
+ }
+
+ #
+ #test_va
+ #
+ proc test_va { } {
+ if [istarget "hppa2.0w-*-*"] {
+ gdb_test "va main" "Dump of assembler code for function main:\r\n.*0x.* <main>:\[ \t\]+std %rp,-0x10\\(%sp\\)\r\n0x.* <main\\+4>:\[ \t\]+std,ma %r3,0xd0\\(%sp\\)\r\n.*0x.* <main\\+8>:\[ \t\]+std %r4,-0xc8\\(%sp\\)\r\n.*0x.* <main\\+12>:\[ \t\]+copy %ret1,%r3\r\n.*"
+ } else {
+ gdb_test "va main" "Dump of assembler code for function main:\r\n.*0x.* <main>:\[ \t\]+stw %rp,-0x14\\(%sr0,%sp\\)\r\n0x.* <main\\+4>:\[ \t\]+ldo 0x\[48\]0\\(%sp\\),%sp\r\n.*0x.* <main\\+8>:\[ \t\]+stw %r0,-0x.*\\(%sr0,%sp\\)\r\n.*0x.* <main\\+12>:\[ \t\]+stw %r0,-0x.*\\(%sr0,%sp\\)\r\n.*"
+ }
+ }
+
+ #
+ #test_list_globals
+ #
+ proc test_list_globals { } {
+ gdb_test "lg" "All defined variables:\r\n\r\nFile globals:.*"
+ # gdb_test "lg" "All defined variables:\r\n\r\nFile globals:\r\nchar __buffer.512.;\r\nint __d_eh_catch_catch;\r\nint __d_eh_catch_throw;.*"
+ }
+
+ #
+ #test_list_registers
+ #
+ proc test_list_registers { } {
+ if [istarget "hppa2.0w-*-*"] {
+ gdb_test "lr" "\[ \t\]+flags:.*r17:.*pcsqh:.*cr0:.*\r\n\[ \t\]+r1:.*r18:.*pcoqt:.*cr8:.*"
+ } else {
+ gdb_test "lr" "\[ \t\]+flags:.*r18:.*pcsqt:.*ccr:.*\r\n\[ \t\]+r1:.*r19:.*eiem:.*cr12:.*"
+ }
+ gdb_test "lr r1" "r1 .*"
+ }
+
+ #
+ #test_backtrace
+ #
+ proc test_backtrace { } {
+ gdb_test "t" "#0 main \\(\\) at.*average.c:39"
+ gdb_test "T" "#0 main \\(\\) at.*average.c:39\r\n\[ \t\]+c = *.*\r\n\[ \t\]+first = 0\r\n\[ \t\]+last = 0"
+
+ gdb_test "break sum" ""
+ gdb_test "cont" ""
+ gdb_test "next"
+
+ gdb_test "t" "#0 sum \\(list=0x.*, low=0, high=9\\) at.*sum\.c:12\r\n#1 0x.* in print_average \\(list=0x.*, low=0, high=9\\) at.*average\.c:24\r\n#2 0x.* in main \\(\\) at.*average\.c:42"
+ gdb_test "t 1" "#0 sum \\(list=0x.*, low=0, high=9\\) at.*sum\.c:12\r\n\\(More stack frames follow\.\.\.\\)"
+ gdb_test "T" "#0 sum \\(list=0x.*, low=0, high=9\\) at.*sum\.c:12\r\n\[ \t\]+i = 0\r\n\[ \t\]+s = 0\r\n#1 0x.* in print_average \\(list=0x.*, low=0, high=9\\) at.*average\.c:24\r\n\[ \t\]+total = 0\r\n\[ \t\]+num_elements = 0\r\n\[ \t\]+average = 0\r\n#2 0x.* in main \\(\\) at.*average\.c:42\r\n\[ \t\]+c = *.*\r\n\[ \t\]+first = 0\r\n\[ \t\]+last = 9"
+ gdb_test "T 1" "#0 sum \\(list=0x.*, low=0, high=9\\) at.*sum\.c:12\r\n\[ \t\]+i = 0\r\n\[ \t\]+s = 0\r\n\\(More stack frames follow\.\.\.\\)"
+
+ gdb_test "V" "#0 sum \\(list=0x.*, low=0, high=9\\) at.*sum\.c:12\r\n\\12\[ \t\]+for \\(i = low;.*\\)"
+ gdb_test "V 1" "#1 0x.* in print_average \\(list=0x.*, low=0, high=9\\) at.*average\.c:24\r\n24\[ \t\]+total = sum\\(list, low, high\\);"
+ }
+
+ #
+ # test_go
+ #
+ proc test_go { } {
+ gdb_test "break main" ""
+ gdb_test "R" ""
+
+ gdb_test "g +1" "Breakpoint.*at 0x.*: file.*average\.c, line 39\.\r\nContinuing at 0x.*\.\r\nmain \\(\\) at.*average\.c:39\r\n39\[ \t\]+last = num-1;"
+ gdb_test "g 42" "Breakpoint.*at 0x.*: file.*average\.c, line 42\.\r\nContinuing at 0x.*\.\r\nmain \\(\\) at.*average\.c:42\r\n42\[ \t\]+print_average \\(my_list, first, last\\);"
+
+ }
+
+ #
+ #test_breakpoints
+ #
+ proc test_breakpoints { } {
+ global gdb_prompt
+
+ gdb_test "sb" ""
+ gdb_test "lb" "Num.*Type.*Disp.*Enb.*Address.*What\r\n1\[ \r\]+breakpoint\[ \r\]+keep n.*in main at.*average\.c:38.*"
+ gdb_test "ab" ""
+ gdb_test "lb" "Num.*Type.*Disp.*Enb.*Address.*What\r\n1\[ \r\]+breakpoint\[ \r\]+keep y.*in main at.*average\.c:38.*"
+ gdb_test "ba sum" "Breakpoint.*at.*: file.*sum\.c, line 11\."
+ gdb_test "cont" ""
+ gdb_test "bx" "Breakpoint.*at.*: file.*sum.c, line 15\."
+ #gdb_test "bx if (1)" "Breakpoint.*at.*: file.*sum.c, line 15\."
+ gdb_test "bx 1" "Breakpoint.*at.*: file.*average.c, line 29\."
+ gdb_test "bx 1 if (1)" "Breakpoint.*at.*: file.*average.c, line 29\."
+ gdb_test "bc 1 2" "Will ignore next 2 crossings of breakpoint 1\."
+ gdb_test "lb 1" "Num.*Type.*Disp.*Enb.*Address.*What\r\n1\[ \r\]+breakpoint\[ \r\]+keep y.*in main at.*average\.c:38\r\n.*breakpoint already hit 1 time\r\n.*ignore next 2 hits.*"
+
+ send_gdb "db\n"
+ gdb_expect {
+ -re "Delete all breakpoints.*y or n. $" {
+ send_gdb "y\n"
+ exp_continue
+ }
+ -re "y\r\n$gdb_prompt $" {}
+ -re ".*$gdb_prompt $" { # This happens if there were no breakpoints
+ }
+ timeout { perror "Delete all breakpoints (timeout)" ; return }
+ }
+ send_gdb "lb\n"
+ gdb_expect {
+ -re "No breakpoints or watchpoints..*$gdb_prompt $" {}
+ -re ".*$gdb_prompt $" { perror "breakpoints not deleted" ; return }
+ timeout { perror "info breakpoints (timeout)" ; return }
+ }
+ gdb_test "xbreak" "Breakpoint.*at.*file.*sum.c, line 15."
+ gdb_test "xbreak print_average" "Breakpoint.*at.*file.*average.c, line 29."
+ gdb_test "xbreak if (1)" "Note: breakpoint.*also set at pc.*Breakpoint.*at.*file.*sum.c, line 15."
+ gdb_test "xbreak print_average if (1)" "Note: breakpoint.*also set at pc.*Breakpoint.*at.*file.*average.c, line 29."
+
+ send_gdb "lb\n"
+ gdb_expect {
+ -re "Num Type Disp Enb Address What.*breakpoint keep y.*sum.c:15.*breakpoint keep y.*average.c:29.*breakpoint keep y.*sum.c:15.*stop only if 1.*breakpoint keep y.*average.c:29.*stop only if 1.*$gdb_prompt $" {pass "lb on xbreaks"}
+ -re ".*$gdb_prompt $" { fail "breakpoints not deleted"}
+ timeout { fail "info breakpoints (timeout)" }
+ }
+
+ }
+
+ #
+ # test_signals
+ #
+ proc test_signals { } {
+ gdb_test "handle SIGTERM nostop noprint" ""
+ gdb_test "z 15 s" "Signal.*Stop.*Print.*Pass to program.*Description\r\nSIGTERM.*Yes.*Yes.*Yes.*Terminated"
+ gdb_test "z 15 r" "Signal.*Stop.*Print.*Pass to program.*Description\r\nSIGTERM.*No.*No.*Yes.*Terminated"
+ gdb_test "z 15 i" "Signal.*Stop.*Print.*Pass to program.*Description\r\nSIGTERM.*No.*No.*No.*Terminated"
+ gdb_test "z 15 r" "Signal.*Stop.*Print.*Pass to program.*Description\r\nSIGTERM.*No.*Yes.*No.*Terminated"
+ gdb_test "z 15 Q" "Signal.*Stop.*Print.*Pass to program.*Description\r\nSIGTERM.*No.*No.*No.*Terminated"
+ gdb_test "lz" "Signal.*Stop.*Print.*Pass to program.*Description\r\n\r\nSIGHUP.*Yes.*"
+ }
+
+
+
+ # Start with a fresh gdb.
+ global GDBFLAGS
+ set saved_gdbflags $GDBFLAGS
+
+ set GDBFLAGS "$GDBFLAGS --xdb"
+
+ gdb_exit
+ gdb_start
+
+ xdb_reinitialize_dir $srcdir/$subdir
+
+ gdb_load ${binfile}
+ send_gdb "set width 0\n"
+ gdb_expect -re "$gdb_prompt $"
+ test_search
+ test_viewing_loc
+ test_dir_list
+ test_list_sources
+ test_vlist
+ test_va
+ gdb_test "next"
+ gdb_test "l" "No arguments.\r\nc = *.*\r\nfirst = 0\r\nlast = 0"
+ #test_list_globals
+ test_list_registers
+ test_backtrace
+
+ # Start with a fresh gdb.
+
+ gdb_exit
+ gdb_start
+ xdb_reinitialize_dir $srcdir/$subdir
+
+ gdb_load ${binfile}
+ send_gdb "set width 0\n"
+ gdb_expect -re "$gdb_prompt $"
+ test_go
+
+
+ gdb_exit
+ gdb_start
+ xdb_reinitialize_dir $srcdir/$subdir
+
+ gdb_load ${binfile}
+ send_gdb "set width 0\n"
+ gdb_expect -re "$gdb_prompt $"
+ gdb_test "break main" ""
+ gdb_test "R" ""
+ gdb_test "S" "39\[ \t\]+last = num-1;"
+ test_breakpoints
+ test_signals
+ gdb_test "sm" ""
+ gdb_test "info set" ".*pagination: State of pagination is off.*"
+ gdb_test "am" ""
+ gdb_test "info set" ".*pagination: State of pagination is on.*"
+ gdb_exit
+
+ set GDBFLAGS $saved_gdbflags
+
+ return 0
+
+
+
+
+
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/Makefile.in gdb/testsuite/gdb.hp/gdb.defects/Makefile.in
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/Makefile.in Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.defects/Makefile.in Thu Jul 22 17:50:10 1999
***************
*** 0 ****
--- 1,27 ----
+ VPATH = @srcdir@
+ srcdir = @srcdir@
+
+ EXECUTABLES = bs14602 bs15503 solib-d solib-d1.sl solib-d2.sl
+
+ all:
+ @echo "Nothing to be done for all..."
+
+ info:
+ install-info:
+ dvi:
+ install:
+ uninstall: force
+ installcheck:
+ check:
+
+ clean mostlyclean:
+ -rm -f *~ *.o *.ci
+ -rm -f core $(EXECUTABLES)
+
+ distclean maintainer-clean realclean: clean
+ -rm -f Makefile config.status config.log
+ -rm -f *-init.exp
+ -rm -fr *.log summary detail *.plog *.sum *.psum site.*
+
+ Makefile : $(srcdir)/Makefile.in $(srcdir)/configure.in
+ $(SHELL) ./config.status --recheck
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/bs14602.c gdb/testsuite/gdb.hp/gdb.defects/bs14602.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/bs14602.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.defects/bs14602.c Thu Jul 22 17:50:11 1999
***************
*** 0 ****
--- 1,9 ----
+ /* Test file for bs14602.exp */
+
+ double v_double = 0;
+ long double v_long_double = 12345.67890;
+
+ int main () {
+ v_double = 0;
+ v_long_double = 12345.67890;
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/bs14602.exp gdb/testsuite/gdb.hp/gdb.defects/bs14602.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/bs14602.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.defects/bs14602.exp Thu Jul 22 17:50:10 1999
***************
*** 0 ****
--- 1,110 ----
+ # This file was written by Sue Kimura. (sue_kimura@hp.com)
+ #
+ # Test for CLLbs14602 -- problem with recognizing long double on 10.20.
+ #
+ # Source file: bs14602.c
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ if { [skip_hp_tests] } { continue }
+
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+
+
+ # set up appropriate compile option to recognize long double
+ set ansi_option ""
+ if [istarget "hppa*-*-*"] {
+ set ansi_option "-Ae"
+ }
+
+ set testfile bs14602
+ set srcfile ${testfile}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "$binfile" executable "debug {additional_flags=${ansi_option}}"] != "" } {
+ perror "Couldn't compile ${srcfile}"
+ return -1
+ }
+
+
+ # Start with a fresh gdb.
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load $binfile
+
+
+ # get to end of main so we can check out some stuff
+ if ![runto main] {
+ perror "couldn't run to breakpoint main"
+ continue
+ }
+
+ gdb_test "txbreak" \
+ "Breakpoint $decimal at $hex: file .*bs14602.c, line 9." \
+ "set breakpoint at end of main"
+
+ gdb_test "continue" \
+ "Continuing.\r\n$hex in main* \\(\\) at .*bs14602.c:9\r\n.*" \
+ "continue to end of main"
+
+ # test some simple things about long double
+ gdb_test "whatis v_long_double" \
+ "type = long double" \
+ "whatis v_long_double"
+
+ gdb_test "ptype v_long_double" \
+ "type = long double" \
+ "ptype v_long_double"
+
+ gdb_test "print sizeof \(long double\)" \
+ " = 16" \
+ "print sizeof long double"
+
+ gdb_test "print sizeof \(v_long_double\)" \
+ " = 16" \
+ "print sizeof v_long_double"
+
+ gdb_test "print v_long_double" \
+ " = 12345.67890000000079453457146883011" \
+ "print v_long_double - 1"
+
+ gdb_test "set variable v_long_double = 98765.43210" \
+ "" \
+ "set variable v_long_double to constant value"
+
+ gdb_test "print v_long_double" \
+ " = 98765.43210000000544823706150054932" \
+ "print v_long_double - 2"
+
+ gdb_test "set variable v_double = v_long_double" \
+ "" \
+ " set variable v_double with v_long_double"
+
+ gdb_test "print v_double" \
+ " = 98765.432100000005" \
+ " print v_double"
+
+ #reset v_long_double
+ gdb_test "set variable v_long_double = 0" \
+ "" \
+ "reset v_long_double to 0"
+
+ gdb_test "print v_long_double" \
+ " = 0" \
+ "print v_long_double - 3"
+
+ gdb_test "set variable v_long_double = v_double" \
+ "" \
+ " set variable v_long_double with v_long_double"
+
+ gdb_test "print v_long_double" \
+ " = 98765.43210000000544823706150054932" \
+ "print v_long_double - 4 "
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/bs15503.cc gdb/testsuite/gdb.hp/gdb.defects/bs15503.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/bs15503.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.defects/bs15503.cc Thu Jul 22 17:50:12 1999
***************
*** 0 ****
--- 1,52 ----
+ #include <string>
+ #include <iostream.h>
+
+ template <class T>
+ class StringTest {
+ public:
+ virtual void runTest();
+ void testFunction();
+ };
+
+ template <class T>
+ void StringTest<T>:: runTest() {
+ testFunction ();
+ }
+
+ template <class T>
+ void StringTest <T>::testFunction() {
+ // initialize s with string literal
+ cout << "in StringTest" << endl;
+ string s("I am a shot string");
+ cout << s << endl;
+
+ // insert 'r' to fix "shot"
+ s.insert(s.begin()+10,'r' );
+ cout << s << endl;
+
+ // concatenate another string
+ s += "and now a longer string";
+ cout << s << endl;
+
+ // find position where blank needs to be inserted
+ string::size_type spos = s.find("and");
+ s.insert(spos, " ");
+ cout << s << endl;
+
+ // erase the concatenated part
+ s.erase(spos);
+ cout << s << endl;
+ }
+
+ int main() {
+ StringTest<wchar_t> ts;
+ ts.runTest();
+ }
+
+ /* output:
+ I am a shot string
+ I am a short string
+ I am a short stringand now a longer string
+ I am a short string and now a longer string
+ I am a short string
+ */
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/bs15503.exp gdb/testsuite/gdb.hp/gdb.defects/bs15503.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/bs15503.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.defects/bs15503.exp Thu Jul 22 17:50:11 1999
***************
*** 0 ****
--- 1,76 ----
+ # Copyright (C) 1992 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
+ # (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. */
+
+ # Test case for CLLbs15503
+ # This file was written by Sue Kimura (sue_kimura@hp.com)
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ if { [skip_hp_tests] } { continue }
+
+ set testfile "bs15503"
+ set srcfile ${testfile}.cc
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable "debug c++"] != "" } {
+ perror "Couldn't compile ${srcfile}"
+ return -1
+ }
+
+
+ # Start with a fresh gdb.
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+
+ # Load $binfile -- there should be no warnings about "Procedure ... spans
+ # file or module boundaries", "No symbols in psymtab for file ..." or
+ # "File ... has ending address after starting address of next file..."
+
+ if [istarget "hppa2.0w-hp-hpux*" ] {
+ gdb_test "file $binfile" \
+ "Detected 64-bit executable..*Invoking .*gdb64..*Use \"run\" to continue execution." \
+ "loading $binfile"
+ } else {
+ gdb_test "file $binfile" \
+ "Reading symbols from $binfile...done." \
+ "loading $binfile"
+ }
+ # Test setting breakpoint on template function
+ #
+ gdb_test "break StringTest<wchar_t>::testFunction" \
+ "Breakpoint $decimal at $hex: file .*bs15503.cc, line 19." \
+ "break point on function"
+
+ gdb_test "run" \
+ "Starting program:.*Breakpoint $decimal, StringTest<wchar_t>::testFunction \\(this=$hex\\).*cout << \"in StringTest\" << endl;.*" \
+ "run to function breakpoint"
+
+ #restart with fresh gdb
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load $binfile
+
+ gdb_test "break 32" \
+ "Breakpoint $decimal at $hex: file .*bs15503.cc, line 32." \
+ "break point on line in function"
+
+ gdb_test "run" \
+ ".*32.*string::size_type spos = s.find\\(\"and\"\\);.*" \
+ "run to break point on line in function"
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/compiler.c gdb/testsuite/gdb.hp/gdb.defects/compiler.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/compiler.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.defects/compiler.c Thu Jul 22 17:48:46 1999
***************
*** 0 ****
--- 1,31 ----
+ /* Often the behavior of any particular test depends upon what compiler was
+ used to compile the test. As each test is compiled, this file is
+ preprocessed by the same compiler used to compile that specific test
+ (different tests might be compiled by different compilers, particularly
+ if compiled at different times), and used to generate a *.ci (compiler
+ info) file for that test.
+
+ I.E., when callfuncs is compiled, a callfuncs.ci file will be generated,
+ which can then be sourced by callfuncs.exp to give callfuncs.exp access
+ to information about the compilation environment.
+
+ TODO: It might be a good idea to add expect code that tests each
+ definition made with 'set" to see if one already exists, and if so
+ warn about conflicts if it is being set to something else. */
+
+ /* This needs to be kept in sync with whatis.c and gdb.exp(get_compiler_info).
+ If this ends up being hairy, we could use a common header file. */
+
+ #if defined (__STDC__) || defined (_AIX)
+ set signed_keyword_not_used 0
+ #else
+ set signed_keyword_not_used 1
+ #endif
+
+ #if defined (__GNUC__)
+ set gcc_compiled __GNUC__
+ #else
+ set gcc_compiled 0
+ #endif
+
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/compiler.cc gdb/testsuite/gdb.hp/gdb.defects/compiler.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/compiler.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.defects/compiler.cc Thu Jul 22 17:49:19 1999
***************
*** 0 ****
--- 1,34 ----
+ /* Often the behavior of any particular test depends upon what compiler was
+ used to compile the test. As each test is compiled, this file is
+ preprocessed by the same compiler used to compile that specific test
+ (different tests might be compiled by different compilers, particularly
+ if compiled at different times), and used to generate a *.ci (compiler
+ info) file for that test.
+
+ I.E., when callfuncs is compiled, a callfuncs.ci file will be generated,
+ which can then be sourced by callfuncs.exp to give callfuncs.exp access
+ to information about the compilation environment.
+
+ TODO: It might be a good idea to add expect code that tests each
+ definition made with 'set" to see if one already exists, and if so
+ warn about conflicts if it is being set to something else. */
+
+ #if defined(__GNUC__) && __GNUC__ >= 2 && __GNUC_MINOR__ >= 6
+ set supports_template_debugging 1
+ #else
+ set supports_template_debugging 0
+ #endif
+
+ #if defined(__cplusplus)
+ set supports_template_debugging 1
+ #else
+ set supports_template_debugging 0
+ #endif
+
+ #if defined (__GNUC__)
+ set gcc_compiled __GNUC__
+ #else
+ set gcc_compiled 0
+ #endif
+
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/configure gdb/testsuite/gdb.hp/gdb.defects/configure
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/configure Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.defects/configure Thu Jul 22 17:50:10 1999
***************
*** 0 ****
--- 1,899 ----
+ #! /bin/sh
+
+ # Guess values for system-dependent variables and create Makefiles.
+ # Generated automatically using autoconf version 2.12.1
+ # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+ #
+ # This configure script is free software; the Free Software Foundation
+ # gives unlimited permission to copy, distribute and modify it.
+
+ # Defaults:
+ ac_help=
+ ac_default_prefix=/usr/local
+ # Any additions from configure.in:
+
+ # Initialize some variables set by options.
+ # The variables have the same names as the options, with
+ # dashes changed to underlines.
+ build=NONE
+ cache_file=./config.cache
+ exec_prefix=NONE
+ host=NONE
+ no_create=
+ nonopt=NONE
+ no_recursion=
+ prefix=NONE
+ program_prefix=NONE
+ program_suffix=NONE
+ program_transform_name=s,x,x,
+ silent=
+ site=
+ srcdir=
+ target=NONE
+ verbose=
+ x_includes=NONE
+ x_libraries=NONE
+ bindir='${exec_prefix}/bin'
+ sbindir='${exec_prefix}/sbin'
+ libexecdir='${exec_prefix}/libexec'
+ datadir='${prefix}/share'
+ sysconfdir='${prefix}/etc'
+ sharedstatedir='${prefix}/com'
+ localstatedir='${prefix}/var'
+ libdir='${exec_prefix}/lib'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+ infodir='${prefix}/info'
+ mandir='${prefix}/man'
+
+ # Initialize some other variables.
+ subdirs=
+ MFLAGS= MAKEFLAGS=
+ SHELL=${CONFIG_SHELL-/bin/sh}
+ # Maximum number of lines to put in a shell here document.
+ ac_max_here_lines=12
+
+ ac_prev=
+ for ac_option
+ do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+ Usage: configure [options] [host]
+ Options: [defaults in brackets after descriptions]
+ Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --version print the version of autoconf that created configure
+ Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+ EOF
+ cat << EOF
+ Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+ Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+ EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.12.1"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+ done
+
+ if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+ fi
+
+ trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+ # File descriptor usage:
+ # 0 standard input
+ # 1 file creation
+ # 2 errors and warnings
+ # 3 some systems may open it to /dev/tty
+ # 4 used on the Kubota Titan
+ # 6 checking for... messages and results
+ # 5 compiler messages saved in config.log
+ if test "$silent" = yes; then
+ exec 6>/dev/null
+ else
+ exec 6>&1
+ fi
+ exec 5>./config.log
+
+ echo "\
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+ " 1>&5
+
+ # Strip out --no-create and --no-recursion so they do not pile up.
+ # Also quote any args containing shell metacharacters.
+ ac_configure_args=
+ for ac_arg
+ do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+ done
+
+ # NLS nuisances.
+ # Only set these to C if already set. These must not be set unconditionally
+ # because not all systems understand e.g. LANG=C (notably SCO).
+ # Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+ # Non-C LC_CTYPE values break the ctype check.
+ if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+ if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+ if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+ if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+ # confdefs.h avoids OS command line length limits that DEFS can exceed.
+ rm -rf conftest* confdefs.h
+ # AIX cpp loses on an empty file, so make sure it contains at least a newline.
+ echo > confdefs.h
+
+ # A filename unique to this package, relative to the directory that
+ # configure is in, which we can look for to find out if srcdir is correct.
+ ac_unique_file=bs14602.exp
+
+ # Find the source files, if location was not specified.
+ if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+ else
+ ac_srcdir_defaulted=no
+ fi
+ if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+ fi
+ srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+ # Prefer explicitly selected file to automatically selected ones.
+ if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+ fi
+ for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+ done
+
+ if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+ else
+ echo "creating cache $cache_file"
+ > $cache_file
+ fi
+
+ ac_ext=c
+ # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ cross_compiling=$ac_cv_prog_cc_cross
+
+ if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+ ' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+ else
+ ac_n= ac_c='\c' ac_t=
+ fi
+
+
+
+ CC=${CC-cc}
+
+ ac_aux_dir=
+ for ac_dir in `cd $srcdir;pwd`/../../../.. $srcdir/`cd $srcdir;pwd`/../../../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+ done
+ if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in `cd $srcdir;pwd`/../../../.. $srcdir/`cd $srcdir;pwd`/../../../.." 1>&2; exit 1; }
+ fi
+ ac_config_guess=$ac_aux_dir/config.guess
+ ac_config_sub=$ac_aux_dir/config.sub
+ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+
+ # Do some error checking and defaulting for the host and target type.
+ # The inputs are:
+ # configure --host=HOST --target=TARGET --build=BUILD NONOPT
+ #
+ # The rules are:
+ # 1. You are not allowed to specify --host, --target, and nonopt at the
+ # same time.
+ # 2. Host defaults to nonopt.
+ # 3. If nonopt is not specified, then host defaults to the current host,
+ # as determined by config.guess.
+ # 4. Target and build default to nonopt.
+ # 5. If nonopt is not specified, then target and build default to host.
+
+ # The aliases save the names the user supplied, while $host etc.
+ # will get canonicalized.
+ case $host---$target---$nonopt in
+ NONE---*---* | *---NONE---* | *---*---NONE) ;;
+ *) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
+ esac
+
+
+ # Make sure we can run config.sub.
+ if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+ fi
+
+ echo $ac_n "checking host system type""... $ac_c" 1>&6
+ echo "configure:573: checking host system type" >&5
+
+ host_alias=$host
+ case "$host_alias" in
+ NONE)
+ case $nonopt in
+ NONE)
+ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+ else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+ fi ;;
+ *) host_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+ host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$host" 1>&6
+
+ echo $ac_n "checking target system type""... $ac_c" 1>&6
+ echo "configure:594: checking target system type" >&5
+
+ target_alias=$target
+ case "$target_alias" in
+ NONE)
+ case $nonopt in
+ NONE) target_alias=$host_alias ;;
+ *) target_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
+ target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$target" 1>&6
+
+ echo $ac_n "checking build system type""... $ac_c" 1>&6
+ echo "configure:612: checking build system type" >&5
+
+ build_alias=$build
+ case "$build_alias" in
+ NONE)
+ case $nonopt in
+ NONE) build_alias=$host_alias ;;
+ *) build_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+ build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$build" 1>&6
+
+ test "$host_alias" != "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+
+ trap '' 1 2 15
+ cat > confcache <<\EOF
+ # This file is a shell script that caches the results of configure
+ # tests run on this system so they can be shared between configure
+ # scripts and configure runs. It is not useful on other systems.
+ # If it contains results you don't want to keep, you may remove or edit it.
+ #
+ # By default, configure uses ./config.cache as the cache file,
+ # creating it if it does not exist already. You can give configure
+ # the --cache-file=FILE option to use a different cache file; that is
+ # what configure does when it calls configure scripts in
+ # subdirectories, so they share the cache.
+ # Giving --cache-file=/dev/null disables caching, for debugging configure.
+ # config.status only pays attention to the cache file if you give it the
+ # --recheck option to rerun configure.
+ #
+ EOF
+ # The following way of writing the cache mishandles newlines in values,
+ # but we know of no workaround that is simple, portable, and efficient.
+ # So, don't put newlines in cache variables' values.
+ # Ultrix sh set writes to stderr and can't be redirected directly,
+ # and sets the high bit in the cache file unless we assign to the vars.
+ (set) 2>&1 |
+ case `(ac_space=' '; set) 2>&1 | grep ac_space` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+ if cmp -s $cache_file confcache; then
+ :
+ else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+ fi
+ rm -f confcache
+
+ trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+ test "x$prefix" = xNONE && prefix=$ac_default_prefix
+ # Let make expand exec_prefix.
+ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+ # Any assignment to VPATH causes Sun make to only execute
+ # the first set of double-colon rules, so remove it if not needed.
+ # If there is a colon in the path, we need to keep it.
+ if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+ fi
+
+ trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+ # Transform confdefs.h into DEFS.
+ # Protect against shell expansion while executing Makefile rules.
+ # Protect against Makefile macro expansion.
+ cat > conftest.defs <<\EOF
+ s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+ s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
+ s%\[%\\&%g
+ s%\]%\\&%g
+ s%\$%$$%g
+ EOF
+ DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+ rm -f conftest.defs
+
+
+ # Without the "./", some shells look in PATH for config.status.
+ : ${CONFIG_STATUS=./config.status}
+
+ echo creating $CONFIG_STATUS
+ rm -f $CONFIG_STATUS
+ cat > $CONFIG_STATUS <<EOF
+ #! /bin/sh
+ # Generated automatically by configure.
+ # Run this file to recreate the current configuration.
+ # This directory was configured as follows,
+ # on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+ #
+ # $0 $ac_configure_args
+ #
+ # Compiler output produced by configure, useful for debugging
+ # configure, is in ./config.log if it exists.
+
+ ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+ for ac_option
+ do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.12.1"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+ done
+
+ ac_given_srcdir=$srcdir
+
+ trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+ EOF
+ cat >> $CONFIG_STATUS <<EOF
+
+ # Protect against being on the right side of a sed subst in config.status.
+ sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+ $ac_vpsub
+ $extrasub
+ s%@SHELL@%$SHELL%g
+ s%@CFLAGS@%$CFLAGS%g
+ s%@CPPFLAGS@%$CPPFLAGS%g
+ s%@CXXFLAGS@%$CXXFLAGS%g
+ s%@DEFS@%$DEFS%g
+ s%@LDFLAGS@%$LDFLAGS%g
+ s%@LIBS@%$LIBS%g
+ s%@exec_prefix@%$exec_prefix%g
+ s%@prefix@%$prefix%g
+ s%@program_transform_name@%$program_transform_name%g
+ s%@bindir@%$bindir%g
+ s%@sbindir@%$sbindir%g
+ s%@libexecdir@%$libexecdir%g
+ s%@datadir@%$datadir%g
+ s%@sysconfdir@%$sysconfdir%g
+ s%@sharedstatedir@%$sharedstatedir%g
+ s%@localstatedir@%$localstatedir%g
+ s%@libdir@%$libdir%g
+ s%@includedir@%$includedir%g
+ s%@oldincludedir@%$oldincludedir%g
+ s%@infodir@%$infodir%g
+ s%@mandir@%$mandir%g
+ s%@CC@%$CC%g
+ s%@host@%$host%g
+ s%@host_alias@%$host_alias%g
+ s%@host_cpu@%$host_cpu%g
+ s%@host_vendor@%$host_vendor%g
+ s%@host_os@%$host_os%g
+ s%@target@%$target%g
+ s%@target_alias@%$target_alias%g
+ s%@target_cpu@%$target_cpu%g
+ s%@target_vendor@%$target_vendor%g
+ s%@target_os@%$target_os%g
+ s%@build@%$build%g
+ s%@build_alias@%$build_alias%g
+ s%@build_cpu@%$build_cpu%g
+ s%@build_vendor@%$build_vendor%g
+ s%@build_os@%$build_os%g
+
+ CEOF
+ EOF
+
+ cat >> $CONFIG_STATUS <<\EOF
+
+ # Split the substitutions into bite-sized pieces for seds with
+ # small command number limits, like on Digital OSF/1 and HP-UX.
+ ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ ac_file=1 # Number of current file.
+ ac_beg=1 # First line for current file.
+ ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ ac_more_lines=:
+ ac_sed_cmds=""
+ while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+ done
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+ fi
+ EOF
+
+ cat >> $CONFIG_STATUS <<EOF
+
+ CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+ EOF
+ cat >> $CONFIG_STATUS <<\EOF
+ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+ # $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+ s%@configure_input@%$configure_input%g
+ s%@srcdir@%$srcdir%g
+ s%@top_srcdir@%$top_srcdir%g
+ " $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+ fi; done
+ rm -f conftest.s*
+
+ EOF
+ cat >> $CONFIG_STATUS <<EOF
+
+ EOF
+ cat >> $CONFIG_STATUS <<\EOF
+
+ exit 0
+ EOF
+ chmod +x $CONFIG_STATUS
+ rm -fr confdefs* $ac_clean_files
+ test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/configure.in gdb/testsuite/gdb.hp/gdb.defects/configure.in
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/configure.in Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.defects/configure.in Thu Jul 22 17:50:11 1999
***************
*** 0 ****
--- 1,15 ----
+ dnl Process this file file with autoconf to produce a configure script.
+ dnl This file is a shell script fragment that supplies the information
+ dnl necessary to tailor a template configure script into the configure
+ dnl script appropriate for this directory. For more information, check
+ dnl any existing configure script.
+
+ AC_PREREQ(2.5)
+ AC_INIT(bs14602.exp)
+
+ CC=${CC-cc}
+ AC_SUBST(CC)
+ AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../../../..)
+ AC_CANONICAL_SYSTEM
+
+ AC_OUTPUT(Makefile)
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/solib-d.c gdb/testsuite/gdb.hp/gdb.defects/solib-d.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/solib-d.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.defects/solib-d.c Thu Jul 22 17:50:12 1999
***************
*** 0 ****
--- 1,6 ----
+ main()
+ {
+ function_from_primary();
+ function_from_secondary();
+ }
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/solib-d.exp gdb/testsuite/gdb.hp/gdb.defects/solib-d.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/solib-d.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.defects/solib-d.exp Thu Jul 22 17:50:12 1999
***************
*** 0 ****
--- 1,262 ----
+ # Copyright (C) 1997 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
+ # (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. */
+
+ # This file was written by srikanth (with huge chunks borrowed from old ones)
+ #
+ # Regression test for
+ #
+ # CLLbs14756
+ #
+ # o catch load command does not stop for implicit loads.
+ #
+ # CLLbs15382
+ #
+ # o sharedlibrary command ignores its argument and ends
+ # up loading every shared library there is ...
+ #
+ # CLLbs15582
+ #
+ # o info line non-existent-function dumps core
+ # o clear non-existent function dumps core
+ # o xbreak non-existent-function dumps core
+ #
+ # CLLbs15725
+ #
+ # o gdb prints static and extern variables in shlibs incorrectly.
+ #
+ # CLLbs16090
+ #
+ # o deferred breakpoints should kick in for shlibs loaded explicitly
+ # with the sharedlibrary command.
+ # o GDB confuses export stubs with actual function.
+ #
+ #
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ if { [skip_hp_tests] } { continue }
+
+ set prms_id 0
+ set bug_id 0
+
+ # are we on a target board
+ if ![isnative] {
+ return
+ }
+
+ # This test is presently only valid on HP-UX, since it requires
+ # that we use HP-UX-specific compiler & linker options to build
+ # the testcase.
+ #
+ setup_xfail "*-*-*"
+ clear_xfail "hppa*-*-*hpux*"
+
+ set prototypes 0
+ set testfile "solib-d"
+ set srcfile ${testfile}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+ set testfile1 ${objdir}/${subdir}/${testfile}1.o
+ set testfile2 ${objdir}/${subdir}/${testfile}2.o
+ set libfile1 ${objdir}/${subdir}/${testfile}1.sl
+ set libfile2 ${objdir}/${subdir}/${testfile}2.sl
+
+ # Build the shared libraries this test case needs.
+ #
+ #cd ${subdir}
+
+ if { [gdb_compile "${srcdir}/${subdir}/${testfile}1.c" "${testfile1}" object {debug additional_flags=+z}] != "" } {
+ perror "Couldn't compile ${testfile}1.c"
+ return -1
+ }
+
+ if { [gdb_compile "${srcdir}/${subdir}/${testfile}2.c" "${testfile2}" object {debug additional_flags=+z}] != ""} {
+ perror "Couldn't compile ${testfile}2.c"
+ return -1
+ }
+
+ remote_exec build "ld -b ${testfile1} -o ${libfile1}"
+ remote_exec build "ld -b ${testfile2} -o ${libfile2}"
+
+ # Build the test case
+
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile} ${libfile1} ${libfile2}" "${binfile}" executable {debug additional_flags=-Ae -Wl,-aarchive}] != "" } {
+ perror "Couldn't build ${binfile}"
+ return -1
+ }
+
+ # Start with a fresh gdb
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ # Verify that we can set a generic catchpoint on shlib loads. I.e., that
+ # we can catch any shlib load, without specifying the name.
+ #
+ gdb_test "catch load" "Catchpoint \[0-9\]* .load <any library>.*" \
+ "set generic catch load"
+
+ # Verify that implicit shlib loads are caught and reported.
+ send_gdb "run\n"
+ gdb_expect {
+ -re ".*solib-d1.*$gdb_prompt $" {
+ pass "Catch implicit load at startup"
+ }
+ -re "Program exited.*$gdb_prompt $" {
+ fail "CLLbs14756 || CLLbs16090 came back ???"
+ }
+ timeout { fail "(timeout) implicit library load" }
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ if ![runto_main] { fail "breakpoint at main did not trigger ?" }
+
+ # verify that we print globals from shlibs correctly.
+ gdb_test "p global_from_primary" " = 5678" \
+ "print global from shlib (CLLbs15725)"
+
+ gdb_test "p global_from_secondary" " = 9012" \
+ "print global from shlib (CLLbs15725)"
+
+ # verify that we print static variables from shlibs correctly.
+ if { ![runto function_from_primary] } { return }
+ gdb_test "p file_static" " = 1234" "print file static variable (CLLbs15725)"
+
+ if { ![runto function_from_secondary] } { return }
+ gdb_test "p local_static" " = 3456" "print local static variable (CLLbs15725)"
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ gdb_test "set auto-solib-add 0" "" "turn off auto shlib debug loading"
+
+ if ![runto_main] {
+ perror "C function calling tests suppressed"
+ }
+
+ # verify that "clear non-existent-symbol" does not crash
+ gdb_test "clear junkfunc" "Location not found.*" \
+ "clear non-existent function does not dump core !"
+
+ # verify that "info line non-existent-symbol" does not crash
+ gdb_test "info line junkfunc" "Location not found.*" \
+ "info line junkfunc does not dump core !"
+
+ # verify that "xbreak non-existent-symbol" does not crash
+ gdb_test "xbreak junkfunc" "Function \"junkfunc\" not defined.*" \
+ "xbreak junkfunc does not dump core !"
+
+ gdb_test "list function_from_primary" \
+ "No line number known for function_from_primary.*" \
+ "turning off auto shlib debug loading"
+
+ send_gdb "sharedlibrary solib-d1\n"
+ gdb_expect {
+ -re "Reading symbols from.*solib-d1.*$gdb_prompt $" {
+ pass "loading primary library on demand (1)"
+ }
+ -re "--Adding symbols for shared library.*solib-d1.*$gdb_prompt $" {
+ pass "loading primary library on demand (2)"
+ }
+ -re "$gdb_prompt $" { fail "loading primary library on demand (3)" }
+ timeout { fail "(timeout) loading primary library on demand" }
+ }
+
+ # make sure that load above of primary also did not pull in secondary.
+ send_gdb "list function_from_secondary\n"
+ gdb_expect {
+ -re "No symbol.*context.*$gdb_prompt $" {
+ pass "loaded only what we needed (1)"
+ }
+ -re "No line number known for function_from_secondary.*$gdb_prompt $" {
+ pass "loaded only what we needed (2)"
+ }
+ -re ".*9012.*$gdb_prompt $" { fail "Oops ! CLLbs15382 came back ?" }
+ timeout { fail "(timeout) printing global" }
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ gdb_test "set auto-solib-add 0" "" "turn off auto shlib debug loading"
+
+ gdb_test "set stop-on-solib-event 1" "" "stop-on-solib-event"
+
+ # verify that we set breakpoint on the function and not the export stub
+ # used to be that we set bp on the export stub of _start and thus miss
+ # shlib loads in some cases (where the stub exists)
+ send_gdb "run\n"
+ gdb_expect {
+ -re "Stopped due to shared library event.*$gdb_prompt $" {
+ pass "stop for shlib event"
+ }
+ -re "Program exited.*$gdb_prompt $" {
+ fail "Bug CLLbs16090 came back ?"
+ }
+ timeout { fail "(timeout) stop for shlib event " }
+ }
+
+ gdb_test "b main" "Breakpoint 1 at.*" "set breakpoint on main"
+
+ gdb_test "set stop-on-solib-event 0" "" "stop-on-solib-event (timeout)"
+
+ # verify that we set breakpoint on the function and not the export stub
+ gdb_test "cont" "Breakpoint 1.*main.*" "run to main"
+
+ # On PA64 we read in the unwind info and linker symbol table which lets
+ # us set the breakpoint and not defer it.
+ send_gdb "b garbage\n"
+ gdb_expect {
+ -re "Breakpoint.*deferred.*garbage.*library containing.*is loaded.*$gdb_prompt $" {
+ pass " set deferred breakpoint (1)"
+ }
+ -re "Breakpoint 2 at 0x.*$gdb_prompt $" {
+ pass " set deferred breakpoint (2)"
+ }
+ -re "$gdb_prompt $" { fail " set deferred breakpoint (3)" }
+ timeout { fail "(timeout) set deferred breakpoint" }
+ }
+
+ # make sure that the sharedlibrary command enables any deferred breakpoints
+ # that it should.
+ send_gdb "sharedlibrary lib\n"
+ gdb_expect {
+ -re "Reading.*solib-d1.*$gdb_prompt $" {
+ pass "load up all shared libs (1)"
+ }
+ -re "Loading.*dld.sl.*--Adding symbols.*solib-d1.*$gdb_prompt $" {
+ pass "load up all shared libs (2)"
+ }
+ -re "$gdb_prompt $" { fail "load up all libraries" }
+ timeout { fail "(timeout) load all libraries " }
+ }
+
+ # do we stop at garbage ? If yes ok.
+ gdb_test "cont" "Breakpoint.*garbage.*" "deferred breakpoint enabled"
+
+ gdb_exit
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/solib-d1.c gdb/testsuite/gdb.hp/gdb.defects/solib-d1.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/solib-d1.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.defects/solib-d1.c Thu Jul 22 17:50:12 1999
***************
*** 0 ****
--- 1,12 ----
+ static int file_static = 1234;
+ int global_from_primary = 5678;
+
+ int function_from_primary()
+ {
+ garbage();
+ }
+
+ force_generation_of_export_stub()
+ {
+ _start(); /* force main module to have an export stub for _start() */
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/solib-d2.c gdb/testsuite/gdb.hp/gdb.defects/solib-d2.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.defects/solib-d2.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.defects/solib-d2.c Thu Jul 22 17:50:13 1999
***************
*** 0 ****
--- 1,11 ----
+ int global_from_secondary = 9012;
+ int function_from_secondary()
+ {
+ static int local_static = 3456;
+ return 0;
+ }
+
+ garbage()
+ {
+ return 0;
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/Makefile.in gdb/testsuite/gdb.hp/gdb.objdbg/Makefile.in
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/Makefile.in Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/Makefile.in Thu Jul 22 17:50:24 1999
***************
*** 0 ****
--- 1,28 ----
+ VPATH = @srcdir@
+ srcdir = @srcdir@
+
+ EXECUTABLES = objdbg01/test0 objdbg01/test1 objdbg02/test \
+ objdbg03/test objdbg04/test0 objdbg04/test1
+
+ all:
+ @echo "Nothing to be done for all..."
+
+ info:
+ install-info:
+ dvi:
+ install:
+ uninstall: force
+ installcheck:
+ check:
+
+ clean mostlyclean:
+ -rm -f *~ objdbg*/*.o objdbg*/*.ci
+ -rm -f core $(EXECUTABLES)
+
+ distclean maintainer-clean realclean: clean
+ -rm -f Makefile config.status config.log
+ -rm -f *-init.exp
+ -rm -fr *.log summary detail *.plog *.sum *.psum site.*
+
+ Makefile : $(srcdir)/Makefile.in $(srcdir)/configure.in
+ $(SHELL) ./config.status --recheck
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/compiler.c gdb/testsuite/gdb.hp/gdb.objdbg/compiler.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/compiler.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/compiler.c Thu Jul 22 17:48:46 1999
***************
*** 0 ****
--- 1,31 ----
+ /* Often the behavior of any particular test depends upon what compiler was
+ used to compile the test. As each test is compiled, this file is
+ preprocessed by the same compiler used to compile that specific test
+ (different tests might be compiled by different compilers, particularly
+ if compiled at different times), and used to generate a *.ci (compiler
+ info) file for that test.
+
+ I.E., when callfuncs is compiled, a callfuncs.ci file will be generated,
+ which can then be sourced by callfuncs.exp to give callfuncs.exp access
+ to information about the compilation environment.
+
+ TODO: It might be a good idea to add expect code that tests each
+ definition made with 'set" to see if one already exists, and if so
+ warn about conflicts if it is being set to something else. */
+
+ /* This needs to be kept in sync with whatis.c and gdb.exp(get_compiler_info).
+ If this ends up being hairy, we could use a common header file. */
+
+ #if defined (__STDC__) || defined (_AIX)
+ set signed_keyword_not_used 0
+ #else
+ set signed_keyword_not_used 1
+ #endif
+
+ #if defined (__GNUC__)
+ set gcc_compiled __GNUC__
+ #else
+ set gcc_compiled 0
+ #endif
+
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/compiler.cc gdb/testsuite/gdb.hp/gdb.objdbg/compiler.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/compiler.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/compiler.cc Thu Jul 22 17:49:19 1999
***************
*** 0 ****
--- 1,34 ----
+ /* Often the behavior of any particular test depends upon what compiler was
+ used to compile the test. As each test is compiled, this file is
+ preprocessed by the same compiler used to compile that specific test
+ (different tests might be compiled by different compilers, particularly
+ if compiled at different times), and used to generate a *.ci (compiler
+ info) file for that test.
+
+ I.E., when callfuncs is compiled, a callfuncs.ci file will be generated,
+ which can then be sourced by callfuncs.exp to give callfuncs.exp access
+ to information about the compilation environment.
+
+ TODO: It might be a good idea to add expect code that tests each
+ definition made with 'set" to see if one already exists, and if so
+ warn about conflicts if it is being set to something else. */
+
+ #if defined(__GNUC__) && __GNUC__ >= 2 && __GNUC_MINOR__ >= 6
+ set supports_template_debugging 1
+ #else
+ set supports_template_debugging 0
+ #endif
+
+ #if defined(__cplusplus)
+ set supports_template_debugging 1
+ #else
+ set supports_template_debugging 0
+ #endif
+
+ #if defined (__GNUC__)
+ set gcc_compiled __GNUC__
+ #else
+ set gcc_compiled 0
+ #endif
+
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/configure gdb/testsuite/gdb.hp/gdb.objdbg/configure
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/configure Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/configure Thu Jul 22 17:50:24 1999
***************
*** 0 ****
--- 1,992 ----
+ #! /bin/sh
+
+ # Guess values for system-dependent variables and create Makefiles.
+ # Generated automatically using autoconf version 2.12.1
+ # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+ #
+ # This configure script is free software; the Free Software Foundation
+ # gives unlimited permission to copy, distribute and modify it.
+
+ # Defaults:
+ ac_help=
+ ac_default_prefix=/usr/local
+ # Any additions from configure.in:
+
+ # Initialize some variables set by options.
+ # The variables have the same names as the options, with
+ # dashes changed to underlines.
+ build=NONE
+ cache_file=./config.cache
+ exec_prefix=NONE
+ host=NONE
+ no_create=
+ nonopt=NONE
+ no_recursion=
+ prefix=NONE
+ program_prefix=NONE
+ program_suffix=NONE
+ program_transform_name=s,x,x,
+ silent=
+ site=
+ srcdir=
+ target=NONE
+ verbose=
+ x_includes=NONE
+ x_libraries=NONE
+ bindir='${exec_prefix}/bin'
+ sbindir='${exec_prefix}/sbin'
+ libexecdir='${exec_prefix}/libexec'
+ datadir='${prefix}/share'
+ sysconfdir='${prefix}/etc'
+ sharedstatedir='${prefix}/com'
+ localstatedir='${prefix}/var'
+ libdir='${exec_prefix}/lib'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+ infodir='${prefix}/info'
+ mandir='${prefix}/man'
+
+ # Initialize some other variables.
+ subdirs=
+ MFLAGS= MAKEFLAGS=
+ SHELL=${CONFIG_SHELL-/bin/sh}
+ # Maximum number of lines to put in a shell here document.
+ ac_max_here_lines=12
+
+ ac_prev=
+ for ac_option
+ do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+ Usage: configure [options] [host]
+ Options: [defaults in brackets after descriptions]
+ Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --version print the version of autoconf that created configure
+ Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+ EOF
+ cat << EOF
+ Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+ Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+ EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.12.1"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+ done
+
+ if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+ fi
+
+ trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+ # File descriptor usage:
+ # 0 standard input
+ # 1 file creation
+ # 2 errors and warnings
+ # 3 some systems may open it to /dev/tty
+ # 4 used on the Kubota Titan
+ # 6 checking for... messages and results
+ # 5 compiler messages saved in config.log
+ if test "$silent" = yes; then
+ exec 6>/dev/null
+ else
+ exec 6>&1
+ fi
+ exec 5>./config.log
+
+ echo "\
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+ " 1>&5
+
+ # Strip out --no-create and --no-recursion so they do not pile up.
+ # Also quote any args containing shell metacharacters.
+ ac_configure_args=
+ for ac_arg
+ do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+ done
+
+ # NLS nuisances.
+ # Only set these to C if already set. These must not be set unconditionally
+ # because not all systems understand e.g. LANG=C (notably SCO).
+ # Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+ # Non-C LC_CTYPE values break the ctype check.
+ if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+ if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+ if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+ if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+ # confdefs.h avoids OS command line length limits that DEFS can exceed.
+ rm -rf conftest* confdefs.h
+ # AIX cpp loses on an empty file, so make sure it contains at least a newline.
+ echo > confdefs.h
+
+ # A filename unique to this package, relative to the directory that
+ # configure is in, which we can look for to find out if srcdir is correct.
+ ac_unique_file=objdbg01.exp
+
+ # Find the source files, if location was not specified.
+ if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+ else
+ ac_srcdir_defaulted=no
+ fi
+ if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+ fi
+ srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+ # Prefer explicitly selected file to automatically selected ones.
+ if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+ fi
+ for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+ done
+
+ if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+ else
+ echo "creating cache $cache_file"
+ > $cache_file
+ fi
+
+ ac_ext=c
+ # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ cross_compiling=$ac_cv_prog_cc_cross
+
+ if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+ ' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+ else
+ ac_n= ac_c='\c' ac_t=
+ fi
+
+
+
+ CC=${CC-cc}
+
+ ac_aux_dir=
+ for ac_dir in `cd $srcdir;pwd`/../../../.. $srcdir/`cd $srcdir;pwd`/../../../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+ done
+ if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in `cd $srcdir;pwd`/../../../.. $srcdir/`cd $srcdir;pwd`/../../../.." 1>&2; exit 1; }
+ fi
+ ac_config_guess=$ac_aux_dir/config.guess
+ ac_config_sub=$ac_aux_dir/config.sub
+ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+
+ # Do some error checking and defaulting for the host and target type.
+ # The inputs are:
+ # configure --host=HOST --target=TARGET --build=BUILD NONOPT
+ #
+ # The rules are:
+ # 1. You are not allowed to specify --host, --target, and nonopt at the
+ # same time.
+ # 2. Host defaults to nonopt.
+ # 3. If nonopt is not specified, then host defaults to the current host,
+ # as determined by config.guess.
+ # 4. Target and build default to nonopt.
+ # 5. If nonopt is not specified, then target and build default to host.
+
+ # The aliases save the names the user supplied, while $host etc.
+ # will get canonicalized.
+ case $host---$target---$nonopt in
+ NONE---*---* | *---NONE---* | *---*---NONE) ;;
+ *) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
+ esac
+
+
+ # Make sure we can run config.sub.
+ if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+ fi
+
+ echo $ac_n "checking host system type""... $ac_c" 1>&6
+ echo "configure:573: checking host system type" >&5
+
+ host_alias=$host
+ case "$host_alias" in
+ NONE)
+ case $nonopt in
+ NONE)
+ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+ else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+ fi ;;
+ *) host_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+ host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$host" 1>&6
+
+ echo $ac_n "checking target system type""... $ac_c" 1>&6
+ echo "configure:594: checking target system type" >&5
+
+ target_alias=$target
+ case "$target_alias" in
+ NONE)
+ case $nonopt in
+ NONE) target_alias=$host_alias ;;
+ *) target_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
+ target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$target" 1>&6
+
+ echo $ac_n "checking build system type""... $ac_c" 1>&6
+ echo "configure:612: checking build system type" >&5
+
+ build_alias=$build
+ case "$build_alias" in
+ NONE)
+ case $nonopt in
+ NONE) build_alias=$host_alias ;;
+ *) build_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+ build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$build" 1>&6
+
+ test "$host_alias" != "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+ subdirs="objdbg01 objdbg02 objdbg03 objdbg04"
+
+ trap '' 1 2 15
+ cat > confcache <<\EOF
+ # This file is a shell script that caches the results of configure
+ # tests run on this system so they can be shared between configure
+ # scripts and configure runs. It is not useful on other systems.
+ # If it contains results you don't want to keep, you may remove or edit it.
+ #
+ # By default, configure uses ./config.cache as the cache file,
+ # creating it if it does not exist already. You can give configure
+ # the --cache-file=FILE option to use a different cache file; that is
+ # what configure does when it calls configure scripts in
+ # subdirectories, so they share the cache.
+ # Giving --cache-file=/dev/null disables caching, for debugging configure.
+ # config.status only pays attention to the cache file if you give it the
+ # --recheck option to rerun configure.
+ #
+ EOF
+ # The following way of writing the cache mishandles newlines in values,
+ # but we know of no workaround that is simple, portable, and efficient.
+ # So, don't put newlines in cache variables' values.
+ # Ultrix sh set writes to stderr and can't be redirected directly,
+ # and sets the high bit in the cache file unless we assign to the vars.
+ (set) 2>&1 |
+ case `(ac_space=' '; set) 2>&1 | grep ac_space` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+ if cmp -s $cache_file confcache; then
+ :
+ else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+ fi
+ rm -f confcache
+
+ trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+ test "x$prefix" = xNONE && prefix=$ac_default_prefix
+ # Let make expand exec_prefix.
+ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+ # Any assignment to VPATH causes Sun make to only execute
+ # the first set of double-colon rules, so remove it if not needed.
+ # If there is a colon in the path, we need to keep it.
+ if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+ fi
+
+ trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+ # Transform confdefs.h into DEFS.
+ # Protect against shell expansion while executing Makefile rules.
+ # Protect against Makefile macro expansion.
+ cat > conftest.defs <<\EOF
+ s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+ s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
+ s%\[%\\&%g
+ s%\]%\\&%g
+ s%\$%$$%g
+ EOF
+ DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+ rm -f conftest.defs
+
+
+ # Without the "./", some shells look in PATH for config.status.
+ : ${CONFIG_STATUS=./config.status}
+
+ echo creating $CONFIG_STATUS
+ rm -f $CONFIG_STATUS
+ cat > $CONFIG_STATUS <<EOF
+ #! /bin/sh
+ # Generated automatically by configure.
+ # Run this file to recreate the current configuration.
+ # This directory was configured as follows,
+ # on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+ #
+ # $0 $ac_configure_args
+ #
+ # Compiler output produced by configure, useful for debugging
+ # configure, is in ./config.log if it exists.
+
+ ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+ for ac_option
+ do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.12.1"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+ done
+
+ ac_given_srcdir=$srcdir
+
+ trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+ EOF
+ cat >> $CONFIG_STATUS <<EOF
+
+ # Protect against being on the right side of a sed subst in config.status.
+ sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+ $ac_vpsub
+ $extrasub
+ s%@SHELL@%$SHELL%g
+ s%@CFLAGS@%$CFLAGS%g
+ s%@CPPFLAGS@%$CPPFLAGS%g
+ s%@CXXFLAGS@%$CXXFLAGS%g
+ s%@DEFS@%$DEFS%g
+ s%@LDFLAGS@%$LDFLAGS%g
+ s%@LIBS@%$LIBS%g
+ s%@exec_prefix@%$exec_prefix%g
+ s%@prefix@%$prefix%g
+ s%@program_transform_name@%$program_transform_name%g
+ s%@bindir@%$bindir%g
+ s%@sbindir@%$sbindir%g
+ s%@libexecdir@%$libexecdir%g
+ s%@datadir@%$datadir%g
+ s%@sysconfdir@%$sysconfdir%g
+ s%@sharedstatedir@%$sharedstatedir%g
+ s%@localstatedir@%$localstatedir%g
+ s%@libdir@%$libdir%g
+ s%@includedir@%$includedir%g
+ s%@oldincludedir@%$oldincludedir%g
+ s%@infodir@%$infodir%g
+ s%@mandir@%$mandir%g
+ s%@CC@%$CC%g
+ s%@host@%$host%g
+ s%@host_alias@%$host_alias%g
+ s%@host_cpu@%$host_cpu%g
+ s%@host_vendor@%$host_vendor%g
+ s%@host_os@%$host_os%g
+ s%@target@%$target%g
+ s%@target_alias@%$target_alias%g
+ s%@target_cpu@%$target_cpu%g
+ s%@target_vendor@%$target_vendor%g
+ s%@target_os@%$target_os%g
+ s%@build@%$build%g
+ s%@build_alias@%$build_alias%g
+ s%@build_cpu@%$build_cpu%g
+ s%@build_vendor@%$build_vendor%g
+ s%@build_os@%$build_os%g
+
+ CEOF
+ EOF
+
+ cat >> $CONFIG_STATUS <<\EOF
+
+ # Split the substitutions into bite-sized pieces for seds with
+ # small command number limits, like on Digital OSF/1 and HP-UX.
+ ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ ac_file=1 # Number of current file.
+ ac_beg=1 # First line for current file.
+ ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ ac_more_lines=:
+ ac_sed_cmds=""
+ while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+ done
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+ fi
+ EOF
+
+ cat >> $CONFIG_STATUS <<EOF
+
+ CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+ EOF
+ cat >> $CONFIG_STATUS <<\EOF
+ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+ # $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+ s%@configure_input@%$configure_input%g
+ s%@srcdir@%$srcdir%g
+ s%@top_srcdir@%$top_srcdir%g
+ " $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+ fi; done
+ rm -f conftest.s*
+
+ EOF
+ cat >> $CONFIG_STATUS <<EOF
+
+ EOF
+ cat >> $CONFIG_STATUS <<\EOF
+
+ exit 0
+ EOF
+ chmod +x $CONFIG_STATUS
+ rm -fr confdefs* $ac_clean_files
+ test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
+ if test "$no_recursion" != yes; then
+
+ # Remove --cache-file and --srcdir arguments so they do not pile up.
+ ac_sub_configure_args=
+ ac_prev=
+ for ac_arg in $ac_configure_args; do
+ if test -n "$ac_prev"; then
+ ac_prev=
+ continue
+ fi
+ case "$ac_arg" in
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ ;;
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ ;;
+ *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;;
+ esac
+ done
+
+ for ac_config_dir in objdbg01 objdbg02 objdbg03 objdbg04; do
+
+ # Do not complain, so a configure script can configure whichever
+ # parts of a large source tree are present.
+ if test ! -d $srcdir/$ac_config_dir; then
+ continue
+ fi
+
+ echo configuring in $ac_config_dir
+
+ case "$srcdir" in
+ .) ;;
+ *)
+ if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :;
+ else
+ { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; }
+ fi
+ ;;
+ esac
+
+ ac_popdir=`pwd`
+ cd $ac_config_dir
+
+ # A "../" for each directory in /$ac_config_dir.
+ ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'`
+
+ case "$srcdir" in
+ .) # No --srcdir option. We are building in place.
+ ac_sub_srcdir=$srcdir ;;
+ /*) # Absolute path.
+ ac_sub_srcdir=$srcdir/$ac_config_dir ;;
+ *) # Relative path.
+ ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;;
+ esac
+
+ # Check for guested configure; otherwise get Cygnus style configure.
+ if test -f $ac_sub_srcdir/configure; then
+ ac_sub_configure=$ac_sub_srcdir/configure
+ elif test -f $ac_sub_srcdir/configure.in; then
+ ac_sub_configure=$ac_configure
+ else
+ echo "configure: warning: no configuration information is in $ac_config_dir" 1>&2
+ ac_sub_configure=
+ fi
+
+ # The recursion is here.
+ if test -n "$ac_sub_configure"; then
+
+ # Make the cache file name correct relative to the subdirectory.
+ case "$cache_file" in
+ /*) ac_sub_cache_file=$cache_file ;;
+ *) # Relative path.
+ ac_sub_cache_file="$ac_dots$cache_file" ;;
+ esac
+
+ echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir"
+ # The eval makes quoting arguments work.
+ if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir
+ then :
+ else
+ { echo "configure: error: $ac_sub_configure failed for $ac_config_dir" 1>&2; exit 1; }
+ fi
+ fi
+
+ cd $ac_popdir
+ done
+ fi
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/configure.in gdb/testsuite/gdb.hp/gdb.objdbg/configure.in
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/configure.in Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/configure.in Thu Jul 22 17:50:24 1999
***************
*** 0 ****
--- 1,16 ----
+ dnl Process this file file with autoconf to produce a configure script.
+ dnl This file is a shell script fragment that supplies the information
+ dnl necessary to tailor a template configure script into the configure
+ dnl script appropriate for this directory. For more information, check
+ dnl any existing configure script.
+
+ AC_PREREQ(2.5)
+ AC_INIT(objdbg01.exp)
+
+ CC=${CC-cc}
+ AC_SUBST(CC)
+ AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../../../..)
+ AC_CANONICAL_SYSTEM
+ AC_CONFIG_SUBDIRS(objdbg01 objdbg02 objdbg03 objdbg04)
+
+ AC_OUTPUT(Makefile)
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x1.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x1.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x1.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x1.cc Thu Jul 22 17:50:25 1999
***************
*** 0 ****
--- 1,25 ----
+ #include <stdio.h>
+ #include "x3.h"
+
+ extern void foo();
+
+ extern int acomm;
+
+ int main3()
+ {
+ return 1;
+ }
+
+ int main2()
+ {
+ return 0;
+ }
+
+ int main()
+ {
+ acomm = 1;
+ (new Info<PP>)->p(new PP);
+ foo();
+
+ return 0;
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x2.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x2.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x2.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x2.cc Thu Jul 22 17:50:25 1999
***************
*** 0 ****
--- 1,14 ----
+ #include "x3.h"
+ #include <stdio.h>
+
+ int acomm;
+
+ void PP::print()
+ {
+ printf("In PP::print()\n");
+ }
+
+ void QQ::print()
+ {
+ printf("In QQ::print()\n");
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x3.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x3.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x3.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x3.cc Thu Jul 22 17:50:25 1999
***************
*** 0 ****
--- 1,7 ----
+ #include "x3.h"
+
+ void foo()
+ {
+ (new Info<PP>)->p(new PP);
+ (new Info<QQ>)->p(new QQ);
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x3.h gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x3.h
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x3.h Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x3.h Thu Jul 22 17:50:25 1999
***************
*** 0 ****
--- 1,22 ----
+
+ template <class T>
+ class Info {
+ public:
+ void p(T *x);
+ };
+
+ template <class T>
+ void Info<T>::p(T *x)
+ {
+ x->print();
+ }
+
+ class PP {
+ public:
+ void print();
+ };
+
+ class QQ {
+ public:
+ void print();
+ };
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01.exp gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01.exp Thu Jul 22 17:50:26 1999
***************
*** 0 ****
--- 1,212 ----
+ # Test reading debug information from in object files.
+
+ if { [skip_hp_tests] } { continue }
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ verbose "HPUX test ignored for non-hppa targets."
+ return 0
+ }
+
+ set testfile "test"
+ set srcsubdir ${srcdir}/${subdir}/objdbg01
+ set toolssubdir ${srcdir}/${subdir}/tools
+ set objdbgdir ${objdir}/${subdir}/objdbg01
+ set binfile ${objdbgdir}/${testfile}
+ set symaddrfile ${toolssubdir}/symaddr
+
+ if { [gdb_compile "${toolssubdir}/test-objdbg.cc" "${objdbgdir}/test-objdbg.o" object "debug c++ {additional_flags=-I${toolssubdir} +objdebug}"] != "" } {
+ gdb_suppress_entire_file "WARNING: +objdebug option is not supported in this compiler version, test ignored."
+ }
+
+ if { [gdb_compile "${srcsubdir}/x1.cc" "${objdbgdir}/x1.o" object "debug c++ {additional_flags=-I${srcsubdir} +objdebug}"] != "" } {
+ perror "Couldn't compile x1.cc"
+ return -1
+ }
+
+ if { [gdb_compile "${srcsubdir}/x2.cc" "${objdbgdir}/x2.o" object "debug c++ {additional_flags=-I${srcsubdir} +objdebug}"] != "" } {
+ perror "Couldn't compile x2.cc"
+ return -1
+ }
+
+ if { [gdb_compile "${srcsubdir}/x3.cc" "${objdbgdir}/x3.o" object "debug c++ {additional_flags=-I${srcsubdir} +objdebug}"] != "" } {
+ perror "Couldn't compile x3.cc"
+ return -1
+ }
+
+ if { [gdb_compile "${objdbgdir}/x1.o ${objdbgdir}/x2.o ${objdbgdir}/x3.o" "${binfile}0" executable "debug c++ {additional_flags=-I${srcsubdir} +objdebug}"] != "" } {
+ perror "Couldn't compile ${binfile}0"
+ return -1
+ }
+
+ if {[gdb_compile "${objdbgdir}/x3.o ${objdbgdir}/x2.o ${objdbgdir}/x1.o" "${binfile}1" executable "debug c++ {additional_flags=-I${srcsubdir} +objdebug}"] != "" } {
+ perror "Couldn't compile ${binfile}1"
+ return -1
+ }
+
+ # Test two executables. The first has x1.cc linked first, the second
+ # has x3.cc linked first. The difference is that in the first one,
+ # the Info<PP> instantiation from x1.cc is taken, in the second, its
+ # from x3.cc.
+
+ for {set filenum 0} {$filenum < 2} {incr filenum 1} {
+
+ # Lets test some commons
+ # Need to restart each to to make sure objects are not loaded
+ # Also cross check the address with what is actually in the
+ # object file (call the executable ${symaddrfile} to retrieve the
+ # information).
+
+ set exec_output [lindex [remote_exec build "${symaddrfile} ${binfile}${filenum} acomm"] 1]
+ regsub -all "\[\r\n\]" ${exec_output} "" exec_output
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir ${srcsubdir}
+ gdb_load ${binfile}${filenum}
+ gdb_test "p &acomm" "..* = \\(int \[*\]\\) 0x${exec_output}.*"
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir ${srcsubdir}
+ gdb_load ${binfile}${filenum}
+ gdb_test "b main" "Breakpoint \[0-9\]+ at 0x\[0-9a-f\]+: file ..*/x1.cc, line 20."
+ gdb_test "run" "Starting program:.*Breakpoint \[0-9\]+, main .*/x1.cc:20.*20.*acomm.*=.*1.*"
+ gdb_test "s 1" "21.*"
+ gdb_test "p acomm" ".* = 1.*"
+ gdb_test "p &acomm" "..* = \\(int \[*\]\\) 0x${exec_output}.*"
+
+ # Step through each line.
+ # Do this three times.
+ # First round: Test that things are okay after printing commons
+ # above.
+ # Second round: Restart gdb and make sure we can walk through
+ # Third round: Do NOT restrart gdb to verify that the debug information
+ # was not messed up by loading additional object files from
+ # the first run through.
+ for {set i 0} {$i < 3} {incr i 1} {
+ if $i==1 then {
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir ${srcsubdir}
+ gdb_load ${binfile}${filenum}
+ }
+ if $i!=2 then {
+ gdb_test "b main" \
+ "Breakpoint \[0-9\]+ at 0x\[0-9a-f\]+: file ..*/x1.cc, line 20."
+ }
+ if $i!=0 then {
+ gdb_test "run" \
+ "Starting program:.*Breakpoint \[0-9\]+, main .*/x1.cc:20.*"
+ gdb_test "s 1" "21.*"
+ }
+ gdb_test "s 1" "Info<PP>::p .*/x3.h:11.*"
+ gdb_test "s 1" "PP::print .*/x2.cc:8.*"
+ gdb_test "s 1" ".*9.*"
+ gdb_test "s 1" "Info<PP>::p .*/x3.h:12.*"
+ gdb_test "s 1" "main .*/x1.cc:22.*"
+ gdb_test "s 1" "foo .*/x3.cc:5.*"
+ gdb_test "s 1" "Info<PP>::p .*/x3.h:11.*"
+ gdb_test "s 1" "PP::print .*/x2.cc:8.*"
+ gdb_test "s 1" ".*9.*"
+ gdb_test "s 1" "Info<PP>::p .*/x3.h:12.*"
+ gdb_test "s 1" "foo .*/x3.cc:6.*"
+ gdb_test "s 1" "Info<QQ>::p .*/x3.h:11.*"
+ gdb_test "s 1" "QQ::print .*/x2.cc:13.*"
+ gdb_test "s 1" ".*14.*"
+ gdb_test "s 1" "Info<QQ>::p .*/x3.h:12.*"
+ gdb_test "s 1" "foo .*/x3.cc:7.*"
+ gdb_test "s 1" "main .*/x1.cc:24.*"
+ gdb_test "s 1" ".*25.*"
+ if [istarget "hppa2.0w-*-*"] {
+ gdb_test "s 1" "0x\[0-9a-f\]+ in .*"
+ gdb_test "c" ".*Program exited normally.*"
+ } else {
+ gdb_test "s 1" "0x\[0-9a-f\]+ in _start .*"
+ gdb_test "s 1" ".*Program exited normally.*"
+ }
+ }
+
+ # Test various ptypes, and combinations of them
+ # Test things multiple times in each set to make sure that the debug
+ # information did not get messed up.
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir ${srcsubdir}
+ gdb_load ${binfile}${filenum}
+ gdb_test "ptype QQ" "type = (class |)QQ {..*void print( |)..*}.*"
+ gdb_test "ptype PP" "type = (class |)PP {..*void print( |)..*}.*"
+ gdb_test "ptype QQ" "type = (class |)QQ {..*void print( |)..*}.*"
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir ${srcsubdir}
+ gdb_load ${binfile}${filenum}
+ gdb_test "ptype PP" "type = (class |)PP {..*void print( |)..*}.*"
+ gdb_test "ptype QQ" "type = (class |)QQ {..*void print( |)..*}.*"
+ gdb_test "ptype PP" "type = (class |)PP {..*void print( |)..*}.*"
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir ${srcsubdir}
+ gdb_load ${binfile}${filenum}
+ gdb_test "ptype Info<QQ>" "type = (class |)Info<QQ> {..*void p( |)..*}.*"
+ gdb_test "ptype Info<PP>" "type = (class |)Info<PP> {..*void p( |)..*}.*"
+ gdb_test "ptype Info<QQ>" "type = (class |)Info<QQ> {..*void p( |)..*}.*"
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir ${srcsubdir}
+ gdb_load ${binfile}${filenum}
+ gdb_test "ptype Info<PP>" "type = (class |)Info<PP> {..*void p( |)..*}.*"
+ gdb_test "ptype Info<QQ>" "type = (class |)Info<QQ> {..*void p( |)..*}.*"
+ gdb_test "ptype Info<PP>" "type = (class |)Info<PP> {..*void p( |)..*}.*"
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir ${srcsubdir}
+ gdb_load ${binfile}${filenum}
+ gdb_test "ptype Info" "type = template <..*> (class |)Info {..*}.*"
+ gdb_test "ptype Info<PP>" "type = (class |)Info<PP> {..*void p( |)..*}.*"
+ gdb_test "ptype Info<QQ>" "type = (class |)Info<QQ> {..*void p( |)..*}.*"
+ gdb_test "ptype Info" "type = template <..*> (class |)Info {..*}.*"
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir ${srcsubdir}
+ gdb_load ${binfile}${filenum}
+ gdb_test "ptype class QQ" "type = (class |)QQ {..*void print( |)..*}.*"
+ gdb_test "ptype class PP" "type = (class |)PP {..*void print( |)..*}.*"
+ gdb_test "ptype class QQ" "type = (class |)QQ {..*void print( |)..*}.*"
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir ${srcsubdir}
+ gdb_load ${binfile}${filenum}
+ gdb_test "ptype class PP" "type = (class |)PP {..*void print( |)..*}.*"
+ gdb_test "ptype class QQ" "type = (class |)QQ {..*void print( |)..*}.*"
+ gdb_test "ptype class PP" "type = (class |)PP {..*void print( |)..*}.*"
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir ${srcsubdir}
+ gdb_load ${binfile}${filenum}
+ gdb_test "ptype class Info<QQ>" \
+ "type = (class |)Info<QQ> {..*void p( |)..*}.*"
+ gdb_test "ptype class Info<PP>" \
+ "type = (class |)Info<PP> {..*void p( |)..*}.*"
+ gdb_test "ptype class Info<QQ>" \
+ "type = (class |)Info<QQ> {..*void p( |)..*}.*"
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir ${srcsubdir}
+ gdb_load ${binfile}${filenum}
+ gdb_test "ptype class Info<PP>" \
+ "type = (class |)Info<PP> {..*void p( |)..*}.*"
+ gdb_test "ptype class Info<QQ>" \
+ "type = (class |)Info<QQ> {..*void p( |)..*}.*"
+ gdb_test "ptype class Info<PP>" \
+ "type = (class |)Info<PP> {..*void p( |)..*}.*"
+ }
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x1.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x1.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x1.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x1.cc Thu Jul 22 17:50:26 1999
***************
*** 0 ****
--- 1,16 ----
+ #include <stdio.h>
+
+ extern void foo1();
+ extern void foo3();
+
+ struct foo_type;
+
+ int main()
+ {
+ struct foo_type *x;
+
+ printf("In main.\n");
+ foo1();
+ foo3();
+ return 0;
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x2.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x2.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x2.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x2.cc Thu Jul 22 17:50:26 1999
***************
*** 0 ****
--- 1,17 ----
+ #include <stdio.h>
+
+ struct foo_type {
+ int t1;
+ int t2;
+ };
+
+ static void foo2()
+ {
+ printf("In foo2.\n");
+ }
+
+ void foo1()
+ {
+ printf("In foo1.\n");
+ foo2();
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x3.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x3.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x3.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x3.cc Thu Jul 22 17:50:27 1999
***************
*** 0 ****
--- 1,6 ----
+ #include <stdio.h>
+
+ void foo3()
+ {
+ printf("In foo3.\n");
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02.exp gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02.exp Thu Jul 22 17:50:27 1999
***************
*** 0 ****
--- 1,75 ----
+ # Test reading debug information from in object files.
+
+ if { [skip_hp_tests] } { continue }
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ verbose "HPUX test ignored for non-hppa targets."
+ return 0
+ }
+
+ set testfile "test"
+ set srcsubdir ${srcdir}/${subdir}/objdbg02
+ set objdbgdir ${objdir}/${subdir}/objdbg02
+ set binfile ${objdbgdir}/${testfile}
+ set toolssubdir ${srcdir}/${subdir}/tools
+
+ if { [gdb_compile "${toolssubdir}/test-objdbg.cc" "${objdbgdir}/test-objdbg.o" object "debug c++ {additional_flags=-I${toolssubdir} +objdebug}"] != "" } {
+ gdb_suppress_entire_file "WARNING: +objdebug option is not supported in this compiler version, test ignored."
+ }
+
+ if { [gdb_compile "${srcsubdir}/x1.cc" "${objdbgdir}/x1.o" object "debug c++ {additional_flags=-I${srcsubdir} +objdebug}"] != "" } {
+ perror "Couldn't compile x1.cc"
+ return -1
+ }
+
+ if { [gdb_compile "${srcsubdir}/x2.cc" "${objdbgdir}/x2.o" object "debug c++ {additional_flags=-I${srcsubdir} +objdebug}"] != "" } {
+ perror "Couldn't compile x2.cc"
+ return -1
+ }
+
+ if { [gdb_compile "${srcsubdir}/x3.cc" "${objdbgdir}/x3.o" object "debug c++ {additional_flags=-I${srcsubdir} +objdebug}"] != "" } {
+ perror "Couldn't compile x3.cc"
+ return -1
+ }
+
+ remote_exec build "rm -f ${objdbgdir}/test.a"
+ set status [remote_exec build "ar cr ${objdbgdir}/test.a ${objdbgdir}/x2.o ${objdbgdir}/x3.o"]
+ if { [lindex $status 0] != 0 } {
+ perror "Couldn't compile test.a"
+ return -1
+ }
+ remote_exec build "rm -f ${objdbgdir}/x2.o ${objdbgdir}/x3.o"
+
+ if { [gdb_compile "${objdbgdir}/x1.o ${objdbgdir}/test.a" "$binfile" executable "debug c++ {additional_flags=-I${srcsubdir} +objdebug}"] != "" } {
+ perror "Couldn't compile ${binfile}"
+ return -1
+ }
+
+ # Test loading debug information from an archive file
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir ${srcsubdir}
+ gdb_load ${binfile}
+
+ gdb_test "b main" "Breakpoint \[0-9\]+ at 0x\[0-9a-f\]+: file ..*/x1.cc, line 12."
+ gdb_test "run" "Starting program:.*Breakpoint \[0-9\]+, main .*/x1.cc:12.*"
+ gdb_test "s 1" ".*13.*"
+ gdb_test "s 1" "foo1 .*/x2.cc:15.*"
+ gdb_test "s 1" ".*16.*"
+ gdb_test "s 1" "foo2 .*/x2.cc:10.*"
+ gdb_test "s 1" ".*11.*"
+ gdb_test "s 1" "foo1 .*/x2.cc:17.*"
+ gdb_test "s 1" "main .*/x1.cc:14.*"
+ gdb_test "s 1" "foo3 .*/x3.cc:5.*"
+ gdb_test "s 1" ".*6.*"
+ gdb_test "s 1" "main .*/x1.cc:15.*"
+ gdb_test "s 1" ".*16.*"
+ if [istarget "hppa2.0w-*-*"] {
+ gdb_test "s 1" "0x\[0-9a-f\]+ in .*START.*"
+ gdb_test "c" ".*Program exited normally.*"
+ } else {
+ gdb_test "s 1" "0x\[0-9a-f\]+ in _start .*"
+ gdb_test "s 1" ".*Program exited normally.*"
+ }
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x1.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x1.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x1.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x1.cc Thu Jul 22 17:50:27 1999
***************
*** 0 ****
--- 1,15 ----
+ #include <stdio.h>
+
+ extern int foo();
+ extern int common3;
+ extern int data3;
+ extern int common11;
+ extern int data11;
+
+ int main()
+ {
+ common11 = 11;
+ printf("In main: %d %d %d\n", data3, common3, foo(), common11, data11);
+
+ return 0;
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x2.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x2.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x2.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x2.cc Thu Jul 22 17:50:27 1999
***************
*** 0 ****
--- 1,7 ----
+ #include <stdio.h>
+
+ int common10;
+ int common11;
+
+ int data10 = 10;
+ int data11 = 11;
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x3.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x3.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x3.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x3.cc Thu Jul 22 17:50:28 1999
***************
*** 0 ****
--- 1,21 ----
+ #include <stdio.h>
+
+ int common1;
+ int common2;
+ int common3;
+ static int common4;
+
+ int data1 = 1;
+ int data2 = 2;
+ int data3 = 3;
+ static int data4 = 4;
+
+ int foo()
+ {
+ common1 = 1;
+ common2 = 2;
+ common3 = 3;
+ common4 = 4;
+
+ return data1 + data2 + data3 + data4 + common1 + common2 + common3 + common4;
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03.exp gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03.exp Thu Jul 22 17:50:28 1999
***************
*** 0 ****
--- 1,154 ----
+ # Test reading debug information from in object files.
+
+ if { [skip_hp_tests] } { continue }
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ verbose "HPUX test ignored for non-hppa targets."
+ return 0
+ }
+
+ set testfile "test"
+ set srcsubdir ${srcdir}/${subdir}/objdbg03
+ set objdbgdir ${objdir}/${subdir}/objdbg03
+ set binfile ${objdbgdir}/${testfile}
+ set toolssubdir ${srcdir}/${subdir}/tools
+ if [istarget "hppa2.0w-*-*"] {
+ set symaddrfile ${toolssubdir}/symaddr.pa64
+ } else {
+ set symaddrfile ${toolssubdir}/symaddr
+ }
+
+ if { [gdb_compile "${toolssubdir}/test-objdbg.cc" "${objdbgdir}/test-objdbg.o" object "debug c++ {additional_flags=-I${toolssubdir} +objdebug}"] != "" } {
+ gdb_suppress_entire_file "WARNING: +objdebug option is not supported in this compiler version, test ignored."
+ }
+
+ if { [gdb_compile "${srcsubdir}/x1.cc" "${objdbgdir}/x1.o" object "debug c++ {additional_flags=-I${srcsubdir} +objdebug}"] != "" } {
+ perror "Couldn't compile x1.cc"
+ return -1
+ }
+
+ if { [gdb_compile "${srcsubdir}/x2.cc" "${objdbgdir}/x2.o" object "debug c++ {additional_flags=-I${srcsubdir} +objdebug}"] != "" } {
+ perror "Couldn't compile x2.cc"
+ return -1
+ }
+
+ if { [gdb_compile "${srcsubdir}/x3.cc" "${objdbgdir}/x3.o" object "debug c++ {additional_flags=-I${srcsubdir} +objdebug}"] != "" } {
+ perror "Couldn't compile x3.cc"
+ return -1
+ }
+
+ if { [gdb_compile "${objdbgdir}/x1.o ${objdbgdir}/x2.o ${objdbgdir}/x3.o" "${binfile}" executable "debug c++ {additional_flags=-I${srcsubdir} +objdebug}"] != "" } {
+ perror "Couldn't compile ${binfile}"
+ return -1
+ }
+
+ #
+ # Test some normal commons
+ #
+
+ # Print the types
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir ${srcsubdir}
+ gdb_load ${binfile}
+
+ gdb_test "ptype common1" "type = int"
+ gdb_test "ptype common2" "type = int"
+ gdb_test "ptype common3" "type = int"
+ gdb_test "ptype data1" "type = int"
+ gdb_test "ptype data2" "type = int"
+ gdb_test "ptype data3" "type = int"
+ gdb_test "ptype common11" "type = int"
+ gdb_test "ptype common10" "type = int"
+ gdb_test "ptype data10" "type = int"
+ gdb_test "ptype data11" "type = int"
+
+ # Print the values
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir ${srcsubdir}
+ gdb_load ${binfile}
+
+ gdb_test "b main" "Breakpoint \[0-9\]+ at 0x\[0-9a-f\]+: file ..*/x1.cc, line 11."
+ gdb_test "run" "Starting program:.*Breakpoint \[0-9\]+, main .*/x1.cc:11.*"
+ gdb_test "p data1" "..* = 1"
+ gdb_test "p data2" "..* = 2"
+ gdb_test "p data3" "..* = 3"
+ gdb_test "p data10" "..* = 10"
+ gdb_test "p data11" "..* = 11"
+ gdb_test "n" ".*12.*"
+ gdb_test "p common11" "..* = 11"
+
+ gdb_test "s 1" "foo .*/x3.cc:15.*"
+ gdb_test "s 4" ".*20.*"
+ gdb_test "p data4" "..* = 4"
+ gdb_test "p common4" "..* = 4"
+ gdb_test "n" ".*21.*"
+
+ gdb_test "n" "main .*/x1.cc:14.*"
+ gdb_test "p common1" "..* = 1"
+ gdb_test "p common2" "..* = 2"
+ gdb_test "p common3" "..* = 3"
+
+ # Verify that addresses match those in the executable
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir ${srcsubdir}
+ gdb_load ${binfile}
+
+ set exec_output_data1 [lindex [remote_exec build "${symaddrfile} ${binfile} data1"] 1]
+ regsub -all "\[\r\n\]" ${exec_output_data1} "" exec_output_data1
+
+ set exec_output_data2 [lindex [remote_exec build "${symaddrfile} ${binfile} data2"] 1]
+ regsub -all "\[\r\n\]" ${exec_output_data2} "" exec_output_data2
+
+ set exec_output_data3 [lindex [remote_exec build "${symaddrfile} ${binfile} data3"] 1]
+ regsub -all "\[\r\n\]" ${exec_output_data3} "" exec_output_data3
+
+ set exec_output_data10 [lindex [remote_exec build "${symaddrfile} ${binfile} data10"] 1]
+ regsub -all "\[\r\n\]" ${exec_output_data10} "" exec_output_data10
+
+ set exec_output_data11 [lindex [remote_exec build "${symaddrfile} ${binfile} data11"] 1]
+ regsub -all "\[\r\n\]" ${exec_output_data11} "" exec_output_data11
+
+ set exec_output_common1 [lindex [remote_exec build "${symaddrfile} ${binfile} common1"] 1]
+ regsub -all "\[\r\n\]" ${exec_output_common1} "" exec_output_common1
+
+ set exec_output_common2 [lindex [remote_exec build "${symaddrfile} ${binfile} common2"] 1]
+ regsub -all "\[\r\n\]" ${exec_output_common2} "" exec_output_common2
+
+ set exec_output_common3 [lindex [remote_exec build "${symaddrfile} ${binfile} common3"] 1]
+ regsub -all "\[\r\n\]" ${exec_output_common3} "" exec_output_common3
+
+ set exec_output_common10 [lindex [remote_exec build "${symaddrfile} ${binfile} common10"] 1]
+ regsub -all "\[\r\n\]" ${exec_output_common10} "" exec_output_common10
+
+ set exec_output_common11 [lindex [remote_exec build "${symaddrfile} ${binfile} common11"] 1]
+ regsub -all "\[\r\n\]" ${exec_output_common11} "" exec_output_common11
+
+ if [istarget "hppa2.0w-*-*"] {
+ gdb_test "p &data1" "..* = \\(int \[*\]\\) ${exec_output_data1}"
+ gdb_test "p &data2" "..* = \\(int \[*\]\\) ${exec_output_data2}"
+ gdb_test "p &data3" "..* = \\(int \[*\]\\) ${exec_output_data3}"
+ gdb_test "p &data10" "..* = \\(int \[*\]\\) ${exec_output_data10}"
+ gdb_test "p &data11" "..* = \\(int \[*\]\\) ${exec_output_data11}"
+ gdb_test "p &common1" "..* = \\(int \[*\]\\) ${exec_output_common1}"
+ gdb_test "p &common2" "..* = \\(int \[*\]\\) ${exec_output_common2}"
+ gdb_test "p &common3" "..* = \\(int \[*\]\\) ${exec_output_common3}"
+ gdb_test "p &common10" "..* = \\(int \[*\]\\) ${exec_output_common10}"
+ gdb_test "p &common11" "..* = \\(int \[*\]\\) ${exec_output_common11}"
+ } else {
+ gdb_test "p &data1" "..* = \\(int \[*\]\\) 0x${exec_output_data1}"
+ gdb_test "p &data2" "..* = \\(int \[*\]\\) 0x${exec_output_data2}"
+ gdb_test "p &data3" "..* = \\(int \[*\]\\) 0x${exec_output_data3}"
+ gdb_test "p &data10" "..* = \\(int \[*\]\\) 0x${exec_output_data10}"
+ gdb_test "p &data11" "..* = \\(int \[*\]\\) 0x${exec_output_data11}"
+ gdb_test "p &common1" "..* = \\(int \[*\]\\) 0x${exec_output_common1}"
+ gdb_test "p &common2" "..* = \\(int \[*\]\\) 0x${exec_output_common2}"
+ gdb_test "p &common3" "..* = \\(int \[*\]\\) 0x${exec_output_common3}"
+ gdb_test "p &common10" "..* = \\(int \[*\]\\) 0x${exec_output_common10}"
+ gdb_test "p &common11" "..* = \\(int \[*\]\\) 0x${exec_output_common11}"
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x.h gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x.h
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x.h Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x.h Thu Jul 22 17:50:28 1999
***************
*** 0 ****
--- 1,30 ----
+ template <class T>
+ class Adder {
+ public:
+ void set(T);
+ T get();
+ T add(T);
+
+ private:
+ T val;
+ };
+
+ template <class T>
+ void Adder<T>::set(T new_val)
+ {
+ val = new_val;
+ }
+
+ template <class T>
+ T Adder<T>::get()
+ {
+ return val;
+ }
+
+ template <class T>
+ T Adder<T>::add(T new_val)
+ {
+ val += new_val;
+ return val;
+ }
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x1.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x1.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x1.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x1.cc Thu Jul 22 17:50:29 1999
***************
*** 0 ****
--- 1,15 ----
+ #include <stdio.h>
+ #include "x.h"
+
+ template class Adder<int>;
+
+ int main()
+ {
+ Adder<int> add;
+
+ add.set(3);
+ add.add(3);
+ printf("In main: %d\n", add.get());
+
+ return 0;
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x2.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x2.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x2.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x2.cc Thu Jul 22 17:50:29 1999
***************
*** 0 ****
--- 1,3 ----
+ #include "x.h"
+
+ template class Adder<int>;
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04.exp gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04.exp Thu Jul 22 17:50:29 1999
***************
*** 0 ****
--- 1,55 ----
+ # Test reading debug information from in object files.
+
+ if { [skip_hp_tests] } { continue }
+
+ if { ![istarget "hppa*-*-hpux*"] } {
+ verbose "HPUX test ignored for non-hppa targets."
+ return 0
+ }
+
+ set testfile "test"
+ set srcsubdir ${srcdir}/${subdir}/objdbg04
+ set objdbgdir ${objdir}/${subdir}/objdbg04
+ set binfile ${objdbgdir}/${testfile}
+ set toolssubdir ${srcdir}/${subdir}/tools
+ set symaddrfile ${toolssubdir}/symaddr
+
+ if { [gdb_compile "${toolssubdir}/test-objdbg.cc" "${objdbgdir}/test-objdbg.o" object "debug c++ {additional_flags=-I${toolssubdir} +objdebug}"] != "" } {
+ gdb_suppress_entire_file "WARNING: +objdebug option is not supported in this compiler version, test ignored."
+ }
+
+ if { [gdb_compile "${srcsubdir}/x1.cc" "${objdbgdir}/x1.o" object "debug c++ {additional_flags=-I${srcsubdir} +objdebug}"] != "" } {
+ perror "Couldn't compile x1.cc"
+ return -1
+ }
+
+ if { [gdb_compile "${srcsubdir}/x2.cc" "${objdbgdir}/x2.o" object "debug c++ {additional_flags=-I${srcsubdir} +objdebug}"] != "" } {
+ perror "Couldn't compile x2.cc"
+ return -1
+ }
+
+ if { [gdb_compile "${objdbgdir}/x1.o ${objdbgdir}/x2.o" "${binfile}0" executable "debug c++ {additional_flags=-I${srcsubdir} +objdebug}"] != "" } {
+ perror "Couldn't compile x1.cc"
+ return -1
+ }
+
+ if { [gdb_compile "${objdbgdir}/x2.o ${objdbgdir}/x1.o" "${binfile}1" executable "debug c++ {additional_flags=-I${srcsubdir} +objdebug}"] != "" } {
+ perror "Couldn't compile x1.cc"
+ return -1
+ }
+
+ # Test two executables. The first has x1.cc linked first, the second
+ # has x2.cc linked first. The difference is which COMDAT section was
+ # picked.
+
+ for {set filenum 0} {$filenum < 2} {incr filenum 1} {
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir ${srcsubdir}
+ gdb_load ${binfile}${filenum}
+
+ gdb_test "ptype Adder" "type = template <class T> (class |)Adder {..*T val.*;.*}(.*template instantiations:.*Adder<int>|)"
+ gdb_test "ptype Adder<int>" "type = (class |)Adder<int> {.*private:.*int val;.*public:.*void set( |)\\(int\\);.*int get( |)\\(void\\);.*int add( |)\\(int\\);.*}"
+ gdb_test "ptype Adder" "type = template <class T> (class |)Adder {..*T val.*;.*}(.*template instantiations:.*Adder<int>|)"
+
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/tools/symaddr gdb/testsuite/gdb.hp/gdb.objdbg/tools/symaddr
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/tools/symaddr Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/tools/symaddr Thu Jul 22 17:50:23 1999
***************
*** 0 ****
--- 1,8 ----
+ #!/bin/ksh
+
+ # Get the address of a symbol in Hex.
+ # $1 = object/executable file name
+ # $2 = symbol name
+ ${srcdir}/gdb.hp/tools/odump -sym "$1" | grep "$2"$ | awk '{print $1}'
+
+ exit 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/tools/symaddr.pa64 gdb/testsuite/gdb.hp/gdb.objdbg/tools/symaddr.pa64
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/tools/symaddr.pa64 Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/tools/symaddr.pa64 Thu Jul 22 17:50:23 1999
***************
*** 0 ****
--- 1,8 ----
+ #!/bin/ksh
+
+ # Get the address of a symbol in Hex.
+ # $1 = object/executable file name
+ # $2 = symbol name
+ /usr/ccs/bin/elfdump -t +s .symtab "$1" | grep "$2"$ | awk '{print $6}'
+
+ exit 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/tools/test-objdbg.cc gdb/testsuite/gdb.hp/gdb.objdbg/tools/test-objdbg.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.objdbg/tools/test-objdbg.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.objdbg/tools/test-objdbg.cc Thu Jul 22 17:50:23 1999
***************
*** 0 ****
--- 1,4 ----
+ int main()
+ {
+ return 0;
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/Makefile.in gdb/testsuite/gdb.hp/gdb.threads-hp/Makefile.in
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/Makefile.in Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.threads-hp/Makefile.in Thu Jul 22 17:50:30 1999
***************
*** 0 ****
--- 1,27 ----
+ VPATH = @srcdir@
+ srcdir = @srcdir@
+
+ EXECUTABLES = usrthbasic usrthcore usrthfork
+
+ all:
+ @echo "Nothing to be done for all..."
+
+ info:
+ install-info:
+ dvi:
+ install:
+ uninstall: force
+ installcheck:
+ check:
+
+ clean mostlyclean:
+ -rm -f *~ *.o *.ci
+ -rm -f core $(EXECUTABLES)
+
+ distclean maintainer-clean realclean: clean
+ -rm -f Makefile config.status config.log
+ -rm -f *-init.exp
+ -rm -fr *.log summary detail *.plog *.sum *.psum site.*
+
+ Makefile : $(srcdir)/Makefile.in $(srcdir)/configure.in
+ $(SHELL) ./config.status --recheck
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/compiler.c gdb/testsuite/gdb.hp/gdb.threads-hp/compiler.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/compiler.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.threads-hp/compiler.c Thu Jul 22 17:48:46 1999
***************
*** 0 ****
--- 1,31 ----
+ /* Often the behavior of any particular test depends upon what compiler was
+ used to compile the test. As each test is compiled, this file is
+ preprocessed by the same compiler used to compile that specific test
+ (different tests might be compiled by different compilers, particularly
+ if compiled at different times), and used to generate a *.ci (compiler
+ info) file for that test.
+
+ I.E., when callfuncs is compiled, a callfuncs.ci file will be generated,
+ which can then be sourced by callfuncs.exp to give callfuncs.exp access
+ to information about the compilation environment.
+
+ TODO: It might be a good idea to add expect code that tests each
+ definition made with 'set" to see if one already exists, and if so
+ warn about conflicts if it is being set to something else. */
+
+ /* This needs to be kept in sync with whatis.c and gdb.exp(get_compiler_info).
+ If this ends up being hairy, we could use a common header file. */
+
+ #if defined (__STDC__) || defined (_AIX)
+ set signed_keyword_not_used 0
+ #else
+ set signed_keyword_not_used 1
+ #endif
+
+ #if defined (__GNUC__)
+ set gcc_compiled __GNUC__
+ #else
+ set gcc_compiled 0
+ #endif
+
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/compiler.cc gdb/testsuite/gdb.hp/gdb.threads-hp/compiler.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/compiler.cc Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.threads-hp/compiler.cc Thu Jul 22 17:49:19 1999
***************
*** 0 ****
--- 1,34 ----
+ /* Often the behavior of any particular test depends upon what compiler was
+ used to compile the test. As each test is compiled, this file is
+ preprocessed by the same compiler used to compile that specific test
+ (different tests might be compiled by different compilers, particularly
+ if compiled at different times), and used to generate a *.ci (compiler
+ info) file for that test.
+
+ I.E., when callfuncs is compiled, a callfuncs.ci file will be generated,
+ which can then be sourced by callfuncs.exp to give callfuncs.exp access
+ to information about the compilation environment.
+
+ TODO: It might be a good idea to add expect code that tests each
+ definition made with 'set" to see if one already exists, and if so
+ warn about conflicts if it is being set to something else. */
+
+ #if defined(__GNUC__) && __GNUC__ >= 2 && __GNUC_MINOR__ >= 6
+ set supports_template_debugging 1
+ #else
+ set supports_template_debugging 0
+ #endif
+
+ #if defined(__cplusplus)
+ set supports_template_debugging 1
+ #else
+ set supports_template_debugging 0
+ #endif
+
+ #if defined (__GNUC__)
+ set gcc_compiled __GNUC__
+ #else
+ set gcc_compiled 0
+ #endif
+
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/configure gdb/testsuite/gdb.hp/gdb.threads-hp/configure
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/configure Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.threads-hp/configure Thu Jul 22 17:50:30 1999
***************
*** 0 ****
--- 1,899 ----
+ #! /bin/sh
+
+ # Guess values for system-dependent variables and create Makefiles.
+ # Generated automatically using autoconf version 2.12.1
+ # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+ #
+ # This configure script is free software; the Free Software Foundation
+ # gives unlimited permission to copy, distribute and modify it.
+
+ # Defaults:
+ ac_help=
+ ac_default_prefix=/usr/local
+ # Any additions from configure.in:
+
+ # Initialize some variables set by options.
+ # The variables have the same names as the options, with
+ # dashes changed to underlines.
+ build=NONE
+ cache_file=./config.cache
+ exec_prefix=NONE
+ host=NONE
+ no_create=
+ nonopt=NONE
+ no_recursion=
+ prefix=NONE
+ program_prefix=NONE
+ program_suffix=NONE
+ program_transform_name=s,x,x,
+ silent=
+ site=
+ srcdir=
+ target=NONE
+ verbose=
+ x_includes=NONE
+ x_libraries=NONE
+ bindir='${exec_prefix}/bin'
+ sbindir='${exec_prefix}/sbin'
+ libexecdir='${exec_prefix}/libexec'
+ datadir='${prefix}/share'
+ sysconfdir='${prefix}/etc'
+ sharedstatedir='${prefix}/com'
+ localstatedir='${prefix}/var'
+ libdir='${exec_prefix}/lib'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+ infodir='${prefix}/info'
+ mandir='${prefix}/man'
+
+ # Initialize some other variables.
+ subdirs=
+ MFLAGS= MAKEFLAGS=
+ SHELL=${CONFIG_SHELL-/bin/sh}
+ # Maximum number of lines to put in a shell here document.
+ ac_max_here_lines=12
+
+ ac_prev=
+ for ac_option
+ do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+ Usage: configure [options] [host]
+ Options: [defaults in brackets after descriptions]
+ Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --version print the version of autoconf that created configure
+ Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+ EOF
+ cat << EOF
+ Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+ Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+ EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.12.1"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+ done
+
+ if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+ fi
+
+ trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+ # File descriptor usage:
+ # 0 standard input
+ # 1 file creation
+ # 2 errors and warnings
+ # 3 some systems may open it to /dev/tty
+ # 4 used on the Kubota Titan
+ # 6 checking for... messages and results
+ # 5 compiler messages saved in config.log
+ if test "$silent" = yes; then
+ exec 6>/dev/null
+ else
+ exec 6>&1
+ fi
+ exec 5>./config.log
+
+ echo "\
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+ " 1>&5
+
+ # Strip out --no-create and --no-recursion so they do not pile up.
+ # Also quote any args containing shell metacharacters.
+ ac_configure_args=
+ for ac_arg
+ do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+ done
+
+ # NLS nuisances.
+ # Only set these to C if already set. These must not be set unconditionally
+ # because not all systems understand e.g. LANG=C (notably SCO).
+ # Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+ # Non-C LC_CTYPE values break the ctype check.
+ if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+ if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+ if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+ if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+ # confdefs.h avoids OS command line length limits that DEFS can exceed.
+ rm -rf conftest* confdefs.h
+ # AIX cpp loses on an empty file, so make sure it contains at least a newline.
+ echo > confdefs.h
+
+ # A filename unique to this package, relative to the directory that
+ # configure is in, which we can look for to find out if srcdir is correct.
+ ac_unique_file=usrthbasic.exp
+
+ # Find the source files, if location was not specified.
+ if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+ else
+ ac_srcdir_defaulted=no
+ fi
+ if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+ fi
+ srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+ # Prefer explicitly selected file to automatically selected ones.
+ if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+ fi
+ for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+ done
+
+ if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+ else
+ echo "creating cache $cache_file"
+ > $cache_file
+ fi
+
+ ac_ext=c
+ # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ cross_compiling=$ac_cv_prog_cc_cross
+
+ if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+ ' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+ else
+ ac_n= ac_c='\c' ac_t=
+ fi
+
+
+
+ CC=${CC-cc}
+
+ ac_aux_dir=
+ for ac_dir in `cd $srcdir;pwd`/../../../.. $srcdir/`cd $srcdir;pwd`/../../../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+ done
+ if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in `cd $srcdir;pwd`/../../../.. $srcdir/`cd $srcdir;pwd`/../../../.." 1>&2; exit 1; }
+ fi
+ ac_config_guess=$ac_aux_dir/config.guess
+ ac_config_sub=$ac_aux_dir/config.sub
+ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+
+ # Do some error checking and defaulting for the host and target type.
+ # The inputs are:
+ # configure --host=HOST --target=TARGET --build=BUILD NONOPT
+ #
+ # The rules are:
+ # 1. You are not allowed to specify --host, --target, and nonopt at the
+ # same time.
+ # 2. Host defaults to nonopt.
+ # 3. If nonopt is not specified, then host defaults to the current host,
+ # as determined by config.guess.
+ # 4. Target and build default to nonopt.
+ # 5. If nonopt is not specified, then target and build default to host.
+
+ # The aliases save the names the user supplied, while $host etc.
+ # will get canonicalized.
+ case $host---$target---$nonopt in
+ NONE---*---* | *---NONE---* | *---*---NONE) ;;
+ *) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
+ esac
+
+
+ # Make sure we can run config.sub.
+ if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+ fi
+
+ echo $ac_n "checking host system type""... $ac_c" 1>&6
+ echo "configure:573: checking host system type" >&5
+
+ host_alias=$host
+ case "$host_alias" in
+ NONE)
+ case $nonopt in
+ NONE)
+ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+ else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+ fi ;;
+ *) host_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+ host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$host" 1>&6
+
+ echo $ac_n "checking target system type""... $ac_c" 1>&6
+ echo "configure:594: checking target system type" >&5
+
+ target_alias=$target
+ case "$target_alias" in
+ NONE)
+ case $nonopt in
+ NONE) target_alias=$host_alias ;;
+ *) target_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
+ target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$target" 1>&6
+
+ echo $ac_n "checking build system type""... $ac_c" 1>&6
+ echo "configure:612: checking build system type" >&5
+
+ build_alias=$build
+ case "$build_alias" in
+ NONE)
+ case $nonopt in
+ NONE) build_alias=$host_alias ;;
+ *) build_alias=$nonopt ;;
+ esac ;;
+ esac
+
+ build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+ build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$build" 1>&6
+
+ test "$host_alias" != "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+
+ trap '' 1 2 15
+ cat > confcache <<\EOF
+ # This file is a shell script that caches the results of configure
+ # tests run on this system so they can be shared between configure
+ # scripts and configure runs. It is not useful on other systems.
+ # If it contains results you don't want to keep, you may remove or edit it.
+ #
+ # By default, configure uses ./config.cache as the cache file,
+ # creating it if it does not exist already. You can give configure
+ # the --cache-file=FILE option to use a different cache file; that is
+ # what configure does when it calls configure scripts in
+ # subdirectories, so they share the cache.
+ # Giving --cache-file=/dev/null disables caching, for debugging configure.
+ # config.status only pays attention to the cache file if you give it the
+ # --recheck option to rerun configure.
+ #
+ EOF
+ # The following way of writing the cache mishandles newlines in values,
+ # but we know of no workaround that is simple, portable, and efficient.
+ # So, don't put newlines in cache variables' values.
+ # Ultrix sh set writes to stderr and can't be redirected directly,
+ # and sets the high bit in the cache file unless we assign to the vars.
+ (set) 2>&1 |
+ case `(ac_space=' '; set) 2>&1 | grep ac_space` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+ if cmp -s $cache_file confcache; then
+ :
+ else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+ fi
+ rm -f confcache
+
+ trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+ test "x$prefix" = xNONE && prefix=$ac_default_prefix
+ # Let make expand exec_prefix.
+ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+ # Any assignment to VPATH causes Sun make to only execute
+ # the first set of double-colon rules, so remove it if not needed.
+ # If there is a colon in the path, we need to keep it.
+ if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+ fi
+
+ trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+ # Transform confdefs.h into DEFS.
+ # Protect against shell expansion while executing Makefile rules.
+ # Protect against Makefile macro expansion.
+ cat > conftest.defs <<\EOF
+ s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+ s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
+ s%\[%\\&%g
+ s%\]%\\&%g
+ s%\$%$$%g
+ EOF
+ DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+ rm -f conftest.defs
+
+
+ # Without the "./", some shells look in PATH for config.status.
+ : ${CONFIG_STATUS=./config.status}
+
+ echo creating $CONFIG_STATUS
+ rm -f $CONFIG_STATUS
+ cat > $CONFIG_STATUS <<EOF
+ #! /bin/sh
+ # Generated automatically by configure.
+ # Run this file to recreate the current configuration.
+ # This directory was configured as follows,
+ # on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+ #
+ # $0 $ac_configure_args
+ #
+ # Compiler output produced by configure, useful for debugging
+ # configure, is in ./config.log if it exists.
+
+ ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+ for ac_option
+ do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.12.1"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+ done
+
+ ac_given_srcdir=$srcdir
+
+ trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+ EOF
+ cat >> $CONFIG_STATUS <<EOF
+
+ # Protect against being on the right side of a sed subst in config.status.
+ sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+ $ac_vpsub
+ $extrasub
+ s%@SHELL@%$SHELL%g
+ s%@CFLAGS@%$CFLAGS%g
+ s%@CPPFLAGS@%$CPPFLAGS%g
+ s%@CXXFLAGS@%$CXXFLAGS%g
+ s%@DEFS@%$DEFS%g
+ s%@LDFLAGS@%$LDFLAGS%g
+ s%@LIBS@%$LIBS%g
+ s%@exec_prefix@%$exec_prefix%g
+ s%@prefix@%$prefix%g
+ s%@program_transform_name@%$program_transform_name%g
+ s%@bindir@%$bindir%g
+ s%@sbindir@%$sbindir%g
+ s%@libexecdir@%$libexecdir%g
+ s%@datadir@%$datadir%g
+ s%@sysconfdir@%$sysconfdir%g
+ s%@sharedstatedir@%$sharedstatedir%g
+ s%@localstatedir@%$localstatedir%g
+ s%@libdir@%$libdir%g
+ s%@includedir@%$includedir%g
+ s%@oldincludedir@%$oldincludedir%g
+ s%@infodir@%$infodir%g
+ s%@mandir@%$mandir%g
+ s%@CC@%$CC%g
+ s%@host@%$host%g
+ s%@host_alias@%$host_alias%g
+ s%@host_cpu@%$host_cpu%g
+ s%@host_vendor@%$host_vendor%g
+ s%@host_os@%$host_os%g
+ s%@target@%$target%g
+ s%@target_alias@%$target_alias%g
+ s%@target_cpu@%$target_cpu%g
+ s%@target_vendor@%$target_vendor%g
+ s%@target_os@%$target_os%g
+ s%@build@%$build%g
+ s%@build_alias@%$build_alias%g
+ s%@build_cpu@%$build_cpu%g
+ s%@build_vendor@%$build_vendor%g
+ s%@build_os@%$build_os%g
+
+ CEOF
+ EOF
+
+ cat >> $CONFIG_STATUS <<\EOF
+
+ # Split the substitutions into bite-sized pieces for seds with
+ # small command number limits, like on Digital OSF/1 and HP-UX.
+ ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ ac_file=1 # Number of current file.
+ ac_beg=1 # First line for current file.
+ ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ ac_more_lines=:
+ ac_sed_cmds=""
+ while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+ done
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+ fi
+ EOF
+
+ cat >> $CONFIG_STATUS <<EOF
+
+ CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+ EOF
+ cat >> $CONFIG_STATUS <<\EOF
+ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+ # $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+ s%@configure_input@%$configure_input%g
+ s%@srcdir@%$srcdir%g
+ s%@top_srcdir@%$top_srcdir%g
+ " $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+ fi; done
+ rm -f conftest.s*
+
+ EOF
+ cat >> $CONFIG_STATUS <<EOF
+
+ EOF
+ cat >> $CONFIG_STATUS <<\EOF
+
+ exit 0
+ EOF
+ chmod +x $CONFIG_STATUS
+ rm -fr confdefs* $ac_clean_files
+ test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/configure.in gdb/testsuite/gdb.hp/gdb.threads-hp/configure.in
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/configure.in Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.threads-hp/configure.in Thu Jul 22 17:50:30 1999
***************
*** 0 ****
--- 1,15 ----
+ dnl Process this file file with autoconf to produce a configure script.
+ dnl This file is a shell script fragment that supplies the information
+ dnl necessary to tailor a template configure script into the configure
+ dnl script appropriate for this directory. For more information, check
+ dnl any existing configure script.
+
+ AC_PREREQ(2.5)
+ AC_INIT(usrthbasic.exp)
+
+ CC=${CC-cc}
+ AC_SUBST(CC)
+ AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../../../..)
+ AC_CANONICAL_SYSTEM
+
+ AC_OUTPUT(Makefile)
Binary files ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/usrthbasic and gdb/testsuite/gdb.hp/gdb.threads-hp/usrthbasic differ
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/usrthbasic.c gdb/testsuite/gdb.hp/gdb.threads-hp/usrthbasic.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/usrthbasic.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.threads-hp/usrthbasic.c Thu Jul 22 17:50:31 1999
***************
*** 0 ****
--- 1,171 ----
+ #include <stdio.h>
+
+ /* #include "config.h" */
+ #define HAVE_PTHREAD_H
+ #define __hpux__
+ #define __osf__
+
+ #ifndef HAVE_PTHREAD_H
+
+ /* Don't even try to compile. In fact, cause a syntax error that we can
+ look for as a compiler error message and know that we have no pthread
+ support. In that case we can just suppress the test completely. */
+
+ #error "no posix threads support"
+
+ #else
+
+ /* OK. We have the right header. If we try to compile this and fail, then
+ there is something wrong and the user should know about it so the testsuite
+ should issue an ERROR result.. */
+
+ #ifdef __linux__
+ #define _MIT_POSIX_THREADS 1 /* Linux (or at least RedHat 4.0) needs this */
+ #endif
+
+ #include <pthread.h>
+
+ /* Under OSF 2.0 & 3.0 and HPUX 10, the second arg of pthread_create
+ is prototyped to be just a "pthread_attr_t", while under Solaris it
+ is a "pthread_attr_t *". Arg! */
+
+ #if defined (__osf__) || defined (__hpux__)
+ #define PTHREAD_CREATE_ARG2(arg) arg
+ #define PTHREAD_CREATE_NULL_ARG2 null_attr
+ static pthread_attr_t null_attr;
+ #else
+ #define PTHREAD_CREATE_ARG2(arg) &arg
+ #define PTHREAD_CREATE_NULL_ARG2 NULL
+ #endif
+
+ static int verbose = 0;
+
+ static void
+ common_routine (arg)
+ int arg;
+ {
+ static int from_thread1;
+ static int from_thread2;
+ static int from_main;
+ static int hits;
+ static int full_coverage;
+
+ if (verbose) printf("common_routine (%d)\n", arg);
+ hits++;
+ switch (arg)
+ {
+ case 0:
+ from_main++;
+ break;
+ case 1:
+ from_thread1++;
+ break;
+ case 2:
+ from_thread2++;
+ break;
+ }
+ if (from_main && from_thread1 && from_thread2)
+ full_coverage = 1;
+ }
+
+ static void *
+ thread1 (void *arg)
+ {
+ int i;
+ int z = 0;
+
+ if (verbose) printf ("thread1 (%0x) ; pid = %d\n", arg, getpid ());
+ for (i=1; i <= 10000000; i++)
+ {
+ if (verbose) printf("thread1 %d\n", pthread_self ());
+ z += i;
+ common_routine (1);
+ sleep(1);
+ }
+ }
+
+ static void *
+ thread2 (void * arg)
+ {
+ int i;
+ int k = 0;
+
+ if (verbose) printf ("thread2 (%0x) ; pid = %d\n", arg, getpid ());
+ for (i=1; i <= 10000000; i++)
+ {
+ if (verbose) printf("thread2 %d\n", pthread_self ());
+ k += i;
+ common_routine (2);
+ sleep(1);
+ }
+ sleep(100);
+ }
+
+ int
+ foo (a, b, c)
+ int a, b, c;
+ {
+ int d, e, f;
+
+ if (verbose) printf("a=%d\n", a);
+ }
+
+ main(argc, argv)
+ int argc;
+ char **argv;
+ {
+ pthread_t tid1, tid2;
+ int j;
+ int t = 0;
+ void (*xxx) ();
+ pthread_attr_t attr;
+
+ if (verbose) printf ("pid = %d\n", getpid());
+
+ foo (1, 2, 3);
+
+ #ifndef __osf__
+ if (pthread_attr_init (&attr))
+ {
+ perror ("pthread_attr_init 1");
+ exit (1);
+ }
+ #endif
+
+ #ifdef PTHREAD_SCOPE_SYSTEM
+ if (pthread_attr_setscope (&attr, PTHREAD_SCOPE_SYSTEM))
+ {
+ perror ("pthread_attr_setscope 1");
+ exit (1);
+ }
+ #endif
+
+ if (pthread_create (&tid1, pthread_attr_default, thread1, (void *) 0xfeedface))
+ {
+ perror ("pthread_create 1");
+ exit (1);
+ }
+ if (verbose) printf ("Made thread %d\n", tid1);
+ sleep (1);
+
+ if (pthread_create (&tid2, null_attr, thread2, (void *) 0xdeadbeef))
+ {
+ perror ("pthread_create 2");
+ exit (1);
+ }
+ if (verbose) printf("Made thread %d\n", tid2);
+
+ sleep (1);
+
+ for (j = 1; j <= 10000000; j++)
+ {
+ if (verbose) printf("top %d\n", pthread_self ());
+ common_routine (0);
+ sleep(1);
+ t += j;
+ }
+
+ exit(0);
+ }
+
+ #endif /* ifndef HAVE_PTHREAD_H */
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/usrthbasic.exp gdb/testsuite/gdb.hp/gdb.threads-hp/usrthbasic.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/usrthbasic.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.threads-hp/usrthbasic.exp Thu Jul 22 17:50:31 1999
***************
*** 0 ****
--- 1,107 ----
+ # usrthbasic.exp -- Expect script to test gdb with user threads
+ # Copyright (C) 1992 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ # use this to debug:
+ #
+ #log_user 1
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ if { [skip_hp_tests] } { continue }
+
+ if { ![istarget "hppa*-*-hpux*"] || [istarget "hppa2.0w-*-*"] } {
+ verbose "HPUX thread test ignored for non-hppa or PA64 targets."
+ return 0
+ }
+
+ set testfile usrthbasic
+ set srcfile ${srcdir}/${subdir}/${testfile}.c
+ set binfile ${srcdir}/${subdir}/${testfile}
+
+ # To build the executable we need to link against the thread library.
+ #
+ # /opt/ansic/bin/cc -Ae +DAportable -g -o usrthbasic -lcma usrthbasic.c
+ #
+ ## we have trouble building it on 11.0, so we use the prebuilt
+ ## executable instead.
+ ##
+ ##if { [gdb_compile "${srcdir}/${subdir}/${testfile}.c" "${binfile}" executable {debug additional_flags=-Ae ldflags=-lcma}] != "" } {
+ ## gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ ##}
+
+ # We don't really seem to need longer waits.
+ #
+ ##set oldtimeout $timeout
+ ##set timeout [expr "$timeout + 0"]
+ ##set oldverbose $verbose
+ ##set verbose 40
+
+ #=========================
+ #
+ # Test looking at threads.
+ #
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ gdb_test "b main" ".*Breakpoint 1.*" "b main"
+ gdb_test "run" "Breakpoint 1, main.*:119.*" "run to main"
+ gdb_test "b thread1" ".*Breakpoint 2.*" "b thread1"
+ gdb_test "info threads" "\\* 1 system thread.*:119\[^(\]*" \
+ "info threads at main"
+ gdb_test "c" "Breakpoint 2, thread1.*" "continue to thread1"
+ gdb_test "info threads" \
+ "\\* 3 system thread.*thread1.*libcma.1.*libcma.1\[^(\]*" \
+ "info threads at main"
+ gdb_test "b 165" "Breakpoint 3.*165.*" "break at main counter"
+ gdb_test "c" "Breakpoint 3, main.*" "continue to main counter"
+ gdb_test "info threads" " 4 system thread.*\\* 1 system thread.*main.*" \
+ "info threads at main counter"
+ gdb_test "b 97" "Breakpoint 4.*97.*" "break at thread2 counter"
+ gdb_test "b 81" "Breakpoint 5.*81.*" "break at thread1 counter"
+ gdb_test "bt" "#0 main.* at \[^(\]*" "backtrace at main counter"
+
+ # After switching to thread 4, the cma scheduler should schedule it next
+ # and we should hit its breakpoint in thread2.
+ gdb_test "thread 4" ".Switching to thread 4.*cma__dispatch.*" \
+ "switch to thread 4"
+ gdb_test "bt" "#0 .*thread2.*" "backtrace at thread 4"
+ sleep 1
+ gdb_test "c" ".*Breakpoint 4, thread2.*" "continue and get to thread 4"
+
+ # After switching to thread 1, the cma scheduler should schedule it next
+ # and we should hit its breakpoint (in main).
+ gdb_test "thread 1" ".*Switching to thread 1.*cma__dispatch.*" \
+ "switch to thread 1"
+ sleep 1
+ gdb_test "c" ".*Breakpoint 3, main.*usrthbasic.c:165.*" \
+ "continue and get to thread 1"
+
+ # Done!
+ #
+ gdb_exit
+
+ ##set timeout $oldtimeout
+ ##set verbose $oldverbose
+
+ return 0
Binary files ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/usrthcore and gdb/testsuite/gdb.hp/gdb.threads-hp/usrthcore differ
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/usrthcore.c gdb/testsuite/gdb.hp/gdb.threads-hp/usrthcore.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/usrthcore.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.threads-hp/usrthcore.c Thu Jul 22 17:50:31 1999
***************
*** 0 ****
--- 1,177 ----
+ #include <stdio.h>
+
+ /* #include "config.h" */
+ #define HAVE_PTHREAD_H
+ #define __hpux__
+ #define __osf__
+
+ #ifndef HAVE_PTHREAD_H
+
+ /* Don't even try to compile. In fact, cause a syntax error that we can
+ look for as a compiler error message and know that we have no pthread
+ support. In that case we can just suppress the test completely. */
+
+ #error "no posix threads support"
+
+ #else
+
+ /* OK. We have the right header. If we try to compile this and fail, then
+ there is something wrong and the user should know about it so the testsuite
+ should issue an ERROR result.. */
+
+ #ifdef __linux__
+ #define _MIT_POSIX_THREADS 1 /* Linux (or at least RedHat 4.0) needs this */
+ #endif
+
+ #include <pthread.h>
+
+ /* Under OSF 2.0 & 3.0 and HPUX 10, the second arg of pthread_create
+ is prototyped to be just a "pthread_attr_t", while under Solaris it
+ is a "pthread_attr_t *". Arg! */
+
+ #if defined (__osf__) || defined (__hpux__)
+ #define PTHREAD_CREATE_ARG2(arg) arg
+ #define PTHREAD_CREATE_NULL_ARG2 null_attr
+ static pthread_attr_t null_attr;
+ #else
+ #define PTHREAD_CREATE_ARG2(arg) &arg
+ #define PTHREAD_CREATE_NULL_ARG2 NULL
+ #endif
+
+ static int verbose = 0;
+
+ static void
+ common_routine (arg)
+ int arg;
+ {
+ static int from_thread1;
+ static int from_thread2;
+ static int from_main;
+ static int hits;
+ static int full_coverage;
+
+ if (verbose) printf("common_routine (%d)\n", arg);
+ hits++;
+ switch (arg)
+ {
+ case 0:
+ from_main++;
+ break;
+ case 1:
+ from_thread1++;
+ break;
+ case 2:
+ from_thread2++;
+ break;
+ }
+ if (from_main && from_thread1 && from_thread2)
+ full_coverage = 1;
+ }
+
+ static void *
+ thread1 (void *arg)
+ {
+ int i;
+ int z = 0;
+
+ if (verbose) printf ("thread1 (%0x) ; pid = %d\n", arg, getpid ());
+ for (i=1; i <= 10000000; i++)
+ {
+ if (verbose) printf("thread1 %d\n", pthread_self ());
+ z += i;
+ common_routine (1);
+ sleep(1);
+ }
+ }
+
+ static void *
+ thread2 (void * arg)
+ {
+ int i;
+ int k = 0;
+
+ if (verbose) printf ("thread2 (%0x) ; pid = %d\n", arg, getpid ());
+ for (i=1; i <= 10000000; i++)
+ {
+ if (verbose) printf("thread2 %d\n", pthread_self ());
+ k += i;
+ common_routine (2);
+ sleep(1);
+ }
+ sleep(100);
+ }
+
+ int
+ foo (a, b, c)
+ int a, b, c;
+ {
+ int d, e, f;
+
+ if (verbose) printf("a=%d\n", a);
+ }
+
+ main(argc, argv)
+ int argc;
+ char **argv;
+ {
+ pthread_t tid1, tid2;
+ int j;
+ int t = 0;
+ void (*xxx) ();
+ pthread_attr_t attr;
+
+ if (verbose) printf ("pid = %d\n", getpid());
+
+ foo (1, 2, 3);
+
+ #ifndef __osf__
+ if (pthread_attr_init (&attr))
+ {
+ perror ("pthread_attr_init 1");
+ exit (1);
+ }
+ #endif
+
+ #ifdef PTHREAD_SCOPE_SYSTEM
+ if (pthread_attr_setscope (&attr, PTHREAD_SCOPE_SYSTEM))
+ {
+ perror ("pthread_attr_setscope 1");
+ exit (1);
+ }
+ #endif
+
+ if (pthread_create (&tid1, pthread_attr_default, thread1, (void *) 0xfeedface))
+ {
+ perror ("pthread_create 1");
+ exit (1);
+ }
+ if (verbose) printf ("Made thread %d\n", tid1);
+ sleep (1);
+
+ if (pthread_create (&tid2, null_attr, thread2, (void *) 0xdeadbeef))
+ {
+ perror ("pthread_create 2");
+ exit (1);
+ }
+ if (verbose) printf("Made thread %d\n", tid2);
+
+ sleep (1);
+
+ for (j = 1; j <= 10000000; j++)
+ {
+ if (verbose) printf("top %d\n", pthread_self ());
+ common_routine (0);
+ sleep(1);
+ t += j;
+ if (j > 3)
+ {
+ int* int_p;
+ int_p = 0;
+ *int_p = 1;
+ }
+ }
+
+ exit(0);
+ }
+
+ #endif /* ifndef HAVE_PTHREAD_H */
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/usrthcore.exp gdb/testsuite/gdb.hp/gdb.threads-hp/usrthcore.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/usrthcore.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.threads-hp/usrthcore.exp Thu Jul 22 17:50:32 1999
***************
*** 0 ****
--- 1,89 ----
+ # usrthcore.exp -- Expect script to test gdb with user threads
+ # Copyright (C) 1992 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ # use this to debug:
+ #
+ #log_user 1
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ if { [skip_hp_tests] } { continue }
+
+ if { ![istarget "hppa*-*-hpux*"] || [istarget "hppa2.0w-*-*"] } {
+ verbose "HPUX thread test ignored for non-hppa or PA64 targets."
+ return 0
+ }
+
+ set testfile usrthcore
+ set srcfile ${srcdir}/${subdir}/${testfile}.c
+ set binfile ${srcdir}/${subdir}/${testfile}
+
+ # To build the executable we need to link against the thread library.
+ #
+ # /opt/ansic/bin/cc -Ae +DAportable -g -o usrthcore -lcma usrthcore.c
+ #
+ ## we have trouble building it on 11.0, so we use the prebuilt
+ ## executable instead.
+ ##
+ ##if { [gdb_compile "${srcdir}/${subdir}/${testfile}.c -lcma" "${binfile}" executable {debug additional_flags=-Ae ldflags=-lcma}] != "" } {
+ ## gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ ##}
+
+ #=========================
+ #
+ # Test looking at threads in a core file
+ #
+
+ remote_exec build "rm -f core"
+ remote_exec build "${binfile}"
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+ gdb_test "core-file core" \
+ ".*Core was generated by `usrthcore'.*in main.*usrthcore.c:170.*" \
+ "load corefile"
+
+ gdb_test "info thread" \
+ " 4 .*cma__dispatch.*\\* 1 .*in main.*usrthcore.c:170.*" \
+ "info thread on core file"
+ gdb_test "bt" "#0.*in main.*usrthcore.c:170" "backtrace on active thread"
+ gdb_test "thread 4" ".*Switching to thread 4.*cma__dispatch.*" \
+ "switch to thread 4 (thread2 procedure)"
+ gdb_test "bt" "#0.*cma__dispatch.*thread2.*usrthcore.c:99.*" \
+ "Backtrace on inactive thread (thread2 procedure)"
+ gdb_test "b thread1" "Breakpoint 1.*usrthcore.c, line 75.*" \
+ "break on thread1"
+ gdb_test "run" "Starting program.*Breakpoint 1, thread1.*usrthcore.c:75.*" \
+ "run program, get to thread1 procedure"
+ gdb_test "info threads" "\\* \[23\] .*thread1.* 1 .*cma__dispatch.*" \
+ "info threads after running core"
+
+
+ # Done!
+ #
+ gdb_exit
+
+ remote_exec build "rm -f core"
+
+ return 0
Binary files ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/usrthfork and gdb/testsuite/gdb.hp/gdb.threads-hp/usrthfork differ
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/usrthfork.c gdb/testsuite/gdb.hp/gdb.threads-hp/usrthfork.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/usrthfork.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.threads-hp/usrthfork.c Thu Jul 22 17:50:32 1999
***************
*** 0 ****
--- 1,17 ----
+ #include <stdio.h>
+ #include <pthread.h>
+ #include <sys/types.h>
+
+ int main(void){
+ pid_t pid;
+
+ switch (pid = fork()){
+ case 0:
+ printf("child\n");
+ break;
+ default:
+ printf("parent\n");
+ break;
+ }
+ return 0;
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/usrthfork.exp gdb/testsuite/gdb.hp/gdb.threads-hp/usrthfork.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gdb.threads-hp/usrthfork.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/gdb.threads-hp/usrthfork.exp Thu Jul 22 17:50:32 1999
***************
*** 0 ****
--- 1,72 ----
+ # user_th_basic.exp -- Expect script to test gdb with user threads
+ # Copyright (C) 1992 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ if $tracelevel {
+ strace $tracelevel
+ }
+
+ if { ![istarget "hppa*-*-hpux*"] || [istarget "hppa2.0w-*-*"] } {
+ verbose "HPUX thread test ignored for non-hppa or PA64 targets."
+ return 0
+ }
+
+ set testfile usrthfork
+ set srcfile ${srcdir}/${subdir}/${testfile}.c
+ set binfile ${srcdir}/${subdir}/${testfile}
+
+ # To build the executable we need to link against the thread library.
+ #
+ # /opt/ansic/bin/cc -Ae -g -o usrthfork -lcma usrthfork.c
+ #
+ ## we have trouble building it on 11.0, so we use the prebuilt
+ ## executable instead.
+ ##
+ ##if { [gdb_compile "${srcdir}/${subdir}/${testfile}.c" "${binfile}" executable {debug additional_flags=-Ae ldflags=-lcma}] != "" } {
+ ## gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ ##}
+
+ #=========================
+ #
+ # Test looking at threads.
+ #
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ gdb_test "set follow-fork-mode parent" ".*" "set follow-fork-mode parent"
+ gdb_test "b main" "Breakpoint 1.*" "b main"
+ gdb_test "run" "Breakpoint 1, main.*:8.*" "run to main"
+ ##gdb_test "next" \
+ ## ".*New process.*Detaching after fork from process.*13.*parent.*" \
+ ## "next on CMA fork"
+ send_gdb "next\n"
+ gdb_expect {
+ -re ".*Detaching after fork from.*$gdb_prompt $" {
+ pass "next on CMA fork"
+ }
+ -re ".*$gdb_prompt $" { fail "next on CMA fork" }
+ timeout { fail "(timeout) next on CMA fork" }
+ }
+ exec sleep 1
+
+ gdb_exit
+
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/gen-so-thresh.c gdb/testsuite/gdb.hp/gen-so-thresh.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/gen-so-thresh.c Fri Jan 29 16:03:21 1999
--- gdb/testsuite/gdb.hp/gen-so-thresh.c Wed Dec 31 16:00:00 1969
***************
*** 1,229 ****
- /*
- * Program to generate the so-thresh testcase,
- * including associated linked-against shared libraries.
- * Build as:
- *
- * cc -g -o gen-so-thresh gen-so-thresh.c
- *
- * Invoke as:
- *
- * gen-so-thresh
- *
- * It will put all the code in the current directory (".").
- *
- * A makefile can also be generated if the -makemake option is used.
- * To use the makefile:
- *
- * make -f so-thresh.mk all
- *
- * The name of the application is
- *
- * so-thresh
- *
- * (Revised from a program by John Bishop. --rehrauer)
- */
-
- #include <stdio.h>
- #include <sys/stat.h>
- #include <sys/fcntl.h>
-
- int main (argc, argv)
- int argc;
- char **argv;
- {
- #define NUMBER_OF_INT_VARS 1500
- #define NUMBER_OF_LIBS 3
- int lib_num = NUMBER_OF_LIBS;
- int i;
- int i2;
- FILE *main_file;
- FILE *lib_file;
- FILE *make_file;
- FILE *link_file;
-
- char testcase_name [1000];
- char linkfile_name [1000];
- char makefile_name [1000];
- char mainfile_name [1000];
-
- char file_name[100];
- /*
- * 0123456789 <-- length of field
- * "./fil0000000002.c"; <-- typical filename
- * 12345678901234567890 <-- length of string
- * 10 20
- * ^where null goes
- */
- char file_name_core[100];
-
- /* Verify input.
- */
- if ((argc < 1) || (argc > 2) || (argv == NULL) ||
- ((argc == 2) && (strcmp (argv[1], "-makemake") != 0)))
- {
- printf ("** Syntax: %s [-makemake]\n", argv[0]);
- return;
- }
-
- if (strncmp (argv[0], "gen-", 4) != 0)
- {
- printf ("** This tool expected to be named \"gen-something\"\n");
- return;
- }
- strcpy (testcase_name, argv[0]+4);
-
- strcpy (linkfile_name, testcase_name);
- strcat (linkfile_name, ".linkopts");
- link_file = fopen (linkfile_name, "w");
- fprintf (link_file, "# Linker options for %s test\n", testcase_name);
-
- /* Generate the makefile, if requested.
- */
- if (argc == 2)
- {
- strcpy (makefile_name, testcase_name);
- strcat (makefile_name, ".mk.new");
- make_file = fopen (makefile_name, "w");
- printf (" Note: New makefile (%s) generated.\n", makefile_name);
- printf (" May want to update existing makefile, if any.\n");
- fprintf (make_file, "# Generated automatically by %s\n", argv[0]);
- fprintf (make_file, "# Make file for %s test\n", testcase_name);
- fprintf (make_file, "\n");
- fprintf (make_file, "CFLAGS = +DA1.1 -g\n");
- fprintf (make_file, "\n");
- fprintf (make_file, "# This is how to build this generator.\n");
- fprintf (make_file, "%s.o: %s.c\n", argv[0], argv[0]);
- fprintf (make_file, "\t$(CC) $(CFLAGS) -o %s.o -c %s.c\n", argv[0], argv[0]);
- fprintf (make_file, "%s: %s.o\n", argv[0], argv[0]);
- fprintf (make_file, "\t$(CC) $(CFLAGS) -o %s %s.o\n", argv[0], argv[0]);
- fprintf (make_file, "\n");
- fprintf (make_file, "# This is how to run this generator.\n");
- fprintf (make_file, "# This target should be made before the 'all' target,\n");
- fprintf (make_file, "# to ensure that the shlib sources are all available.\n");
- fprintf (make_file, "require_shlibs: %s\n", argv[0]);
- for (i=0; i < lib_num; i++)
- {
- fprintf (make_file, "\tif ! [ -a lib%2.2d_%s.c ] ; then \\\n", i, testcase_name);
- fprintf (make_file, "\t %s ; \\\n", argv[0]);
- fprintf (make_file, "\tfi\n");
- }
- fprintf (make_file, "\n");
- fprintf (make_file, "# This is how to build all the shlibs.\n");
- fprintf (make_file, "# Be sure to first make the require_shlibs target!\n");
- for (i=0; i < lib_num; i++)
- {
- fprintf (make_file, "lib%2.2d_%s.o: lib%2.2d_%s.c\n", i, testcase_name, i, testcase_name);
- fprintf (make_file, "\t$(CC) $(CFLAGS) +Z -o lib%2.2d_%s.o -c lib%2.2d_%s.c\n", i, testcase_name, i, testcase_name);
- fprintf (make_file, "lib%2.2d-%s.sl: lib%2.2d-%s.o\n", i, testcase_name, i, testcase_name);
- fprintf (make_file, "\t$(LD) $(LDFLAGS) -b -o lib%2.2d-%s.sl lib%2.2d-%s.o\n", i, testcase_name, i, testcase_name);
- }
- fprintf (make_file, "\n");
- fprintf (make_file, "# For convenience, here's names for all pieces of all shlibs.\n");
- fprintf (make_file, "SHLIB_SOURCES = \\\n");
- for (i=0; i < lib_num-1; i++)
- fprintf (make_file, "\tlib%2.2d-%s.c \\\n", i, testcase_name);
- fprintf (make_file, "\tlib%2.2d-%s.c\n", lib_num-1, testcase_name);
- fprintf (make_file, "SHLIB_OBJECTS = $(SHLIB_SOURCES:.c=.o)\n");
- fprintf (make_file, "SHLIBS = $(SHLIB_SOURCES:.c=.sl)\n");
- fprintf (make_file, "SHLIB_NAMES = $(SHLIB_SOURCES:.c=)\n");
- fprintf (make_file, "EXECUTABLES = $(SHLIBS) %s %s\n", argv[0], testcase_name);
- fprintf (make_file, "OBJECT_FILES = $(SHLIB_OBJECTS) %s.o %s.o\n", argv[0], testcase_name);
- fprintf (make_file, "\n");
- fprintf (make_file, "shlib_objects: $(SHLIB_OBJECTS)\n");
- fprintf (make_file, "shlibs: $(SHLIBS)\n");
- fprintf (make_file, "\n");
- fprintf (make_file, "# This is how to build the debuggable testcase that uses the shlibs.\n");
- fprintf (make_file, "%s.o: %s.c\n", testcase_name, testcase_name);
- fprintf (make_file, "\t$(CC) $(CFLAGS) -o %s.o -c %s.c\n", testcase_name, testcase_name);
- fprintf (make_file, "%s: shlibs %s.o\n", testcase_name, testcase_name);
- fprintf (make_file, "\t$(LD) $(LDFLAGS) -o %s -lc -L. ", testcase_name);
- fprintf (make_file, "-c %s /opt/langtools/lib/end.o /lib/crt0.o %s.o\n", linkfile_name, testcase_name);
- fprintf (make_file, "\n");
- fprintf (make_file, "# Yeah, but you should first make the require_shlibs target!\n");
- fprintf (make_file, "all: %s %s\n", testcase_name, argv[0]);
- fprintf (make_file, "\n");
- fprintf (make_file, "# To remove everything built via this makefile...\n");
- fprintf (make_file, "clean:\n");
- /* Do this carefully, to avoid hitting silly HP-UX ARG_MAX limits... */
- fprintf (make_file, "\trm -f lib0*-%s.*\n", testcase_name);
- fprintf (make_file, "\trm -f lib1*-%s.*\n", testcase_name);
- fprintf (make_file, "\trm -f lib2*-%s.*\n", testcase_name);
- fprintf (make_file, "\trm -f lib3*-%s.*\n", testcase_name);
- fprintf (make_file, "\trm -f lib4*-%s.*\n", testcase_name);
- fprintf (make_file, "\trm -f lib5*-%s.*\n", testcase_name);
- fprintf (make_file, "\trm -f lib6*-%s.*\n", testcase_name);
- fprintf (make_file, "\trm -f lib7*-%s.*\n", testcase_name);
- fprintf (make_file, "\trm -f lib8*-%s.*\n", testcase_name);
- fprintf (make_file, "\trm -f lib9*-%s.*\n", testcase_name);
- fprintf (make_file, "\trm -f %s %s %s %s.c\n", argv[0], testcase_name, linkfile_name, testcase_name);
- fprintf (make_file, "\n");
- fclose (make_file);
- }
-
- /* Generate the code for the libraries.
- */
- for (i=0; i < lib_num; i++) {
-
- /* Generate the names for the library.
- */
- sprintf (file_name, "lib%2.2d-%s.c", i, testcase_name);
- sprintf (file_name_core, "lib%2.2d-%s", i, testcase_name);
-
- /* Generate the source code.
- */
- lib_file = fopen (file_name, "w");
- fprintf (lib_file, "/* Shared library file number %d */\n", i);
- fprintf (lib_file, "#include <stdio.h>\n\n");
- fprintf (lib_file, "/* The following variables largely exist to bloat this library's debug info. */\n");
- fprintf (lib_file, "static char c_static_buf_%d [100];\n", i);
- for (i2=0; i2<NUMBER_OF_INT_VARS; i2++)
- fprintf (lib_file, "int i_%d_%d;\n", i, i2);
- fprintf (lib_file, "\nint r_%d ()\n", i);
- fprintf (lib_file, "{\n");
- for (i2=0; i2<NUMBER_OF_INT_VARS; i2++)
- fprintf (lib_file, " i_%d_%d = %d*%d;\n", i, i2, i2, i2);
- fprintf (lib_file, " return 1;\n");
- fprintf (lib_file, "}\n\n");
- fprintf (lib_file, "/* end of generated file */\n");
- fclose (lib_file);
-
- /* Add a linker options line
- */
- fprintf (link_file, "-l%2.2d-%s\n", i, testcase_name);
- }
-
- /* Generate the "main" file.
- */
- strcpy (mainfile_name, testcase_name);
- strcat (mainfile_name, ".c");
- main_file = fopen (mainfile_name, "w");
- fprintf (main_file, "/* Generated test progam with %d shared libraries. */\n\n",
- lib_num);
- fprintf (main_file, "#include <stdio.h>\n\n");
-
- for (i = 0; i < lib_num; i++) {
- fprintf (main_file, "extern int r_%d();\n", i);
- }
-
- fprintf (main_file, "\n");
- fprintf (main_file, "int main()\n");
- fprintf (main_file, "{\n");
- fprintf (main_file, " int accum;\n");
- fprintf (main_file, " int lib_num = %d;\n", lib_num);
-
- for (i = 0; i < lib_num; i++) {
- fprintf (main_file, " accum += r_%d();\n", i);
- }
-
- fprintf (main_file, " printf( \"Final value: %%d, should be %%d\\n\", accum, lib_num );\n\n");
- fprintf (main_file, " return 0;\n");
- fprintf (main_file, "}\n\n");
- fprintf (main_file, "/* end of generated file */\n");
- fclose (main_file);
-
- /* Finish up the link file and the build file
- */
- fclose (link_file);
- }
-
- /* End of file */
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/hwwatchbus.c gdb/testsuite/gdb.hp/hwwatchbus.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/hwwatchbus.c Sun Jan 10 21:40:47 1999
--- gdb/testsuite/gdb.hp/hwwatchbus.c Wed Dec 31 16:00:00 1969
***************
*** 1,9 ****
- /* This program raises a SIGBUS signal on HP-UX when the
- pointer "bogus_p" is dereferenced.
- */
- int * bogus_p = (int *)3;
-
- main()
- {
- *bogus_p = 0xdeadbeef;
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/hwwatchbus.exp gdb/testsuite/gdb.hp/hwwatchbus.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/hwwatchbus.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/hwwatchbus.exp Wed Dec 31 16:00:00 1969
***************
*** 1,81 ****
- # Copyright (C) 1997, 1998 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- set prms_id 0
- set bug_id 0
-
- if { [skip_hp_tests] } then { continue }
-
- if { ![istarget "hppa*-*-hpux10.30"] && ![istarget "hppa*-*-hpux11.*"] } {
- verbose "HPUX h/w watch test ignored for non-hppa or pre-HP/UX-10.30 targets."
- return 0
- }
-
- set testfile "hwwatchbus"
- set srcfile ${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
-
- # build the first test case
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- if [get_compiler_info ${binfile}] {
- return -1
- }
-
- # Start with a fresh gdb
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
-
- # We ought to be able to set a hardware watchpoint, step, and
- # get a SIGBUS signal reported.
- #
- if ![runto_main] then {
- fail "can't run to main"
- return 0
- }
-
- send_gdb "watch bogus_p\n"
- gdb_expect {
- -re "Hardware watchpoint \[0-9\]*: bogus_p.*$gdb_prompt $"\
- {pass "set h/w watchpoint"}
- -re "$gdb_prompt $"\
- {fail "set h/w watchpoint"}
- timeout {fail "(timeout) set h/w watchpoint"}
- }
-
- send_gdb "step\n"
- gdb_expect {
- -re "Program received signal SIGBUS, Bus error.* in main .*${srcfile}:8.*$gdb_prompt $"\
- {pass "see real SIGBUS when h/w watchpoint set"}
- -re "$gdb_prompt $"\
- {fail "see real SIGBUS when h/w watchpoint set"}
- timeout {fail "(timeout) see real SIGBUS when h/w watchpoint set"}
- }
-
- return 0
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/inherit-hp.exp gdb/testsuite/gdb.hp/inherit-hp.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/inherit-hp.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/inherit-hp.exp Wed Dec 31 16:00:00 1969
***************
*** 1,851 ****
- # Copyright (C) 1992, 1993, 1994, 1997 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
- # (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.
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # This file was written by Fred Fish. (fnf@cygnus.com)
-
- set ws "\[\r\n\t \]+"
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- # Check to see if we have an executable to test. If not, then either we
- # haven't tried to compile one, or the compilation failed for some reason.
- # In either case, just notify the user and skip the tests in this file.
- # Note - create separate "inherit" executable from misc.cc
-
- set testfile "inherit-hp"
- set srcfile misc-hp.cc
- set binfile ${objdir}/${subdir}/${testfile}
-
- if [get_compiler_info ${binfile} "c++"] {
- return -1;
- }
-
-
- if { $gcc_compiled } then { continue }
-
-
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- #
- # Single inheritance, print individual members.
- #
-
- proc test_print_si_members {} {
- # Print all members of g_A using fully qualified form.
-
- gdb_test "print g_A.A::a" ".* = 1" "print g_A.A::a"
-
- gdb_test "print g_A.A::x" ".* = 2" "print g_A.A::x"
-
- # Print members of g_A using nonambiguous compact form.
-
- gdb_test "print g_A.a" ".* = 1" "print g_A.a"
-
- gdb_test "print g_A.x" ".* = 2" "print g_A.x"
-
- # Print all members of g_B using fully qualified form.
-
- gdb_test "print g_B.A::a" ".* = 3" "print g_B.A::a"
-
- gdb_test "print g_B.A::x" ".* = 4" "print g_B.A::x"
-
- gdb_test "print g_B.B::b" ".* = 5" "print g_B.B::b"
-
- gdb_test "print g_B.B::x" ".* = 6" "print g_B.B::x"
-
- # Print members of g_B using nonambiguous compact form.
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_B.a" ".* = 3" "print g_B.a"
-
- gdb_test "print g_B.b" ".* = 5" "print g_B.b"
-
- gdb_test "print g_B.x" ".* = 6" "print g_B.x"
-
- # Print all members of g_C using fully qualified form.
-
- gdb_test "print g_C.A::a" ".* = 7" "print g_C.A::a"
-
- gdb_test "print g_C.A::x" ".* = 8" "print g_C.A::x"
-
- gdb_test "print g_C.C::c" ".* = 9" "print g_C.C::c"
-
- gdb_test "print g_C.C::x" ".* = 10" "print g_C.C::x"
-
- # Print members of g_C using nonambiguous compact form.
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_C.a" ".* = 7" "print g_C.a"
-
- gdb_test "print g_C.c" ".* = 9" "print g_C.c"
-
- gdb_test "print g_C.x" ".* = 10" "print g_C.x"
- }
-
- #
- # Single inheritance, print type definitions.
- #
-
- proc test_ptype_si {} {
- global gdb_prompt
- global ws
-
- # Print class A as a type.
-
- send_gdb "ptype A\n"
- gdb_expect {
- -re "type = class A \{\r\n.*\[ \]*int a;\r\n\[ \]*int x;\r\n.*\[ \]*\}\r\n$gdb_prompt $" {
- pass "ptype A (FIXME)"
- }
- -re "type = struct A \{\r\n\[ \]*int a;\r\n\[ \]*int x;\r\n\[ \]*\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype A (FIXME)"
- }
- -re ".*$gdb_prompt $" { fail "ptype A" }
- timeout { fail "ptype A (timeout)" ; return }
- }
-
- # Print class A as an explicit class.
-
- send_gdb "ptype class A\n"
- gdb_expect {
- -re "type = class A \{\r\n.*\[ \]*int a;\r\n\[ \]*int x;\r\n.*\[ \]*\}\r\n$gdb_prompt $" {
- pass "ptype class A (FIXME)"
- }
- -re "type = struct A \{\r\n\[ \]*int a;\r\n\[ \]*int x;\r\n\[ \]*\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype class A (FIXME)"
- }
- -re ".*$gdb_prompt $" { fail "ptype class A" }
- timeout { fail "ptype class A (timeout)" ; return }
- }
-
- # Print type of an object of type A.
-
- send_gdb "ptype g_A\n"
- gdb_expect {
- -re "type = class A \{\r\n.*\[ \]*int a;\r\n\[ \]*int x;\r\n.*\[ \]*\}\r\n$gdb_prompt $" {
- pass "ptype g_A (FIXME)"
- }
- -re "type = struct A \{\r\n\[ \]*int a;\r\n\[ \]*int x;\r\n\[ \]*\}\r\n$gdb_prompt $" {
- setup_xfail "*-*-*"
- fail "ptype g_A (FIXME)"
- }
- -re ".*$gdb_prompt $" { fail "ptype g_A" }
- timeout { fail "ptype g_A (timeout)" ; return }
- }
-
- # Print class B as a type.
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype B" "type = class B : public A \{\r\n\[ \]*public:\r\n\[ \]*int b;\r\n\[ \]*int x;\r\n.*\}" "ptype B"
-
- # Print class B as an explicit class.
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype class B" "type = class B : public A \{\r\n\[ \]*public:\r\n\[ \]*int b;\r\n\[ \]*int x;\r\n.*\}" "ptype class B"
-
- # Print type of an object of type B.
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype g_B" "type = class B : public A \{\r\n\[ \]*public:\r\n\[ \]*int b;\r\n\[ \]*int x;\r\n.*\}" "ptype g_B"
-
- # Print class C as a type.
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype C" "type = class C : public A \{\r\n\[ \]*public:\r\n\[ \]*int c;\r\n\[ \]*int x;\r\n.*\}" "ptype C"
-
- # Print class C as an explicit class.
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype class C" "type = class C : public A \{\r\n\[ \]*public:\r\n\[ \]*int c;\r\n\[ \]*int x;\r\n.*\}" "ptype class C"
-
- # Print type of an object of type g_C.
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype g_C" "type = class C : public A \{\r\n\[ \]*public:\r\n\[ \]*int c;\r\n\[ \]*int x;\r\n.*\}" "ptype g_C"
-
- # gcc cygnus-2.3.3 (Q1) has this bug, but it was fixed as of
- # cygnus-2.3.3-930417. PR 2819.
- send_gdb "ptype tagless_struct\n"
- gdb_expect {
- -re "type = class \{${ws}public:${ws}int one;${ws}int two;${ws}tagless_struct & operator=\\(tagless_struct &\\);${ws}\\\$_1 \\(tagless_struct &\\);${ws}\\\$_1 \\(\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype tagless struct"
- }
- -re "type = (struct|class).*\{.*int one;.*int two;.*\}\r\n$gdb_prompt $" {
- pass "ptype tagless struct (obsolete gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype tagless struct"
- }
- timeout {
- fail "ptype tagless struct (timeout)"
- }
- }
-
- send_gdb "ptype v_tagless\n"
- gdb_expect {
- -re "type = class \{${ws}public:${ws}int one;${ws}int two;${ws}tagless_struct & operator=\\(tagless_struct &\\);${ws}\\\$_1 \\(tagless_struct &\\);${ws}\\\$_1 \\(\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype variable of type tagless struct"
- }
- -re "type = (struct|class).*\{.*int one;.*int two;.*\}\r\n$gdb_prompt $" {
- pass "ptype variable of type tagless struct (obsolete gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype variable of type tagless struct"
- }
- timeout {
- fail "ptype variable of type tagless struct (timeout)"
- }
- }
- }
-
- #
- # Single inheritance, print complete classes.
- #
-
- proc test_print_si_classes {} {
- # Print all members of g_A.
-
- gdb_test "print g_A" ".* = \{a = 1, x = 2\}" "print g_A"
-
- # Print all members of g_B.
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_B" ".* = \{\<class A\> = \{a = 3, x = 4\}, b = 5, x = 6\}" "print g_B"
-
- # Print all members of g_C.
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_C" ".* = \{\<class A\> = \{a = 7, x = 8\}, c = 9, x = 10\}" "print g_C"
- }
-
- #
- # Single inheritance, print anonymous unions.
- # GDB versions prior to 4.14 entered an infinite loop when printing
- # the type of a class containing an anonymous union, and they were also
- # incapable of printing the member of an anonymous union.
- # We test the printing of the member first, and perform the other tests
- # only if the test succeeds, to avoid the infinite loop.
- #
-
- proc test_print_anon_union {} {
- global gdb_prompt
- global ws
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_anon_union.a" ".* = 2" "print anonymous union member"
- setup_xfail_format "DWARF 1"
- send_gdb "print g_anon_union\n"
- gdb_expect {
- -re ".* = \{one = 1, \{a = 2, b = 2\}\}\r\n$gdb_prompt $" {
- pass "print variable of type anonymous union"
- }
- -re ".* = .*\{one = 1, = \{a = 2, b = .*\}\}\r\n$gdb_prompt $" {
- pass "print variable of type anonymous union (obsolete gcc or gdb)"
- }
- -re ".*\r\n$gdb_prompt $" {
- fail "print variable of type anonymous union"
- }
- timeout {
- fail "print variableof type anonymous union (timeout)"
- }
- }
- setup_xfail_format "DWARF 1"
- send_gdb "ptype g_anon_union\n"
- gdb_expect {
- -re "type = class class_with_anon_union \{${ws}public:${ws}int one;${ws}union \{${ws}public:${ws}int a;${ws}long int b;${ws}union \{\.\.\.\} & operator=\\(union \{\.\.\.\} &\\);${ws}\\\$_0 \\(union \{\.\.\.\} &\\);${ws}\\\$_0 \\(\\);${ws}\};${ws}class_with_anon_union & operator=\\(class_with_anon_union const &\\);${ws}class_with_anon_union\\(class_with_anon_union const &\\);${ws}class_with_anon_union\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "print type of anonymous union"
- }
- -re "type = (struct|class).*\{.*int one;.*union \{.*int a;.*(long|long int|int) b;.*\};.*\}\r\n$gdb_prompt $" {
- pass "print type of anonymous union (obsolete gcc or gdb)"
- }
- -re ".*\r\n$gdb_prompt $" {
- fail "print type of anonymous union"
- }
- timeout {
- fail "print type of anonymous union (timeout)"
- }
- }
- }
-
- #
- # Multiple inheritance, print individual members.
- #
-
- proc test_print_mi_members {} {
- global gdb_prompt
-
- # Print all members of g_A.
-
- gdb_test "print g_A.A::a" ".* = 1" "print g_A.A::a"
-
- gdb_test "print g_A.A::x" ".* = 2" "print g_A.A::x"
-
- # Print all members of g_B.
-
- gdb_test "print g_B.A::a" ".* = 3" "print g_B.A::a"
-
- gdb_test "print g_B.A::x" ".* = 4" "print g_B.A::x"
-
- gdb_test "print g_B.B::b" ".* = 5" "print g_B.B::b"
-
- gdb_test "print g_B.B::x" ".* = 6" "print g_B.B::x"
-
- # Print all members of g_C.
-
- gdb_test "print g_C.A::a" ".* = 7" "print g_C.A::a"
-
- gdb_test "print g_C.A::x" ".* = 8" "print g_C.A::x"
-
- gdb_test "print g_C.C::c" ".* = 9" "print g_C.C::c"
-
- gdb_test "print g_C.C::x" ".* = 10" "print g_C.C::x"
-
- # Print all members of g_D.
-
- # The following is ambiguous, and gdb should detect this.
- # For now, accept gdb's behavior as an expected failure if it
- # simply prints either member correctly.
-
- # setup_xfail "*-*-*"
- send_gdb "print g_D.A::a\n"
- gdb_expect {
- -re "warning: A ambiguous; using D::B::A. Use a cast to disambiguate.\r\n\\$\[0-9\]* = 11\r\n$gdb_prompt $" {
- pass "print g_D.A::a"
- }
- -re ".* = 15\r\n$gdb_prompt $" {
- fail "print g_D.A::a (did GDB's algorithm change?)"
- }
- -re ".* = 11\r\n$gdb_prompt $" {
- fail "print g_D.A::a (ambiguity not reported)"
- }
- -re ".*$gdb_prompt $" { fail "print g_D.A::a" }
- timeout { fail "print g_D.A::a (timeout)" ; return }
- }
-
- # The following is ambiguous, and gdb should detect this.
- # For now, accept gdb's behavior as an expected failure if it
- # simply prints either member correctly.
-
- # setup_xfail "*-*-*"
- send_gdb "print g_D.A::x\n"
- gdb_expect {
- -re "warning: A ambiguous; using D::B::A. Use a cast to disambiguate.\r\n\\$\[0-9\]* = 12\r\n$gdb_prompt $" {
- pass "print g_D.A::x"
- }
- -re ".* = 16\r\n$gdb_prompt $" {
- fail "print g_D.A::x (did GDB's algorithm change?)"
- }
- -re ".* = 12\r\n$gdb_prompt $" {
- fail "print g_D.A::x (ambiguity not reported)"
- }
- -re ".*$gdb_prompt $" { fail "print g_D.A::x" }
- timeout { fail "print g_D.A::x (timeout)" ; return }
- }
-
- gdb_test "print g_D.B::b" ".* = 13" "print g_D.B::b"
-
- gdb_test "print g_D.B::x" ".* = 14" "print g_D.B::x"
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_D.C::c" ".* = 17" "print g_D.C::c"
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_D.C::x" ".* = 18" "print g_D.C::x"
-
- gdb_test "print g_D.D::d" ".* = 19" "print g_D.D::d"
-
- gdb_test "print g_D.D::x" ".* = 20" "print g_D.D::x"
-
- # Print all members of g_E.
-
- # The following is ambiguous, and gdb should detect this.
- # For now, accept gdb's behavior as an expected failure if it
- # simply prints either member correctly.
-
- #setup_xfail "*-*-*"
- send_gdb "print g_E.A::a\n"
- gdb_expect {
- -re "warning: A ambiguous; using E::D::B::A. Use a cast to disambiguate.\r\n\\$\[0-9\]* = 21\r\n$gdb_prompt $" {
- pass "print g_E.A::a"
- }
- -re ".* = 25\r\n$gdb_prompt $" {
- fail "print g_E.A::a (did GDB's algorithm change?)"
- }
- -re ".* = 21\r\n$gdb_prompt $" {
- fail "print g_E.A::a (ambiguity not reported)"
- }
- -re ".*$gdb_prompt $" { fail "print g_E.A::a" }
- timeout { fail "print g_E.A::a (timeout)" ; return }
- }
-
- # The following is ambiguous, and gdb should detect this.
- # For now, accept gdb's behavior as an expected failure if it
- # simply prints either member correctly.
-
- # setup_xfail "*-*-*"
- send_gdb "print g_E.A::x\n"
- gdb_expect {
- -re "warning: A ambiguous; using E::D::B::A. Use a cast to disambiguate.\r\n\\$\[0-9\]* = 22\r\n$gdb_prompt $" {
- pass "print g_E.A::x"
- }
- -re ".* = 26\r\n$gdb_prompt $" {
- fail "print g_E.A::x (did GDB's algorithm change?)"
- }
- -re ".* = 22\r\n$gdb_prompt $" {
- fail "print g_E.A::x (ambiguity not reported)"
- }
- -re ".*$gdb_prompt $" { fail "print g_E.A::x" }
- timeout { fail "print g_E.A::x (timeout)" ; return }
- }
-
- gdb_test "print g_E.B::b" ".* = 23" "print g_E.B::b"
-
- gdb_test "print g_E.B::x" ".* = 24" "print g_E.B::x"
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_E.C::c" ".* = 27" "print g_E.C::c"
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_E.C::x" ".* = 28" "print g_E.C::x"
-
- gdb_test "print g_E.D::d" ".* = 29" "print g_E.D::d"
-
- gdb_test "print g_E.D::x" ".* = 30" "print g_E.D::x"
-
- gdb_test "print g_E.E::e" ".* = 31" "print g_E.E::e"
-
- gdb_test "print g_E.E::x" ".* = 32" "print g_E.E::x"
- }
-
- #
- # Multiple inheritance, print type definitions.
- #
-
- proc test_ptype_mi {} {
- setup_xfail_format "DWARF 1"
- gdb_test "ptype D" "type = class D : public B, public C \{\r\n\[ \]*public:\r\n\[ \]*int d;\r\n\[ \]*int x;\r\n.*\}" "ptype D"
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype class D" "type = class D : public B, public C \{\r\n\[ \]*public:\r\n\[ \]*int d;\r\n\[ \]*int x;\r\n.*\}" "ptype class D"
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype g_D" "type = class D : public B, public C \{\r\n\[ \]*public:\r\n\[ \]*int d;\r\n\[ \]*int x;\r\n.*\}" "ptype g_D"
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype E" "type = class E : public D \{\r\n\[ \]*public:\r\n\[ \]*int e;\r\n\[ \]*int x;\r\n.*\}" "ptype E"
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype class E" "type = class E : public D \{\r\n\[ \]*public:\r\n\[ \]*int e;\r\n\[ \]*int x;\r\n.*\}" "ptype class E"
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype g_E" "type = class E : public D \{\r\n\[ \]*public:\r\n\[ \]*int e;\r\n\[ \]*int x;\r\n.*\}" "ptype g_E"
- }
-
- #
- # Multiple inheritance, print complete classes.
- #
-
- proc test_print_mi_classes {} {
- # Print all members of g_D.
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_D" ".* = \{\<class B\> = \{\<class A\> = \{a = 11, x = 12\}, b = 13, x = 14\}, \<class C\> = \{\<class A\> = \{a = 15, x = 16\}, c = 17, x = 18\}, d = 19, x = 20\}" "print g_D"
-
- # Print all members of g_E.
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_E" ".* = \{\<class D\> = \{\<class B\> = \{\<class A\> = \{a = 21, x = 22\}, b = 23, x = 24\}, \<class C\> = \{\<class A\> = \{a = 25, x = 26\}, c = 27, x = 28\}, d = 29, x = 30\}, e = 31, x = 32\}" "print g_E"
- }
-
- #
- # Single virtual inheritance, print individual members.
- #
-
- proc test_print_svi_members {} {
- global gdb_prompt
- global decimal
-
- # Print all members of g_vA.
-
- gdb_test "print g_vA.vA::va" ".* = 1" "print g_vA.vA::va"
-
- gdb_test "print g_vA.vA::vx" ".* = 2" "print g_vA.vA::vx"
-
- # Print members of g_vA using compact form.
-
- gdb_test "print g_vA.va" ".* = 1" "print g_vA.va"
-
- gdb_test "print g_vA.vx" ".* = 2" "print g_vA.vx"
-
- # Print all members of g_vB.
-
- setup_xfail_format "DWARF 1"
- send_gdb "print g_vB.vA::va\n"
- gdb_expect {
- -re ".* = 3\r\n$gdb_prompt $" { pass "print g_vB.vA::va" }
- -re ".*virtual baseclass botch.*$gdb_prompt $" {
- # Does not happen with gcc cygnus-2.4.5-930828
- fail "print g_vB.vA::va (known bug with gcc cygnus-2.4.5-930417)"
- # Many of the rest of these tests have the same problem.
- return 0
- }
- -re ".*$gdb_prompt $" { fail "print g_vB.vA::va" }
- timeout { fail "print g_vB.vA::va (timeout)" ; return }
- }
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vB.vA::vx" ".* = 4" "print g_vB.vA::vx"
-
- gdb_test "print g_vB.vB::vb" ".* = 5" "print g_vB.vB::vb"
-
- gdb_test "print g_vB.vB::vx" ".* = 6" "print g_vB.vB::vx"
-
- # Print members of g_vB using compact form.
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vB.va" ".* = 3" "print g_vB.va"
-
- gdb_test "print g_vB.vb" ".* = 5" "print g_vB.vb"
-
- gdb_test "print g_vB.vx" ".* = 6" "print g_vB.vx"
-
- # Print all members of g_vC.
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vC.vA::va" ".* = 7" "print g_vC.vA::va"
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vC.vA::vx" ".* = 8" "print g_vC.vA::vx"
-
- gdb_test "print g_vC.vC::vc" ".* = 9" "print g_vC.vC::vc"
-
- gdb_test "print g_vC.vC::vx" ".* = 10" "print g_vC.vC::vx"
-
- # Print members of g_vC using compact form.
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vC.va" ".* = 7" "print g_vC.va"
-
- gdb_test "print g_vC.vc" ".* = 9" "print g_vC.vc"
-
- gdb_test "print g_vC.vx" ".* = 10" "print g_vC.vx"
- }
-
- #
- # Single virtual inheritance, print type definitions.
- #
-
- proc test_ptype_vi {} {
- global gdb_prompt
-
- # This class does not use any C++-specific features, so it's fine for
- # it to print as "struct".
- send_gdb "ptype vA\n"
- gdb_expect {
- -re "type = class vA \{\[\r\n\]+\[ \]*public:\[\r\n\]+\[ \]*int va;\[\r\n\]+\[ \]*int vx;\[\r\n\]+.*\}\[\r\n\]+$gdb_prompt $" {
- pass "ptype vA"
- }
- -re "type = struct vA \{\[\r\n\]+\[ \]*int va;\[\r\n\]+\[ \]*int vx;\[\r\n\]+\}\[\r\n\]+$gdb_prompt $" {
- pass "ptype vA"
- }
- -re ".*$gdb_prompt $" { fail "ptype vA" }
- timeout { fail "ptype vA (timeout)" ; return }
- }
-
- # This class does not use any C++-specific features, so it's fine for
- # it to print as "struct".
- send_gdb "ptype class vA\n"
- gdb_expect {
- -re "type = class vA \{\[\r\n\]+\[ \]*public:\[\r\n\]+\[ \]*int va;\[\r\n\]+\[ \]*int vx;\[\r\n\]+.*\}\[\r\n\]+$gdb_prompt $" {
- pass "ptype class vA"
- }
- -re "type = struct vA \{\[\r\n\]+\[ \]*int va;\[\r\n\]+\[ \]*int vx;\[\r\n\]+\}\[\r\n\]+$gdb_prompt $" {
- pass "ptype class vA"
- }
- -re ".*$gdb_prompt $" { fail "ptype class vA" }
- timeout { fail "ptype class vA (timeout)" ; return }
- }
-
- # This class does not use any C++-specific features, so it's fine for
- # it to print as "struct".
- send_gdb "ptype g_vA\n"
- gdb_expect {
- -re "type = class vA \{\[\r\n\]+\[ \]*public:\[\r\n\]+\[ \]*int va;\[\r\n\]+\[ \]*int vx;\[\r\n\]+.*\}\[\r\n\]+$gdb_prompt $" {
- pass "ptype g_vA"
- }
- -re "type = struct vA \{\[\r\n\]+\[ \]*int va;\[\r\n\]+\[ \]*int vx;\[\r\n\]+\}\[\r\n\]+$gdb_prompt $" {
- pass "ptype g_vA"
- }
- -re ".*$gdb_prompt $" { fail "ptype g_vA" }
- timeout { fail "ptype g_vA (timeout)" ; return }
- }
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype vB" "ptype vB\[\r\n\]+type = class vB : public virtual vA \{\[\r\n\]+ public:\r\n\[ \]+int vb;\r\n\[ \]+int vx;\r\n.*\}" "ptype vB (aCC)"
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype class vB" "type = class vB : public virtual vA \{\r\n\[ \]*public:\r\n\[ \]*int vb;\r\n\[ \]*int vx;\r\n.*\}" "ptype class vB (aCC)"
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype g_vB" "type = class vB : public virtual vA \{\r\n\[ \]*public:\r\n\[ \]*int vb;\r\n\[ \]*int vx;\r\n.*\}" "ptype g_vB (aCC)"
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype vC" "type = class vC : public virtual vA \{\r\n\[ \]*public:\r\n\[ \]*int vc;\r\n\[ \]*int vx;\r\n.*\}" "ptype vC (aCC)"
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype class vC" "type = class vC : public virtual vA \{\r\n\[ \]*public:\r\n\[ \]*int vc;\r\n\[ \]*int vx;\r\n.*\}" "ptype class vC (aCC)"
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype g_vC" "type = class vC : public virtual vA \{\r\n\[ \]*public:\r\n\[ \]*int vc;\r\n\[ \]*int vx;\r\n.*\}" "ptype g_vC (aCC)"
- }
-
- #
- # Single virtual inheritance, print complete classes.
- #
-
- proc test_print_svi_classes {} {
- global gdb_prompt
- global hex
- global decimal
-
- # Print all members of g_vA.
-
- gdb_test "print g_vA" ".* = \{va = 1, vx = 2\}" "print g_vA"
-
- # Print all members of g_vB.
-
- setup_xfail_format "DWARF 1"
- send_gdb "print g_vB\n"
- gdb_expect {
- -re ".* = \{\<class vA\> = \{va = 3, vx = 4\}, vb = 5, vx = 6, Virtual table at $hex\}\r\n$gdb_prompt $" {
- pass "print g_vB"
- }
- -re ".*invalid address 0x0.*$gdb_prompt $" {
- # Does not happen with gcc cygnus-2.4.5-930828
- fail "print g_vB (known bug with gcc cygnus-2.4.5-930417)"
- # Many of the rest of these tests have the same problem.
- return 0
- }
- -re ".*$gdb_prompt $" { fail "print g_vB" }
- timeout { fail "print g_vB (timeout)" ; return }
- }
-
- # Print all members of g_vC.
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vC" ".* = \{\<class vA\> = \{va = 7, vx = 8\}, vc = 9, vx = 10, Virtual table at $hex\}" "print g_vC"
- }
-
- #
- # Multiple virtual inheritance, print individual members.
- #
-
- proc test_print_mvi_members {} {
- global gdb_prompt
- global decimal
-
- # Print all members of g_vD.
-
- setup_xfail_format "DWARF 1"
- send_gdb "print g_vD.vA::va\n"
- gdb_expect {
- -re ".* = 19\r\n$gdb_prompt $" { pass "print g_vD.vA::va" }
- -re ".*virtual baseclass botch.*$gdb_prompt $" {
- # Does not happen with gcc cygnus-2.4.5-930828
- fail "print g_vD.vA::va (known bug with gcc cygnus-2.4.5-930417)"
- # Many of the rest of these tests have the same problem.
- return 0
- }
- -re ".*$gdb_prompt $" { fail "print g_vD.vA::va" }
- timeout { fail "print g_vD.vA::va (timeout)" ; return }
- }
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vD.vA::vx" ".* = 20" "print g_vD.vA::vx"
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vD.vB::vb" ".* = 21" "print g_vD.vB::vb"
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vD.vB::vx" ".* = 22" "print g_vD.vB::vx"
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vD.vC::vc" ".* = 23" "print g_vD.vC::vc"
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vD.vC::vx" ".* = 24" "print g_vD.vC::vx"
-
- gdb_test "print g_vD.vD::vd" ".* = 25" "print g_vD.vD::vd"
-
- gdb_test "print g_vD.vD::vx" ".* = 26" "print g_vD.vD::vx"
-
- # Print all members of g_vE.
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vE.vA::va" ".* = 0" "print g_vE.vA::va"
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vE.vA::vx" ".* = 0" "print g_vE.vA::vx"
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vE.vB::vb" ".* = 0" "print g_vE.vB::vb"
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vE.vB::vx" ".* = 0" "print g_vE.vB::vx"
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vE.vC::vc" ".* = 0" "print g_vE.vC::vc"
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vE.vC::vx" ".* = 0" "print g_vE.vC::vx"
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vE.vD::vd" ".* = 0" "print g_vE.vD::vd"
-
- gdb_test "print g_vE.vD::vx" ".* = 0" "print g_vE.vD::vx"
-
- gdb_test "print g_vE.vE::ve" ".* = 27" "print g_vE.vE::ve"
-
- gdb_test "print g_vE.vE::vx" ".* = 28" "print g_vE.vE::vx"
- }
-
- #
- # Multiple virtual inheritance, print type definitions.
- #
-
- proc test_ptype_mvi {} {
- setup_xfail_format "DWARF 1"
- gdb_test "ptype vD" "type = class vD : public virtual vB, public virtual vC \{\r\n\[ \]*public:\r\n\[ \]*int vd;\r\n\[ \]*int vx;\r\n.*\}" "ptype vD (aCC)"
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype class vD" "type = class vD : public virtual vB, public virtual vC \{\r\n\[ \]*public:\r\n\[ \]*int vd;\r\n\[ \]*int vx;\r\n.*\}" "ptype class vD (aCC)"
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype g_vD" "type = class vD : public virtual vB, public virtual vC \{\r\n\[ \]*public:\r\n\[ \]*int vd;\r\n\[ \]*int vx;\r\n.*\}" "ptype g_vD (aCC)"
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype vE" "type = class vE : public virtual vD \{\r\n\[ \]*public:\r\n\[ \]*int ve;\r\n\[ \]*int vx;\r\n.*\}" "ptype vE (aCC)"
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype class vE" "type = class vE : public virtual vD \{\r\n\[ \]*public:\r\n\[ \]*int ve;\r\n\[ \]*int vx;\r\n.*\}" "ptype class vE (aCC)"
-
- setup_xfail_format "DWARF 1"
- gdb_test "ptype g_vE" "type = class vE : public virtual vD \{\r\n\[ \]*public:\r\n\[ \]*int ve;\r\n\[ \]*int vx;\r\n.*\}" "ptype g_vE (aCC)"
- }
-
- #
- # Multiple virtual inheritance, print complete classes.
- #
-
- proc test_print_mvi_classes {} {
- global gdb_prompt
- global hex
- global decimal
-
- # Print all members of g_vD.
-
- setup_xfail_format "DWARF 1"
- send_gdb "print g_vD\n"
- gdb_expect {
- -re ".* = \{\<class vB\> = \{\<class vA\> = \{va = 19, vx = 20\}, vb = 21, vx = 22, Virtual table at $hex\}, \<class vC\> = \{vc = 23, vx = 24, Virtual table at $hex\}, vd = 25, vx = 26, Virtual table at $hex\}\r\n$gdb_prompt $" {
- pass "print g_vD"
- }
- -re ".*invalid address 0x0.*$gdb_prompt $" {
- # Does not happen with gcc cygnus-2.4.5-930828
- fail "print g_vD (known bug with gcc cygnus-2.4.5-930417)"
- # Many of the rest of these tests have the same problem.
- return 0
- }
- -re ".*$gdb_prompt $" { fail "print g_vD" }
- timeout { fail "print g_vD (timeout)" ; return }
- }
-
- # Print all members of g_vE.
-
- setup_xfail_format "DWARF 1"
- gdb_test "print g_vE" ".* = \{\<class vD\> = \{\<class vB\> = \{\<class vA\> = \{va = 0, vx = 0\}, vb = 0, vx = 0, Virtual table at $hex\}, \<class vC\> = \{vc = 0, vx = 0, Virtual table at $hex\}, vd = 0, vx = 0, Virtual table at $hex\}, ve = 27, vx = 28, Virtual table at $hex\}" "print g_vE"
- }
-
- proc do_tests {} {
- global prms_id
- global bug_id
- global subdir
- global objdir
- global srcdir
- global binfile
-
- set prms_id 0
- set bug_id 0
-
- # Start with a fresh gdb.
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load $binfile
-
- gdb_test "set language c++" ""
- gdb_test "set width 0" ""
-
- # Get the debug format for the compiled test case.
-
- if { ![ runto_main] } {
- gdb_suppress_tests;
- } else {
- get_debug_format
- }
-
- test_ptype_si
- test_ptype_mi
- test_ptype_vi
- test_ptype_mvi
-
- gdb_stop_suppressing_tests;
-
- if { ![ runto 'inheritance2(void)' ] } {
- gdb_suppress_tests;
- }
-
- test_print_si_members
- test_print_si_classes
- test_print_mi_members
- test_print_mi_classes
- test_print_anon_union
-
- gdb_stop_suppressing_tests;
-
- if { ![ runto 'inheritance4(void)' ] } {
- gdb_suppress_tests;
- }
-
- test_print_svi_members
- test_print_svi_classes
- test_print_mvi_members
- test_print_mvi_classes
- }
-
- do_tests
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/misc-hp.cc gdb/testsuite/gdb.hp/misc-hp.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/misc-hp.cc Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/misc-hp.cc Wed Dec 31 16:00:00 1969
***************
*** 1,514 ****
- // Test various -*- C++ -*- things.
-
- typedef struct fleep fleep;
- struct fleep { int a; } s;
-
- // ====================== simple class structures =======================
-
- struct default_public_struct {
- // defaults to public:
- int a;
- int b;
- };
-
- struct explicit_public_struct {
- public:
- int a;
- int b;
- };
-
- struct protected_struct {
- protected:
- int a;
- int b;
- };
-
- struct private_struct {
- private:
- int a;
- int b;
- };
-
- struct mixed_protection_struct {
- public:
- int a;
- int b;
- private:
- int c;
- int d;
- protected:
- int e;
- int f;
- public:
- int g;
- private:
- int h;
- protected:
- int i;
- };
-
- class public_class {
- public:
- int a;
- int b;
- };
-
- class protected_class {
- protected:
- int a;
- int b;
- };
-
- class default_private_class {
- // defaults to private:
- int a;
- int b;
- };
-
- class explicit_private_class {
- private:
- int a;
- int b;
- };
-
- class mixed_protection_class {
- public:
- int a;
- int b;
- private:
- int c;
- int d;
- protected:
- int e;
- int f;
- public:
- int g;
- private:
- int h;
- protected:
- int i;
- };
-
- class const_vol_method_class {
- public:
- int a;
- int b;
- int foo (int &) const;
- int bar (int &) volatile;
- int baz (int &) const volatile;
- };
-
- int const_vol_method_class::foo (int & ir) const
- {
- return ir + 3;
- }
- int const_vol_method_class::bar (int & ir) volatile
- {
- return ir + 4;
- }
- int const_vol_method_class::baz (int & ir) const volatile
- {
- return ir + 5;
- }
-
- // ========================= simple inheritance ==========================
-
- class A {
- public:
- int a;
- int x;
- };
-
- A g_A;
-
- class B : public A {
- public:
- int b;
- int x;
- };
-
- B g_B;
-
- class C : public A {
- public:
- int c;
- int x;
- };
-
- C g_C;
-
- class D : public B, public C {
- public:
- int d;
- int x;
- };
-
- D g_D;
-
- class E : public D {
- public:
- int e;
- int x;
- };
-
- E g_E;
-
- class class_with_anon_union
- {
- public:
- int one;
- union
- {
- int a;
- long b;
- };
- };
-
- class_with_anon_union g_anon_union;
-
- void inheritance2 (void)
- {
- }
-
- void inheritance1 (void)
- {
- int ival;
- int *intp;
-
- // {A::a, A::x}
-
- g_A.A::a = 1;
- g_A.A::x = 2;
-
- // {{A::a,A::x},B::b,B::x}
-
- g_B.A::a = 3;
- g_B.A::x = 4;
- g_B.B::b = 5;
- g_B.B::x = 6;
-
- // {{A::a,A::x},C::c,C::x}
-
- g_C.A::a = 7;
- g_C.A::x = 8;
- g_C.C::c = 9;
- g_C.C::x = 10;
-
- // {{{A::a,A::x},B::b,B::x},{{A::a,A::x},C::c,C::x},D::d,D::x}
-
- // The following initialization code is non-portable, but allows us
- // to initialize all members of g_D until we can fill in the missing
- // initialization code with legal C++ code.
-
- for (intp = (int *) &g_D, ival = 11;
- intp < ((int *) &g_D + sizeof (g_D) / sizeof (int));
- intp++, ival++)
- {
- *intp = ival;
- }
-
- // Overlay the nonportable initialization with legal initialization.
-
- // ????? = 11; (g_D.A::a = 11; is ambiguous)
- // ????? = 12; (g_D.A::x = 12; is ambiguous)
- g_D.B::b = 13;
- g_D.B::x = 14;
- // ????? = 15;
- // ????? = 16;
- g_D.C::c = 17;
- g_D.C::x = 18;
- g_D.D::d = 19;
- g_D.D::x = 20;
-
-
- // {{{{A::a,A::x},B::b,B::x},{{A::a,A::x},C::c,C::x},D::d,D::x}},E::e,E::x}
-
- // The following initialization code is non-portable, but allows us
- // to initialize all members of g_D until we can fill in the missing
- // initialization code with legal C++ code.
-
- for (intp = (int *) &g_E, ival = 21;
- intp < ((int *) &g_E + sizeof (g_E) / sizeof (int));
- intp++, ival++)
- {
- *intp = ival;
- }
-
- // Overlay the nonportable initialization with legal initialization.
-
- // ????? = 21; (g_E.A::a = 21; is ambiguous)
- // ????? = 22; (g_E.A::x = 22; is ambiguous)
- g_E.B::b = 23;
- g_E.B::x = 24;
- // ????? = 25;
- // ????? = 26;
- g_E.C::c = 27;
- g_E.C::x = 28;
- g_E.D::d = 29;
- g_E.D::x = 30;
- g_E.E::e = 31;
- g_E.E::x = 32;
-
- g_anon_union.one = 1;
- g_anon_union.a = 2;
-
- inheritance2 ();
- }
-
- // ======================== virtual base classes=========================
-
- class vA {
- public:
- int va;
- int vx;
- };
-
- vA g_vA;
-
- class vB : public virtual vA {
- public:
- int vb;
- int vx;
- };
-
- vB g_vB;
-
- class vC : public virtual vA {
- public:
- int vc;
- int vx;
- };
-
- vC g_vC;
-
- class vD : public virtual vB, public virtual vC {
- public:
- int vd;
- int vx;
- };
-
- vD g_vD;
-
- class vE : public virtual vD {
- public:
- int ve;
- int vx;
- };
-
- vE g_vE;
-
- void inheritance4 (void)
- {
- }
-
- void inheritance3 (void)
- {
- int ival;
- int *intp;
-
- // {vA::va, vA::vx}
-
- g_vA.vA::va = 1;
- g_vA.vA::vx = 2;
-
- // {{vA::va, vA::vx}, vB::vb, vB::vx}
-
- g_vB.vA::va = 3;
- g_vB.vA::vx = 4;
- g_vB.vB::vb = 5;
- g_vB.vB::vx = 6;
-
- // {{vA::va, vA::vx}, vC::vc, vC::vx}
-
- g_vC.vA::va = 7;
- g_vC.vA::vx = 8;
- g_vC.vC::vc = 9;
- g_vC.vC::vx = 10;
-
- // {{{{vA::va, vA::vx}, vB::vb, vB::vx}, vC::vc, vC::vx}, vD::vd,vD::vx}
-
- g_vD.vA::va = 11;
- g_vD.vA::vx = 12;
- g_vD.vB::vb = 13;
- g_vD.vB::vx = 14;
- g_vD.vC::vc = 15;
- g_vD.vC::vx = 16;
- g_vD.vD::vd = 17;
- g_vD.vD::vx = 18;
-
-
- // {{{{{vA::va,vA::vx},vB::vb,vB::vx},vC::vc,vC::vx},vD::vd,vD::vx},vE::ve,vE::vx}
-
- g_vD.vA::va = 19;
- g_vD.vA::vx = 20;
- g_vD.vB::vb = 21;
- g_vD.vB::vx = 22;
- g_vD.vC::vc = 23;
- g_vD.vC::vx = 24;
- g_vD.vD::vd = 25;
- g_vD.vD::vx = 26;
- g_vE.vE::ve = 27;
- g_vE.vE::vx = 28;
-
- inheritance4 ();
- }
-
- // ======================================================================
-
- class Base1 {
- public:
- int x;
- Base1(int i) { x = i; }
- };
-
- class Foo
- {
- public:
- int x;
- int y;
- static int st;
- Foo (int i, int j) { x = i; y = j; }
- int operator! ();
- operator int ();
- int times (int y);
- };
-
- class Bar : public Base1, public Foo {
- public:
- int z;
- Bar (int i, int j, int k) : Base1 (10*k), Foo (i, j) { z = k; }
- };
-
- class ClassWithEnum {
- public:
- enum PrivEnum { red, green, blue, yellow = 42 };
- PrivEnum priv_enum;
- int x;
- };
-
- int Foo::operator! () { return !x; }
-
- int Foo::times (int y) { return x * y; }
-
- int Foo::st = 100;
-
- Foo::operator int() { return x; }
-
- Foo foo(10, 11);
- Bar bar(20, 21, 22);
-
- class Contains_static_instance
- {
- public:
- int x;
- int y;
- Contains_static_instance (int i, int j) { x = i; y = j; }
- static Contains_static_instance null;
- };
-
- Contains_static_instance Contains_static_instance::null(0,0);
- Contains_static_instance csi(10,20);
-
- class Contains_nested_static_instance
- {
- public:
- class Nested
- {
- public:
- Nested(int i) : z(i) {}
- int z;
- static Contains_nested_static_instance xx;
- };
-
- Contains_nested_static_instance(int i, int j) : x(i), y(j) {}
-
- int x;
- int y;
-
- static Contains_nested_static_instance null;
- static Nested yy;
- };
-
- Contains_nested_static_instance Contains_nested_static_instance::null(0, 0);
- Contains_nested_static_instance::Nested Contains_nested_static_instance::yy(5);
- Contains_nested_static_instance
- Contains_nested_static_instance::Nested::xx(1,2);
- Contains_nested_static_instance cnsi(30,40);
-
- typedef struct {
- int one;
- int two;
- } tagless_struct;
- tagless_struct v_tagless;
-
- /* Try to get the compiler to allocate a class in a register. */
- class small {
- public:
- int x;
- int method ();
- };
- int small::method ()
- {
- return x + 5;
- }
- void marker_reg1 () {}
-
- int
- register_class ()
- {
- /* We don't call any methods for v, so gcc version cygnus-2.3.3-930220
- might put this variable in a register. This is a lose, though, because
- it means that GDB can't call any methods for that variable. */
- register small v;
-
- int i;
-
- /* Perform a computation sufficiently complicated that optimizing compilers
- won't optimized out the variable. If some compiler constant-folds this
- whole loop, maybe using a parameter to this function here would help. */
- v.x = 0;
- for (i = 0; i < 13; ++i)
- v.x += i;
- --v.x; /* v.x is now 77 */
- marker_reg1 ();
- return v.x + 5;
- }
-
- int
- main()
- {
- #ifdef usestubs
- set_debug_traps();
- breakpoint();
- #endif
- inheritance1 ();
- inheritance3 ();
- register_class ();
-
- /* FIXME: pmi gets optimized out. Need to do some more computation with
- it or something. (No one notices, because the test is xfail'd anyway,
- but that probably won't always be true...). */
- int Foo::* pmi = &Foo::y;
-
- /* Make sure the AIX linker doesn't remove the variable. */
- v_tagless.one = 5;
-
- /* Class with enumeration inside it */
- ClassWithEnum obj_with_enum;
- obj_with_enum.priv_enum = ClassWithEnum::green;
-
- return foo.*pmi;
- }
-
- /* Create an instance for some classes, otherwise they get optimized away. */
-
- default_public_struct default_public_s;
- explicit_public_struct explicit_public_s;
- protected_struct protected_s;
- private_struct private_s;
- mixed_protection_struct mixed_protection_s;
- public_class public_c;
- protected_class protected_c;
- default_private_class default_private_c;
- explicit_private_class explicit_private_c;
- mixed_protection_class mixed_protection_c;
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/more-steps.c gdb/testsuite/gdb.hp/more-steps.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/more-steps.c Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/more-steps.c Wed Dec 31 16:00:00 1969
***************
*** 1,140 ****
- /* BeginSourceFile more_steps.c
-
- This file creates a lot of threads which then execute
- in parallel, so that wdb can be tested on handling
- simultaneous thread events.
-
- To compile:
-
- cc -Ae +DA1.0 -g -o more_steps -lpthread more_steps.c
-
- To run:
-
- more_threads
- */
-
- #include <unistd.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <assert.h>
- #include <pthread.h>
-
- #define TRUE 1
- #define FALSE 0
- #define N_THREADS 3
- #define PHASES 3
-
- typedef enum {
- ZERO,
- ONE,
- TWO,
- THREE
- } phase_t;
-
- /* Uncomment to turn on debugging output */
- /* #define DEBUG */
-
- /* Locks.
- */
- int lock_one; /* Main W, others R */
- int lock_two; /* ditto */
- int lock_end[ N_THREADS ]; /* Main R, others R[i] */
- int phase[ N_THREADS ];
-
- /* Routine for each thread to run.
- */
- void *spin( vp )
- void * vp;
- {
- int me = (int) vp;
- int i;
-
- lock_end[ me ] = TRUE;
-
- phase[ me ] = ONE;
-
- while( lock_one );
-
- phase[ me ] = TWO;
-
- while( lock_two );
-
- phase[ me ] = THREE;
-
- lock_end[ me ] = FALSE;
- }
-
- void
- do_pass()
- {
- int i;
- pthread_t t[ N_THREADS ];
- int err;
- int done;
-
- /* Start N_THREADS threads, then join them so
- * that they are terminated.
- */
- for( i = 0; i < N_THREADS; i++ ) {
- err = pthread_create( &t[i], NULL, spin, (void *)i );
- if( err != 0 ) {
- printf( "== Start/stop, error in thread %d create\n", i );
- }
- }
-
- /* Do phase 1.
- */
- lock_one = FALSE;
-
- /* Do phase 2.
- */
- lock_two = FALSE;
-
- /* Be done.
- */
- done = 0;
- while( !done ) {
-
- /* Be optimistic.
- */
- done = 1;
- for( i = 0; i < N_THREADS; i++ ) {
- if( lock_end[i] ) {
- /* Thread "i" is not ready yet.
- */
- done = 0;
- break;
- }
- }
- }
-
- /* Finish up
- */
- for( i = 0; i < N_THREADS; i++ ) {
- err = pthread_join(t[i], NULL ); /* Line 105 */
- if( err != 0 ) { /* Line 106 */
- printf( "== Start/stop, error in thread %d join\n", i );
- }
- }
-
- i = 10; /* Line 109. Null line for setting bpts on. */
- }
-
- main( argc, argv )
- int argc;
- char **argv;
- {
- int i;
-
- /* Init
- */
- lock_one = TRUE;
- lock_two = TRUE;
- for( i = 0; i < N_THREADS; i++ ) {
- lock_end[i] = TRUE;
- phase[i] = ZERO;
- }
-
- do_pass();
- return(0);
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/more-steps.exp gdb/testsuite/gdb.hp/more-steps.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/more-steps.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/more-steps.exp Wed Dec 31 16:00:00 1969
***************
*** 1,154 ****
- # more-steps.exp -- Expect script to test gdb's ability to step threaded pgms
- # Copyright (C) 1992 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # use this to debug:
- #
- #log_user 1
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- #if { ![istarget "hppa*-*-hpux10.30"] && ![istarget "hppa*-*-hpux11.*"] } {
- # verbose "HPUX thread test ignored for non-hppa or pre-HP/UX-10.30 targets."
- # return 0
- #}
-
- set testfile more-steps
- set srcfile ${srcdir}/${subdir}/${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
-
- if [get_compiler_info ${binfile}] {
- return -1
- }
-
- # To build the executable we need to link against the thread library.
- #
- # cc -Ae -g -o more-steps -lpthread more-steps.c
- #
- #compile "${srcfile} -Ae -g -lpthread -o ${binfile}"
-
- if {$gcc_compiled == 0} {
- set additional_flags "additional_flags=-Ae"
- } else {
- set additional_flags ""
- }
-
- if { [gdb_compile "${srcdir}/${subdir}/${testfile}.c" "${binfile}.o" object [list debug $additional_flags]] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- if { ![istarget "hppa*-*-hpux10.30"] && ![istarget "hppa*-*-hpux11.*"] } {
- if { [gdb_compile "${binfile}.o" "${binfile}" executable {debug "additional_flags=-lpthread"}] != ""} {
- gdb_suppress_entire_file "Testcase link failed, so all tests in this file will automatically fail."
- }
- } else {
- remote_exec build "ld /usr/ccs/lib/crt0.o ${binfile}.o -lcl -lpthread -lc /opt/langtools/lib/end.o -o ${binfile}"
- }
- #remote_exec build "ld /usr/ccs/lib/crt0.o ${binfile}.o -lcl -lpthread -lc /opt/langtools/lib/end.o -o ${binfile}"
-
-
-
- # Thread stuff is _slow_; prepare for long waits.
- #
- set oldtimeout $timeout
- set timeout [expr "$timeout + 300"]
- set oldverbose $verbose
- #set verbose 40
-
- # Further, this test has some "null" lines designed
- # to consume output from gdb that was too late to be
- # matched (sequence is "gdb_test" sends; timeout and
- # on to next send; result finally comes in; mismatch).
- #
- # The null command is 'gdb_test "p \$pc" ".*" ""'
- #
- # NOTE: to pass a literal "$", "/" or "*" (etc.) to gdb_test,
- # remember that the pattern will be escaped once and
- # $-evaluated twice:
- #
- # "\\\*" matches "\*"
- # "\$" matches "$"
- #
- proc fix_timeout {} {
- gdb_test "p \$pc" ".*" ""
- }
-
- #=========================
- #
- # Simple sanity test first.
- #
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
- # First, step in the main thread.
- #
- gdb_test "b do_pass" ".*Breakpoint 1.*" ""
- gdb_test "r" ".*Breakpoint 1.*do_pass.*" ""
-
- # Breaks as well as nexts to make
- # sure we can handle simultaneous hit
- # of bpt and step, as well as stepping
- # past bpts.
- #
- gdb_test "tb 87" ".*Breakpoint 2.*" ""
- gdb_test "tb 91" ".*Breakpoint 3.*" ""
- gdb_test "tb 96" ".*Breakpoint 4.*" ""
- gdb_test "tb 113" ".*Breakpoint 5.*" ""
- gdb_test "c" ".*do_pass.*87.*" "87"
- gdb_test "n" ".*do_pass.*91.*" "n"
-
- # This only gets a number, as it doesn't
- # hit a bpt.
- #
- gdb_test "n" ".*95.*" "n"
-
- gdb_test "n" ".*do_pass.*96.*" "n"
- gdb_test "c" ".*do_pass.*113.*" "c"
- gdb_test "c" ".*Program exited normally.*" "c"
-
- # Now step in a thread
- #
- gdb_test "r" ".*Breakpoint.*do_pass.*" "do_pass"
- gdb_test "until 87" ".*do_pass.*87.*" "until"
- gdb_test "thr 4" ".*Switching to thread 4.*spin.*56.*" "switch"
- gdb_test "tb 60 thr 4" ".*Breakpoint.*" ""
-
- # If we do "next" now, all the other threads
- # can finish!
- #
- gdb_test "n" ".*spin.*60.*" ""
- gdb_test "i th" ".*\\\* 4 sys.*spin.*1 sys.*do_pass.*" "still in 4"
-
- # Done!
- #
- gdb_exit
-
- set timeout $oldtimeout
- set verbose $oldverbose
-
- # execute_anywhere "rm -f ${binfile}"
- #
- return 0
-
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/namespace.cc gdb/testsuite/gdb.hp/namespace.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/namespace.cc Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/namespace.cc Wed Dec 31 16:00:00 1969
***************
*** 1,103 ****
- namespace AAA {
- char c;
- int i;
- int A_foo (int);
- char foo (char);
- class inA {
- public:
- int xx;
- int fum (int);
- };
- };
-
- int AAA::inA::fum (int i)
- {
- return 10 + i;
- }
-
- namespace BBB {
- char c;
- int i;
- int B_foo (int);
- char foo (char);
-
- namespace CCC {
- char foo (char);
- };
-
- class Class {
- public:
- char foo (char);
- int dummy;
- };
- };
-
- int AAA::A_foo (int x)
- {
- return 2 * x;
- }
-
- char AAA::foo (char c)
- {
- return 'a';
- }
-
-
- int BBB::B_foo (int x)
- {
- return 3 * x;
- }
-
- char BBB::foo (char c)
- {
- return 'b';
- }
-
- char BBB::CCC::foo (char c)
- {
- return 'z';
- }
-
- char BBB::Class::foo (char c)
- {
- return 'o';
- }
-
- void marker1(void)
- {
- return;
- }
-
-
- int main ()
- {
- using AAA::inA;
- char c1;
-
- using namespace BBB;
-
- c1 = foo ('x');
- c1 = AAA::foo ('x');
- c1 = BBB::CCC::foo ('m');
-
- inA ina;
-
- ina.xx = 33;
-
- int y;
-
- y = AAA::A_foo (33);
- y += B_foo (44);
-
- BBB::Class cl;
-
- c1 = cl.foo('e');
-
- marker1();
-
- }
-
-
-
-
-
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/namespace.exp gdb/testsuite/gdb.hp/namespace.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/namespace.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/namespace.exp Wed Dec 31 16:00:00 1969
***************
*** 1,191 ****
- # Copyright (C) 1997, 1998 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
- # (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.
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # tests for namespaces
- # Written by Satish Pai <pai@apollo.hp.com> 1997-07-23
-
- # This file is part of the gdb testsuite
-
- # Note: These tests are geared to the HP aCC compiler,
- # which has an idiosyncratic way of emitting debug info
- # for namespaces.
-
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- set prms_id 0
- set bug_id 0
-
- if { [skip_hp_tests] } then { continue }
-
- set testfile "namespace"
- set srcfile ${testfile}.cc
- set binfile ${objdir}/${subdir}/${testfile}
-
- if [get_compiler_info ${binfile}] {
- return -1;
- }
-
- if { $gcc_compiled } then { continue }
-
-
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will a
- utomatically fail."
- }
-
-
-
- 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
- }
-
- send_gdb "break marker1\n" ; gdb_expect -re ".*$gdb_prompt $"
- send_gdb "cont\n"
- gdb_expect {
- -re "Break.* marker1 \\(\\) at .*:$decimal.*$gdb_prompt $" {
- send_gdb "up\n"
- gdb_expect {
- -re ".*$gdb_prompt $" { pass "up from marker1" }
- timeout { fail "up from marker1" }
- }
- }
- -re "$gdb_prompt $" { fail "continue to marker1" }
- timeout { fail "(timeout) continue to marker1" }
- }
-
- # Access a data item inside a namespace using colons and
- # single quotes :-(
-
- send_gdb "print 'AAA::c'\n"
- gdb_expect {
- -re "\\$\[0-9\]* = 0 '\\\\000'\r\n$gdb_prompt $" { pass "print 'AAA::c'" }
- -re ".*$gdb_prompt $" { fail "print 'AAA::c'" }
- timeout { fail "(timeout) print 'AAA::c'" }
- }
-
- # An object declared using "using".
-
- send_gdb "print ina\n"
- gdb_expect {
- -re "\\$\[0-9\]+ = {xx = 33}.*$gdb_prompt $" {
- pass "print ina"
- }
- -re ".*$gdb_prompt $" { fail "print ina" }
- timeout { fail "(timeout) print ina" }
- }
-
- send_gdb "ptype ina\n"
- gdb_expect {
- -re "type = class AAA::inA \{\r\n\[ \]*public:\r\n\[ \]*int xx;\r\n\[ \]*\r\n\[ \]*int fum\\(int\\);\r\n\}\r\n$gdb_prompt $" {
- pass "ptype ina"
- }
- -re ".*$gdb_prompt $" { fail "ptype ina" }
- timeout { fail "(timeout) ptype ina" }
- }
-
- # Check all functions are known to GDB
-
- send_gdb "info func foo\n"
- gdb_expect {
- -re "All functions.*File.*namespace.cc:\r\nint AAA::A_foo\\(int\\);\r\nint BBB::B_foo\\(int\\);\r\nchar AAA::foo\\(char\\);\r\nchar BBB::foo\\(char\\);\r\nchar BBB::CCC::foo\\(char\\);\r\nchar BBB::Class::foo\\(char\\);\r\n$gdb_prompt $" {
- pass "info func foo"
- }
- -re ".*$gdb_prompt $" { fail "info func foo" }
- timeout { fail "(timeout) info func foo" }
- }
-
- # Call a function in a namespace
-
- send_gdb "print 'AAA::foo'('x')\n"
- gdb_expect {
- -re "\\$\[0-9\]* = 97 'a'\r\n$gdb_prompt $" {
- pass "print 'AAA::foo'('x')"
- }
- -re ".*$gdb_prompt $" { fail "print 'AAA::foo'('x')" }
- timeout { fail "(timeout) print 'AAA::foo'('x')" }
- }
-
- # Break on a function in a namespace
-
- send_gdb "break AAA::foo\n"
- gdb_expect {
- -re "Breakpoint.*at $hex: file.*namespace.cc, line 42\\.\r\n$gdb_prompt $" {
- pass "break AAA::foo"
- }
- -re ".*$gdb_prompt $" { fail "break AAA::foo" }
- timeout { fail "(timeout) break AAA::foo" }
- }
-
- # Call a function in a nested namespace
-
- send_gdb "print 'BBB::CCC::foo'('x')\n"
- gdb_expect {
- -re "\\$\[0-9\]* = 122 'z'\r\n$gdb_prompt $" {
- pass "print 'BBB::CCC::foo'('x')"
- }
- -re ".*$gdb_prompt $" { fail "print 'BBB::CCC::foo'('x')" }
- timeout { fail "(timeout) print 'BBB::CCC::foo'('x')" }
- }
-
- # Break on a function in a nested namespace
-
- send_gdb "break BBB::CCC::foo\n"
- gdb_expect {
- -re "Breakpoint.*at $hex: file.*namespace.cc, line 58\\.\r\n$gdb_prompt $" {
- pass "break BBB::CCC::foo"
- }
- -re ".*$gdb_prompt $" { fail "break BBB::CCC::foo" }
- timeout { fail "(timeout) break BBB::CCC::foo" }
- }
-
- # Print address of a function in a class in a namespace
-
- send_gdb "print 'BBB::Class'::foo\n"
- gdb_expect {
- -re "\\$\[0-9\]* = \{char \\(BBB::Class \\*, char\\)\} $hex <BBB::Class::foo\\(char\\)>\r\n$gdb_prompt $" {
- pass "print 'BBB::Class'::foo"
- }
- -re ".*$gdb_prompt $" { fail "print 'BBB::Class'::foo" }
- timeout { fail "(timeout) print 'BBB::Class'::foo" }
- }
-
- # Break on a function in a class in a namespace
-
- send_gdb "break BBB::Class::foo\n"
- gdb_expect {
- -re "Breakpoint.*at $hex: file.*namespace.cc, line 63\\.\r\n$gdb_prompt $" {
- pass "break BBB::Class::foo"
- }
- -re ".*$gdb_prompt $" { fail "break BBB::Class::foo" }
- timeout { fail "(timeout) break BBB::Class::foo" }
- }
-
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/optimize.c gdb/testsuite/gdb.hp/optimize.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/optimize.c Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/optimize.c Wed Dec 31 16:00:00 1969
***************
*** 1,76 ****
- /* Source for debugging optimimzed code test.
-
- cc -g -O -o optimize optimize.c
- */
- int callee();
- int test_opt;
-
- int main()
- {
- int a,b,c,d,e,f,g,h;
-
- a = 10;;
-
- /* Value propagate
- */
- b = 2 * a + 1;
- c = 3 * b + 2;
-
- /* Re-use expressions
- */
- d = (2 * a + 1) * (3 * b + 2);
- e = (2 * a + 1) * (3 * b + 2);
-
- /* Create dead stores--do lines still exist?
- */
- d = (2 * a + 1) * (3 * b + 2);
- e = (2 * a + 1) * (3 * b + 2);
- d = (2 * a + 1) * (3 * b + 2);
- e = (2 * a + 1) * (3 * b + 2);
-
- /* Alpha and psi motion
- */
- if( test_opt ) {
- f = e - d;
- f = f--;
- }
- else {
- f = e - d;
- f = f + d * e;
- }
-
- /* Chi and Rho motion
- */
- h = 0;
- do {
- h++;
- a = b * c + d * e; /* Chi */
- f = f + d * e;
- g = f + d * e; /* Rho */
- callee( g+1 );
- test_opt = (test_opt != 1); /* Cycles */
- } while( g && h < 10);
-
- /* Opps for tail recursion, unrolling,
- * folding, evaporating
- */
- for( a = 0; a < 100; a++ ) {
- callee( callee ( callee( a )));
- callee( callee ( callee( a )));
- callee( callee ( callee( a )));
- }
-
- return callee( test_opt );
- }
-
- /* defined late to keep line numbers the same
- */
- int callee( x )
- int x; /* not used! */
- {
- test_opt++; /* side effect */
-
- return test_opt;
- }
-
- /* end */
\ No newline at end of file
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/optimize.exp gdb/testsuite/gdb.hp/optimize.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/optimize.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/optimize.exp Wed Dec 31 16:00:00 1969
***************
*** 1,146 ****
- # Copyright (C) 1998 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # optimize.exp -- Expect script for testing apps compiled with -O
-
- global timeout
-
- # use this to debug:
- #
- #log_user 1
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- set testfile optimize
- set srcfile ${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
-
- if [get_compiler_info ${binfile}] {
- return -1;
- }
-
-
- if { $gcc_compiled } then { continue }
-
-
- # Vanilla -O, which is the same as +O2
- #
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug optimize=+O2}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
-
- send_gdb "file $binfile\n"
- gdb_expect {
- -re ".*no debugging symbols found.*$gdb_prompt $" {
- fail "Didn't find debug symbols; CHFts23488"
- }
- -re ".*No header section (PXDB data).*$gdb_prompt $" {
- fail "pointless warning"
- }
- -re ".*done.*$gdb_prompt $" {
- pass "load debug symbols"
- }
- timeout { fail "timeout on file" }
- }
-
- # Two lines at the same place after opt.
- #
- gdb_test "b 28" ".*" ""
- gdb_test "b 26" ".*also set at.*" "same line"
-
- gdb_test "b 47" ".*" ""
- gdb_test "b 48" ".*also set at.*" "same line"
-
- gdb_test "tb main" ".*" ""
-
- set old_timeout $timeout
- set timeout [expr "$timeout + 200"]
- send_gdb "r\n"
- gdb_expect {
- -re ".*No header section (PXDB data).*$gdb_prompt $" {
- fail "pointless warning"
- }
- -re ".*main.*2\[12].*$gdb_prompt $" {
- # All the lines before line 21 or 22 are
- # evaporated by the compiler.
- #
- pass "hit main"
- }
- -re ".*$gdb_prompt $" {
- fail "didn't hit main"
- }
- timeout { fail "timeout on run" }
- }
- set timeout $old_timeout
-
- gdb_test "c" ".*Breakpoint 1.*33.*" ""
- gdb_test "c" ".*51.*" ""
- gdb_test "cle" ".*Deleted breakpoints.*" "set 2, so del 2"
-
- gdb_test "b callee" ".*" ""
- gdb_test "c" ".*callee.*" "hit called rtn"
-
- gdb_exit
-
- # +O4, don't use -g
- #
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {optimize=+O4}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
-
- send_gdb "file $binfile\n"
- gdb_expect {
- -re ".*no debugging symbols found.*$gdb_prompt $" {
- pass "Didn't find debug symbols, as expected"
- }
- -re ".*No header section (PXDB data).*$gdb_prompt $" {
- fail "pointless warning"
- }
- -re ".*done.*$gdb_prompt $" {
- fail "Somehow found debug symbols--make this a pass?"
- }
- timeout { fail "timeout on file" }
- }
-
- gdb_test "b main" ".*" ""
- gdb_test "b callee" ".*" ""
- gdb_test "r" ".*Breakpoint 1.*main.*" ""
- gdb_test "si 3" ".*main.*" "steps"
- gdb_test "x/4i \$pc" ".*main.*main+4.*main+8.*" ""
- gdb_test "c" ".*callee.*" "hit bp"
- gdb_test "disas" ".*callee.*callee+4.*callee+12.*" ""
- gdb_test "si" ".*callee.*" ""
- gdb_test "fin" ".*Run till exit.*main.*" "finish"
- gdb_test "x/i \$pc" ".*main+.*" "back in main"
- gdb_exit
-
- #remote_exec build "rm -f ${binfile}"
- return 0
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/pxdb.c gdb/testsuite/gdb.hp/pxdb.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/pxdb.c Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/pxdb.c Wed Dec 31 16:00:00 1969
***************
*** 1,20 ****
- #include <stdio.h>
-
- int callee( x )
- int x;
- {
- int y = x * x;
- return (y - 2);
- }
-
- main()
- {
- int i;
- for (i = 1; i < 10; i++)
- {
- printf( "%d ", callee( i ));
-
- }
- printf( " Goodbye!\n" );
-
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/pxdb.exp gdb/testsuite/gdb.hp/pxdb.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/pxdb.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/pxdb.exp Wed Dec 31 16:00:00 1969
***************
*** 1,115 ****
- # Copyright (C) 1998 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
- # (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.
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
-
- # This file is part of the gdb testsuite
-
-
- # pxdb.exp Test that gdb calls pxdb on an application
- # built without it.
- #
- if $tracelevel then {
- strace $tracelevel
- }
-
- set prms_id 0
- set bug_id 0
-
- if { [skip_hp_tests] } then { continue }
-
- set testfile pxdb
- set srcfile ${testfile}.c
- set objfile ${objdir}/${subdir}/${testfile}.o
- set binfile ${objdir}/${subdir}/${testfile}
-
- if [get_compiler_info ${binfile} "c++"] {
- return -1;
- }
-
- if { $gcc_compiled } then { continue }
-
- # To build a non-pxdb-ed file, use
- #
- # <compile to .o file>
- # export LD_PXDB /dev/null
- # ld -o hello_no_pxdb hello.o /opt/langtools/lib/end.o /usr/ccs/lib/crt0.o -lc
- #
-
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- #
- # use this to debug:
- #log_user 1
-
-
- # Following should get the error message:
- #
- # ld: (Warning) Can't exec pxdb using path: /dev/null
- #
-
- set cmdline "ksh -c \"LD_PXDB=/dev/null ld -o ${binfile} ${objfile} /usr/ccs/lib/crt0.o /opt/langtools/lib/end.o -lc\""
-
- remote_exec build "rm ${binfile}"
- remote_exec build $cmdline
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
-
- # We expect to see this:
- #
- # "warning: File not processed by pxdb--about to process now.
- # "
- # ".
- # "Procedures: 7
- # "Files: 2
- # "Reading symbols from ~/c_code.dir/hello_no_pxdb...done.
- # "(gdb)
- #
- send_gdb "file ${binfile}\n"
- gdb_expect {
-
- -re ".*warning: File not processed by pxdb.*Procedures: \[0-9\]+.*done.*$gdb_prompt $"\
- { pass "PXDB call" }
-
- -re "$gdb_prompt $" { fail "Didn't call pxdb" }
-
- timeout { fail "call pxdb (timeout)" }
- }
-
- # Make sure the new data makes sense
- #
- if { ![runto callee] } then { return }
-
- send_gdb "print x\n"
- gdb_expect {
- -re ".*= 1.*$gdb_prompt $" { pass "Good data after pxdb call" }
- -re ".*$gdb_prompt $" { fail "No data after pxdb call" }
- timeout { fail "(timeout)" }
- }
-
- gdb_exit
- return 0
-
-
-
-
-
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/quicksort.c gdb/testsuite/gdb.hp/quicksort.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/quicksort.c Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/quicksort.c Wed Dec 31 16:00:00 1969
***************
*** 1,284 ****
- /* BeginSourceFile quicksort.c
-
- This file is take from the DDE test system. It spawns six
- threads to do a sort of an array of random numbers.
-
- The locations marked "quick N" are used in the test "quicksort.exp".
-
- The locations marked "att N" are used in the test "attach.exp".
-
- To compile:
-
- cc -Ae +DA1.0 -g -o quicksort -lpthread quicksort.c
-
- To run:
-
- quicksort --normal run
- quicksort 1 --waits before starting to allow attach
- */
-
- #include <unistd.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <assert.h>
- #include <pthread.h>
-
- #define TRUE 1
- #define FALSE 0
- #define SORTSET 100000
-
- /* Uncomment to turn on debugging output */
- /* #define QUICK_DEBUG */
-
- /* Uncomment to turn on wait on each thread create */
- /* #define THREAD_WAIT */
-
- /* Fewer than SORT_DIRECT items are sorted with an insertion sort. */
- #define SORT_DIRECT 20
-
- /* Work at this depth or less generates a separate work item. */
- #define DEFER_DEPTH 6
-
- /* Workpile controller */
- typedef void (*work_proc_t)(void *);
-
- typedef struct workpile_struct {
- pthread_mutex_t lock; /* mutex for this structure */
- pthread_cond_t work_wait; /* workers waiting for work */
- pthread_cond_t finish_wait; /* to wait for workers to finish */
- int max_pile; /* length of workpile array */
- work_proc_t worker_proc; /* work procedure */
- int n_working; /* number of workers working */
- int n_waiting; /* number of workers waiting for work */
- int n_pile; /* number of pointers in the workpile */
- int inp; /* FIFO input pointer */
- int outp; /* FIFO output pointer */
- void *pile[1]; /* array of pointers - the workpile */
- } *workpile_t;
-
- typedef struct {
- float *data; /* Array to sort */
- int n; /* Number of elements in the array */
- int depth; /* Depth of recursion */
- workpile_t wp; /* Workpile to use */
- } quick_sort_args;
-
- /* True if waiting for attach.
- */
- int wait_here = FALSE;
-
- static workpile_t quick_sort_workpile = NULL;
-
- void *worker(void * wptr);
-
- /* Allocates and initializes a workpile that holds max_pile entries.
- * worker_proc is called to process each work item on the queue.
- */
- workpile_t
- work_init(int max_pile, work_proc_t worker_proc, int n_threads)
- {
- int err;
- pthread_t t;
- workpile_t wp = (workpile_t)
- malloc(sizeof (struct workpile_struct) +
- (max_pile * sizeof (void *)));
-
- if (wp != NULL) {
- pthread_mutex_init(&wp->lock, NULL);
- pthread_cond_init(&wp->work_wait, NULL);
- pthread_cond_init(&wp->finish_wait, NULL);
- wp->max_pile = max_pile;
- wp->worker_proc = worker_proc;
- wp->n_working = wp->n_waiting = wp->n_pile = 0;
- wp->inp = wp->outp = 0;
- while (n_threads--) {
- err = pthread_create(&t, NULL,
- worker, (void *)&wp);
- #ifdef QUICK_DEBUG
- printf( "== Quicksort: created new thread\n" );
- #ifdef THREAD_WAIT
- if( n_threads > 0 ) {
- int i;
- printf( "== Quicksort: waiting on user input of an integer\n" );
- scanf( "%d", &i );
- printf( "== Quicksort: continuing with quicksort\n" );
- }
- #endif
- #endif
-
- assert(err == 0); /* quick 1 */
- }
- /* All the threads have now been created.
- */
- assert( n_threads == -1 ); /* att 1 */
- if( wait_here ) {
- #ifdef QUICK_DEBUG
- printf( "== Quicksort: waiting for attach\n" );
- #endif
- sleep( 25 );
- }
- wait_here = 99; /* att 2, otherwise useless */
- }
- return (wp); /* quick 2 */
- }
-
- /*
- * Worker thread routine. Continuously looks for work, calls the
- * worker_proc associated with the workpile to do work.
- */
- void *
- worker(void * wptr)
- {
- workpile_t wp;
- void *ptr;
-
- wp = * (workpile_t *) wptr;
-
- pthread_mutex_lock(&wp->lock);
- wp->n_working++;
- for (;;) {
- while (wp->n_pile == 0) { /* wait for new work */
- if (--wp->n_working == 0)
- pthread_cond_signal(&wp->finish_wait);
- wp->n_waiting++;
- pthread_cond_wait(&wp->work_wait, &wp->lock);
- wp->n_waiting--; /* quick 3 */
- wp->n_working++;
- }
- wp->n_pile--;
- ptr = wp->pile[wp->outp];
- wp->outp = (wp->outp + 1) % wp->max_pile;
- pthread_mutex_unlock(&wp->lock);
- /* Call application worker routine. */
- (*wp->worker_proc)(ptr);
- pthread_mutex_lock(&wp->lock); /* quick 4 */
- }
- /* NOTREACHED */
- }
-
- /* Puts ptr in workpile. Called at the outset, or within a worker. */
- void
- work_put(workpile_t wp, void *ptr)
- {
- pthread_mutex_lock(&wp->lock);
- if (wp->n_waiting) {
- /* idle workers to be awakened */
- pthread_cond_signal(&wp->work_wait);
- }
- assert(wp->n_pile != wp->max_pile); /* check for room */
- wp->n_pile++;
- wp->pile[wp->inp] = ptr;
- wp->inp = (wp->inp + 1) % wp->max_pile;
- pthread_mutex_unlock(&wp->lock);
- }
-
-
- /* Wait until all work is done and workers quiesce. */
- void
- work_wait(workpile_t wp)
- {
- pthread_mutex_lock(&wp->lock);
- while(wp->n_pile !=0 || wp->n_working != 0)
- pthread_cond_wait(&wp->finish_wait, &wp->lock);
- pthread_mutex_unlock(&wp->lock);
- }
-
- void
- quick_sort_aux(float *data, int n, int depth, workpile_t wp, int deferrable)
- {
- int i,j;
-
- /* If array small, use insertion sort */
- if (n <= SORT_DIRECT) {
- for (j = 1; j < n; j++) {
- /* data[0..j-1] in sort; find a spot for data[j] */
- float key = data[j];
- for (i = j - 1; i >= 0 && key < data[i]; i--)
- data[i+1] = data[i];
- data[i+1] = key;
- }
- return;
- }
- /* Defer this work to work queue if policy says so */
- if (deferrable && depth <= DEFER_DEPTH) {
- quick_sort_args *q = (quick_sort_args *)
- malloc(sizeof (quick_sort_args));
- assert(q != NULL);
- q->data = data; q->n = n; q->depth = depth; q->wp = wp;
- work_put(wp, (void *)q);
- return;
- }
- /* Otherwise, partition data based on a median estimate */
- #define swap(i,j) {float t = data[i]; data[i] = data[j]; data[j] = t;}
- i = 0;
- j = n - 1;
- for (;;) {
- while (data[i] < data[j]) j--;
- if (i >= j) break;
- swap(i, j); i++;
- while (data[i] < data[j]) i++;
- if (i >= j) { i = j; break; }
- swap(i, j); j--;
- }
- /* Median value is now at data[i] */
- /* Partitioned so that data[0..i-1] <= median <= data[i+1..n-1] */
- quick_sort_aux(data, i, depth+1, wp, TRUE);
- quick_sort_aux(&data[i+1], n-i-1, depth+1, wp, TRUE);
- }
- /* Called from workpile controller with argument pointing to work. */
- void
- quick_sort_worker(void *a)
- {
- quick_sort_args *q = (quick_sort_args *)a;
- quick_sort_aux(q->data, q->n, q->depth, q->wp, FALSE);
- free(q);
- }
- /* Main routine, called by client to do a sort. */
- void
- quick_sort(float *data, int n)
- {
- if (quick_sort_workpile == NULL) {
- int n_threads = 6;
- quick_sort_workpile = work_init(2 << DEFER_DEPTH,
- quick_sort_worker, n_threads);
- assert(quick_sort_workpile != NULL);
- }
-
- quick_sort_aux(data, n, 0, quick_sort_workpile, FALSE);
-
- /* Wait for all work to finish */
- work_wait(quick_sort_workpile);
-
- #ifdef QUICK_DEBUG
- printf( "== Quicksort: done sorting\n" );
- #endif
- }
-
-
- main( argc, argv )
- int argc;
- char **argv;
- {
- float data[SORTSET];
- int i; int debugging = 0;
-
- if((argc > 1) && (0 != argv )) {
- if( 1 == atoi( argv[1] ) )
- wait_here = TRUE;
- }
-
- for(i = 0; i < SORTSET; i++)
- data[SORTSET -1 -i] = drand48();
-
- for(i = 0; i < SORTSET; i++)
- if (debugging)
- printf("data[%d] = %f\n", i, data[i]);
-
- quick_sort(data, SORTSET);
- for(i = 0; i < SORTSET; i++)
- if (debugging)
- printf("data[%d] = %f\n", i, data[i]);
-
- return(0);
- }
- /* EndSourceFile */
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/quicksort.exp gdb/testsuite/gdb.hp/quicksort.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/quicksort.exp Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/quicksort.exp Wed Dec 31 16:00:00 1969
***************
*** 1,809 ****
- # quicksort.exp -- Expect script to test gdb with quicksort.c
- # Copyright (C) 1992 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # use this to debug:
- #
- #log_user 1
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { ![istarget "hppa*-*-hpux10.30"] && ![istarget "hppa*-*-hpux11.*"] } {
- verbose "HPUX thread test ignored for non-hppa or pre-HP/UX-10.30 targets."
- return 0
- }
-
- set testfile quicksort
- set srcfile ${srcdir}/${subdir}/${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
-
- if [get_compiler_info ${binfile}] {
- return -1
- }
-
- # To build the executable we need to link against the thread library.
- #
- # cc -Ae -g -o quicksort -lpthread quicksort.c
- #
- #compile "${srcfile} -Ae -g -lpthread -o ${binfile}"
-
- if {$gcc_compiled == 0} {
- set additional_flags "additional_flags=-Ae"
- } else {
- set additional_flags ""
- }
-
- if { [gdb_compile "${srcdir}/${subdir}/${testfile}.c" "${binfile}.o" object [list debug $additional_flags]] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
- remote_exec build "ld /usr/ccs/lib/crt0.o ${binfile}.o -lcl -lpthread -lc /opt/langtools/lib/end.o -o ${binfile}"
-
-
- # Thread stuff is _slow_; prepare for long waits.
- #
- set oldtimeout $timeout
- set timeout [expr "$timeout + 300"]
- set oldverbose $verbose
- #set verbose 40
-
- # Further, this test has some "null" lines designed
- # to consume output from gdb that was too late to be
- # matched (sequence is "gdb_test" sends; timeout and
- # on to next send; result finally comes in; mismatch).
- #
- # The null command is 'gdb_test "p \$pc" ".*" ""'
- #
- # NOTE: to pass a literal "$", "/" or "*" (etc.) to gdb_test,
- # remember that the pattern will be escaped once and
- # $-evaluated twice:
- #
- # "\\\*" matches "\*"
- # "\$" matches "$"
- #
- proc fix_timeout {} {
- gdb_test "p \$pc" ".*" ""
- }
-
- #=========================
- #
- # Simple sanity test first.
- #
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
- gdb_test "tb 122" ".*Breakpoint.*" ""
- gdb_test "r" ".*122.*" ""
- gdb_test "thr 99" ".*Thread ID 99 not known.*" "Check too-big thread number"
- gdb_test "tb 145 thr 3" ".*Breakpoint.*" "set thread-specific bp 145"
- gdb_test "tb 146 thr 4" ".*Breakpoint.*" "set thread-specific bp 146"
- gdb_test "c" ".*Switched to thread.*145.*" "auto switch"
- gdb_test "c" ".*Switched to thread.*146.*" "auto switch 2"
- gdb_test "c" ".*Program exited normally.*" ""
-
- #=========================
- #
- # Test that you can't do a thread select after a program runs.
- #
- gdb_test "thread" ".*No stack.*" "No live thread after run"
- gdb_test "thr 2" ".*No stack.*" "Can't set thread after run"
-
- #=========================
- #
- # Test thread command changes, look for frame level reset bug.
- #
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
- gdb_test "b 122" ".*" ""
- gdb_test "r" ".*122.*" ""
-
- # Prep for frame level test--go up/info thread/check frame
- #
- gdb_test "up" ".*quick_sort.*" ""
- gdb_test "up" ".*main.*" ""
-
- send_gdb "i th\n"
- gdb_expect {
- -re ".*7 thread.* in .* from .* in .* from .* 6 thread.*$gdb_prompt $" {
- fail "old thread command, says things twice"
- }
- -re ".*7 system thread.*6 system th.*5 sys.*4.*3.*2.*1.*work_init.*$gdb_prompt $" {
- pass "info threads"
- }
- -re ".*$gdb_prompt $" { fail "no info thread command" }
- timeout { fail "timeout" }
- }
-
- # We should have been restored two frames up--check.
- #
- send_gdb "up\n"
- gdb_expect {
- -re ".*Initial frame selected.*$gdb_prompt $" {
- pass "Frame correctly reset after 'info threads'"
- }
- -re ".*quick_sort.*$gdb_prompt $" {
- fail "Old gdb bug; should be fixed someday"
- }
- -re ".*$gdb_prompt $" {
- fail "real bug--FIX!"
- }
- timeout { fail "timeout" }
- }
-
- # Do it again, only just go to a middle frame, and use another thread.
- #
- gdb_test "thr 5" ".*" ""
- gdb_test "bt" ".* ___ksleep.*_lwp_cond_timedwait.*pthread_cond_wait.*worker.*__pthread_create_system.*" ""
- gdb_test "up" ".*1.*_lwp_cond_timedwait.*" ""
- gdb_test "up" ".*2.*pthread_cond_wait.*" ""
- gdb_test "up" ".*3.*worker.*" ""
- gdb_test "i th" ".*7.*6.*work_init.*" ""
- gdb_test "f" ".*3.*worker.*" "Frame restored"
- gdb_test "p wp->max_pile" ".*= 128.*" "can see vars in frame"
-
- # Thread command changes
- #
- gdb_test "thr" ".*Current thread is 5.*" "threads-no-num"
- gdb_test "thr 6" ".*Switching to thread 6.*" "new switch"
- gdb_test "thr" ".*Current thread is 6.*" "check switch"
- #gdb_test "thr 6" ".*Current thread is already 6.*" "dup, no switch"
- gdb_test "thr app all p x" ".*No symbol.*" ""
- gdb_test "thr" ".*Current thread is 6.*" "restore current thread"
-
- #=========================
- #
- # Test new stepping
- #
-
- proc get_hit { } {
- global hit2
- global hit3
- global hit4
- global hit5
- global hit6
- global hit7
- global gdb_prompt
-
- send_gdb "cont\n"
- gdb_expect {
- -re ".*Breakpoint.*145.*$gdb_prompt $" {
- send_gdb "thr\n"
- gdb_expect {
- -re ".*is 7.*$gdb_prompt $" {
- set hit7 [expr "$hit7 + 1"]
- }
- -re ".*is 6.*$gdb_prompt $" {
- set hit6 [expr "$hit6 + 1"]
- }
- -re ".*is 5.*$gdb_prompt $" {
- set hit5 [expr "$hit5 + 1"]
- }
- -re ".*is 4.*$gdb_prompt $" {
- set hit4 [expr "$hit4 + 1"]
- }
- -re ".*is 3.*$gdb_prompt $" {
- set hit3 [expr "$hit3 + 1"]
- }
- -re ".*is 2.*$gdb_prompt $" {
- set hit2 [expr "$hit2 + 1"]
- }
- -re ".*$gdb_prompt $" {
- fail "can't see which thread"
- }
- timeout { fail "timeout" }
- }
- }
- -re ".*$gdb_prompt $" {
- fail "thread command"
- }
- timeout { fail "timeout" }
- }
- }
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
- gdb_test "break 122" ".*" ""
- gdb_test "run" ".*122.*" ""
-
- # Make sure we hit a bp on every thread.
- #
- # Try one, via thread-specific bps
- #
- gdb_test "break 145 thr 2" ".*" "set thread-specific bp thr 2"
- gdb_test "break 145 thr 3" ".*" "set thread-specific bp thr 3"
- gdb_test "break 145 thr 4" ".*" "set thread-specific bp thr 4"
- gdb_test "break 145 thr 5" ".*" "set thread-specific bp thr 5"
- gdb_test "break 145 thr 6" ".*" "set thread-specific bp thr 6"
- gdb_test "break 145 thr 7" ".*" "set thread-specific bp thr 7"
-
- set hit2 0
- set hit3 0
- set hit4 0
- set hit5 0
- set hit6 0
- set hit7 0
-
- get_hit
- get_hit
- get_hit
- get_hit
- get_hit
- get_hit
-
- if { [expr "$hit2 == 1"]
- && [expr "$hit3 == 1"]
- && [expr "$hit4 == 1"]
- && [expr "$hit5 == 1"]
- && [expr "$hit6 == 1"]
- && [expr "$hit7 == 1"] } {
- pass "thread-specific bps 1"
- } else {
- fail "thread-specific bps 1"
- }
-
- #====================
- #
- # Now use generic bps
- #
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
- gdb_test "b 122" ".*" ""
- gdb_test "r" ".*122.*" ""
-
- # Make sure we hit a bp on every thread.
- #
- # Try two, via non-thread-specific bp
- #
- gdb_test "b 145" ".*" "b 145"
-
- set hit2 0
- set hit3 0
- set hit4 0
- set hit5 0
- set hit6 0
- set hit7 0
-
- get_hit
- get_hit
- get_hit
- get_hit
- get_hit
- get_hit
-
- if { [expr "$hit2 == 1"]
- && [expr "$hit3 == 1"]
- && [expr "$hit4 == 1"]
- && [expr "$hit5 == 1"]
- && [expr "$hit6 == 1"]
- && [expr "$hit7 == 1"] } {
- pass "thread-specific bps 2"
- } else {
- fail "thread-specific bps 2"
- }
-
- #====================
- #
- # Complicated (original) test next.
- #
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
- if ![runto_main] then {
- fail "Can't run to main"
- return 0
- }
-
- # OK, we're at "main", there should be one thread.
- #
- gdb_test "info thread" ".*\\\* 1 system thread .*main.*" "initial thread"
-
- # Try to see the threads being created: set a breakpoint
- # after the creation and go around the loop a few times.
- #
- gdb_test "break 109" "Breakpoint.*109.*" "set bpt"
-
- gdb_test "c" ".*New thread.*Breakpoint.*109.*" "first continue"
- fix_timeout
-
- # Make sure we don't wait (waiting is for attach test)
- #
- gdb_test "set wait_here = 0" ".*" ""
-
- send_gdb "info thr\n"
- gdb_expect {
- -re ".*2 system th.*1 sy.*109.*$gdb_prompt $" { pass "saw thread create" }
- -re ".*1 system thread.*87.*$gdb_prompt $" { fail "didn't see thread create" }
- -re ".*$gdb_prompt $" { fail "no info thread command" }
- timeout { fail "timeout" }
- }
-
- gdb_test "c" ".*New thread.*Breakpoint.*109.*" "continue"
- fix_timeout
-
- send_gdb "info thr\n"
- gdb_expect {
- -re ".*3 system thread.*2 sys.*\\\* 1 system thread.*109.*$gdb_prompt $" {
- pass "saw thread create" }
- -re ".*2 system thread.*1 sys.*109.*$gdb_prompt $" {
- fail "didn't see thread create"
- }
- -re ".*1 system thread.*109.*$gdb_prompt $" {
- fail "didn't see thread create"
- }
- -re ".*$gdb_prompt $" {
- fail "no info thread command"
- }
- timeout { fail "timeout" }
- }
-
- fix_timeout
- gdb_test "clear" ".*Deleted breakpoint.*" ""
-
- # Now go on to the end of thread creation.
- #
- gdb_test "b 122" ".*" "set bpt 122"
- gdb_test "c" ".*New thread.*New thread.*New thread.*122.*" ""
- gdb_test "p \$pc" ".*" ""
- gdb_test "clear" ".*Deleted breakpoint.*" ""
-
- send_gdb "info thr\n"
- gdb_expect {
- -re ".*7 system thread.*6 sys.*5.*1 system thread.*122.*$gdb_prompt $"
- { pass "saw thread creates" }
- -re ".*$gdb_prompt $"
- { fail "no info thread command" }
- timeout { fail "timeout" }
- }
-
- # Try a thread-specific breakpoint; we expect the other threads to
- # be waiting at this point.
- #
- gdb_test "thr 3" ".*Switching to thread.*ksleep.*" "thread switch"
- gdb_test "i th" ".*\\\* 3 system thread.*" "show new current thread"
-
- gdb_test "up" ".*lwp_cond_timedwait.*" ""
- gdb_test "up" ".*pthread_cond_wait.*" ""
- gdb_test "up" ".*worker.*144.*" ""
-
- gdb_test "b 145 th 3" ".*Breakpoint.*145.*" "set thread-specific bp"
- gdb_test "i b" ".*breakpoint.*breakpoint.*145 thread 3.*" "show thread-specific bp"
-
- gdb_test "c" ".*Breakpoint.*145.*145.*" "hit thread-specific bp"
- gdb_test "p \$pc" ".*" ""
-
- # Test thread apply command on thread specific data.
- #
- gdb_test "thre app all p \$pc" ".*Thread 7.*Thread 6.*Thread 5.*Thread 4.*Thread 3.*Thread 2.*Thread 1.*" "thread apply all"
- gdb_test "thr ap 1 3 5 p \$pc" ".*Thread 1.*Thread 3.*Thread 5.*" "thr app 1 3 5"
-
- # Switch again, and test that others continue on a "next"
- # This test _could_ fail due to timing issues, but that's
- # unlikely.
- #
- gdb_test "thr 7" ".*Switching to thread.*" ""
-
- # Make sure that "up" stops at __pthread_exit, or
- # __pthread_create, the pseudo-roots, and that we
- # only see that pseudo-root once.
- #
- send_gdb "bt\n"
- gdb_expect {
- -re ".*Error accessing memory address.*" { fail "bt" }
- -re ".*pthread_create.*pthread_create.*" { fail "bt" }
- -re ".*worker.*pthread_create.*" { pass "bt" }
- -re ".*pthread_exit.*" { pass "bt" }
- timeout { fail "timeout on bt" }
- }
-
- gdb_test "up" ".*" ""
- gdb_test "up" ".*" ""
- gdb_test "up" ".*144.*" "Up 3"
- gdb_test "up" ".*pthread_.*" "Up 4"
- gdb_test "up" ".*Initial frame selected; you cannot go up.*" "catch end of thread stack"
-
- #=====================
- #
- # Things get iffy here; when we step, sometimes the step
- # completes, sometimes it doesn't. When it doesn't, we
- # hit a bp somewhere else and the step never completes
- # (wait_for_inferior just evaporates it).
- #
- # I think the right answer is that any failures here
- # should stick around to trigger later fixing.
- #
- # Here's the plan:
- #
- # Bps at 148 (5) and 154 (6) on thread 7 (two bps so we
- # see the difference between going around the loop and
- # reporting the same bp hit twice).
- #
- # Bp at 144 on thread 3.
- #
- # Step out of a library routine.
- #
- # Either the step will finish or a bp will hit. Try to
- # handle all the cases.
- #
- gdb_test "b 148 thr 7" ".*Breakpoint.*148.*" ""
- gdb_test "b 154 thr 7" ".*Breakpoint.*154.*" "set bpt 2"
-
- set hit_154_bp 0
- set hit_148_bp 0
- set hit_145_bp 0
- set step_completed 0
-
- # Expect zero hits
- #
- gdb_test "i b" ".*" ""
-
- send_gdb "n\n"
- gdb_expect {
- -re ".*Single stepping.*_lwp_cond_timedwait.*$gdb_prompt $" {
- send_gdb "thr\n"
- gdb_expect {
- -re ".*is 7.*$gdb_prompt $" {
- set step_completed 1
- pass "completed step in library code"
- }
- -re ".*$gdb_prompt $" {
- fail "completed step in library code, but in wrong thread"
- }
- timeout { fail "timeout" }
- }
- }
- -re ".*Single stepping.*Switched to thread 3.*Breakpoint.*$gdb_prompt $" {
- pass "step cancelled; hit bp due to thread parallelism"
- set hit_145_bp 1
- }
- -re ".*Single stepping.*Switched to thread 7.*Breakpoint.*148.*$gdb_prompt $" {
- pass "step cancelled; hit bp due to thread parallelism"
- set hit_148_bp 1
- }
- -re ".*Single stepping.*Switched to thread 7.*Breakpoint.*154.*$gdb_prompt $" {
- pass "step cancelled; hit bp due to thread parallelism"
- set hit_154_bp 1
- }
- -re ".*$gdb_prompt $" {
- send_gdb "thr\n"
- gdb_expect {
- -re ".*is 7.*$gdb_prompt $" {
- fail "No event?"
- }
- -re ".*$gdb_prompt $" {
- fail "No event"
- }
- timeout { fail "timeout" }
- }
- }
- timeout { fail "timeout" }
- }
-
- # Sometimes used to get SIGTRAP here; that should be fixed
- #
-
- # Expect appropriate hits of bpt; too much work to parse
- # result and check...
- #
- gdb_test "i b" ".*" ""
-
- send_gdb "c\n"
- gdb_expect {
- -re ".*SIGTRAP.*$gdb_prompt $" {
- fail "got SIGTRAP"
- }
- -re ".*Switched to thread 7.*Breakpoint.*154.*$gdb_prompt $" {
- if { $hit_154_bp == 1 } {
- fail "re-hit old bp"
- } else {
- pass "continue; hit parallel event after continue"
- }
- set hit_154_bp 1
- }
- -re ".*Switched to thread 7.*Breakpoint.*148.*$gdb_prompt $" {
- if { $hit_148_bp == 1 } {
- fail "re-hit old bp"
- } else {
- pass "continue; hit parallel event after continue"
- }
- set hit_148_bp 1
- }
- -re ".*Breakpoint.*154.*$gdb_prompt $" {
- if { $hit_154_bp == 1 } {
- fail "re-hit old bp"
- } else {
- send_gdb "thr\n"
- gdb_expect {
- -re ".*is 7.*$gdb_prompt $" {
- pass "continue; hit parallel event after continue"
- }
- -re ".*$gdb_prompt $" {
- fail "hit bp in wrong thread"
- }
- timeout { fail "timeout" }
- }
- }
- set hit_154_bp 1
- }
- -re ".*Breakpoint.*148.*$gdb_prompt $" {
- if { $hit_148_bp == 1 } {
- fail "re-hit old bp"
- } else {
- send_gdb "thr\n"
- gdb_expect {
- -re ".*is 7.*$gdb_prompt $" {
- pass "continue; hit parallel event after continue"
- }
- -re ".*$gdb_prompt $" {
- fail "hit bp in wrong thread"
- }
- timeout { fail "timeout" }
- }
- }
- set hit_148_bp 1
- }
- -re ".*Breakpoint.*145.*$gdb_prompt $" {
- if { $hit_145_bp == 1 } {
- fail "re-hit old bp"
- } else {
- send_gdb "thr\n"
- gdb_expect {
- -re ".*is 3.*$gdb_prompt $" {
- pass "continue; hit parallel event after continue"
- }
- -re ".*$gdb_prompt $" {
- fail "hit bp in wrong thread"
- }
- timeout { fail "timeout" }
- }
- }
- set hit_145_bp 1
- }
- -re ".*_lwp_cond_timedwait.*$gdb_prompt $" {
- pass "continue; hit step completion after continue"
- }
- -re ".*Program exited normally.*" {
- fail "Program ended? HOW?"
- }
- -re ".*$gdb_prompt $" {
- fail "Unexpected event"
- }
- timeout { fail "timeout" }
- }
-
- # There are a number of places we _could_ be now;
- # this is the price of really running in parallel.
- #
- send_gdb "n\n"
- gdb_expect {
- -re ".*Switched to thread 7.*pthread_cond_wait.*$gdb_prompt $" {
- if { $step_completed } {
- fail "step already completed"
- } else {
- pass "finish step"
- }
- }
- -re ".*pthread_cond_wait.*$gdb_prompt $" {
- #
- # Unlikely, but we might finish the range step from inside
- # ksleep, before anything else.
- #
- if { $step_completed } {
- fail "step already completed"
- } else {
- send_gdb "thr\n"
- gdb_expect {
- -re ".*is 7.*$gdb_prompt $" {
- pass "finish step"
- }
- -re ".*$gdb_prompt $" {
- fail "step in wrong thread"
- }
- timeout { fail "timeout" }
- }
- }
- }
- -re ".*Switched to thread.*Breakpoint.*145.*$gdb_prompt $" {
- pass "auto-switch thread"
- }
- -re ".*Breakpoint.*145.*$gdb_prompt $" {
- pass "auto-switch not needed, ok"
- }
- -re ".*140.*while.*n_pile.*$gdb_prompt $" {
- #
- # This is just going around the loop from the 154 bp.
- #
- send_gdb "thr\n"
- gdb_expect {
- -re ".*is 7.*$gdb_prompt $" {
- pass "finish step"
- }
- -re ".*$gdb_prompt $" {
- fail "step in wrong thread"
- }
- timeout { fail "timeout" }
- }
- }
- -re ".*149.*ptr = wp.*pile.*$gdb_prompt $" {
- #
- # This is just going around the loop from the 148 bp.
- #
- if { $hit_154_bp } {
- send_gdb "thr\n"
- gdb_expect {
- -re ".*is 7.*$gdb_prompt $" {
- pass "finish step"
- }
- -re ".*$gdb_prompt $" {
- fail "step in wrong thread"
- }
- timeout { fail "timeout" }
- }
- } else {
- pass "step from 149 but didn't hit it first"
- }
- }
- -re ".*Breakpoint 5.*154.*$gdb_prompt $" {
- gdb_test "i b" ".*" ""
- if { $hit_154_bp } {
- fail "hit bp again?"
- } else {
- pass "hit bp"
- }
- }
- -re ".*Breakpoint 5.*148.*$gdb_prompt $" {
- gdb_test "i b" ".*" ""
- if { $hit_148_bp } {
- fail "hit bp again?"
- } else {
- pass "hit bp"
- }
- }
- -re ".*$gdb_prompt $" {
- fail "no step finished"
- }
- timeout { fail "timeout on 'next'" }
- }
-
- # Let's get into some kind of known state again.
- #
- gdb_test "thr 7" ".*" ""
- gdb_test "info thread" ".*" ""
- #gdb_test "i b" ".*" ""
-
- # Leave breakpoint "154 thr 7" as only live bp.
- #
- gdb_test "d 1" ".*" "del main bp"
- gdb_test "d 4" ".*" "thread-specific bpt delete"
- gdb_test "d 5" ".*" "other bp delete"
- send_gdb "i b\n"
- gdb_expect {
- -re ".*breakpoint.*breakpoint.*$gdb_prompt $" {
- fail "more than one bp left"
- }
- -re ".*breakpoint.*154.*thread.*7.*$gdb_prompt $" {
- pass "Only one bp left"
- }
- -re ".*$gdb_prompt $" {
- fail "Wrong or no bp left"
- }
- timeout { fail "timeout on info b" }
- }
-
- send_gdb "c\n"
- gdb_expect {
- -re ".*SIGTRAP.*Switched to thread.*$gdb_prompt $" {
- fail "SIGTRAP error; lost thread-specific bpt"
- }
- -re ".*SIGTRAP.*Switched to thread.*154.*$gdb_prompt $" {
- fail "SIGTRAP, but hit right thread-specific bpt"
- }
- -re ".*Switched to thread.*Breakpoint.*154.*$gdb_prompt $" {
- pass "auto-switch back"
- }
- -re ".*Breakpoint.*154.*$gdb_prompt $" {
- pass "step to bp"
- }
- -re ".*$gdb_prompt $" {
- fail "auto-switch back"
- }
- -re ".*Program exited normally.*$gdb_prompt $" {
- fail "step lost"
- }
- timeout {
- fail "timeout"
- }
- }
- fix_timeout
-
- gdb_test "cle" ".*Deleted breakpoint.*" "delete last breakpoint"
-
- # Sometimes get SIGTRAP here. Continue sometimes gets another...
- #
- send_gdb "c\n"
- gdb_expect {
- -re ".*SIGTRAP.*154.*154.*$gdb_prompt $" {
- fail "SIGTRAP on deleted bp 154 "
- send_gdb "c\n"
- gdb_expect {
- -re ".*$gdb_prompt $" { pass "fixup"}
- timeout { fail "fixup" }
- }
- }
- -re ".*SIGTRAP.*144.*145.*$gdb_prompt $" {
- fail "SIGTRAP on deleted bp 145 "
- send_gdb "c\n"
- gdb_expect {
- -re ".*$gdb_prompt $" { pass "fixup"}
- timeout { fail "fixup" }
- }
- }
- -re ".*SIGTRAP.*148.*148.*$gdb_prompt $" {
- fail "SIGTRAP on deleted bp 148 "
- send_gdb "c\n"
- gdb_expect {
- -re ".*$gdb_prompt $" { pass "fixup"}
- timeout { fail "fixup" }
- }
- }
- -re ".*SIGTRAP.*$gdb_prompt $" {
- fail "unknown SIGTRAP"
- send_gdb "c\n"
- gdb_expect {
- -re ".*$gdb_prompt $" { pass "fixup"}
- timeout { fail "fixup" }
- }
- }
- -re ".*Program exited.*$gdb_prompt $" {
- pass "run to end"
- }
- -re ".*$gdb_prompt $" {
- fail "run to end"
- send_gdb "c\n"
- gdb_expect {
- -re ".*$gdb_prompt $" { pass "fixup"}
- timeout { fail "fixup" }
- }
- }
- timeout { fail "timeout" }
- }
-
- gdb_test "p \$pc" ".*No registers.*" "program done"
-
- # Done!
- #
- gdb_exit
-
- set timeout $oldtimeout
- set verbose $oldverbose
-
- # execute_anywhere "rm -f ${binfile}"
- #
- return 0
-
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/reg-test.exp gdb/testsuite/gdb.hp/reg-test.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/reg-test.exp Thu Mar 25 19:23:51 1999
--- gdb/testsuite/gdb.hp/reg-test.exp Wed Dec 31 16:00:00 1969
***************
*** 1,187 ****
- # Copyright (C) 1998 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # Tests of wide register displays for GDB on HPPA 2.0 machines
-
- # use this to debug:
- #log_user 1
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- set testfile "reg-test"
- set srcfile ${testfile}.s
- set binfile ${objdir}/${subdir}/${testfile}
-
- # To build a pa 2.0 executable
- #
- # as -o reg_test reg_test.s
- # or
- # cc -g -o reg_test reg_test.s
- #
- # The +DA2.0N flag doesn't seem to be needed.
- #
- # Don't reject if there are warnings, as we expect this warning:
- #
- # (Warning) At least one PA 2.0 object file (pa2.0_test2.o) was detected.
- # The linked output may not run on a PA 1.x system.
- #
-
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
- # test machine--there's no 2.0n architecture, so we have
- # to try to run the app.
- #
- send_gdb "break main\n"
- gdb_expect {
- -re "Breakpoint.*$gdb_prompt $" {
- pass "initial set-up"
- }
- -re ".*$gdb_prompt $" {
- fail "initial set-up"
- }
- timeout {
- fail "initial set-up (timeout)"
- }
- }
-
- send_gdb "run\n"
- gdb_expect {
- -re ".*Executable file incompatible with hardware.*$gdb_prompt $" {
- # Not hppa2.0 machine
- #
- return 0
- }
- -re "Cannot exec.*$gdb_prompt $" {
- # Not hppa2.0 machine
- #
- return 0
- }
- -re ".*Starting program:.*$gdb_prompt $" {
- pass "Ready to start test"
- }
- timeout {
- fail "initial set-up, part 2 (timeout)"
- return 0
- }
- }
-
- # Let the program set known values. This secretly deletes
- # the breakpoint at main and re-runs to mainend.
- #
- runto mainend
-
- # Look for known values
- #
- gdb_test "info reg r1" "r1 1"
- gdb_test "info reg r4" "r4 2"
- gdb_test "info reg r5" "r5 4"
- gdb_test "info reg r6" "r6 8"
- gdb_test "info reg r7" "r7 10"
- gdb_test "info reg r8" "r8 20"
- gdb_test "info reg r9" "r9 40"
- gdb_test "info reg r10" "r10 80"
- gdb_test "info reg r11" "r11 100"
- gdb_test "info reg r12" "r12 200"
- gdb_test "info reg r13" "r13 400"
- gdb_test "info reg r14" "r14 800"
- gdb_test "info reg r15" "r15 1000"
- gdb_test "info reg r16" "r16 2000"
-
- # Two odd variants that GDB supports are:
- # "1" means "r1", and
- # "$1" means "r1"
- #
- gdb_test "info reg 1 4" "r1 1.*r4 2"
- gdb_test "info reg \$1" "r1 1"
-
- # Verify that GDB responds gracefully to a register ID number that
- # is out of range.
- #
- gdb_test "info reg 999" "999: invalid register"
-
- # Make sure the floating point status and error registers
- # don't show up as floating point numbers!
- #
- gdb_test "info reg fpsr" ".*fpsr 0.*" "fpsr"
- gdb_test "info reg fpe1" ".*fpe1 0.*" "fpe1"
- gdb_test "info reg fpe2" ".*fpe2 0.*" "fpe2"
- gdb_test "info reg fpe3" ".*fpe3 0.*" "fpe3"
- gdb_test "info reg fpe4" ".*fpe4 0.*" "fpe4"
- gdb_test "info reg fpe5" ".*fpe5 0.*" "fpe5"
- gdb_test "info reg fpe6" ".*fpe6 0.*" "fpe6"
- gdb_test "info reg fpe7" ".*fpe7 0.*" "fpe7"
-
- gdb_test "info reg fr4" ".*fr4.*(double precision).* 1"
- gdb_test "info reg fr5" ".*fr5.*(double precision).* 2"
- gdb_test "info reg fr6" ".*fr6.*(double precision).* 2"
- gdb_test "info reg fr7" ".*fr7.*(double precision).* 4"
- gdb_test "info reg fr8" ".*fr8.*(double precision).* 8"
- gdb_test "info reg fr9" ".*fr9.*(double precision).* 32"
- gdb_test "info reg fr10" ".*fr10.*(double precision).* 256"
-
- gdb_test "info reg r19" "r19 deadbeefbadcadee"
-
- # Need to add test of use of $<register-name>
- #
- # Q: How do you say a literal "$" in expect?
- # A: You say "\$". A literal "\" is "\\".
- #
- # Please note that this test will fail as long as we are running
- # in 32-bit mode: it will produce "$1 = 0xbadcadee". To fix it
- # would require building a real 64-bit gdb (expression evaluation,
- # in particular).
- #
- send_gdb "p/x \$r19\n"
- gdb_expect {
- -re ".*= 0xdeadbeefbadcadee.*$gdb_prompt $" {
- pass "64-bit works"
- }
- -re ".*= 0xbadcadee.*$gdb_prompt $" {
- pass "32-bit extract when using PRINT; expected but not good"
- }
- -re ".*$gdb_prompt $" {
- fail "didn't print any part of right value"
- }
- timeout {
- fail "timeout on print"
- }
- }
-
- # Need to add tests of setting wide regs too. E.g.
- #
- # set $r4 = 0x1234567890123456
- # p/x $r4
- #
-
- # done
- #
- gdb_exit
- remote_exec build "rm -f ${binfile}"
- return 0
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/reg-test.s gdb/testsuite/gdb.hp/reg-test.s
*** ../gdb-19990719/gdb/testsuite/gdb.hp/reg-test.s Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/reg-test.s Wed Dec 31 16:00:00 1969
***************
*** 1,96 ****
- ; assemble as "as -o reg_test.exe reg_test.s"
- ; or
- ; cc -g -o +DA2.0N
- ;
- ; PA-RISC 2.0 register contents test.
- ;
- .level 2.0
-
- .code
- .export main,ENTRY
- .export mainend,CODE
- .export lab1,CODE
- .space $TEXT$
- .subspa $CODE$
-
- main
- .proc
- .callinfo NO_CALLS,FRAME=0
- .entry
-
- ;; Test we have right register numbers
- ;;
- ADD %r0,%r0,%r1 ; 0
- LDI 1,%r1 ; 1
- ;;
- ;; Don't put anything into r2 or r3--they are special registers.
- ;;
- ADD %r1,%r1,%r4 ; 2
- ADD %r4,%r4,%r5 ; 4
- ADD %r5,%r5,%r6 ; 8
- ADD %r6,%r6,%r7 ; 16
- ADD %r7,%r7,%r8 ; 32
- ADD %r8,%r8,%r9 ; 64
- ADD %r9,%r9,%r10 ; 128
- ADD %r10,%r10,%r11 ; 256
- ADD %r11,%r11,%r12 ; 512
- ADD %r12,%r12,%r13 ; 1024
- ADD %r13,%r13,%r14 ; 2048
- ADD %r14,%r14,%r15 ; 4096
- ADD %r15,%r15,%r16 ; 9192
-
- ;; Test high bits, to be sure we show them.
- ;;
- LDI 0xde,%r19 ; "de"
- DEPD,Z %r19,55,56,%r19 ; "de00"
- LDI 0xad,%r18 ; "ad"
- ADD %r18,%r19,%r19 ; "dead"
- DEPD,Z %r19,55,56,%r19 ; "dead00"
- LDI 0xbe,%r18 ; "be"
- ADD %r18,%r19,%r19 ; "deadbe"
- DEPD,Z %r19,55,56,%r19 ; "deadbe00"
- LDI 0xef,%r18 ; "ef"
- ADD %r18,%r19,%r19 ; "deadbeef"
- ;
- DEPD,Z %r19,55,56,%r19 ; "deadbeef00"
- LDI 0xba,%r18 ; "ba"
- ADD %r18,%r19,%r19 ; "deadbeefba"
- DEPD,Z %r19,55,56,%r19 ; "deadbeefba00"
- LDI 0xdc,%r18 ; "dc"
- ADD %r18,%r19,%r19 ; "deadbeefbadc"
- DEPD,Z %r19,55,56,%r19 ; "deadbeefbadc00"
- LDI 0xad,%r18 ; "ad"
- ADD %r18,%r19,%r19 ; "deadbeefbadcad"
- DEPD,Z %r19,55,56,%r19 ; "deadbeefbadcad00"
- LDI 0xee,%r18 ; "ee"
- ADD %r18,%r19,%r19 ; "deadbeefbadcadee"
-
- lab1 ;; Test floating point registers
- ;;
- LDIL LR'one,%r22 ;
- FLDD RR'one(%r22),%fr4 ; 1.0
- FLDD RR'one+8(%r22),%fr5 ; 2.0
- FLDD RR'one+8(%r22),%fr6 ; 2.0
- FMPY,DBL %fr5,%fr6,%fr7 ; 4.0
- FMPY,DBL %fr6,%fr7,%fr8 ; 8.0
- FMPY,DBL %fr7,%fr8,%fr9 ; 32.0
- FMPY,DBL %fr8,%fr9,%fr10 ; 256.0
-
- ;; The NOP prevents anything from end.o or crt0.o from
- ;; being appended immediately after "mainend". If that
- ;; happens, then we may have other labels that have the
- ;; same address as "mainend", and thus the debugger
- ;; may symbolize this PC to something other than "mainend".
- mainend
- NOP
- .exit
- .procend
-
- .space $TEXT$
- .subspa $CODE$
- .subspa $LIT$ ;; <don't use> ,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=16
- one
- .align 8
- .stringz "?\xF0\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00"
- .end
-
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/run-hp.c gdb/testsuite/gdb.hp/run-hp.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/run-hp.c Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/run-hp.c Wed Dec 31 16:00:00 1969
***************
*** 1,70 ****
- /*
- * This simple classical example of recursion is useful for
- * testing stack backtraces and such.
- */
-
- #ifdef vxworks
-
- # include <stdio.h>
-
- /* VxWorks does not supply atoi. */
- static int
- atoi (z)
- char *z;
- {
- int i = 0;
-
- while (*z >= '0' && *z <= '9')
- i = i * 10 + (*z++ - '0');
- return i;
- }
-
- /* I don't know of any way to pass an array to VxWorks. This function
- can be called directly from gdb. */
-
- vxmain (arg)
- char *arg;
- {
- char *argv[2];
-
- argv[0] = "";
- argv[1] = arg;
- main (2, argv, (char **) 0);
- }
-
- #else /* ! vxworks */
- # include <stdio.h>
- #endif /* ! vxworks */
-
- main (argc, argv, envp)
- int argc;
- char *argv[], **envp;
- {
- #ifdef usestubs
- set_debug_traps();
- breakpoint();
- #endif
- #ifdef FAKEARGV
- printf ("%d\n", factorial (1));
- #else
- if (argc != 2) {
- printf ("usage: factorial <number>\n");
- return 1;
- } else {
- printf ("%d\n", factorial (atoi (argv[1])));
- }
- #endif
- return 0;
- }
-
- int factorial (value)
- int value;
- {
- int local_var;
-
- if (value > 1) {
- value *= factorial (value - 1);
- }
- local_var = value;
- return (value);
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/sized-enum.c gdb/testsuite/gdb.hp/sized-enum.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/sized-enum.c Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/sized-enum.c Wed Dec 31 16:00:00 1969
***************
*** 1,43 ****
-
- enum Normal {
- red,
- blue,
- green
- };
-
- short enum Small {
- pink,
- cyan,
- grey
- };
-
- char enum Tiny {
- orange,
- yellow,
- brown
- };
-
-
- main()
- {
- enum Normal normal[3];
- short enum Small small[3];
- char enum Tiny tiny[3];
- int i;
-
- for (i=0; i < 3; i++)
- {
- normal[i] = (enum Normal) i;
- small[i] = (short enum Small) i;
- tiny[i] = (char enum Tiny) i;
- }
- normal[0] = 0; /* place to hang a breakpoint */
- }
-
-
-
-
-
-
-
-
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/sized-enum.exp gdb/testsuite/gdb.hp/sized-enum.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/sized-enum.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/sized-enum.exp Wed Dec 31 16:00:00 1969
***************
*** 1,164 ****
- # Copyright (C) 1997, 1998 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # GDB tests for sized enumerations
-
- # This is aimed at HP-UX systems. The HP C compiler
- # allows specifying "char" or "short" for an enum, to
- # indicate that it is 1 or 2 bytes long.
-
- # This file was written by Satish Pai <pai@apollo.hp.com>
- # 1997-09-24
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- #
- # test running programs
- #
- set prms_id 0
- set bug_id 0
-
- if { [skip_hp_tests] } then { continue }
-
- set testfile "sized-enum"
- set srcfile ${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
-
- if [get_compiler_info ${binfile}] {
- return -1
- }
-
- if { $gcc_compiled } then { continue }
-
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- 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
- }
-
- # set a breakpoint and go there
- send_gdb "break 34\n"
- gdb_expect {
- -re "Breakpoint \[0-9\] at.*$gdb_prompt $" { pass "set break 34" }
- -re "$gdb_prompt $" { fail "set break 34" }
- timeout { fail "(timeout) set break 34" }
- }
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing\\.\r\n\r\nBreakpoint \[0-9\]*, main....at.*sized-enum\\.c:34\r\n34.*\r\n$gdb_prompt $" { pass "continue" }
- -re "$gdb_prompt $" { fail "continue" }
- timeout { fail "(timeout) continue" }
- }
-
- # print stuff
- send_gdb "print normal\n"
- gdb_expect {
- -re "\\$\[0-9\]* = \\{red, blue, green\\}.*$gdb_prompt $" { pass "print normal" }
- -re "$gdb_prompt $" { fail "print normal" }
- timeout { fail "(timeout) print normal" }
- }
- send_gdb "print small\n"
- gdb_expect {
- -re "\\$\[0-9\]* = \\{pink, cyan, grey\\}.*$gdb_prompt $" { pass "print small" }
- -re "$gdb_prompt $" { fail "print small" }
- timeout { fail "(timeout) print small" }
- }
- send_gdb "print tiny\n"
- gdb_expect {
- -re "\\$\[0-9\]* = \\{orange, yellow, brown\\}.*$gdb_prompt $" { pass "print tiny" }
- -re "$gdb_prompt $" { fail "print tiny" }
- timeout { fail "(timeout) print tiny" }
- }
-
- # print type sizes
- send_gdb "print sizeof (Normal)\n"
- gdb_expect {
- -re "\\$\[0-9\]* = 4.*$gdb_prompt $" { pass "print sizeof (Normal)" }
- -re "$gdb_prompt $" { fail "print sizeof (Normal)" }
- timeout { fail "(timeout) print sizeof (Normal)" }
- }
- send_gdb "print sizeof (Small)\n"
- gdb_expect {
- -re "\\$\[0-9\]* = 2.*$gdb_prompt $" { pass "print sizeof (Small)" }
- -re "$gdb_prompt $" { fail "print sizeof (Small)" }
- timeout { fail "(timeout) print sizeof (Small)" }
- }
- send_gdb "print sizeof (Tiny)\n"
- gdb_expect {
- -re "\\$\[0-9\]* = 1.*$gdb_prompt $" { pass "print sizeof (Tiny)" }
- -re "$gdb_prompt $" { fail "print sizeof (Tiny)" }
- timeout { fail "(timeout) print sizeof (Tiny)" }
- }
-
- # print types
- send_gdb "ptype normal\n"
- gdb_expect {
- -re "type = enum Normal \\{red, blue, green\\} \\\[3\\\].*$gdb_prompt $" { pass "ptype normal" }
- -re "$gdb_prompt $" { fail "ptype normal" }
- timeout { fail "(timeout) ptype normal" }
- }
- send_gdb "ptype small\n"
- gdb_expect {
- -re "type = short enum Small \\{pink, cyan, grey\\} \\\[3\\\].*$gdb_prompt $" { pass "ptype small" }
- -re "$gdb_prompt $" { fail "ptype small" }
- timeout { fail "(timeout) ptype small" }
- }
- send_gdb "ptype tiny\n"
- gdb_expect {
- -re "type = char enum Tiny \\{orange, yellow, brown\\} \\\[3\\\].*$gdb_prompt $" { pass "ptype tiny" }
- -re "$gdb_prompt $" { fail "ptype tiny" }
- timeout { fail "(timeout) ptype tiny" }
- }
-
- # convert to int
- send_gdb "print (int) blue\n"
- gdb_expect {
- -re "\\$\[0-9\]* = 1.*$gdb_prompt $" { pass "print (int) blue" }
- -re "$gdb_prompt $" { fail "print (int) blue" }
- timeout { fail "(timeout) print (int) blue" }
- }
- send_gdb "print (int) cyan\n"
- gdb_expect {
- -re "\\$\[0-9\]* = 1.*$gdb_prompt $" { pass "print (int) cyan" }
- -re "$gdb_prompt $" { fail "print (int) cyan" }
- timeout { fail "(timeout) print (int) cyan" }
- }
- send_gdb "print (int) yellow\n"
- gdb_expect {
- -re "\\$\[0-9\]* = 1.*$gdb_prompt $" { pass "print (int) yellow" }
- -re "$gdb_prompt $" { fail "print (int) yellow" }
- timeout { fail "(timeout) print (int) yellow" }
- }
-
-
-
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/so-thresh.exp gdb/testsuite/gdb.hp/so-thresh.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/so-thresh.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/so-thresh.exp Wed Dec 31 16:00:00 1969
***************
*** 1,359 ****
- # Copyright (C) 1997, 1998 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- set prms_id 0
- set bug_id 0
-
- if { [skip_hp_tests] } then { continue }
-
- set testfile "so-thresh"
- set srcfile ${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
-
- if [get_compiler_info ${binfile}] {
- return -1
- }
-
- # This testcase is automatically generated, via the
- # gen-so-thresh program, which also should
- # live in this same directory.
- #
- # The generator produces:
- # - so-thresh.c
- # - 3 .c files named libXX-so-thresh.c
- # - a makefile named so-thresh.mk with a
- # target named "so-thresh" that will compile
- # and link the testcase
- #
- # Making with so-thresh.mk produces:
- # - so-thresh
- # - 3 shared libraries that are linked against, named
- # libXX-so-thresh.sl
- #
- # We build gen-so-thresh, run it, and then make with
- # the makefile it produces.
- #
- set genfile gen_${testfile}
- set gen_srcfile ${genfile}.c
- set gen_binfile ${genfile}
- set gen_makefile ${testfile}.mk
-
- # This testcase is relatively large, and therefore can take awhile to
- # load. We'd best set the timeout to something suitable, or we may
- # seem to fail...
- #
- set timeout 60
-
- # It's easiest to build and run the testcase in this directory. (Linking
- # against shlibs puts relative paths to them in the a.out, so it's best
- # if we remain in this directory for the entire test run.)
- #
- #cd gdb.base
-
- # Ensure that the testcase is built. This may cause the generator to
- # be built & run.
- #
- # Warning! The final link of this testcase is not for the
- # faint-hearted nor under-disked machine!
- #
- # ??rehrauer: I tried for a very long time to get make invoked
- # directly here, rather than invoking a script to do it. I
- # finally gave up in frustration; I'm not sure why it wouldn't
- # work that way, but this method DOES work, albeit clumsily.
- #
-
- send_user "Making with ${testfile}.mk ...\n"
- # remote_exec build "sh -c \\\"cd ${objdir}/${subdir}\\; make -v -f ${srcdir}/${subdir}/${testfile}.mk clean require_shlibs all SRCDIR=${srcdir}/${subdir} OBJDIR=${objdir}/${subdir}\\\""
- remote_exec build "sh -c \\\"cd ${objdir}/${subdir}\\; make -v -f ${srcdir}/${subdir}/${testfile}.mk clean require_shlibs all SRCDIR=${srcdir}/${subdir} OBJDIR=${objdir}/${subdir}\\\""
-
- # Only HP-UX (and any other platforms using SOM shared libraries, I
- # guess) interprets the auto-solib-add variable as a threshhold,
- # rather than a boolean that strictly enables or disables automatic
- # loading of shlib symbol tables.
- #
- # On HP-UX, it is the size threshhold (in megabytes) at which to
- # stop auto loading of symbol tables.
- #
- if ![istarget "hppa*-hp-hpux*"] then {
- setup_xfail "*-*-*"
- }
-
- # Start with a fresh gdb
- #
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
- # This is a test of gdb's ability on HP-UX to stop automatically
- # loading symbols of shared libraries, when the total size of the
- # debugger's symbol table reaches a specified threshhold.
- #
-
- # On HP-UX, the help text for auto-solib-add mentions that it
- # serves as a threshhold.
- #
- send_gdb "help set auto-solib-add\n"
- gdb_expect {
- -re "Set autoloading size threshold .in megabytes. of shared library symbols.*
- If nonzero, symbols from all shared object libraries will be loaded.*
- automatically when the inferior begins execution or when the dynamic linker.*
- informs gdb that a new library has been loaded, until the symbol table.*
- of the program and libraries exceeds this threshold.*
- Otherwise, symbols must be loaded manually, using `sharedlibrary'.*$gdb_prompt $"\
- {pass "help set auto-solib-add"}
- -re "$gdb_prompt $"\
- {fail "help set auto-solib-add"}
- timeout {fail "(timeout) help set auto-solib-add"}
- }
-
- # On HP-UX, the threshhold is by default set to 50, which means
- # 50 megabytes.
- #
- send_gdb "show auto-solib-add\n"
- gdb_expect {
- -re "Autoloading size threshold .in megabytes. of shared library symbols is 100.*$gdb_prompt $"\
- {pass "show auto-solib-add (default is 100)"}
- -re "$gdb_prompt $"\
- {fail "show auto-solib-add (default is 100)"}
- timeout {fail "(timeout) show auto-solib-add (default is 100)"}
- }
-
- send_gdb "set auto-solib-add 1\n"
- gdb_expect {
- -re ".*$gdb_prompt $"
- {pass "set auto-solib-add to 1"}
- -re ".*$gdb_prompt $"
- {fail "set auto-solib-add to 1"}
- timeout {fail "(timeout) set auto-solib-add to 1"}
- }
-
-
- # We have manually verified that our testcase exceeds 1 Mbytes
- # of heap space in GDB to hold the symbols for the main program
- # and all associated linked-against libraries. Thus, when we
- # run to the program's main, and therefore notice all the linked-
- # against shlibs, we expect to hit the threshhold.
- #
- # (Note that we're not using the expect [runto main] function here,
- # 'cause we want to match on output from the run command.
- #
- send_gdb "break main\n"
- gdb_expect {
- -re "Breakpoint \[0-9\]* at.*$gdb_prompt $"\
- {pass "set break at main"}
- -re "$gdb_prompt $"\
- {fail "set break at main"}
- timeout {fail "(timeout) set break at main"}
- }
-
- send_gdb "run\n"
- gdb_expect {
- -re ".*warning. Symbols for some libraries have not been loaded, because.*
- doing so would exceed the size threshold specified by auto-solib-add.*
- To manually load symbols, use the 'sharedlibrary' command.*
- To raise the threshold, set auto-solib-add to a larger value and rerun.*
- the program.*$gdb_prompt $"\
- {pass "run to main hit auto-solib-add threshold"}
- -re "$gdb_prompt $"\
- {fail "run to main hit auto-solib-add threshold"}
- timeout {fail "(timeout) run to main hit auto-solib-add threshold"}
- }
-
- # Verify that "info share" mentions something about libraries whose
- # symbols weren't loaded.
- #
- # We'll assume that at least the last two shlib's symbols weren't
- # loaded. As a side-effect of matching this pattern, the text start
- # address of the last one is captured in expect_out(1,string).
- # (we'll need it for the 'add-symbol-file' command in a nonce...)
- #
- send_gdb "info sharedlibrary\n"
- gdb_expect {
- -re ".*lib01_$testfile.sl .*symbols not loaded.*0x\[0-9\]* (0x\[0-9a-fA-F\]*).*$gdb_prompt $"\
- { send_gdb "add-symbol-file lib02_$testfile.sl $expect_out(1,string)\n"
- gdb_expect {
- -re "add symbol table.*y or n.*$"\
- {send_gdb "y\n"
- gdb_expect {
- -re "$gdb_prompt $" {pass "add-symbol-file and info sharedlib"}
- timeout {fail "(timeout) add-symbol-file and info sharedlib"}
- }}
- -re "$gdb_prompt $"\
- {fail "add-symbol-file and info sharedlib"}
- timeout {fail "(timeout) add-symbol-file and info sharedlib"}
- }
- }
- -re "$gdb_prompt $"\
- {fail "info sharedlibrary shows shlibs with unloaded symbols"}
- timeout {fail "(timeout) info sharedlibrary shows shlibs with unloaded symbols"}
- }
-
- # Verify that we can manually load the symbol table of a library
- # whose symbols weren't loaded. (We'll pick the last one.)
- #
-
- # I moved this test inside the one above, because the expect_out array is not ok if the
- # previous test has failed, and expect would error out (elz)
- #
- #send_gdb "add-symbol-file lib02_$testfile.sl $expect_out(1,string)\n"
- #gdb_expect {
- # -re "add symbol table.*y or n.*$"\
- # {send_gdb "y\n"
- # gdb_expect {
- # -re "$gdb_prompt $" {pass "add-symbol-file"}
- # timeout {fail "(timeout) add-symbol-file"}
- # }}
- # -re "$gdb_prompt $"\
- # {fail "add-symbol-file"}
- # timeout {fail "(timeout) add-symbol-file"}
- #}
-
- # Verify that we can manually load the symbols for all libraries
- # which weren't already loaded.
- #
- # Warning! On a machine with little free swap space, this may
- # fail!
- #
- send_gdb "sharedlibrary\n"
- gdb_expect {
- -re "Reading symbols from.*done.*$gdb_prompt $"\
- {pass "sharedlibrary"}
- -re "$gdb_prompt $"\
- {fail "sharedlibrary"}
- timeout {fail "(timeout) sharedlibrary"}
- }
-
- # Rerun the program, this time verifying that we can set the
- # threshhold high enough to avoid hitting it.
- #
- # It appears that gdb isn't freeing memory when rerunning, as one
- # would expect. To avoid potentially hitting a virtual memory
- # ceiling, start with a fresh gdb.
- #
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
- send_gdb "break main\n"
- gdb_expect {
- -re "Breakpoint \[0-9\]* at.*$gdb_prompt $"\
- {pass "set break at main"}
- -re "$gdb_prompt $"\
- {fail "set break at main"}
- timeout {fail "(timeout) set break at main"}
- }
-
- send_gdb "set auto-solib-add 9999\n"
- gdb_expect {
- -re "$gdb_prompt $"\
- {pass "set auto-solib-add threshold to practical infinity"}
- timeout {fail "(timeout) set auto-solib-add threshold to practical infinity"}
- }
- send_gdb "run\n"
- gdb_expect {
- -re ".*warning. Symbols for some libraries have not been loaded, because.*
- doing so would exceed the size threshold specified by auto-solib-add.*
- To manually load symbols, use the 'sharedlibrary' command.*
- To raise the threshold, set auto-solib-add to a larger value and rerun.*
- the program.*$gdb_prompt $"\
- {fail "rerun threshold at practical infinity (still hit threshold)"}
- -re "$gdb_prompt $"\
- {pass "rerun with threshold at practical infinity"}
- timeout {fail "(timeout) rerun with threshold at practical infinity"}
- }
-
- # Rerun the program, this time altogether disabling the auto loading
- # feature. There should be no information at all about shared
- # libraries now.
- #
- # ??rehrauer: Personally, I'd call that a bug, since it doesn't give
- # you the ability to manually load single shlibs (you need the text
- # start address that 'info share' normall gives you). On the other
- # hand, one can easily choose to load them all...
- #
- # It appears that gdb isn't freeing memory when rerunning, as one
- # would expect. To avoid potentially hitting a virtual memory
- # ceiling, start with a fresh gdb.
- #
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
- send_gdb "break main\n"
- gdb_expect {
- -re "Breakpoint \[0-9\]* at.*$gdb_prompt $"\
- {pass "set break at main"}
- -re "$gdb_prompt $"\
- {fail "set break at main"}
- timeout {fail "(timeout) set break at main"}
- }
-
- send_gdb "set auto-solib-add 0\n"
- gdb_expect {
- -re "$gdb_prompt $"\
- {pass "set auto-solib-add threshold to 0"}
- timeout {fail "(timeout) set auto-solib-add threshold to 0"}
- }
- send_gdb "run\n"
- gdb_expect {
- -re ".*warning. Symbols for some libraries have not been loaded, because.*
- doing so would exceed the size threshold specified by auto-solib-add.*
- To manually load symbols, use the 'sharedlibrary' command.*
- To raise the threshold, set auto-solib-add to a larger value and rerun.*
- the program.*$gdb_prompt $"\
- {fail "rerun threshold at 0 (still hit threshold)"}
- -re "$gdb_prompt $"\
- {pass "rerun with threshold at 0"}
- timeout {fail "(timeout) rerun with threshold at 0"}
- }
-
- # Verify that we can still manually load symbols for all libraries.
- # (We'll assume that if the last shlib's symbols are loaded, that
- # all of them were.)
- #
- # Note that we set the GDB "height" variable to prevent GDB from
- # prompting
- #
- # Warning! On a machine with little free swap space, this may
- # fail!
- #
- send_gdb "set height 9999\n"
- gdb_expect {
- -re "$gdb_prompt $"\
- {pass "set screen page height to practical infinity"}
- timeout {fail "(timeout) set screen page height to practical infinity"}
- }
- send_gdb "sharedlibrary\n"
- gdb_expect {
- -re ".*Reading symbols from .*/lib02-so-thresh\\.sl\\.\\.\\.done\\..*$gdb_prompt $"\
- {pass "manually load all symbols"}
- -re "$gdb_prompt $"\
- {fail "manually load all symbols"}
- timeout {fail "(timeout) manually load all symbols"}
- }
-
- #cd ..
- return 0
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/so-thresh.linkopts gdb/testsuite/gdb.hp/so-thresh.linkopts
*** ../gdb-19990719/gdb/testsuite/gdb.hp/so-thresh.linkopts Fri Jan 29 16:03:21 1999
--- gdb/testsuite/gdb.hp/so-thresh.linkopts Wed Dec 31 16:00:00 1969
***************
*** 1,5 ****
- # Linker options for so-thresh test
- -l00-so-thresh
- -l01-so-thresh
- -l02-so-thresh
-
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/so-thresh.mk gdb/testsuite/gdb.hp/so-thresh.mk
*** ../gdb-19990719/gdb/testsuite/gdb.hp/so-thresh.mk Fri Jan 29 16:03:21 1999
--- gdb/testsuite/gdb.hp/so-thresh.mk Wed Dec 31 16:00:00 1969
***************
*** 1,73 ****
- # Make file for so-thresh test
-
- OBJDIR=.
- SRCDIR=.
- CFLAGS = +DA1.1 -g
-
- # This is how to build this generator.
- gen-so-thresh.o: ${SRCDIR}/gen-so-thresh.c
- $(CC) $(CFLAGS) -o gen-so-thresh.o -c ${SRCDIR}/gen-so-thresh.c
- gen-so-thresh: gen-so-thresh.o
- $(CC) $(CFLAGS) -o gen-so-thresh gen-so-thresh.o
-
- # This is how to run this generator.
- # This target should be made before the 'all' target,
- # to ensure that the shlib sources are all available.
- require_shlibs: gen-so-thresh
- if ! [ -a lib00-so-thresh.c ] ; then \
- gen-so-thresh ; \
- fi
- if ! [ -a lib01-so-thresh.c ] ; then \
- gen-so-thresh ; \
- fi
- if ! [ -a lib02-so-thresh.c ] ; then \
- gen-so-thresh ; \
- fi
-
- # This is how to build all the shlibs.
- # Be sure to first make the require_shlibs target!
- lib00-so-thresh.o: lib00-so-thresh.c
- $(CC) $(CFLAGS) +Z -o lib00-so-thresh.o -c lib00-so-thresh.c
- lib00-so-thresh.sl: lib00-so-thresh.o
- $(LD) $(LDFLAGS) -b -o lib00-so-thresh.sl lib00-so-thresh.o
- lib01-so-thresh.o: lib01-so-thresh.c
- $(CC) $(CFLAGS) +Z -o lib01-so-thresh.o -c lib01-so-thresh.c
- lib01-so-thresh.sl: lib01-so-thresh.o
- $(LD) $(LDFLAGS) -b -o lib01-so-thresh.sl lib01-so-thresh.o
- lib02-so-thresh.o: lib02-so-thresh.c
- $(CC) $(CFLAGS) +Z -o lib02-so-thresh.o -c lib02-so-thresh.c
- lib02-so-thresh.sl: lib02-so-thresh.o
- $(LD) $(LDFLAGS) -b -o lib02-so-thresh.sl lib02-so-thresh.o
-
-
-
-
- # For convenience, here's names for all pieces of all shlibs.
- SHLIB_SOURCES = \
- lib00-so-thresh.c \
- lib01-so-thresh.c \
- lib02-so-thresh.c
-
- SHLIB_OBJECTS = $(SHLIB_SOURCES:.c=.o)
- SHLIBS = $(SHLIB_SOURCES:.c=.sl)
- SHLIB_NAMES = $(SHLIB_SOURCES:.c=)
- EXECUTABLES = $(SHLIBS) gen-so-thresh so-thresh
- OBJECT_FILES = $(SHLIB_OBJECTS) gen-so-thresh.o so-thresh.o
-
- shlib_objects: $(SHLIB_OBJECTS)
- shlibs: $(SHLIBS)
-
- # This is how to build the debuggable testcase that uses the shlibs.
- so-thresh.o: so-thresh.c
- $(CC) $(CFLAGS) -o so-thresh.o -c so-thresh.c
- so-thresh: shlibs so-thresh.o
- $(LD) $(LDFLAGS) -o so-thresh -lc -L${OBJDIR} -c so-thresh.linkopts /opt/langtools/lib/end.o /lib/crt0.o so-thresh.o
-
- # Yeah, but you should first make the require_shlibs target!
- all: so-thresh gen-so-thresh
-
- # To remove everything built via this makefile...
- clean:
- rm -f lib0*-so-thresh.*
- rm -f *.o gen-so-thresh so-thresh.linkopts so-thresh.c
- rm -f so-thresh
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/so-thresh.sh gdb/testsuite/gdb.hp/so-thresh.sh
*** ../gdb-19990719/gdb/testsuite/gdb.hp/so-thresh.sh Fri Jan 29 16:03:21 1999
--- gdb/testsuite/gdb.hp/so-thresh.sh Wed Dec 31 16:00:00 1969
***************
*** 1,12 ****
- #!/bin/ksh
- #
- # This script is a "wrapper" to use the so-thresh.mk
- # Makefile. See the comments in so-thresh.exp
- # regarding why this script exists.
- #
-
- #set -o xtrace
- #set -o verbose
-
- MAKEFLAGS=
- make -v -f so-thresh.mk require_shlibs all
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/start-stop.c gdb/testsuite/gdb.hp/start-stop.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/start-stop.c Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/start-stop.c Wed Dec 31 16:00:00 1969
***************
*** 1,161 ****
- /* BeginSourceFile start_stop.c
-
- This file creates and deletes threads, so that wdb
- can be tested on thread delete.
-
- To compile:
-
- cc -Ae +DA1.0 -g -o start_stop -lpthread start_stop.c
-
- To run:
-
- start_stop --normal run
- start_stop 1 --waits in each thread to keep it alive.
- */
-
- #include <unistd.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <assert.h>
- #include <pthread.h>
-
- #define TRUE 1
- #define FALSE 0
- #define OUTER_LOOP_COUNT 3
- #define N_THREADS 3
- #define MAX_LOCAL_VAL 40
-
- /* Uncomment to turn on debugging output */
- /* #define START_DEBUG */
-
- /* True if waiting for attach.
- */
- int wait_here;
-
- /* Thing to check for debugging purposes.
- */
- int a_global = 0;
-
- /* Thread-local storage.
- */
- __thread int a_thread_local;
-
- /* Check the results of thread-local storage.
- */
- int thread_local_val[ N_THREADS ];
- int val_debugger_saw[ N_THREADS ];
-
- /* Routine for each thread to run, does nothing.
- */
- void *spin( vp )
- void * vp;
- {
- int me = (int) vp;
- int i;
-
- #ifdef START_DEBUG
- printf( "== In thread %d\n", me );
- #endif
-
- a_global++;
-
- a_thread_local = 0;
- for( i = 0; i < a_global; i++ ) {
- a_thread_local += i;
- }
-
- thread_local_val[ me ] = a_thread_local; /* Line 67 */
-
- printf( "== Thread %d, a_thread_local is %d\n",
- (int) vp, a_thread_local );
-
- if( wait_here ) {
- /* Extend life of thread to extend life of thread-local var.
- * This makes life easier for human debugging (though you'd
- * probably want to make the delay longer).
- */
- sleep( 5 );
- }
- }
-
- void
- do_pass( pass )
- int pass;
- {
- int i;
- pthread_t t[ N_THREADS ];
- int err;
-
- for( i = 0; i < N_THREADS; i++) {
- thread_local_val[i] = 0;
- val_debugger_saw[i] = 0;
- }
-
- /* Start N_THREADS threads, then join them so
- * that they are terminated.
- */
- for( i = 0; i < N_THREADS; i++ ) {
- err = pthread_create( &t[i], NULL, spin, (void *)i );
- if( err != 0 ) {
- printf( "== Start/stop, error in thread %d create\n", i );
- }
- }
-
- for( i = 0; i < N_THREADS; i++ ) {
- err = pthread_join(t[i], NULL ); /* Line 105 */
- if( err != 0 ) { /* Line 106 */
- printf( "== Start/stop, error in thread %d join\n", i );
- }
- }
-
- i = 10; /* Line 109. Null line for setting bpts on. */
-
- /*#ifdef START_DEBUG*/
- for( i = 0; i < N_THREADS; i++) {
- printf( " Local in thread %d was %d, debugger saw %d\n",
- i, thread_local_val[i], val_debugger_saw[i] );
- }
- printf( "== Pass %d done\n", pass );
- /*#endif*/
-
- }
-
- void
- do_it()
- {
- /* We want to start some threads and then
- * end them, and then do it again and again
- */
- int i;
- int dummy;
-
- for( i = 0; i < OUTER_LOOP_COUNT; i++ ) {
- do_pass( i );
- dummy = i; /* Line 134, null line for setting bps on */
- }
- }
-
- main( argc, argv )
- int argc;
- char **argv;
- {
- wait_here = FALSE;
- if((argc > 1) && (0 != argv )) {
- if( 1 == atoi( argv[1] ) )
- wait_here = TRUE;
- }
-
- #ifdef START_DEBUG
- printf( "== Test starting\n" );
- #endif
-
- do_it();
-
- #ifdef START_DEBUG
- printf( "== Test done\n" );
- #endif
-
- return(0);
- }
-
- /* EndSourceFile */
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/start-stop.exp gdb/testsuite/gdb.hp/start-stop.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/start-stop.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/start-stop.exp Wed Dec 31 16:00:00 1969
***************
*** 1,362 ****
- # start_stop.exp -- Expect script to test a threaded pgm which has terminating threads
- # Copyright (C) 1992 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # Comment out for now, since this test is (sometimes?) hanging on 11.0
- #
- # return 0
-
- # use this to debug:
- #
- #log_user 1
-
- # Thread stuff is _slow_; prepare for long waits.
- #
- # Further, this test has some "null" lines designed
- # to consume output from gdb that was too late to be
- # matched (sequence is "gdb_test" sends; timeout and
- # on to next send; result finally comes in; mismatch).
- #
- # The null command is 'gdb_test "p \$pc" ".*" ""'
- # NOTE: this command undoes any up/down stuff!
- #
- proc pre_timeout {} {
- global timeout
-
- set timeout [expr "$timeout + 100"]
- }
-
- proc post_timeout {} {
- global timeout
- global oldtimeout
-
- set timeout $oldtimeout
- gdb_test "p \$pc" ".*" ""
- }
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- if { ![istarget "hppa*-*-hpux10.30"] && ![istarget "hppa*-*-hpux11.*"] } {
- verbose "HPUX thread test ignored for non-hppa or pre-HP/UX-10.30 targets."
- return 0
- }
-
- set testfile start-stop
- set srcfile ${srcdir}/${subdir}/${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
-
- if [get_compiler_info ${binfile}] {
- return -1
- }
-
- # To build the executable we need to link against the thread library.
- #
- # cc -Ae -g -o start-stop -lpthread start-stop.c
- #
- #compile "${srcfile} -Ae -g -lpthread -o ${binfile}"
-
- if {$gcc_compiled == 0} {
- set additional_flags "additional_flags=-Ae"
- } else {
- set additional_flags ""
- }
-
- if { [gdb_compile "${srcdir}/${subdir}/${testfile}.c" "${binfile}.o" object [list debug $additional_flags]] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
- remote_exec build "ld /usr/ccs/lib/crt0.o ${binfile}.o -lcl -lpthread -lc /opt/langtools/lib/end.o -o ${binfile}"
-
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
-
- gdb_load ${binfile}
- if ![runto_main] then {
- fail "Can't run to main"
- return 0
- }
-
- set oldtimeout $timeout
- #set timeout [expr "$timeout + 200"]
- set oldverbose $verbose
- #set verbose 40
-
- gdb_test "b do_pass" ".*" "set do_pass bp"
- gdb_test "c" ".*Breakpoint.*do_pass.*" "run to do_pass"
-
- # Should be only one thread.
- #
- pre_timeout
- send_gdb "info thread\n"
- gdb_expect {
- -re ".*2 process.*$gdb_prompt $" { fail "Old code for 'thread.c'" }
- -re ".*2 system thread.*1 sys.*$gdb_prompt $" { fail "Too many threads" }
- -re ".*1 system thread.*$gdb_prompt $" { pass "Just one thread" }
- -re ".*$gdb_prompt $" { fail "no thread info" }
- timeout { fail "timeout on info thread 1" }
- }
- post_timeout
-
- # Run to a point after the thread creates (105 is just
- # before the first join).
- #
- # The "== Thread" stuff is output from the computing threads.
- #
- gdb_test "b 105" ".*Breakpoint.*" "set 105 bp"
-
- pre_timeout
- send_gdb "c\n"
- gdb_expect {
- -re ".*== Thread.*== Thread.*== Thread.*105.*$gdb_prompt $" {
- pass "new threads created and ended"
- set threads_exist 0
- }
- -re ".*== Thread.*== Thread.*105.*$gdb_prompt $" {
- pass "new threads created and ended"
- set threads_exist 1
- }
- -re ".*== Thread.*.*105.*$gdb_prompt $" {
- pass "new threads created and ended"
- set threads_exist 2
- }
- -re ".*New thread.*New th.*New th.*105.*$gdb_prompt $" {
- pass "new threads created"
- set threads_exist 3
- }
- -re ".*Breakpoint.*105.*$gdb_prompt $" {
- set threads_exist 0
- fail "didn't see any threads"
- }
- -re ".*$gdb_prompt $" {
- set threads_exist 0
- fail "didn't even hit bp"
- }
- timeout {
- set threads_exist -1
- fail "timeout on continue"
- }
- }
-
- # Look at the threads again. We expect that some of
- # the threads may have already finished execution.
- #
- send_gdb "info thread\n"
- gdb_expect {
- -re ".*4.*3.*2.* 1.*thread.*$gdb_prompt $" { set seen_threads 3 }
- -re ".*3.*2.* 1.*thread.*$gdb_prompt $" { set seen_threads 2 }
- -re ".*2.* 1.*thread.*$gdb_prompt $" { set seen_threads 1 }
- -re ".* 1.*thread.*$gdb_prompt $" { set seen_threads 0 }
- -re ".*$gdb_prompt $" { set seen_threads 0 }
- timeout {
- set seen_threads -10
- fail "timeout on second info thread"
- }
- }
- post_timeout
-
- if { $seen_threads == $threads_exist } {
- pass "saw all threads that existed"
- } else {
- if { $seen_threads > $threads_exist } {
- fail "may have seen threads that didn't finish exiting yet"
- } else {
- fail "didn't see live threads"
- }
- }
-
- gdb_test "cle" ".*Deleted.*" "del bp at 105"
-
- # Check that threads are being consumed at the join call.
- # We expect to join three times. If we ever see the bp at
- # 111, we've gone too far.
- #
- gdb_test "b 106" ".*Breakpoint.*106.*" "set bp at 106"
- gdb_test "b 111" ".*Breakpoint.*111.*" "set bp at 111"
-
- # This one is sure: we're already in the loop.
- #
- gdb_test "c" ".*Breakpoint.*106.*" "hit bp at 106 1st time, 2 left"
-
- # Did we go around the loop again?
- #
- send_gdb "c\n"
- gdb_expect {
- -re ".*Breakpoint.*111.*" {
- fail "didn't join right 1"
- gdb_test "cle" ".*" ""
- }
- -re ".*Breakpoint.*106.*" {
- pass "hit bp at 106 2nd time, 1 left"
- send_gdb "c\n"
- gdb_expect {
- -re ".*Breakpoint.*111.*" {
- fail "didn't join right 2"
- gdb_test "cle" ".*" ""
- }
- -re ".*Breakpoint.*106.*" {
- pass "hit bp at 106 3rd time, 0 left"
- gdb_test "cle" ".*" ""
- gdb_test "c" ".*Breakpoint.*111.*" ""
- gdb_test "cle" ".*" ""
- }
- timeout { fail "timeout going around the loop"}
- }
- }
- timeout { fail "timeout getting to 106"}
- }
-
- # Should only be one thread now.
- #
- pre_timeout
- send_gdb "info thread\n"
- gdb_expect {
- -re ".*2 system thread.*1 sys.*$gdb_prompt $" { fail "Too many threads" }
- -re ".*1 system th.*$gdb_prompt $" { pass "Just one thread" }
- -re ".*$gdb_prompt $" { pass "One thread shown as no threads, ok" }
- timeout { fail "timeout third info thread" }
- }
- post_timeout
-
- #============================= Begin pass 2 ===========
- #
- # Ok, go around again
- #
- gdb_test "c" ".*Breakpoint.*do_pass.*" "hit do_pass bp again 2"
- gdb_test "b 105" ".*Breakpoint.*" "set 105 bp 2"
-
- pre_timeout
- send_gdb "c\n"
- gdb_expect {
- -re ".*== Thread.*== Thread.*== Thread.*$gdb_prompt $" {
- pass "new threads created and ended 2"
- set threads_exist 0
- }
- -re ".*== Thread.*== Thread.*$gdb_prompt $" {
- pass "new threads created and ended 2"
- set threads_exist 1
- }
- -re ".*== Thread.*$gdb_prompt $" {
- pass "new threads created and ended 2"
- set threads_exist 2
- }
- -re ".*New system thread.*New sys.*New.*105.*$gdb_prompt $" {
- pass "new threads created 2"
- set threads_exist 3
- }
- timeout {
- set threads_exist -1
- fail "timeout on continue 2"
- }
- }
-
- # Look at the threads again. We expect that some of
- # the threads may have already finished execution.
- #
- send_gdb "info thread\n"
- gdb_expect {
- -re ".*4.*3.*2.* 1.*thread.*$gdb_prompt $" { set seen_threads 3 }
- -re ".*3.*2.* 1.*thread.*$gdb_prompt $" { set seen_threads 2 }
- -re ".*2.* 1.*thread.*$gdb_prompt $" { set seen_threads 1 }
- -re ".* 1.*thread.*$gdb_prompt $" { set seen_threads 0 }
- -re ".*$gdb_prompt $" { set seen_threads 0 }
- timeout {
- set seen_threads -10
- fail "timeout on second info thread 2"
- }
- }
- post_timeout
-
- if { $seen_threads == $threads_exist } {
- pass "saw all threads that existed"
- } else {
- if { $seen_threads > $threads_exist } {
- fail "may have seen threads that didn't finish exiting yet 2"
- } else {
- fail "didn't see live threads 2"
- }
- }
-
- gdb_test "cle" ".*Deleted.*" "del bp at 105 2"
-
- # Check that threads are being consumed at the join call.
- # We expect to join three times. If we ever see the bp at
- # 111, we've gone too far.
- #
- gdb_test "b 106" ".*Breakpoint.*106.*" "set bp at 106 2"
- gdb_test "b 111" ".*Breakpoint.*111.*" "set bp at 111 2"
-
- # This one is sure: we're already in the loop.
- #
- gdb_test "c" ".*Breakpoint.*106.*" "hit bp at 106 1st time, 2 left 2"
-
- # Did we go around the loop again?
- #
- send_gdb "c\n"
- gdb_expect {
- -re ".*Breakpoint.*111.*" {
- fail "didn't join right 1, pass 2"
- gdb_test "cle" ".*" ""
- }
- -re ".*Breakpoint.*106.*" {
- pass "hit bp at 106 2nd time, 1 left, pass 2"
- send_gdb "c\n"
- gdb_expect {
- -re ".*Breakpoint.*111.*" {
- fail "didn't join right 2, pass 2"
- gdb_test "cle" ".*" ""
- }
- -re ".*Breakpoint.*106.*" {
- pass "hit bp at 106 3rd time, 0 left, pass 2"
- gdb_test "cle" ".*" ""
- gdb_test "c" ".*Breakpoint.*111.*" ""
- gdb_test "cle" ".*" ""
- }
- timeout { fail "timeout going around loop, pass 2"}
- }
- }
- timeout { fail "timeout continue to 106, pass 2"}
- }
-
- # Should only be one thread now.
- #
- pre_timeout
- send_gdb "info thread\n"
- gdb_expect {
- -re ".*2 system thread.*1 sys.*$gdb_prompt $" { fail "Too many threads, pass 2" }
- -re ".*1 system thread.*$gdb_prompt $" { pass "Just one thread, pass 2" }
- -re ".*$gdb_prompt $" { pass "One thread shown as no threads, ok, pass 2" }
- timeout { fail "timeout last info thread, pass 2" }
- }
- post_timeout
-
- # Done!
- #
- gdb_exit
-
- set timeout $oldtimeout
- set verbose $oldverbose
-
- # execute_anywhere "rm -f ${binfile}"
- #
- return 0
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/sum.c gdb/testsuite/gdb.hp/sum.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/sum.c Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/sum.c Wed Dec 31 16:00:00 1969
***************
*** 1,15 ****
- /* This is a sample program for the HP/DDE debugger. */
- #include <stdio.h>
-
- #ifdef __STDC__
- int sum(int list[], int low, int high)
- #else
- int sum(list, low, high)
- int list[], low, high;
- #endif
- {
- int i, s = 0;
- for (i = low; i <= high; i++)
- s += list[i];
- return(s);
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/templ-hp.cc gdb/testsuite/gdb.hp/templ-hp.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/templ-hp.cc Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/templ-hp.cc Wed Dec 31 16:00:00 1969
***************
*** 1,785 ****
- /* This test code is from Wendell Baker (wbaker@comet.berkeley.edu) */
-
- #include <stddef.h>
-
- int a_i;
- char a_c;
- double a_d;
-
- typedef void *Pix;
-
- int
- f(int i)
- { return 0; }
-
- int
- f(int i, char c)
- { return 0; }
-
- int
- f(int i, char c, double d)
- { return 0; }
-
- int
- f(int i, char c, double d, char *cs)
- { return 0; }
-
- int
- f(int i, char c, double d, char *cs, void (*fig)(int, char))
- { return 0; }
-
- int
- f(int i, char c, double d, char *cs, void (*fig)(char, int))
- { return 0; }
-
- class R {
- public:
- int i;
- };
- class S {
- public:
- int i;
- };
- class T {
- public:
- int i;
- };
-
- char g(char, const char, volatile char)
- { return 'c'; }
- char g(R, char&, const char&, volatile char&)
- { return 'c'; }
- char g(char*, const char*, volatile char*)
- { return 'c'; }
- char g(S, char*&, const char*&, volatile char*&)
- { return 'c'; }
-
- signed char g(T,signed char, const signed char, volatile signed char)
- { return 'c'; }
- signed char g(T, R, signed char&, const signed char&, volatile signed char&)
- { return 'c'; }
- signed char g(T, signed char*, const signed char*, volatile signed char*)
- { return 'c'; }
- signed char g(T, S, signed char*&, const signed char*&, volatile signed char*&)
- { return 'c'; }
-
- unsigned char g(unsigned char, const unsigned char, volatile unsigned char)
- { return 'c'; }
- unsigned char g(R, unsigned char&, const unsigned char&, volatile unsigned char&)
- { return 'c'; }
- unsigned char g(unsigned char*, const unsigned char*, volatile unsigned char*)
- { return 'c'; }
- unsigned char g(S, unsigned char*&, const unsigned char*&, volatile unsigned char*&)
- { return 'c'; }
-
- short g(short, const short, volatile short)
- { return 0; }
- short g(R, short&, const short&, volatile short&)
- { return 0; }
- short g(short*, const short*, volatile short*)
- { return 0; }
- short g(S, short*&, const short*&, volatile short*&)
- { return 0; }
-
- signed short g(T, signed short, const signed short, volatile signed short)
- { return 0; }
- signed short g(T, R, signed short&, const signed short&, volatile signed short&)
- { return 0; }
- signed short g(T, signed short*, const signed short*, volatile signed short*)
- { return 0; }
- signed short g(T, S, double, signed short*&, const signed short*&, volatile signed short*&)
- { return 0; }
-
- unsigned short g(unsigned short, const unsigned short, volatile unsigned short)
- { return 0; }
- unsigned short g(R, unsigned short&, const unsigned short&, volatile unsigned short&)
- { return 0; }
- unsigned short g(unsigned short*, const unsigned short*, volatile unsigned short*)
- { return 0; }
- unsigned short g(S, unsigned short*&, const unsigned short*&, volatile unsigned short*&)
- { return 0; }
-
- int g(int, const int, volatile int)
- { return 0; }
- int g(R, int&, const int&, volatile int&)
- { return 0; }
- int g(int*, const int*, volatile int*)
- { return 0; }
- int g(S, int*&, const int*&, volatile int*&)
- { return 0; }
-
- signed int g(T, signed int, const signed int, volatile signed int)
- { return 0; }
- signed int g(T, R, signed int&, const signed int&, volatile signed int&)
- { return 0; }
- signed int g(T, signed int*, const signed int*, volatile signed int*)
- { return 0; }
- signed int g(T, S, signed int*&, const signed int*&, volatile signed int*&)
- { return 0; }
-
- unsigned int g(unsigned int, const unsigned int, volatile unsigned int)
- { return 0; }
- unsigned int g(R, unsigned int&, const unsigned int&, volatile unsigned int&)
- { return 0; }
- unsigned int g(unsigned int*, const unsigned int*, volatile unsigned int*)
- { return 0; }
- unsigned int g(S, unsigned int*&, const unsigned int*&, volatile unsigned int*&)
- { return 0; }
-
- long g(long, const long, volatile long)
- { return 0; }
- long g(R, long&, const long&, volatile long&)
- { return 0; }
- long g(long*, const long*, volatile long*)
- { return 0; }
- long g(S, long*&, const long*&, volatile long*&)
- { return 0; }
-
- signed long g(T, signed long, const signed long, volatile signed long)
- { return 0; }
- signed long g(T, R, signed long&, const signed long&, volatile signed long&)
- { return 0; }
- signed long g(T, signed long*, const signed long*, volatile signed long*)
- { return 0; }
- signed long g(T, S, signed long*&, const signed long*&, volatile signed long*&)
- { return 0; }
-
- unsigned long g(unsigned long, const unsigned long, volatile unsigned long)
- { return 0; }
- unsigned long g(S, unsigned long&, const unsigned long&, volatile unsigned long&)
- { return 0; }
- unsigned long g(unsigned long*, const unsigned long*, volatile unsigned long*)
- { return 0; }
- unsigned long g(S, unsigned long*&, const unsigned long*&, volatile unsigned long*&)
- { return 0; }
-
- #ifdef __GNUC__
- long long g(long long, const long long, volatile long long)
- { return 0; }
- long long g(S, long long&, const long long&, volatile long long&)
- { return 0; }
- long long g(long long*, const long long*, volatile long long*)
- { return 0; }
- long long g(R, long long*&, const long long*&, volatile long long*&)
- { return 0; }
-
- signed long long g(T, signed long long, const signed long long, volatile signed long long)
- { return 0; }
- signed long long g(T, R, signed long long&, const signed long long&, volatile signed long long&)
- { return 0; }
- signed long long g(T, signed long long*, const signed long long*, volatile signed long long*)
- { return 0; }
- signed long long g(T, S, signed long long*&, const signed long long*&, volatile signed long long*&)
- { return 0; }
-
- unsigned long long g(unsigned long long, const unsigned long long, volatile unsigned long long)
- { return 0; }
- unsigned long long g(R, unsigned long long*, const unsigned long long*, volatile unsigned long long*)
- { return 0; }
- unsigned long long g(unsigned long long&, const unsigned long long&, volatile unsigned long long&)
- { return 0; }
- unsigned long long g(S, unsigned long long*&, const unsigned long long*&, volatile unsigned long long*&)
- { return 0; }
- #endif
-
- float g(float, const float, volatile float)
- { return 0; }
- float g(char, float&, const float&, volatile float&)
- { return 0; }
- float g(float*, const float*, volatile float*)
- { return 0; }
- float g(char, float*&, const float*&, volatile float*&)
- { return 0; }
-
- double g(double, const double, volatile double)
- { return 0; }
- double g(char, double&, const double&, volatile double&)
- { return 0; }
- double g(double*, const double*, volatile double*)
- { return 0; }
- double g(char, double*&, const double*&, volatile double*&)
- { return 0; }
-
- #ifdef __GNUC__
- long double g(long double, const long double, volatile long double)
- { return 0; }
- long double g(char, long double&, const long double&, volatile long double&)
- { return 0; }
- long double g(long double*, const long double*, volatile long double*)
- { return 0; }
- long double g(char, long double*&, const long double*&, volatile long double*&)
- { return 0; }
- #endif
-
- class c {
- public:
- c(int) {};
- int i;
- };
-
- class c g(c, const c, volatile c)
- { return 0; }
- c g(char, c&, const c&, volatile c&)
- { return 0; }
- c g(c*, const c*, volatile c*)
- { return 0; }
- c g(char, c*&, const c*&, volatile c*&)
- { return 0; }
-
- /*
- void h(char = 'a')
- { }
- void h(char, signed char = 'a')
- { }
- void h(unsigned char = 'a')
- { }
- */
- /*
- void h(char = (char)'a')
- { }
- void h(char, signed char = (signed char)'a')
- { }
- void h(unsigned char = (unsigned char)'a')
- { }
-
-
- void h(short = (short)43)
- { }
- void h(char, signed short = (signed short)43)
- { }
- void h(unsigned short = (unsigned short)43)
- { }
-
- void h(int = (int)43)
- { }
- void h(char, signed int = (signed int)43)
- { }
- void h(unsigned int = (unsigned int)43)
- { }
-
-
- void h(long = (long)43)
- { }
- void h(char, signed long = (signed long)43)
- { }
- void h(unsigned long = (unsigned long)43)
- { }
-
- #ifdef __GNUC__
- void h(long long = 43)
- { }
- void h(char, signed long long = 43)
- { }
- void h(unsigned long long = 43)
- { }
- #endif
-
- void h(float = 4.3e-10)
- { }
- void h(double = 4.3)
- { }
- #ifdef __GNUC__
- void h(long double = 4.33e33)
- { }
- #endif
- */
- void printf(const char *format, ... )
- {
- // elipsis
- }
-
- class T1 {
- public:
- static void* operator new(size_t);
- static void operator delete(void *pointer);
-
- void operator=(const T1&);
- T1& operator=(int);
-
- int operator==(int) const;
- int operator==(const T1&) const;
- int operator!=(int) const;
- int operator!=(const T1&) const;
-
- int operator<=(int) const;
- int operator<=(const T1&) const;
- int operator<(int) const;
- int operator<(const T1&) const;
- int operator>=(int) const;
- int operator>=(const T1&) const;
- int operator>(int) const;
- int operator>(const T1&) const;
-
- void operator+(int) const;
- T1& operator+(const T1&) const;
- void operator+=(int) const;
- T1& operator+=(const T1&) const;
-
- T1& operator++() const;
-
- void operator-(int) const;
- T1& operator-(const T1&) const;
- void operator-=(int) const;
- T1& operator-=(const T1&) const;
-
- T1& operator--() const;
-
- void operator*(int) const;
- T1& operator*(const T1&) const;
- void operator*=(int) const;
- T1& operator*=(const T1&) const;
-
- void operator/(int) const;
- T1& operator/(const T1&) const;
- void operator/=(int) const;
- T1& operator/=(const T1&) const;
-
- void operator%(int) const;
- T1& operator%(const T1&) const;
- void operator%=(int) const;
- T1& operator%=(const T1&) const;
-
- void operator&&(int) const;
- T1& operator&&(const T1&) const;
-
- void operator||(int) const;
- T1& operator||(const T1&) const;
-
- void operator&(int) const;
- T1& operator&(const T1&) const;
- void operator&=(int) const;
- T1& operator&=(const T1&) const;
-
- void operator|(int) const;
- T1& operator|(const T1&) const;
- void operator|=(int) const;
- T1& operator|=(const T1&) const;
-
- void operator^(int) const;
- T1& operator^(const T1&) const;
- void operator^=(int) const;
- T1& operator^=(const T1&) const;
-
- T1& operator!() const;
- T1& operator~() const;
- };
-
- void*
- T1::operator new(size_t)
- { return 0; }
-
- void
- T1::operator delete(void *pointer)
- { }
-
- class T2 {
- public:
- T2(int i): integer(i)
- { }
- int integer;
- };
-
- int operator==(const T2&, const T2&)
- { return 0; }
- int operator==(const T2&, char)
- { return 0; }
- int operator!=(const T2&, const T2&)
- { return 0; }
- int operator!=(const T2&, char)
- { return 0; }
-
- int operator<=(const T2&, const T2&)
- { return 0; }
- int operator<=(const T2&, char)
- { return 0; }
- int operator<(const T2&, const T2&)
- { return 0; }
- int operator<(const T2&, char)
- { return 0; }
- int operator>=(const T2&, const T2&)
- { return 0; }
- int operator>=(const T2&, char)
- { return 0; }
- int operator>(const T2&, const T2&)
- { return 0; }
- int operator>(const T2&, char)
- { return 0; }
-
- T2 operator+(const T2 t, int i)
- { return t.integer + i; }
- T2 operator+(const T2 a, const T2& b)
- { return a.integer + b.integer; }
- T2& operator+=(T2& t, int i)
- { t.integer += i; return t; }
- T2& operator+=(T2& a, const T2& b)
- { a.integer += b.integer; return a; }
-
- T2 operator-(const T2 t, int i)
- { return t.integer - i; }
- T2 operator-(const T2 a, const T2& b)
- { return a.integer - b.integer; }
- T2& operator-=(T2& t, int i)
- { t.integer -= i; return t; }
- T2& operator-=(T2& a, const T2& b)
- { a.integer -= b.integer; return a; }
-
- T2 operator*(const T2 t, int i)
- { return t.integer * i; }
- T2 operator*(const T2 a, const T2& b)
- { return a.integer * b.integer; }
- T2& operator*=(T2& t, int i)
- { t.integer *= i; return t; }
- T2& operator*=(T2& a, const T2& b)
- { a.integer *= b.integer; return a; }
-
- T2 operator/(const T2 t, int i)
- { return t.integer / i; }
- T2 operator/(const T2 a, const T2& b)
- { return a.integer / b.integer; }
- T2& operator/=(T2& t, int i)
- { t.integer /= i; return t; }
- T2& operator/=(T2& a, const T2& b)
- { a.integer /= b.integer; return a; }
-
- T2 operator%(const T2 t, int i)
- { return t.integer % i; }
- T2 operator%(const T2 a, const T2& b)
- { return a.integer % b.integer; }
- T2& operator%=(T2& t, int i)
- { t.integer %= i; return t; }
- T2& operator%=(T2& a, const T2& b)
- { a.integer %= b.integer; return a; }
-
- template<class T>
- class T5 {
- public:
- T5(int);
- T5(const T5<T>&);
- ~T5();
- static void* operator new(size_t);
- static void operator delete(void *pointer);
- int value();
-
- static T X;
- T x;
- int val;
- };
-
- template<class T>
- T5<T>::T5(int v)
- { val = v; }
-
- template<class T>
- T5<T>::T5(const T5<T>&)
- {}
-
- template<class T>
- T5<T>::~T5()
- {}
-
- template<class T>
- void*
- T5<T>::operator new(size_t)
- { return 0; }
-
- template<class T>
- void
- T5<T>::operator delete(void *pointer)
- { }
-
- template<class T>
- int
- T5<T>::value()
- { return val; }
-
-
- #if ! defined(__GNUC__) || defined(GCC_BUG)
- template<class T>
- T T5<T>::X;
- #endif
-
-
-
-
- T5<char> t5c(1);
- T5<int> t5i(2);
- T5<int (*)(char, void *)> t5fi1(3);
- T5<int (*)(int, double **, void *)> t5fi2(4);
-
-
-
-
-
-
- class x {
- public:
- int (*manage[5])(double,
- void *(*malloc)(unsigned size),
- void (*free)(void *pointer));
- int (*device[5])(int open(const char *, unsigned mode, unsigned perms, int extra = 0),
- int *(*read)(int fd, void *place, unsigned size),
- int *(*write)(int fd, void *place, unsigned size),
- void (*close)(int fd));
- };
- T5<x> t5x(5);
-
- #if !defined(__GNUC__) || (__GNUC__ >= 2 && __GNUC_MINOR__ >= 6)
- template class T5<char>;
- template class T5<int>;
- template class T5<int (*)(char, void *)>;
- template class T5<int (*)(int, double **, void *)>;
- template class T5<x>;
- #endif
-
- class T7 {
- public:
- static int get();
- static void put(int);
- };
-
- int
- T7::get()
- { return 1; }
-
- void
- T7::put(int i)
- {
- // nothing
- }
-
- // More template kinds. GDB 4.16 didn't handle these, but
- // Wildebeest does. Note: Assuming HP aCC is used to compile
- // this file; with g++ or HP cfront or other compilers the
- // demangling may not get done correctly.
-
- // Ordinary template, to be instantiated with different types
- template<class T>
- class Foo {
- public:
- int x;
- T t;
- T foo (int, T);
- };
-
-
- template<class T> T Foo<T>::foo (int i, T tt)
- {
- return tt;
- }
-
- // Template with int parameter
-
- template<class T, int sz>
- class Bar {
- public:
- int x;
- T t;
- T bar (int, T);
- };
-
-
- template<class T, int sz> T Bar<T, sz>::bar (int i, T tt)
- {
- if (i < sz)
- return tt;
- else
- return 0;
- }
-
- // function template with int parameter
- template<class T> int dummy (T tt, int i)
- {
- return tt;
- }
-
- // Template with partial specializations
- template<class T1, class T2>
- class Spec {
- public:
- int x;
- T1 spec (T2);
- };
-
- template<class T1, class T2>
- T1 Spec<T1, T2>::spec (T2 t2)
- {
- return 0;
- }
-
- template<class T>
- class Spec<T, T*> {
- public:
- int x;
- T spec (T*);
- };
-
- template<class T>
- T Spec<T, T*>::spec (T * tp)
- {
- return *tp;
- }
-
- // Template with char parameter
- template<class T, char sz>
- class Baz {
- public:
- int x;
- T t;
- T baz (int, T);
- };
-
- template<class T, char sz> T Baz<T, sz>::baz (int i, T tt)
- {
- if (i < sz)
- return tt;
- else
- return 0;
- }
-
- // Template with char * parameter
- template<class T, char * sz>
- class Qux {
- public:
- int x;
- T t;
- T qux (int, T);
- };
-
- template<class T, char * sz> T Qux<T, sz>::qux (int i, T tt)
- {
- if (sz[0] == 'q')
- return tt;
- else
- return 0;
- }
-
- // Template with a function pointer parameter
- template<class T, int (*f)(int) >
- class Qux1 {
- public:
- int x;
- T t;
- T qux (int, T);
- };
-
- template<class T, int (*f)(int)> T Qux1<T, f>::qux (int i, T tt)
- {
- if (f != 0)
- return tt;
- else
- return 0;
- }
-
- // Some functions to provide as arguments to template
- int gf1 (int a) {
- return a * 2 + 13;
- }
- int gf2 (int a) {
- return a * 2 + 26;
- }
-
- char string[3];
-
-
- // Template for nested instantiations
-
- template<class T>
- class Garply {
- public:
- int x;
- T t;
- T garply (int, T);
- };
-
- template<class T> T Garply<T>::garply (int i, T tt)
- {
- if (i > x)
- return tt;
- else
- {
- x += i;
- return tt;
- }
- }
-
-
- int main()
- {
- int i;
- #ifdef usestubs
- set_debug_traps();
- breakpoint();
- #endif
- i = i + 1;
-
- // New tests added here
-
- Foo<int> fint;
- Foo<char> fchar;
- Foo<volatile char *> fvpchar;
-
- Bar<int, 33> bint;
- Bar<int, (4 > 3)> bint2;
-
- Baz<int, 's'> bazint;
- Baz<char, 'a'> bazint2;
-
- Qux<char, string> quxint2;
- Qux<int, string> quxint;
-
- Qux1<int, gf1> qux11;
-
- int x = fint.foo(33, 47);
- char c = fchar.foo(33, 'x');
- volatile char * cp = fvpchar.foo(33, 0);
-
- int y = dummy<int> (400, 600);
-
- int z = bint.bar(55, 66);
- z += bint2.bar(55, 66);
-
- c = bazint2.baz(4, 'y');
- c = quxint2.qux(4, 'z');
-
- y = bazint.baz(4,3);
- y = quxint.qux(4, 22);
- y += qux11.qux(4, 22);
-
- y *= gf1(y) - gf2(y);
-
- Spec<int, char> sic;
- Spec<int, int *> siip;
-
- sic.spec ('c');
- siip.spec (&x);
-
- Garply<int> f;
- Garply<char> fc;
- f.x = 13;
-
- Garply<Garply<char> > nf;
- nf.x = 31;
-
- x = f.garply (3, 4);
-
- fc = nf.garply (3, fc);
-
- y = x + fc.x;
-
-
- return 0;
-
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/templ-hp.exp gdb/testsuite/gdb.hp/templ-hp.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/templ-hp.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/templ-hp.exp Wed Dec 31 16:00:00 1969
***************
*** 1,383 ****
- # Copyright (C) 1992, 1996, 1997 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
- # (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.
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
-
-
- # More tests for different kinds of template parameters,
- # templates with partial specializations, nested templates, etc.
- # These have been tested only with HP aCC. They probably won't
- # work with other compilers because of differences in mangling
- # schemes.
- # Added by Satish Pai <pai@apollo.hp.com> 1997-09-25
-
-
- set ws "\[\r\n\t \]+"
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- set testfile "templ-hp"
- set srcfile ${testfile}.cc
- set binfile ${objdir}/${subdir}/${testfile}
-
-
-
- # Create and source the file that provides information about the compiler
- # used to compile the test case.
-
- if [get_compiler_info ${binfile} "c++"] {
- return -1;
- }
-
- if { $gcc_compiled } then { continue }
-
-
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-
- }
-
- #
- # Test printing of the types of templates.
- #
-
- proc test_ptype_of_templates {} {
- global gdb_prompt
-
- send_gdb "ptype T5<int>\n"
- gdb_expect {
- -re "type = class T5<int> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*static int X;\r\n\[ \t\]*int x;\r\n\[ \t\]*int val;\r\n\r\n\[ \t\]*T5\\(int\\);\r\n\[ \t\]*T5\\(class T5<int> const &\\);\r\n\[ \t\]*void ~T5\\(int\\);\r\n\[ \t\]*static void \\* new\\(unsigned int\\);\r\n\[ \t\]*static void delete\\(void \\*\\);\r\n\[ \t\]*int value\\(void\\);\r\n\[ \t\]*\\}\r\n$gdb_prompt $" { pass "ptype T5<int>" }
- -re ".*$gdb_prompt $" { fail "ptype T5<int>" }
- timeout { fail "ptype T5<int> (timeout)" }
- }
-
- send_gdb "ptype t5i\n"
- gdb_expect {
- -re "type = class T5<int> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*static int X;\r\n\[ \t\]*int x;\r\n\[ \t\]*int val;\r\n\r\n\[ \t\]*T5\\(int\\);\r\n\[ \t\]*T5\\(class T5<int> const &\\);\r\n\[ \t\]*void ~T5\\(int\\);\r\n\[ \t\]*static void \\* new\\(unsigned int\\);\r\n\[ \t\]*static void delete\\(void \\*\\);\r\n\[ \t\]*int value\\(void\\);\r\n\[ \t\]*\\}\r\n$gdb_prompt $" { pass "ptype t5i<int> 1" }
- -re "type = class T5<int> \{.*public:.*static int X;.*int x;.*int val;.*.*T5 \\(int\\);.*.*void ~T5 \\(int\\).*.*.*int value \\(void\\);.*\}.*$gdb_prompt $" {
- pass "ptype t5i"
- }
- -re ".*$gdb_prompt $" { fail "ptype t5i" }
- timeout { fail "ptype t5i (timeout)" }
- }
- }
-
- #
- # Test breakpoint setting on template methods.
- #
-
- proc test_template_breakpoints {} {
- global gdb_prompt
- global testfile
- global srcdir
-
- send_gdb "break T5<int>::T5\n"
- gdb_expect {
- -re "0. cancel.*\r\n.1. all.*\r\n.2. *.*\r\n.3. *.*\r\n> $" {
- gdb_test "0" \
- "cancelled" \
- "constructor breakpoint"
- }
- -re ".0. cancel\r\n.1. all\r\n.2. T5<int>::T5\\(T5<int> const &\\) at .*/templates.cc:.*\r\n.3. T5<int>::T5\\(int\\) at .*/templates-hp.cc:.*\r\n> $" {
- gdb_test "0" \
- "cancelled" \
- "constructor breakpoint"
- }
- -re ".*$gdb_prompt $" { fail "constructor breakpoint" }
- default { fail "constructor breakpoint (timeout)" }
- }
-
- gdb_test "break T5<int>::~T5" \
- "Breakpoint.*at.* file .*${testfile}.cc, line.*" \
- "destructor breakpoint"
-
- gdb_test "break T5<int>::value" \
- "Breakpoint.*at.* file .*${testfile}.cc, line.*" \
- "value method breakpoint"
-
- delete_breakpoints
- }
-
- #
- # Test calling of template methods.
- #
-
- proc test_template_calls {} {
- global gdb_prompt
-
- send_gdb "print t5i.value()\n"
- gdb_expect {
- -re ".* = 2\r\n$gdb_prompt $" { pass "print t5i.value()" }
- -re "Cannot invoke functions on this machine.*$gdb_prompt $" {
- fail "print t5i.value()"
- }
- -re ".*$gdb_prompt $" { fail "print t5i.value()" }
- timeout { fail "print t5i.value() (timeout)" }
- }
- }
-
-
- proc do_tests {} {
- global prms_id
- global bug_id
- global subdir
- global objdir
- global srcdir
- global binfile
- global prompt
- global supports_template_debugging
-
- set prms_id 0
- set bug_id 0
-
- # Start with a fresh gdb.
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load $binfile
-
- source ${binfile}.ci
-
- if { !$supports_template_debugging } {
- warning "compiler lacks debugging info for templates; tests suppressed." 0
- return
- }
-
- test_ptype_of_templates
- test_template_breakpoints
-
- if [ runto_main ] {
- test_template_calls
- }
- }
-
- do_tests
-
-
- 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
- }
-
- send_gdb "print fint\n"
- gdb_expect {
- -re "\\$\[0-9\]* = \\{x = 0, t = 0\\}\r\n$gdb_prompt $" { pass "print fint" }
- -re "$gdb_prompt $" { fail "print fint" }
- timeout { fail "(timeout) print fint" }
- }
-
- send_gdb "print fvpchar\n"
- gdb_expect {
- -re "\\$\[0-9\]* = \\{x = 0, t = 0x0\\}\r\n$gdb_prompt $" { pass "print fvpchar" }
- -re "$gdb_prompt $" { fail "print fvpchar" }
- timeout { fail "(timeout) print fvpchar" }
- }
-
- # Template Foo<T>
-
- send_gdb "ptype Foo\n"
- gdb_expect {
- -re "type = template <(class |)T> (class |)Foo \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\ntemplate instantiations:\r\n\[ \t\]*(class |)Foo<volatile char \\*>\r\n\[ \t\]*(class |)Foo<char>\r\n\[ \t\]*(class |)Foo<int>\r\n$gdb_prompt $" { pass "ptype Foo" }
- -re "$gdb_prompt $" { fail "ptype Foo" }
- timeout { fail "(timeout) ptype Foo" }
- }
-
- # ptype Foo<int>
-
- send_gdb "ptype fint\n"
- gdb_expect {
- -re "type = (class |)Foo<int> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int foo\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype fint" }
- -re "$gdb_prompt $" { fail "ptype fint" }
- timeout { fail "(timeout) ptype fint" }
- }
-
- # ptype Foo<char>
-
- send_gdb "ptype fchar\n"
- gdb_expect {
- -re "type = (class |)Foo<char> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*char t;\r\n\r\n\[ \t\]*char foo\\(int, char\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype fchar" }
- -re "$gdb_prompt $" { fail "ptype fchar" }
- timeout { fail "(timeout) ptype fchar" }
- }
-
- # ptype Foo<volatile char *>
-
- send_gdb "ptype fvpchar\n"
- gdb_expect {
- -re "type = (class |)Foo<volatile char \\*> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*volatile char \\*t;\r\n\r\n\[ \t\]*volatile char \\* foo\\(int, volatile char \\*\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype fvpchar" }
- -re "$gdb_prompt $" { fail "ptype fvpchar" }
- timeout { fail "(timeout) ptype fvpchar" }
- }
-
- # print a function from Foo<volatile char *>
-
- send_gdb "print Foo<volatile char *>::foo\n"
- gdb_expect {
- -re "\\$\[0-9\]* = \\{volatile char \\*\\((class |)Foo<volatile char \\*> \\*, int, volatile char \\*\\)\\} $hex <Foo<volatile char \\*>::foo\\(int, volatile char \\*\\)>\r\n$gdb_prompt $" { pass "print Foo<volatile char *>::foo" }
- -re "$gdb_prompt $" { fail "print Foo<volatile char *>::foo" }
- timeout { fail "(timeout) print Foo<volatile char *>::foo" }
- }
-
- # Template Bar<T, int>
-
- send_gdb "ptype Bar\n"
- gdb_expect {
- -re "type = template <(class |)T, (class |)sz> (class |)Bar \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\ntemplate instantiations:\r\n\[ \t\]*(class |)Bar<int,1>\r\n\[ \t\]*(class |)Bar<int,33>\r\n$gdb_prompt $" { pass "ptype Bar" }
- -re "$gdb_prompt $" { fail "ptype Bar" }
- timeout { fail "(timeout) ptype Bar" }
- }
-
-
- # ptype Bar<int,33>
-
- send_gdb "ptype bint\n"
- gdb_expect {
- -re "type = (class |)Bar<int,33> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int bar\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bint" }
- -re "$gdb_prompt $" { fail "ptype bint" }
- timeout { fail "(timeout) ptype bint" }
- }
-
- # ptype Bar<int, (4>3)>
-
- send_gdb "ptype bint2\n"
- gdb_expect {
- -re "type = (class |)Bar<int,1> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int bar\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bint2" }
- -re "$gdb_prompt $" { fail "ptype bint2" }
- timeout { fail "(timeout) ptype bint2" }
- }
-
- # Template Baz<T, char>
-
- send_gdb "ptype Baz\n"
- gdb_expect {
- -re "type = template <(class |)T, (class |)sz> (class |)Baz \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\ntemplate instantiations:\r\n\[ \t\]*(class |)Baz<char,97>\r\n\[ \t\]*(class |)Baz<int,115>\r\n$gdb_prompt $" { pass "ptype Baz" }
- -re "$gdb_prompt $" { fail "ptype Baz" }
- timeout { fail "(timeout) ptype Baz" }
- }
-
-
- # ptype Baz<int, 's'>
-
- send_gdb "ptype bazint\n"
- gdb_expect {
- -re "type = (class |)Baz<int,115> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int baz\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bazint" }
- -re "$gdb_prompt $" { fail "ptype bazint" }
- timeout { fail "(timeout) ptype bazint" }
- }
-
- # ptype Baz<char, 'a'>
-
- send_gdb "ptype bazint2\n"
- gdb_expect {
- -re "type = (class |)Baz<char,97> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*char t;\r\n\r\n\[ \t\]*char baz\\(int, char\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bazint2" }
- -re "$gdb_prompt $" { fail "ptype bazint2" }
- timeout { fail "(timeout) ptype bazint2" }
- }
-
- # Template Qux<T, int (*f)(int) >
-
- send_gdb "ptype Qux\n"
- gdb_expect {
- -re "type = template <(class |)T, (class |)sz> (class |)Qux \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\ntemplate instantiations:\r\n\[ \t\]*(class |)Qux<int,&string>\r\n\[ \t\]*(class |)Qux<char,&string>\r\n$gdb_prompt $" { pass "ptype Qux" }
- -re "$gdb_prompt $" { fail "ptype Qux" }
- timeout { fail "(timeout) ptype Qux" }
- }
-
- # pt Qux<int,&string>
-
- send_gdb "ptype quxint\n"
- gdb_expect {
- -re "type = class Qux<int,&string> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int qux\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype quxint" }
- -re "$gdb_prompt $" { fail "ptype quxint" }
- timeout { fail "(timeout) ptype quxint" }
- }
-
- # pt Qux<char,0>
-
- send_gdb "ptype quxint2\n"
- gdb_expect {
- -re "type = class Qux<char,&string> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*char t;\r\n\r\n\[ \t\]*char qux\\(int, char\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype quxint2" }
- -re "$gdb_prompt $" { fail "ptype quxint2" }
- timeout { fail "(timeout) ptype quxint2" }
- }
-
- # Template Spec<T1, T2>
-
- send_gdb "ptype Spec\n"
- gdb_expect {
- -re "type = template <(class |)T1, (class |)T2> (class |)Spec \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\\}\r\ntemplate instantiations:\r\n\[ \t\]*(class |)Spec<int,int \\*>\r\n\[ \t\]*(class |)Spec<int,char>\r\n$gdb_prompt $" { pass "ptype Spec" }
- -re "$gdb_prompt $" { fail "ptype Spec" }
- timeout { fail "(timeout) ptype Spec" }
- }
-
- # pt Spec<char,0>
-
- send_gdb "ptype siip\n"
- gdb_expect {
- -re "type = class Spec<int,int \\*> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\r\n\[ \t\]*int spec\\(int \\*\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype siip" }
- -re "$gdb_prompt $" { fail "ptype siip" }
- timeout { fail "(timeout) ptype siip" }
- }
-
- # pt Garply<int>
-
- send_gdb "ptype Garply<int>\n"
- gdb_expect {
- -re "type = class Garply<int> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int garply\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype Garply<int>" }
- -re "$gdb_prompt $" { fail "ptype Garply<int>" }
- timeout { fail "(timeout) ptype Garply<int>" }
- }
-
- # ptype of nested template name
-
- send_gdb "ptype Garply<Garply<char> >\n"
- gdb_expect {
- -re "type = (class |)Garply<Garply<char> > \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*(class |)Garply<char> t;\r\n\r\n\[ \t\]*(class |)Garply<char> garply\\(int, (class |)Garply<char>\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype Garply<Garply<char> >" }
- -re "$gdb_prompt $" { fail "ptype Garply<Garply<char> >" }
- timeout { fail "(timeout) ptype Garply<Garply<char> >" }
- }
-
- # print out a function from a nested template name
-
- send_gdb "print Garply<Garply<char> >::garply\n"
- gdb_expect {
- -re "\\$\[0-9\]* = \\{(class |)Garply<char> \\((class |)Garply<Garply<char> > \\*, int, (class |)Garply<char>\\)\\} $hex <Garply<Garply<char>>::garply\\(int, (class |)Garply<char>\\)>\r\n$gdb_prompt $" { pass "print Garply<Garply<char> >::garply" }
- -re ".*$gdb_prompt $" { fail "print Garply<Garply<char> >::garply" }
- timeout { fail "print Garply<Garply<char> >::garply (timeout)" }
- }
-
- # UNFORTUNATELY, "break Garply<Garply<char> >::garply" doesn't yet work.
-
- #send_gdb "break Garply<Garply<char> >::garply
- #gdb_expect {
- # -re "Breakpoint \[0-9\]* at $hex: file .*templates.cc, line.*\r\n$gdb_prompt $" { pass "break Garply<Garply<char> >::garply" }
- # -re ".*$gdb_prompt $" { fail "break Garply<Garply<char> >::garply" }
- # timeout { fail "break Garply<Garply<char> >::garply (timeout)" }
- #}
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/thr-lib.c gdb/testsuite/gdb.hp/thr-lib.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/thr-lib.c Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/thr-lib.c Wed Dec 31 16:00:00 1969
***************
*** 1,79 ****
- /* Thread local in a library.
- */
- #include "thr-lib.h"
- /*
- * #define NTHREADS 4
- * #define NUM_ELEMS 12
- */
-
- extern void* adder( void * );
-
- pthread_mutex_t mutex; /* mutex for protecting global data total */
-
- int numbers[NUM_ELEMS] = {5, 4, 3, 2, 1, 6, 7, 8, 9, 10, 12, 11};
- int total = 0;
-
- int debugger_saw[NTHREADS][ELEMS_PER_THREAD]; /* [4][3] */
- int the_code_saw[NTHREADS][ELEMS_PER_THREAD];
-
- int get_number(i)
- int i;
- {
- /* sleep to force context switch to another thread in non-MP system
- * so that TLS symbols are used by multiple threads concurrently
- * in some way.
- */
- sleep(1);
- return numbers[i];
- }
-
- main()
- {
- pthread_t thread[NTHREADS];
- void *status;
- int i, j, ret;
-
- printf("== Thread: Test started\n");
-
- for( i = 0; i < NTHREADS; i++ ) {
- for( j = 0; j < ELEMS_PER_THREAD; j++ ) {
- debugger_saw[i][j] = 0;
- the_code_saw[i][j] = 0;
- }
- }
-
- ret = pthread_mutex_init(&mutex, NULL);
- if (ret != 0) {
- printf("== Thread: pthread_mutex_init() error: %d\n", ret);
- exit(1);
- }
-
- for (i=0; i < NTHREADS; i++) {
- ret = pthread_create( &thread[i],
- NULL,
- adder,
- (void *) i);
- if (ret != 0) {
- printf("== Thread: pthread_create() error: %d\n", ret);
- exit(1);
- }
- printf("== Thread: thread %d created\n", i);
- }
-
- for (i=0; i < NTHREADS; i++) {
- pthread_join( thread[i], &status);
- }
-
- printf("== Thread: total = %d\n", total); /* Expect "78" */
-
- for( i = 0; i < NTHREADS; i++ ) {
- for( j = 0; j < ELEMS_PER_THREAD; j++ ) {
- printf( "== Thread: the debugger saw %d, the program saw %d\n",
- debugger_saw[i][j],
- the_code_saw[i][j] );
- }
- }
-
- printf("== Thread: Test ended\n");
- exit(0);
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/thr-lib.exp gdb/testsuite/gdb.hp/thr-lib.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/thr-lib.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/thr-lib.exp Wed Dec 31 16:00:00 1969
***************
*** 1,236 ****
- # thr-lib.exp -- Expect script to test thread-local storage in lib
- # Copyright (C) 1992 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # use this to debug:
- #
- #log_user 1
-
- # Thread stuff is _slow_; prepare for long waits.
- #
- # Further, this test has some "null" lines designed
- # to consume output from gdb that was too late to be
- # matched (sequence is "gdb_test" sends; timeout and
- # on to next send; result finally comes in; mismatch).
- #
- # The null command is 'gdb_test "p \$pc" ".*" ""'
- # NOTE: this command undoes any up/down stuff!
- #
- proc pre_timeout {} {
- global timeout
-
- set timeout [expr "$timeout + 100"]
- }
-
- proc post_timeout {} {
- global timeout
- global oldtimeout
-
- set timeout $oldtimeout
- gdb_test "p \$pc" ".*" ""
- }
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- if { ![istarget "hppa*-*-hpux10.30"] && ![istarget "hppa*-*-hpux11.*"] } {
- verbose "HPUX thread test ignored for non-hppa or pre-HP/UX-10.30 targets."
- return 0
- }
-
- set testfile thr-lib
- set srcfile ${srcdir}/${subdir}/${testfile}.c
- set libsrc ${srcdir}/${subdir}/${testfile}lib.c
- set mainobj ${objdir}/${testfile}.o
- set libobj ${objdir}/${testfile}lib.o
- set libsl ${objdir}/${subdir}/${testfile}lib.sl
- set binfile ${objdir}/${subdir}/${testfile}
-
- # To build the executable we need to do this:
- #
- # cc -c -Aa -g -D_HPUX_SOURCE -D_REENTRANT +DA1.0 ./gdb.hp/thr-lib.c
- # cc -c -Aa -g -D_HPUX_SOURCE -D_REENTRANT +DA1.0 +z ./gdb.hp/thr-liblib.c
- # ld -o thread_local_in_lib.lib.sl -b ./gdb.hp/thr-liblib.o
- # ld -a archive /opt/langtools/lib/crt0.o /opt/langtools/lib/end.o \
- # > thr-lib.o ./gdb.hp/thr-liblib.sl \
- # > -o thr-lib -lpthread -lc
- #
- remote_exec build "$CC ${srcfile} -c -Aa -g -D_HPUX_SOURCE -D_REENTRANT +DA1.0"
- remote_exec build "$CC ${libsrc} -c -Aa -g -D_HPUX_SOURCE -D_REENTRANT +DA1.0 +z"
- remote_exec build "ld -o ${libsl} -b ${libobj}"
- remote_exec build "ld -a archive /opt/langtools/lib/crt0.o /opt/langtools/lib/end.o ${mainobj} ${libsl} -lpthread -lc -o ${binfile}"
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
-
- set oldtimeout $timeout
- #set timeout [expr "$timeout + 200"]
- set oldverbose $verbose
-
- gdb_load ${binfile}
-
- # Here we go: test various things.
- #
- gdb_test "b adder" ".*Cannot break on adder without a running program.*" "shared loc, needs to run"
- gdb_test "b main" ".*" ""
- gdb_test "run" ".*Breakpoint 1, main.*" ""
-
- # Set a bp to inspect the results
- #
- gdb_test "b 67" ".*Breakpoint 2.*" ""
-
- # get to a point where we can set the collection breakpoint.
- #
- gdb_test "tb adder" ".*Breakpoint 3.*line 47.*" "set bp in shared lib"
- gdb_test "c" ".*Switched to.*adder.*" "run to shared lib rtn"
-
- # Check locations of things
- #
- gdb_test "i ad sum" ".*Symbol \"sum\" is a thread-local variable.*offset.*from the thread base register mpsfu_high.*" "find sum"
- gdb_test "i add x" ".*Symbol \"x\" is a thread-local variable.*" "find x"
-
- # Set a breakpoint later on in "adder" and
- # collect the thread local's value.
- #
- gdb_test "b 61" ".*Breakpoint 4.*61.*" "Set collection bp"
-
- # extra check for grins, expect to hit "adder" in thread 2 first
- # but could be wrong...
- #
- gdb_test "info thread" ".*\\\* 2.*thread.*thread.*" "two threads"
-
- # Can't use "gdb_test", as it uses "$gdb_prompt $" in
- # testing the result. Our new prompt is ">", with
- # no trailing space, so we can't do this just by
- # changing "prompt".
- #
- # Anyway, I couldn't get expect to see the ">" prompt,
- # during the command addition, so I just punted.
- # _You_ are welcome to try, if you want!
- #
- send_gdb "commands 4\n"
- gdb_expect {
- -re "(.*Type commands.*\"end\"\.\r\n\>)" {
- pass "start commands"
- }
- -re ".*$gdb_prompt $" {
- fail "start commands"
- }
- }
-
- # Assume we're in commands-input mode. (Self-debug stuff turned off)
- #
- send_gdb "silent\n"
- #send_gdb "p id\n"
- #send_gdb "p j\n"
- #send_gdb "p x\[j\]\n"
- send_gdb "set debugger_saw\[id\]\[j\] = x\[j\]\n"
- send_gdb "continue\n"
- send_gdb "end\n"
-
- gdb_expect {
- -re ".*set.*cont.*$gdb_prompt $" {
- pass "add commands"
- }
- -re ".*$gdb_prompt $" {
- fail "add commands"
- }
- }
-
- # Check out of paranoia.
- #
- send_gdb "info break 4\n"
- gdb_expect {
- -re ".*breakpoint.*set debugger_saw.*continue.*$gdb_prompt $" {
- pass "Commands added"
- }
- -re ".*$gdb_prompt $" {
- fail "Commands not added."
- }
- }
-
- # We now expect to run through the whole application
- # Since this'll run for while, set a generous timeout.
- #
- set timeout [expr "$timeout + 30"]
- send_gdb "c\n"
- gdb_expect {
- -re ".*Program exited normally.*$gdb_prompt $" {
- fail "program runaway"
- }
- -re ".*Breakpoint 2.*67.*$gdb_prompt $" {
- pass "get to end"
- }
- -re ".*$gdb_prompt $" {
- fail "No progress?"
- }
- timeout { fail "timeout" }
- }
- set timeout $oldtimeout
-
- gdb_test "p debugger_saw" ".*5, 1, 9.*4, 6, 10.*3, 7, 12.*2, 8, 11.*" "check results"
-
- # Often only one misses; let's get detailed!
- #
- gdb_test "p debugger_saw\[0\]\[0\]" ".*= 5.*" "1"
- gdb_test "p debugger_saw\[0\]\[1\]" ".*= 1.*" "2"
- gdb_test "p debugger_saw\[0\]\[2\]" ".*= 9.*" "3"
- gdb_test "p debugger_saw\[1\]\[0\]" ".*= 4.*" "4"
- gdb_test "p debugger_saw\[1\]\[1\]" ".*= 6.*" "5"
- gdb_test "p debugger_saw\[1\]\[2\]" ".*= 10.*" "6"
- gdb_test "p debugger_saw\[2\]\[0\]" ".*= 3.*" "7"
- gdb_test "p debugger_saw\[2\]\[1\]" ".*= 7.*" "8"
- gdb_test "p debugger_saw\[2\]\[2\]" ".*= 12.*" "9"
- gdb_test "p debugger_saw\[3\]\[0\]" ".*= 2.*" "10"
- gdb_test "p debugger_saw\[3\]\[1\]" ".*= 8.*" "11"
- gdb_test "p debugger_saw\[3\]\[2\]" ".*= 11.*" "12"
-
- send_gdb "i th\n"
- gdb_expect {
- -re ".* 1.*system thread.* 2.*system thread.*$gdb_prompt $" {
- fail "Too many threads left"
- }
- -re ".*\\\* 1.*system thread.*main.*$gdb_prompt $" {
- pass "Expect only base thread"
- }
- -re ".*No stack.*$gdb_prompt $" {
- fail "runaway"
- }
- -re ".*$gdb_prompt $" {
- fail "Hunh?"
- }
- timeout { fail "timeout" }
- }
-
- gdb_test "c" ".*exited normally.*" "run to completion"
-
- # Done!
- #
- gdb_exit
-
- set timeout $oldtimeout
- set verbose $oldverbose
-
- # execute_anywhere "rm -f ${binfile}"
- #
- return 0
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/thr-lib.h gdb/testsuite/gdb.hp/thr-lib.h
*** ../gdb-19990719/gdb/testsuite/gdb.hp/thr-lib.h Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/thr-lib.h Wed Dec 31 16:00:00 1969
***************
*** 1,7 ****
- #include <stdio.h>
- #include <pthread.h>
-
- #define NTHREADS 4
- #define NUM_ELEMS 12
-
- #define ELEMS_PER_THREAD (NUM_ELEMS/NTHREADS)
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/thr-liblib.c gdb/testsuite/gdb.hp/thr-liblib.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/thr-liblib.c Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/thr-liblib.c Wed Dec 31 16:00:00 1969
***************
*** 1,92 ****
- #include <stdio.h>
-
- /* Library code for thread local in lib test.
- */
- #include "thr-lib.h"
-
- extern pthread_mutex_t mutex;
- extern int get_number();
- extern int total;
- extern int the_code_saw[NTHREADS][ELEMS_PER_THREAD];
-
- /* The debugger should see this without a declaration.
- *
- * extern int debugger_saw[NTHREADS][ELEMS_PER_THREAD];
- */
-
- /* The actual thread locals.
- */
- __thread int sum;
- __thread int x[ ELEMS_PER_THREAD ]; /* [3] */
-
- void sumup()
- {
- int j;
-
- sum = 0;
- for (j = 0; j < ELEMS_PER_THREAD; j++) {
- sum += x[j];
- }
-
- if( sum == x[0] )
- /* It won't be "==", but this lets us set a breakpoint
- * and look at the thread-local storage.
- */
- sum++;
-
- x[0] = x[2]; /* Another no-op for debugger use */
- }
-
- void *adder( vid )
- void * vid;
- {
- int id;
- int i, j;
- int ret;
-
- id = (int) vid;
-
- /* printf( "== Thread: Welcome to adder %d\n", id ); */
-
- for (j = 0; j < ELEMS_PER_THREAD; j++) {
- x[j] = 0;
- }
-
- for (i = id, j = 0; i < NUM_ELEMS; i += NTHREADS, j++ ) {
-
- /* printf( "== Thread: id %d, i %d, j %d\n", id, i, j );
- fflush( stdout ); */
-
- x[j] = get_number(i); /* {0,1,2,3} +0, +4, +8 */
-
- /* Record for posterity; the debugger will gather
- * the same data here, using "x[j]".
- */
- the_code_saw[ id ][ j ] = x[j];
-
- /* printf( "== Thread %d, sample %d, val %d, i %d\n", id, j, x[j],i );
- fflush( stdout ); */
- }
-
- sumup();
- /* printf("== Thread: adder %d contributes total %d\n", id, sum); */
-
- /* protect global data */
- ret = pthread_mutex_lock(&mutex);
- if (ret != 0) {
- printf("== Thread: pthread_mutex_lock() error: %d\n", ret);
- exit(1);
- }
-
- total += sum;
-
- ret = pthread_mutex_unlock(&mutex);
- if (ret != 0) {
- printf("== Thread: pthread_mutex_unlock() error: %d\n", ret);
- exit(1);
- }
-
- if( NTHREADS != 4 || ELEMS_PER_THREAD != 3 || NUM_ELEMS != 12 ) {
- printf( "** ERROR in test code **\n" );
- }
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/thr-stg.exp gdb/testsuite/gdb.hp/thr-stg.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/thr-stg.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/thr-stg.exp Wed Dec 31 16:00:00 1969
***************
*** 1,257 ****
- # thread_local_stg.exp -- Expect script to test thread-local storage
- # Copyright (C) 1992 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # use this to debug:
- #
- #log_user 1
-
- # Thread stuff is _slow_; prepare for long waits.
- #
- # Further, this test has some "null" lines designed
- # to consume output from gdb that was too late to be
- # matched (sequence is "gdb_test" sends; timeout and
- # on to next send; result finally comes in; mismatch).
- #
- # The null command is 'gdb_test "p \$pc" ".*" ""'
- # NOTE: this command undoes any up/down stuff!
- #
- proc pre_timeout {} {
- global timeout
-
- set timeout [expr "$timeout + 100"]
- }
-
- proc post_timeout {} {
- global timeout
- global oldtimeout
-
- set timeout $oldtimeout
- gdb_test "p \$pc" ".*" ""
- }
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- if { ![istarget "hppa*-*-hpux10.30"] && ![istarget "hppa*-*-hpux11.*"] } {
- verbose "HPUX thread test ignored for non-hppa or pre-HP/UX-10.30 targets."
- return 0
- }
-
- set testfile start-stop
- set srcfile ${srcdir}/${subdir}/${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
-
- if [get_compiler_info ${binfile}] {
- return -1
- }
-
- # To build the executable we need to link against the thread library.
- #
- # cc -Ae -g -o start_stop -lpthread start_stop.c
- #
- #compile "${srcfile} -Ae -g -lpthread -o ${binfile}"
-
- if {$gcc_compiled == 0} {
- set additional_flags "additional_flags=-Ae"
- } else {
- set additional_flags ""
- }
-
- if { [gdb_compile "${srcdir}/${subdir}/${testfile}.c" "${binfile}.o" object [list debug $additional_flags]] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
- remote_exec build "ld /usr/ccs/lib/crt0.o ${binfile}.o -lcl -lpthread -lc /opt/langtools/lib/end.o -o ${binfile}"
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
-
- gdb_load ${binfile}
- if ![runto_main] then {
- fail "Can't run to main"
- return 0
- }
-
- set oldtimeout $timeout
- #set timeout [expr "$timeout + 200"]
- set oldverbose $verbose
- #set verbose 40
-
- gdb_test "b do_pass" ".*" "set do_pass bp"
- gdb_test "c" ".*do_pass.*" "run to do_pass"
- gdb_test "cle" ".*" ""
-
- # Set a breakpoint at the "spin" routine and
- # collect the thread local's value.
- #
- gdb_test "b 67" ".*Breakpoint 3.*67.*" "Set bp"
-
- # Can't use "gdb_test", as it uses "$gdb_prompt $" in
- # testing the result. Our new prompt is ">", with
- # no trailing space, so we can't do this just by
- # changing "prompt".
- #
- # Anyway, I couldn't get expect to see the ">" prompt,
- # during the command addition, so I just punted.
- # _You_ are welcome to try, if you want!
- #
- send_gdb "commands 3\n"
- gdb_expect {
- -re "(.*Type commands.*\"end\"\.\r\n\>)" {
- pass "start commands"
- }
- -re ".*$gdb_prompt $" {
- fail "start commands"
- }
- }
-
- # Assume we're in commands-input mode.
- #
- send_gdb "silent\n"
- send_gdb "set val_debugger_saw\[me\] = a_thread_local\n"
- send_gdb "continue\n"
- send_gdb "end\n"
-
- gdb_expect {
- -re ".*set.*cont.*$gdb_prompt $" {
- pass "add commands"
- }
- -re ".*$gdb_prompt $" {
- fail "add commands"
- }
- }
-
- # Check out of paranoia.
- #
- send_gdb "info break 3\n"
- gdb_expect {
- -re ".*breakpoint.*set val_debugger.*continue.*$gdb_prompt $" {
- pass "Commands added"
- }
- -re ".*$gdb_prompt $" {
- fail "Commands not added."
- }
- }
-
- # Set a bp to inspect the results
- #
- gdb_test "b 134" ".*Breakpoint 4.*" ""
-
- # We now expect to run through a whole pass, seeing
- # specific results as noted below (actual gotten by
- # running application with debugging print statements
- # turned on.
- #
- # Since this'll run for while, set a generous timeout.
- #
- set timeout [expr "$timeout + 30"]
- send_gdb "c\n"
- gdb_expect {
- -re ".*Program exited normally.*$gdb_prompt $" {
- fail "program runaway"
- }
- -re ".*Pass 0 done.*Pass 1 done.*$gdb_prompt $" {
- fail "program runaway 2"
- }
- -re ".*Pass 0 done.*Breakpoint 4.*134.*$gdb_prompt $" {
- pass "get to end of first pass"
- }
- -re ".*$gdb_prompt $" {
- fail "No progress?"
- }
- timeout { fail "timeout" }
- }
-
- gdb_test "p val_debugger_saw" ".*0, 1, 3.*" "first pass"
-
- send_gdb "i th\n"
- gdb_expect {
- -re ".* 1.*system thread.* 2.*system thread.*$gdb_prompt $" {
- fail "Too many threads left"
- }
- -re ".*\\\* 1 system thread.*$gdb_prompt $" {
- pass "Expect only base thread"
- }
- -re ".*No stack.*$gdb_prompt $" {
- fail "runaway"
- }
- -re ".*$gdb_prompt $" {
- fail "Hunh?"
- }
- timeout { fail "timeout" }
- }
-
- gdb_test "i b" ".*4.*breakpoint.*134.*hit.*1 time.*" "Expect 134 bp to exist"
-
- gdb_test "c" ".*Breakpoint 4.*134.*" "get to end of second pass"
- gdb_test "p val_debugger_saw" ".*6, 10, 15.*" "second pass"
-
- gdb_test "c" ".*Breakpoint 4.*134.*" "get to end of third pass"
- gdb_test "p val_debugger_saw" ".*21, 28, 36.*" "third pass"
-
- gdb_test "info bre 3" ".*already hit 9 times.*" "count of silent bp hits"
-
- # Start over and do some "info address" stuff
- #
- send_gdb "d\n"
- gdb_expect {
- -re ".*Delete all breakpoints.*$" {
- send_gdb "y\n"
- gdb_expect {
- -re ".*$gdb_prompt $" {
- pass "del bps"
- }
- }
- }
- -re ".*$gdb_prompt $" { fail "no question" }
- }
-
- gdb_test "b spin" ".*Breakpoint 5.*" ""
-
- send_gdb "r\n"
- gdb_expect {
- -re ".*Start it from the beginning.*$" {
- send_gdb "y\n"
- gdb_expect {
- -re ".*$gdb_prompt $" { pass "restart" }
- }
- }
- -re ".*Starting program.*$gdb_prompt $" {
- pass "restart after previous fails"
- }
- -re ".*$gdb_prompt $" { fail "Can't restart" }
- }
- gdb_test "i ad a_global" ".*a_global.*static storage at address.*" "i ad a_global"
- gdb_test "i add me" ".*me.*local variable at frame offset.*" "i ad me"
- gdb_test "i ad a_thread_local" ".*a_thread_local.*a thread-local variable at offset.*" "i ad a_thread_local"
-
- # Done!
- #
- gdb_exit
-
- set timeout $oldtimeout
- set verbose $oldverbose
-
- # execute_anywhere "rm -f ${binfile}"
- #
- return 0
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/tools/odump gdb/testsuite/gdb.hp/tools/odump
*** ../gdb-19990719/gdb/testsuite/gdb.hp/tools/odump Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.hp/tools/odump Thu Jul 22 17:50:17 1999
***************
*** 0 ****
--- 1,7 ----
+ #!/bin/ksh
+
+ # First source /app/appserver
+ . /app/appserver
+
+ # Exec the executable.
+ exec $APPROOT/usr/contrib/bin/$(basename $0) "$@"
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/vforked-program.c gdb/testsuite/gdb.hp/vforked-program.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/vforked-program.c Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/vforked-program.c Wed Dec 31 16:00:00 1969
***************
*** 1,6 ****
- #include <stdio.h>
-
- main()
- {
- printf("Hello from vforked_program...\n");
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/virtfun-hp.cc gdb/testsuite/gdb.hp/virtfun-hp.cc
*** ../gdb-19990719/gdb/testsuite/gdb.hp/virtfun-hp.cc Sun Jan 10 21:40:47 1999
--- gdb/testsuite/gdb.hp/virtfun-hp.cc Wed Dec 31 16:00:00 1969
***************
*** 1,192 ****
- // Pls try the following program on virtual functions and try to do print on
- // most of the code in main(). Almost none of them works !
-
- //
- // The inheritance structure is:
- //
- // V : VA VB
- // A : (V)
- // B : A
- // D : AD (V)
- // C : (V)
- // E : B (V) D C
- //
-
- class VA
- {
- public:
- int va;
- };
-
- class VB
- {
- public:
- int vb;
- int fvb();
- virtual vvb();
- };
-
- class V : public VA, public VB
- {
- public:
- int f();
- virtual vv();
- int w;
- };
-
- class A : virtual public V
- {
- public:
- virtual int f();
- private:
- int a;
- };
-
- class B : public A
- {
- public:
- int f();
- private:
- int b;
- };
-
- class C : public virtual V
- {
- public:
- int c;
- };
-
- class AD
- {
- public:
- virtual int vg() = 0;
- };
-
- class D : public AD, virtual public V
- {
- public:
- static void s();
- virtual int vg();
- virtual int vd();
- int fd();
- int d;
- };
-
- class E : public B, virtual public V, public D, public C
- {
- public:
- int f();
- int vg();
- int vv();
- int e;
- };
-
- D dd;
- D* ppd = ⅆ
- AD* pAd = ⅆ
-
- A a;
- B b;
- C c;
- D d;
- E e;
- V v;
- VB vb;
-
-
- A* pAa = &a;
- A* pAe = &e;
-
- B* pBe = &e;
-
- D* pDd = &d;
- D* pDe = &e;
-
- V* pVa = &a;
- V* pVv = &v;
- V* pVe = &e;
- V* pVd = &d;
-
- AD* pADe = &e;
-
- E* pEe = &e;
-
- VB* pVB = &vb;
-
- void init()
- {
- a.vb = 1;
- b.vb = 2;
- c.vb = 3;
- d.vb = 4;
- e.vb = 5;
- v.vb = 6;
- vb.vb = 7;
-
- d.d = 1;
- e.d = 2;
- }
-
- extern "C" printf(const char *, ...);
-
- int all_count = 0;
- int failed_count = 0;
-
- #define TEST(EXPR, EXPECTED) \
- ret = EXPR; \
- if (ret != EXPECTED) {\
- printf("Failed %s is %d, should be %d!\n", #EXPR, ret, EXPECTED); \
- failed_count++; } \
- all_count++;
-
- int ret;
-
- void test_calls()
- {
- TEST(pAe->f(), 20);
- TEST(pAa->f(), 1);
-
- TEST(pDe->vg(), 202);
- TEST(pADe->vg(), 202);
- TEST(pDd->vg(), 101);
-
- TEST(pEe->vvb(), 411);
-
- TEST(pVB->vvb(), 407);
-
- TEST(pBe->vvb(), 411);
- TEST(pDe->vvb(), 411);
-
- TEST(pEe->vd(), 282);
- TEST(pEe->fvb(), 311);
-
- TEST(pEe->D::vg(), 102);
- printf("Did %d tests, of which %d failed.\n", all_count, failed_count);
- }
-
- int main()
- {
-
- init();
-
- e.w = 7;
- e.vb = 11;
-
- test_calls();
- return 0;
-
- }
-
- int A::f() {return 1;}
- int B::f() {return 2;}
- void D::s() {}
- int E::f() {return 20;}
- int D::vg() {return 100+d;}
- int E::vg() {return 200+d;}
- int V::f() {return 600+w;}
- int V::vv() {return 400+w;}
- int E::vv() {return 450+w;}
- int D::fd() {return 250+d;}
- int D::vd() {return 280+d;}
- int VB::fvb() {return 300+vb;}
- int VB::vvb() {return 400+vb;}
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/virtfun-hp.exp gdb/testsuite/gdb.hp/virtfun-hp.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/virtfun-hp.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/virtfun-hp.exp Wed Dec 31 16:00:00 1969
***************
*** 1,774 ****
- # Copyright (C) 1992, 1994, 1997 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
- # (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.
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # This file was written by Fred Fish. (fnf@cygnus.com)
-
- set ws "\[\r\n\t \]+"
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- set testfile "virtfun-hp"
- set srcfile ${testfile}.cc
- set binfile ${objdir}/${subdir}/${testfile}
-
- if [get_compiler_info ${binfile} "c++"] {
- return -1;
- }
-
- if { $gcc_compiled } then { continue }
-
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
-
- proc gdb_virtfunc_init {} {
- global srcdir subdir binfile
- global gdb_prompt
-
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load $binfile
-
- send_gdb "set language c++\n"
- gdb_expect -re "$gdb_prompt $"
- send_gdb "set width 0\n"
- gdb_expect -re "$gdb_prompt $"
- }
-
- proc gdb_virtfunc_restart {} {
- gdb_exit;
- gdb_start;
- gdb_virtfunc_init;
- runto 'test_calls(void)';
- }
-
- #
- # Test printing of the types of various classes.
- #
-
- proc test_ptype_of_classes {} {
- global gdb_prompt
- global ws
-
- # This used to be a fail if it printed "struct" not "class". But
- # since this struct doesn't use any special C++ features, it is
- # considered right for GDB to print it as "struct".
- send_gdb "ptype VA\n"
- gdb_expect {
- -re "type = (struct|class) VA \{(${ws}public:|)${ws}int va;${ws}VA & operator=\\(VA const &\\);${ws}VA\\(VA const &\\);${ws}VA\\(void\\);${ws}\}.*$gdb_prompt $" {
- pass "ptype VA"
- }
- -re "type = (struct|class) VA \{(${ws}public:|)${ws}int va;((${ws}VA & operator=\\(VA const &\\);)|(${ws}VA\\(VA const &\\);)|(${ws}VA\\(void\\);))*${ws}\}.*$gdb_prompt $" {
- pass "ptype VA (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype VA"
- }
- timeout {
- fail "ptype VA (timeout)"
- }
- }
-
- send_gdb "ptype VB\n"
- gdb_expect {
- -re "type = class VB \{${ws}public:${ws}int vb;${ws}VB & operator=\\(VB const &\\);${ws}VB\\(VB const &\\);${ws}VB\\(void\\);${ws}int fvb\\(void\\);${ws}virtual int vvb\\(void\\);${ws}\}.*$gdb_prompt $" {
- pass "ptype VB"
- }
- -re "type = class VB \{${ws}public:${ws}int vb;((${ws}VB & operator=\\(VB const &\\);)|(${ws}VB\\(VB const &\\);)|(${ws}VB\\(void\\);)|(${ws}int fvb\\(void\\);)|(${ws}virtual int vvb\\(void\\);))*${ws}\}.*$gdb_prompt $" {
- pass "ptype VB (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype VB"
- }
- timeout {
- fail "ptype VB (timeout)"
- }
- }
-
- send_gdb "ptype V\n"
- gdb_expect {
- -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}V & operator=\\(V const &\\);${ws}V\\(V const &\\);${ws}V\\(void\\);${ws}int f\\(void\\);${ws}virtual int vv\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype V"
- }
- -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;((${ws}V & operator=\\(V const &\\);)|(${ws}V\\(V const &\\);)|(${ws}V\\(void\\);)|(${ws}int f\\(void\\);)|(${ws}virtual int vv\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype V (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype V"
- }
- timeout {
- fail "ptype V (timeout)"
- }
- }
-
- send_gdb "ptype A\n"
- gdb_expect {
- -re "type = class A : public virtual V \{\[\r\n\t \]+private:\[\r\n\t \]+int a;\[\r\n\t \]+public:\[\r\n\t \]+virtual int f\\(void\\);\[\r\n\t \]+\}\r\n$gdb_prompt $" {
- pass "ptype A (aCC)"
- }
- -re "type = class A : public virtual V \{${ws}private:${ws}V \[*\]+_vb\[\\\$\.\]+V;${ws}int a;${ws}public:${ws}A & operator=\\(A const &\\);${ws}A\\(int, A const &\\);${ws}A\\(int\\);${ws}virtual int f\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype A"
- }
- -re "type = class A : public virtual V \{${ws}private:${ws}V \[*\]+_vb\[\\\$\.\]+V;${ws}int a;${ws}public:((${ws}A & operator=\\(A const &\\);)|(${ws}A\\(int, A const &\\);)|(${ws}A\\(int\\);)|(${ws}virtual int f\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype A (obsolescent gcc or gdb)"
- }
- -re "type = class A : public virtual V \{${ws}private:${ws}V \[*\]+_vb.FOO;${ws}int a;${ws}public:${ws}virtual int f.void.;${ws}\}\r\n$gdb_prompt $" {
- # This happens because the type is defined only after it is
- # too late.
- fail "ptype A (known failure with gcc cygnus-2.4.5-930417)"
- # Many of the rest of these tests have the same problem.
- return 0
- }
- -re ".*$gdb_prompt $" {
- fail "ptype A"
- }
- timeout {
- fail "ptype A (timeout)"
- }
- }
-
- send_gdb "ptype B\n"
- gdb_expect {
- -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:${ws}B & operator=\\(B const &\\);${ws}B\\(int, B const &\\);${ws}B\\(int\\);${ws}virtual int f\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype B"
- }
- -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:((${ws}B & operator=\\(B const &\\);)|(${ws}B\\(int, B const &\\);)|(${ws}B\\(int\\);)|(${ws}virtual int f\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype B (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype B"
- }
- timeout {
- fail "ptype B (timeout)"
- }
- }
-
- send_gdb "ptype C\n"
- gdb_expect {
- -re "type = class C : public virtual V \{\[\r\n\t \]+public:\[\r\n\t \]+int c;\[\r\n\t \]+\}\r\n$gdb_prompt $" {
- pass "ptype C (aCC)"
- }
- -re "type = class C : public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}public:${ws}int c;${ws}C & operator=\\(C const &\\);${ws}C\\(int, C const &\\);${ws}C\\(int\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype C"
- }
- -re "type = class C : public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}public:${ws}int c;((${ws}C & operator=\\(C const &\\);)|(${ws}C\\(int, C const &\\);)|(${ws}C\\(int\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype C (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype C"
- }
- timeout {
- fail "ptype C (timeout)"
- }
- }
-
- send_gdb "ptype AD\n"
- gdb_expect {
- -re "type = class AD \{${ws}public:${ws}AD & operator=\\(AD const &\\);${ws}AD\\(AD const &\\);${ws}AD\\(void\\);${ws}virtual int vg\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype AD"
- }
- -re "type = class AD \{${ws}public:((${ws}AD & operator=\\(AD const &\\);)|(${ws}AD\\(AD const &\\);)|(${ws}AD\\(void\\);)|(${ws}virtual int vg\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype AD (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype AD"
- }
- timeout {
- fail "ptype AD (timeout)"
- }
- }
-
- send_gdb "ptype D\n"
- gdb_expect {
- -re "type = class D : public AD, public virtual V \{\[\r\n\t \]+public:\[\r\n\t \]+int d;\[\r\n\t \]+static void s\\(void\\);\[\r\n\t \]+virtual int vg\\(void\\);\[\r\n\t \]+virtual int vd\\(void\\);\[\r\n\t \]+int fd\\(void\\);\[\r\n\t \]+\}\r\n$gdb_prompt $" {
- pass "ptype D (aCC)"
- }
- -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}public:${ws}int d;${ws}D & operator=\\(D const &\\);${ws}D\\(int, D const &\\);${ws}D\\(int\\);${ws}static void s\\(void\\);${ws}virtual int vg\\(void\\);${ws}virtual int vd\\(void\\);${ws}int fd\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype D"
- }
- -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}public:${ws}int d;((${ws}D & operator=\\(D const &\\);)|(${ws}D\\(int, D const &\\);)|(${ws}D\\(int\\);)|(${ws}static void s\\(void\\);)|(${ws}virtual int vg\\(void\\);)|(${ws}virtual int vd\\(void\\);)|(${ws}int fd\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype D (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype D"
- }
- timeout {
- fail "ptype D (timeout)"
- }
- }
-
- send_gdb "ptype E\n"
- gdb_expect {
- -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;${ws}E & operator=\\(E const &\\);${ws}E\\(int, E const &\\);${ws}E\\(int\\);${ws}virtual int f\\(void\\);${ws}virtual int vg\\(void\\);${ws}virtual int vv\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype E"
- }
- -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;((${ws}E & operator=\\(E const &\\);)|(${ws}E\\(int, E const &\\);)|(${ws}E\\(int\\);)|(${ws}virtual int f\\(void\\);)|(${ws}virtual int vg\\(void\\);)|(${ws}virtual int vv\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype E (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype E"
- }
- timeout {
- fail "ptype E (timeout)"
- }
- }
-
- send_gdb "ptype dd\n"
- gdb_expect {
- -re "type = class D : public AD, public virtual V \{\[\r\n\t \]+public:\[\r\n\t \]+int d;\[\r\n\t \]+static void s\\(void\\);\[\r\n\t \]+virtual int vg\\(void\\);\[\r\n\t \]+virtual int vd\\(void\\);\[\r\n\t \]+int fd\\(void\\);\[\r\n\t \]+\}\r\n$gdb_prompt $" {
- pass "ptype dd (aCC)"
- }
- -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}public:${ws}int d;${ws}D & operator=\\(D const &\\);${ws}D\\(int, D const &\\);${ws}D\\(int\\);${ws}static void s\\(void\\);${ws}virtual int vg\\(void\\);${ws}virtual int vd\\(void\\);${ws}int fd\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype dd"
- }
- -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}public:${ws}int d;((${ws}D & operator=\\(D const &\\);)|(${ws}D\\(int, D const &\\);)|(${ws}D\\(int\\);)|(${ws}static void s\\(void\\);)|(${ws}virtual int vg\\(void\\);)|(${ws}virtual int vd\\(void\\);)|(${ws}int fd\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype dd (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype dd"
- }
- timeout {
- fail "ptype dd (timeout)"
- }
- }
-
- send_gdb "ptype ppd\n"
- gdb_expect {
- -re "type = class D : public AD, public virtual V \{\[\r\n\t \]+public:\[\r\n\t \]+int d;\[\r\n\t \]+static void s\\(void\\);\[\r\n\t \]+virtual int vg\\(void\\);\[\r\n\t \]+virtual int vd\\(void\\);\[\r\n\t \]+int fd\\(void\\);\[\r\n\t \]+\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype ppd (aCC)"
- }
- -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}public:${ws}int d;${ws}D & operator=\\(D const &\\);${ws}D\\(int, D const &\\);${ws}D\\(int\\);${ws}static void s\\(void\\);${ws}virtual int vg\\(void\\);${ws}virtual int vd\\(void\\);${ws}int fd\\(void\\);${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype ppd"
- }
- -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}public:${ws}int d;((${ws}D & operator=\\(D const &\\);)|(${ws}D\\(int, D const &\\);)|(${ws}D\\(int\\);)|(${ws}static void s\\(void\\);)|(${ws}virtual int vg\\(void\\);)|(${ws}virtual int vd\\(void\\);)|(${ws}int fd\\(void\\);))*${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype ppd (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype ppd"
- }
- timeout {
- fail "ptype ppd (timeout)"
- }
- }
-
- send_gdb "ptype pAd\n"
- gdb_expect {
- -re "type = class AD \{${ws}public:${ws}AD & operator=\\(AD const &\\);${ws}AD\\(AD const &\\);${ws}AD\\(void\\);${ws}virtual int vg\\(void\\);${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pAd"
- }
- -re "type = class AD \{${ws}public:((${ws}AD & operator=\\(AD const &\\);)|(${ws}AD\\(AD const &\\);)|(${ws}AD\\(void\\);)|(${ws}virtual int vg\\(void\\);))*${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pAd (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype pAd"
- }
- timeout {
- fail "ptype pAd (timeout)"
- }
- }
-
- send_gdb "ptype a\n"
- gdb_expect {
- -re "type = class A : public virtual V \{\[\r\n\t \]+private:\[\r\n\t \]+int a;\[\r\n\t \]+public:\[\r\n\t \]+virtual int f\\(void\\);\[\r\n\t \]+\}\r\n$gdb_prompt $" {
- pass "ptype a (aCC)"
- }
- -re "type = class A : public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}int a;${ws}public:${ws}A & operator=\\(A const &\\);${ws}A\\(int, A const &\\);${ws}A\\(int\\);${ws}virtual int f\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype a"
- }
- -re "type = class A : public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}int a;${ws}public:((${ws}A & operator=\\(A const &\\);)|(${ws}A\\(int, A const &\\);)|(${ws}A\\(int\\);)|(${ws}virtual int f\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype a (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype a"
- }
- timeout {
- fail "ptype a (timeout)"
- }
- }
-
- send_gdb "ptype b\n"
- gdb_expect {
- -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:${ws}B & operator=\\(B const &\\);${ws}B\\(int, B const &\\);${ws}B\\(int\\);${ws}virtual int f\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype b"
- }
- -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:((${ws}B & operator=\\(B const &\\);)|(${ws}B\\(int, B const &\\);)|(${ws}B\\(int\\);)|(${ws}virtual int f\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype b (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype b"
- }
- timeout {
- fail "ptype b (timeout)"
- }
- }
-
- send_gdb "ptype c\n"
- gdb_expect {
- -re "type = class C : public virtual V \{\[\r\n\t \]+public:\[\r\n\t \]+int c;\[\r\n\t \]+\}\r\n$gdb_prompt $" {
- pass "ptype c (aCC)"
- }
- -re "type = class C : public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}public:${ws}int c;${ws}C & operator=\\(C const &\\);${ws}C\\(int, C const &\\);${ws}C\\(int\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype c"
- }
- -re "type = class C : public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}public:${ws}int c;((${ws}C & operator=\\(C const &\\);)|(${ws}C\\(int, C const &\\);)|(${ws}C\\(int\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype c (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype c"
- }
- timeout {
- fail "ptype c (timeout)"
- }
- }
-
- send_gdb "ptype d\n"
- gdb_expect {
- -re "type = class D : public AD, public virtual V \{\[\r\n\t \]+public:\[\r\n\t \]+int d;\[\r\n\t \]+static void s\\(void\\);\[\r\n\t \]+virtual int vg\\(void\\);\[\r\n\t \]+virtual int vd\\(void\\);\[\r\n\t \]+int fd\\(void\\);\[\r\n\t \]+\}\r\n$gdb_prompt $" {
- pass "ptype d (aCC)"
- }
- -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}public:${ws}int d;${ws}D & operator=\\(D const &\\);${ws}D\\(int, D const &\\);${ws}D\\(int\\);${ws}static void s\\(void\\);${ws}virtual int vg\\(void\\);${ws}virtual int vd\\(void\\);${ws}int fd\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype d"
- }
- -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}public:${ws}int d;((${ws}D & operator=\\(D const &\\);)|(${ws}D\\(int, D const &\\);)|(${ws}D\\(int\\);)|(${ws}static void s\\(void\\);)|(${ws}virtual int vg\\(void\\);)|(${ws}virtual int vd\\(void\\);)|(${ws}int fd\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype d (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype d"
- }
- timeout {
- fail "ptype d (timeout)"
- }
- }
-
- send_gdb "ptype e\n"
- gdb_expect {
- -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;${ws}E & operator=\\(E const &\\);${ws}E\\(int, E const &\\);${ws}E\\(int\\);${ws}virtual int f\\(void\\);${ws}virtual int vg\\(void\\);${ws}virtual int vv\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype e"
- }
- -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;((${ws}E & operator=\\(E const &\\);)|(${ws}E\\(int, E const &\\);)|(${ws}E\\(int\\);)|(${ws}virtual int f\\(void\\);)|(${ws}virtual int vg\\(void\\);)|(${ws}virtual int vv\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype e (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype e"
- }
- timeout {
- fail "ptype e (timeout)"
- }
- }
-
- send_gdb "ptype v\n"
- gdb_expect {
- -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}V & operator=\\(V const &\\);${ws}V\\(V const &\\);${ws}V\\(void\\);${ws}int f\\(void\\);${ws}virtual int vv\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype v"
- }
- -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;((${ws}V & operator=\\(V const &\\);)|(${ws}V\\(V const &\\);)|(${ws}V\\(void\\);)|(${ws}int f\\(void\\);)|(${ws}virtual int vv\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype v (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype v"
- }
- timeout {
- fail "ptype v (timeout)"
- }
- }
-
- send_gdb "ptype vb\n"
- gdb_expect {
- -re "type = class VB \{${ws}public:${ws}int vb;${ws}VB & operator=\\(VB const &\\);${ws}VB\\(VB const &\\);${ws}VB\\(void\\);${ws}int fvb\\(void\\);${ws}virtual int vvb\\(void\\);${ws}\}\r\n$gdb_prompt $" {
- pass "ptype vb"
- }
- -re "type = class VB \{${ws}public:${ws}int vb;((${ws}VB & operator=\\(VB const &\\);)|(${ws}VB\\(VB const &\\);)|(${ws}VB\\(void\\);)|(${ws}int fvb\\(void\\);)|(${ws}virtual int vvb\\(void\\);))*${ws}\}\r\n$gdb_prompt $" {
- pass "ptype vb (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype vb"
- }
- timeout {
- fail "ptype vb (timeout)"
- }
- }
-
- send_gdb "ptype pAa\n"
- gdb_expect {
- -re "type = class A : public virtual V \{\[\r\n\t \]+private:\[\r\n\t \]+int a;\[\r\n\t \]+public:\[\r\n\t \]+virtual int f\\(void\\);\[\r\n\t \]+\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pAa (aCC)"
- }
- -re "type = class A : public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}int a;${ws}public:${ws}A & operator=\\(A const &\\);${ws}A\\(int, A const &\\);${ws}A\\(int\\);${ws}virtual int f\\(void\\);${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pAa"
- }
- -re "type = class A : public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}int a;${ws}public:((${ws}A & operator=\\(A const &\\);)|(${ws}A\\(int, A const &\\);)|(${ws}A\\(int\\);)|(${ws}virtual int f\\(void\\);))*${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pAa (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype pAa"
- }
- timeout {
- fail "ptype pAa (timeout)"
- }
- }
-
- send_gdb "ptype pAe\n"
- gdb_expect {
- -re "type = class A : public virtual V \{\[\r\n\t \]+private:\[\r\n\t \]+int a;\[\r\n\t \]+public:\[\r\n\t \]+virtual int f\\(void\\);\[\r\n\t \]+\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pAe (aCC)"
- }
- -re "type = class A : public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}int a;${ws}public:${ws}A & operator=\\(A const &\\);${ws}A\\(int, A const &\\);${ws}A\\(int\\);${ws}virtual int f\\(void\\);${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pAe"
- }
- -re "type = class A : public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}int a;${ws}public:((${ws}A & operator=\\(A const &\\);)|(${ws}A\\(int, A const &\\);)|(${ws}A\\(int\\);)|(${ws}virtual int f\\(void\\);))*${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pAe (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype pAe"
- }
- timeout {
- fail "ptype pAe (timeout)"
- }
- }
-
- send_gdb "ptype pBe\n"
- gdb_expect {
- -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:${ws}B & operator=\\(B const &\\);${ws}B\\(int, B const &\\);${ws}B\\(int\\);${ws}virtual int f\\(void\\);${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pBe"
- }
- -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:((${ws}B & operator=\\(B const &\\);)|(${ws}B\\(int, B const &\\);)|(${ws}B\\(int\\);)|(${ws}virtual int f\\(void\\);))*${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pBe (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype pBe"
- }
- timeout {
- fail "ptype pBe (timeout)"
- }
- }
-
- send_gdb "ptype pDd\n"
- gdb_expect {
- -re "type = class D : public AD, public virtual V \{\[\r\n\t \]+public:\[\r\n\t \]+int d;\[\r\n\t \]+static void s\\(void\\);\[\r\n\t \]+virtual int vg\\(void\\);\[\r\n\t \]+virtual int vd\\(void\\);\[\r\n\t \]+int fd\\(void\\);\[\r\n\t \]+\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pDd (aCC)"
- }
- -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}public:${ws}int d;${ws}D & operator=\\(D const &\\);${ws}D\\(int, D const &\\);${ws}D\\(int\\);${ws}static void s\\(void\\);${ws}virtual int vg\\(void\\);${ws}virtual int vd\\(void\\);${ws}int fd\\(void\\);${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pDd"
- }
- -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}public:${ws}int d;((${ws}D & operator=\\(D const &\\);)|(${ws}D\\(int, D const &\\);)|(${ws}D\\(int\\);)|(${ws}static void s\\(void\\);)|(${ws}virtual int vg\\(void\\);)|(${ws}virtual int vd\\(void\\);)|(${ws}int fd\\(void\\);))*${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pDd (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype pDd"
- }
- timeout {
- fail "ptype pDd (timeout)"
- }
- }
-
- send_gdb "ptype pDe\n"
- gdb_expect {
- -re "type = class D : public AD, public virtual V \{\[\r\n\t \]+public:\[\r\n\t \]+int d;\[\r\n\t \]+static void s\\(void\\);\[\r\n\t \]+virtual int vg\\(void\\);\[\r\n\t \]+virtual int vd\\(void\\);\[\r\n\t \]+int fd\\(void\\);\[\r\n\t \]+\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pDe (aCC)"
- }
- -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}public:${ws}int d;${ws}D & operator=\\(D const &\\);${ws}D\\(int, D const &\\);${ws}D\\(int\\);${ws}static void s\\(void\\);${ws}virtual int vg\\(void\\);${ws}virtual int vd\\(void\\);${ws}int fd\\(void\\);${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pDe"
- }
- -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \[*\]+_vb.V;${ws}public:${ws}int d;((${ws}D & operator=\\(D const &\\);)|(${ws}D\\(int, D const &\\);)|(${ws}D\\(int\\);)|(${ws}static void s\\(void\\);)|(${ws}virtual int vg\\(void\\);)|(${ws}virtual int vd\\(void\\);)|(${ws}int fd\\(void\\);))*${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pDe (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype pDe"
- }
- timeout {
- fail "ptype pDe (timeout)"
- }
- }
-
- send_gdb "ptype pVa\n"
- gdb_expect {
- -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}V & operator=\\(V const &\\);${ws}V\\(V const &\\);${ws}V\\(void\\);${ws}int f\\(void\\);${ws}virtual int vv\\(void\\);${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pVa"
- }
- -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;((${ws}V & operator=\\(V const &\\);)|(${ws}V\\(V const &\\);)|(${ws}V\\(void\\);)|(${ws}int f\\(void\\);)|(${ws}virtual int vv\\(void\\);))*${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pVa (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype pVa"
- }
- timeout {
- fail "ptype pVa (timeout)"
- }
- }
-
- send_gdb "ptype pVv\n"
- gdb_expect {
- -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}V & operator=\\(V const &\\);${ws}V\\(V const &\\);${ws}V\\(void\\);${ws}int f\\(void\\);${ws}virtual int vv\\(void\\);${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pVv"
- }
- -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;((${ws}V & operator=\\(V const &\\);)|(${ws}V\\(V const &\\);)|(${ws}V\\(void\\);)|(${ws}int f\\(void\\);)|(${ws}virtual int vv\\(void\\);))*${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pVv (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype pVv"
- }
- timeout {
- fail "ptype pVv (timeout)"
- }
- }
-
- send_gdb "ptype pVe\n"
- gdb_expect {
- -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}V & operator=\\(V const &\\);${ws}V\\(V const &\\);${ws}V\\(void\\);${ws}int f\\(void\\);${ws}virtual int vv\\(void\\);${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pVe"
- }
- -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;((${ws}V & operator=\\(V const &\\);)|(${ws}V\\(V const &\\);)|(${ws}V\\(void\\);)|(${ws}int f\\(void\\);)|(${ws}virtual int vv\\(void\\);))*${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pVe (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype pVe"
- }
- timeout {
- fail "ptype pVe (timeout)"
- }
- }
-
- send_gdb "ptype pVd\n"
- gdb_expect {
- -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}V & operator=\\(V const &\\);${ws}V\\(V const &\\);${ws}V\\(void\\);${ws}int f\\(void\\);${ws}virtual int vv\\(void\\);${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pVd"
- }
- -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;((${ws}V & operator=\\(V const &\\);)|(${ws}V\\(V const &\\);)|(${ws}V\\(void\\);)|(${ws}int f\\(void\\);)|(${ws}virtual int vv\\(void\\);))*${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pVd (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype pVd"
- }
- timeout {
- fail "ptype pVd (timeout)"
- }
- }
-
- send_gdb "ptype pADe\n"
- gdb_expect {
- -re "type = class AD \{${ws}public:${ws}AD & operator=\\(AD const &\\);${ws}AD\\(AD const &\\);${ws}AD\\(void\\);${ws}virtual int vg\\(void\\);${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pADe"
- }
- -re "type = class AD \{${ws}public:((${ws}AD & operator=\\(AD const &\\);)|(${ws}AD\\(AD const &\\);)|(${ws}AD\\(void\\);)|(${ws}virtual int vg\\(void\\);))*${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pADe (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype pADe"
- }
- timeout {
- fail "ptype pADe (timeout)"
- }
- }
-
- send_gdb "ptype pEe\n"
- gdb_expect {
- -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;${ws}E & operator=\\(E const &\\);${ws}E\\(int, E const &\\);${ws}E\\(int\\);${ws}virtual int f\\(void\\);${ws}virtual int vg\\(void\\);${ws}virtual int vv\\(void\\);${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pEe"
- }
- -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;((${ws}E & operator=\\(E const &\\);)|(${ws}E\\(int, E const &\\);)|(${ws}E\\(int\\);)|(${ws}virtual int f\\(void\\);)|(${ws}virtual int vg\\(void\\);)|(${ws}virtual int vv\\(void\\);))*${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pEe (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype pEe"
- }
- timeout {
- fail "ptype pEe (timeout)"
- }
- }
-
- send_gdb "ptype pVB\n"
- gdb_expect {
- -re "type = class VB \{${ws}public:${ws}int vb;${ws}VB & operator=\\(VB const &\\);${ws}VB\\(VB const &\\);${ws}VB\\(void\\);${ws}int fvb\\(void\\);${ws}virtual int vvb\\(void\\);${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pVB"
- }
- -re "type = class VB \{${ws}public:${ws}int vb;((${ws}VB & operator=\\(VB const &\\);)|(${ws}VB\\(VB const &\\);)|(${ws}VB\\(void\\);)|(${ws}int fvb\\(void\\);)|(${ws}virtual int vvb\\(void\\);))*${ws}\} \[*\]+\r\n$gdb_prompt $" {
- pass "ptype pVB (obsolescent gcc or gdb)"
- }
- -re ".*$gdb_prompt $" {
- fail "ptype pVB"
- }
- timeout {
- fail "ptype pVB (timeout)"
- }
- }
- }
-
- #
- # Test calling of virtual functions.
- #
-
- proc test_virtual_calls {} {
- global gdb_prompt
- global GDB
-
- if [target_info exists gdb,cannot_call_functions] {
- setup_xfail "*-*-*" 2416
- fail "This target can not call functions"
- return 0
- }
-
- send_gdb "print pAe->f()\n"
- gdb_expect {
- -re ".* = 20\r\n$gdb_prompt $" { pass "print pAe->f()" }
- -re "Cannot invoke functions on this machine.*$gdb_prompt $" {
- fail "print pAe->f() (cannot invoke functions, skipping virtual calls)"
- return 0
- }
- -re ".*Cannot access memory at address 0x8.*$gdb_prompt $" {
- fail "print pAe->f() \
- (known failure with gcc cygnus-2.4.5-930417, skipping virtual calls)"
- return 0
- }
- -re ".*$gdb_prompt $" { fail "print pAe->f()" }
- timeout { fail "print pAe->f() (timeout)" }
- eof { fail "print pAe->f() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
- }
-
- send_gdb "print pAa->f()\n"
- gdb_expect {
- -re ".* = 1\r\n$gdb_prompt $" { pass "print pAa->f()" }
- -re ".*$gdb_prompt $" { fail "print pAa->f()" }
- timeout { fail "print pAa->f() (timeout)" }
- eof { fail "print pAa->f() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
- }
-
- send_gdb "print pDe->vg()\n"
- # setup_xfail "*-*-*"
- gdb_expect {
- -re ".* = 202\r\n$gdb_prompt $" { pass "print pDe->vg()" }
- -re ".*$gdb_prompt $" { fail "print pDe->vg()" }
- timeout { fail "print pDe->vg() (timeout)" }
- eof { fail "print pDe->vg() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
- }
-
- send_gdb "print pADe->vg()\n"
- gdb_expect {
- -re ".* = 202\r\n$gdb_prompt $" { pass "print pADe->vg()" }
- -re ".*$gdb_prompt $" { fail "print pADe->vg()" }
- timeout { fail "print pADe->vg() (timeout)" }
- eof { fail "print pADe->vg() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
- }
-
- send_gdb "print pDd->vg()\n"
- # setup_xfail "*-*-*"
- gdb_expect {
- -re ".* = 101\r\n$gdb_prompt $" { pass "print pDd->vg()" }
- -re ".*$gdb_prompt $" { fail "print pDd->vg()" }
- timeout { fail "print pDd->vg() (timeout)" }
- eof { fail "print pDd->vg() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
- }
-
- send_gdb "print pEe->vvb()\n"
- # setup_xfail "*-*-*"
- gdb_expect {
- -re ".* = 411\r\n$gdb_prompt $" { pass "print pEe->vvb()" }
- -re ".*$gdb_prompt $" { fail "print pEe->vvb()" }
- timeout { fail "print pEe->vvb() (timeout)" }
- eof { fail "print pEe->vvb() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
- }
-
- send_gdb "print pVB->vvb()\n"
- gdb_expect {
- -re ".* = 407\r\n$gdb_prompt $" { pass "print pVB->vvb()" }
- -re ".*$gdb_prompt $" { fail "print pVB->vvb()" }
- timeout { fail "print pVB->vvb() (timeout)" }
- eof { fail "print pVB->vvb() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
- }
-
- send_gdb "print pBe->vvb()\n"
- # setup_xfail "*-*-*"
- gdb_expect {
- -re ".* = 411\r\n$gdb_prompt $" { pass "print pBe->vvb()" }
- -re ".*$gdb_prompt $" { fail "print pBe->vvb()" }
- timeout { fail "print pBe->vvb() (timeout)" }
- eof { fail "print pBe->vvb() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
- }
-
- send_gdb "print pDe->vvb()\n"
- # setup_xfail "*-*-*"
- gdb_expect {
- -re ".* = 411\r\n$gdb_prompt $" { pass "print pDe->vvb()" }
- -re ".*$gdb_prompt $" { fail "print pDe->vvb()" }
- timeout { fail "print pDe->vvb() (timeout)" }
- eof { fail "print pDe->vvb() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
- }
-
- send_gdb "print pEe->vd()\n"
- # setup_xfail "*-*-*"
- gdb_expect {
- -re ".* = 282\r\n$gdb_prompt $" { pass "print pEe->vd()" }
- -re ".*$gdb_prompt $" { fail "print pEe->vd()" }
- timeout { fail "print pEe->vd() (timeout)" }
- eof { fail "print pEe->vd() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
- }
-
- send_gdb "print pEe->fvb()\n"
- # setup_xfail "*-*-*"
- gdb_expect {
- -re ".* = 311\r\n$gdb_prompt $" { pass "print pEe->fvb()" }
- -re ".*$gdb_prompt $" { fail "print pEe->fvb()" }
- timeout { fail "print pEe->fvb() (timeout)" }
- eof { fail "print pEe->fvb() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
- }
-
- send_gdb "print pEe->D::vg()\n"
- setup_xfail "*-*-*"
- gdb_expect {
- -re ".* = 102\r\n$gdb_prompt $" { pass "print pEe->D::vg()" }
- -re ".*$gdb_prompt $" { fail "print pEe->D::vg()" }
- timeout { fail "print pEe->D::vg() (timeout)" }
- eof { fail "print pEe->D::vg() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
- }
- }
-
- proc do_tests {} {
- global prms_id
- global bug_id
-
- set prms_id 0
- set bug_id 0
-
- gdb_start;
- gdb_virtfunc_init;
-
- # Get the debug format for the compiled test case. If that
- # format is DWARF 1 then just skip all the tests since none of
- # them will pass.
-
- if [ runto_main ] then {
- get_debug_format
- if [ setup_xfail_format "DWARF 1" ] then {
- fail "C++ tests skipped due to limited C++ support in DWARF 1 debug format"
- return
- }
- clear_xfail "*-*-*"
- }
-
- test_ptype_of_classes
-
- if [ runto 'test_calls(void)' ] then {
- test_virtual_calls
- }
- }
-
- do_tests
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/watch-cmd.exp gdb/testsuite/gdb.hp/watch-cmd.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/watch-cmd.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/watch-cmd.exp Wed Dec 31 16:00:00 1969
***************
*** 1,162 ****
- # Copyright (C) 1998 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
- # (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.
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- #
- # test special commands
- #
- set prms_id 0
- set bug_id 0
-
- if { [skip_hp_tests] } then { continue }
-
- set testfile "run-hp"
- set srcfile ${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DFAKEARGV}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-
- }
-
- if {![istarget "hppa*-*-hpux10.30"] && ![istarget "hppa*-*-hpux11.*"]} {
- #setup_xfail "*-*.*"
- return 0
- }
-
- if [get_compiler_info ${binfile}] {
- return -1;
- }
- if { $gcc_compiled } then { continue }
-
-
- gdb_exit
- gdb_start
- delete_breakpoints
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
-
-
- proc watchpoint_command_test {} {
- global gdb_prompt
-
- if [target_info exists noargs] {
- verbose "Skipping watchpoint_command_test because of noargs."
- return
- }
-
- if { ![runto factorial] } then { gdb_suppress_tests }
- # Don't depend upon argument passing, since most simulators don't currently
- # support it. Bash value variable to be what we want.
- gdb_test "p value=6" "" "set value to 6 in watchpoint_command_test"
- delete_breakpoints
-
- # Verify that we can create a watchpoint, and give it a commands
- # list that continues the inferior. We set the watchpoint on a
- # local variable, too, so that it self-deletes when the watched
- # data goes out of scope.
- #
- # What should happen is: Each time the watchpoint triggers, it
- # continues the inferior. Eventually, the watchpoint will self-
- # delete, when the watched variable is out of scope. But by that
- # time, the inferior should have exited. GDB shouldn't crash or
- # anything untoward as a result of this.
- #
- send_gdb "watch local_var\n"
- gdb_expect {
- -re ".*\[Ww\]atchpoint (\[0-9\]*): local_var.*$gdb_prompt $"\
- { pass "watch local_var"
- set wp_id $expect_out(1,string)
- send_gdb "commands $wp_id\n"
- gdb_expect {
- -re "Type commands for when breakpoint $wp_id is hit, one per line.*>"\
- { pass "begin commands on watch"}
- -re "$gdb_prompt $"\
- {fail "begin commands on watch"}
- timeout {fail "(timeout) begin commands on watch"}
- }
- }
- -re "$gdb_prompt $"\
- {fail "watch local_var"}
- timeout {fail "(timeout) watch local_var"}
- }
- # set wp_id $expect_out(1,string)
- # send_gdb "commands $wp_id\n"
- # gdb_expect {
- # -re "Type commands for when breakpoint $wp_id is hit, one per line.*>"\
- # {pass "begin commands on watch"}
- # -re "$gdb_prompt $"\
- # {fail "begin commands on watch"}
- # timeout {fail "(timeout) begin commands on watch"}
- # }
- send_gdb "print value\n"
- gdb_expect {
- -re ">"\
- {pass "add print command to watch"}
- -re "$gdb_prompt $"\
- {fail "add print command to watch"}
- timeout {fail "(timeout) add print command to watch"}
- }
- send_gdb "continue\n"
- gdb_expect {
- -re ">"\
- {pass "add continue command to watch"}
- -re "$gdb_prompt $"\
- {fail "add continue command to watch"}
- timeout {fail "(timeout) add continue command to watch"}
- }
- send_gdb "end\n"
- gdb_expect {
- -re "$gdb_prompt $"\
- {pass "begin commands on watch"}
- timeout {fail "(timeout) begin commands on watch"}
- }
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing.*\[Ww\]atchpoint $wp_id deleted because the program has left the block in.*which its expression is valid.*in main.*$gdb_prompt $"\
- {pass "continue with watch"}
- -re "$gdb_prompt $"\
- {fail "continue with watch"}
- timeout {fail "(timeout) continue with watch"}
- }
- send_gdb "continue\n"
- gdb_expect {
- -re "Continuing.*$gdb_prompt $"\
- {pass "continue until exit"}
- -re "$gdb_prompt $"\
- {fail "continue until exit"}
- timeout {fail "(timeout) continue until exit"}
- }
- }
-
- watchpoint_command_test
-
-
-
-
-
-
-
-
-
-
-
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/watch-hp.c gdb/testsuite/gdb.hp/watch-hp.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/watch-hp.c Sun Jan 10 21:36:48 1999
--- gdb/testsuite/gdb.hp/watch-hp.c Wed Dec 31 16:00:00 1969
***************
*** 1,166 ****
- #include <stdio.h>
- /*
- * Since using watchpoints can be very slow, we have to take some pains to
- * ensure that we don't run too long with them enabled or we run the risk
- * of having the test timeout. To help avoid this, we insert some marker
- * functions in the execution stream so we can set breakpoints at known
- * locations, without worrying about invalidating line numbers by changing
- * this file. We use null bodied functions are markers since gdb does
- * not support breakpoints at labeled text points at this time.
- *
- * One place we need is a marker for when we start executing our tests
- * instructions rather than any process startup code, so we insert one
- * right after entering main(). Another is right before we finish, before
- * we start executing any process termination code.
- *
- * Another problem we have to guard against, at least for the test
- * suite, is that we need to ensure that the line that causes the
- * watchpoint to be hit is still the current line when gdb notices
- * the hit. Depending upon the specific code generated by the compiler,
- * the instruction after the one that triggers the hit may be part of
- * the same line or part of the next line. Thus we ensure that there
- * are always some instructions to execute on the same line after the
- * code that should trigger the hit.
- */
-
- int count = -1;
- int ival1 = -1;
- int ival2 = -1;
- int ival3 = -1;
- int ival4 = -1;
- int ival5 = -1;
- char buf[10];
- struct foo
- {
- int val;
- };
- struct foo struct1, struct2, *ptr1, *ptr2;
-
- int doread = 0;
-
- void marker1 ()
- {
- }
-
- void marker2 ()
- {
- }
-
- void marker4 ()
- {
- }
-
- void marker5 ()
- {
- }
-
- void marker6 ()
- {
- }
-
- void recurser (x)
- int x;
- {
- int local_x;
-
- if (x > 0)
- recurser (x-1);
- local_x = x;
- }
-
- void
- func2 ()
- {
- int local_a;
- static int static_b;
-
- ival5++;
- local_a = ival5;
- static_b = local_a;
- }
-
- int
- func1 ()
- {
- /* The point of this is that we will set a breakpoint at this call.
-
- Then, if DECR_PC_AFTER_BREAK equals the size of a function call
- instruction (true on a sun3 if this is gcc-compiled--FIXME we
- should use asm() to make it work for any compiler, present or
- future), then we will end up branching to the location just after
- the breakpoint. And we better not confuse that with hitting the
- breakpoint. */
- func2 ();
- return 73;
- }
-
- int main ()
- {
- struct1.val = 1;
- struct2.val = 2;
- ptr1 = &struct1;
- ptr2 = &struct2;
- marker1 ();
- func1 ();
- for (count = 0; count < 4; count++) {
- ival1 = count;
- ival3 = count; ival4 = count;
- }
- ival1 = count; /* Outside loop */
- ival2 = count;
- ival3 = count; ival4 = count;
- marker2 ();
- if (doread)
- {
- static char msg[] = "type stuff for buf now:";
- write (1, msg, sizeof (msg) - 1);
- read (0, &buf[0], 5);
- }
- marker4 ();
-
- /* We have a watchpoint on ptr1->val. It should be triggered if
- ptr1's value changes. */
- ptr1 = ptr2;
-
- /* This should not trigger the watchpoint. If it does, then we
- used the wrong value chain to re-insert the watchpoints or we
- are not evaluating the watchpoint expression correctly. */
- struct1.val = 5;
- marker5 ();
-
- /* We have a watchpoint on ptr1->val. It should be triggered if
- ptr1's value changes. */
- ptr1 = ptr2;
-
- /* This should not trigger the watchpoint. If it does, then we
- used the wrong value chain to re-insert the watchpoints or we
- are not evaluating the watchpoint expression correctly. */
- struct1.val = 5;
- marker5 ();
-
- /* We're going to watch locals of func2, to see that out-of-scope
- watchpoints are detected and properly deleted.
- */
- marker6 ();
-
- /* This invocation is used for watches of a single
- local variable. */
- func2 ();
-
- /* This invocation is used for watches of an expression
- involving a local variable. */
- func2 ();
-
- /* This invocation is used for watches of a static
- (non-stack-based) local variable. */
- func2 ();
-
- /* This invocation is used for watches of a local variable
- when recursion happens.
- */
- marker6 ();
- recurser (2);
-
- marker6 ();
- return 0;
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/watch-hp.exp gdb/testsuite/gdb.hp/watch-hp.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/watch-hp.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/watch-hp.exp Wed Dec 31 16:00:00 1969
***************
*** 1,786 ****
- # Copyright (C) 1992, 1994, 1997 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
- # (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.
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # This file was written by Fred Fish. (fnf@cygnus.com)
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- set prms_id 0
- set bug_id 0
-
- set testfile "watch-hp"
- set srcfile ${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- if [get_compiler_info ${binfile}] {
- return -1;
- }
- if { $gcc_compiled } then { continue }
-
- # Prepare for watchpoint tests by setting up two breakpoints and one
- # watchpoint.
- #
- # We use breakpoints at marker functions to get past all the startup code,
- # so we can get to the watchpoints in a reasonable amount of time from a
- # known starting point.
- #
- # For simplicity, so we always know how to reference specific breakpoints or
- # watchpoints by number, we expect a particular ordering and numbering of
- # each in the combined breakpoint/watchpoint table, as follows:
- #
- # Number What Where
- # 1 Breakpoint marker1()
- # 2 Breakpoint marker2()
- # 3 Watchpoint ival3
-
- proc initialize {} {
- global gdb_prompt
- global hex
- global decimal
- global srcfile
-
- if [gdb_test "break marker1" "Breakpoint 1 at $hex: file .*$srcfile, line $decimal.*" "set breakpoint at marker1" ] {
- return 0;
- }
-
-
- if [gdb_test "break marker2" "Breakpoint 2 at $hex: file .*$srcfile, line $decimal.*" "set breakpoint at marker2" ] {
- return 0;
- }
-
-
- if [gdb_test "info break" "1\[ \]*breakpoint.*marker1.*\r\n2\[ \]*breakpoint.*marker2.*" "info break in watchpoint.exp" ] {
- return 0;
- }
-
- # ??rehrauer: To fix DTS #CHFts23014, in which setting a watchpoint
- # before running can cause the inferior to croak on HP-UX 10.30 and
- # 11.0 for reasons as yet unknown, we've disabled the ability to set
- # watches without a running inferior. Verify the restriction.
- #
- send_gdb "watch ival3\n"
- gdb_expect {
- -re ".*can't do that without a running program; try \"break main\", \"run\" first.*$gdb_prompt $" {
- pass "set watchpoint on ival3"
- }
- -re ".*$gdb_prompt $" { fail "set watchpoint on ival3" }
- timeout { fail "set watchpoint on ival3 (timeout)" }
- }
-
-
- # if [gdb_test "watch ival3" ".*\[Ww\]atchpoint 3: ival3" "set watchpoint on ival3" ] {
- # return 0;
- # }
-
-
- # "info watch" is the same as "info break"
-
- # if [gdb_test "info watch" "1\[ \]*breakpoint.*marker1.*\r\n2\[ \]*breakpoint.*marker2.*\r\n3\[ \]*.*watchpoint.*ival3" "watchpoint found in watchpoint/breakpoint table" ] {
- # return 0;
- # }
-
-
- # After installing the watchpoint, we disable it until we are ready
- # to use it. This allows the test program to run at full speed until
- # we get to the first marker function.
-
- # if [gdb_test "disable 3" "disable 3\[\r\n\]+" "disable watchpoint" ] {
- # return 0;
- # }
-
-
- return 1
- }
-
- #
- # Test simple watchpoint.
- #
-
- proc test_simple_watchpoint {} {
- global gdb_prompt
- global hex
- global decimal
-
- # Ensure that the watchpoint is disabled when we startup.
-
- # if [gdb_test "disable 3" "^disable 3\[\r\n\]+" "disable watchpoint in test_simple_watchpoint" ] {
- # return 0;
- # }
-
-
- # Run until we get to the first marker function.
-
- gdb_run_cmd
- set timeout 600
- gdb_expect {
- -re "Breakpoint 1, marker1 .*$gdb_prompt $" {
- pass "run to marker1 in test_simple_watchpoint"
- }
- -re ".*$gdb_prompt $" {
- fail "run to marker1 in test_simple_watchpoint"
- return
- }
- timeout {
- fail "run to marker1 in test_simple_watchpoint (timeout)"
- return
- }
- }
- #************************
-
- # ??rehrauer: To fix DTS #CHFts23014, in which setting a watchpoint
- # before running can cause the inferior to croak on HP-UX 10.30 and
- # 11.0 for reasons as yet unknown, we've disabled the ability to set
- # watches without a running inferior. The following testpoints used
- # to be in [initialize].
- #
- send_gdb "watch ival3\n"
- gdb_expect {
- -re ".*\[Ww\]atchpoint 3: ival3\r\n$gdb_prompt $" {
- pass "set watchpoint on ival3"
- }
- -re ".*$gdb_prompt $" { fail "set watchpoint on ival3" }
- timeout { fail "set watchpoint on ival3 (timeout)" }
- }
-
- # "info watch" is the same as "info break"
-
- send_gdb "info watch\n"
- gdb_expect {
- -re "1\[ \]*breakpoint.*marker1.*\r\n2\[ \]*breakpoint.*marker2.*\r\n3\[ \]*.*watchpoint.*ival3\r\n$gdb_prompt $" {
- pass "watchpoint found in watchpoint/breakpoint table"
- }
- -re ".*$gdb_prompt $" {
- fail "watchpoint found in watchpoint/breakpoint table"
- }
- timeout {
- fail "watchpoint found in watchpoint/breakpoint table"
- }
- }
-
- # After installing the watchpoint, we disable it until we are ready
- # to use it. This allows the test program to run at full speed until
- # we get to the first marker function.
-
- send_gdb "disable 3\n"
- gdb_expect {
- -re "disable 3\[\r\n\]+$gdb_prompt $" { pass "disable watchpoint" }
- -re ".*$gdb_prompt $" { fail "disable watchpoint" }
- timeout { fail "disable watchpoint (timeout)" }
- }
- #******
- # After reaching the marker function, enable the watchpoint.
-
- if [gdb_test "enable 3" "^enable 3\[\r\n\]+" "enable watchpoint" ] {
- return ;
- }
-
-
- gdb_test "break func1" "Breakpoint.*at.*"
- gdb_test "set \$func1_breakpoint_number = \$bpnum" ""
-
- gdb_test "continue" "Continuing.*Breakpoint \[0-9\]*, func1.*" \
- "continue to breakpoint at func1"
-
- # Continue until the first change, from -1 to 0
-
- send_gdb "cont\n"
- gdb_expect {
- -re "Continuing.*\[Ww\]atchpoint.*ival3.*Old value = -1.*New value = 0.*ival3 = count; ival4 = count;.*$gdb_prompt $" {
- pass "watchpoint hit, first time"
- }
- -re "Continuing.*Breakpoint.*func1.*$gdb_prompt $" {
- setup_xfail "m68*-*-*" 2597
- fail "thought it hit breakpoint at func1 twice"
- gdb_test "delete \$func1_breakpoint_number" ""
- gdb_test "continue" "\
- Continuing.*\[Ww\]atchpoint.*ival3.*Old value = -1.*New value = 0.*ival3 = count;" \
- "watchpoint hit, first time"
- }
- -re ".*$gdb_prompt $" { fail "watchpoint hit, first time" ; return }
- timeout { fail "watchpoint hit, first time (timeout)" ; return }
- eof { fail "watchpoint hit, first time (eof)" ; return }
- }
-
- gdb_test "delete \$func1_breakpoint_number" ""
-
- # Continue until the next change, from 0 to 1.
- gdb_test "cont" "Continuing.*\[Ww\]atchpoint.*ival3.*Old value = 0.*New value = 1.*ival3 = count; ival4 = count;.*" "watchpoint hit, second time"
-
- # Continue until the next change, from 1 to 2.
- gdb_test "cont" "Continuing.*\[Ww\]atchpoint.*ival3.*Old value = 1.*New value = 2.*ival3 = count; ival4 = count;.*" "watchpoint hit, third time"
-
- # Continue until the next change, from 2 to 3.
- gdb_test "cont" "Continuing.*\[Ww\]atchpoint.*ival3.*Old value = 2.*New value = 3.*ival3 = count; ival4 = count;.*" "watchpoint hit, fourth time"
-
- # Continue until the next change, from 3 to 4.
- # Note that this one is outside the loop.
-
- gdb_test "cont" "Continuing.*\[Ww\]atchpoint.*ival3.*Old value = 3.*New value = 4.*ival3 = count; ival4 = count;.*" "watchpoint hit, fifth time"
-
- # Continue until we hit the finishing marker function.
- # Make sure we hit no more watchpoints.
-
- gdb_test "cont" "Continuing.*Breakpoint.*marker2 \(\).*" \
- "continue to marker2"
-
- # Disable the watchpoint so we run at full speed until we exit.
-
- if [gdb_test "disable 3" "^disable 3\[\r\n\]+" "watchpoint disabled" ] {
- return ;
- }
-
-
- # Run until process exits.
-
- if [target_info exists gdb,noresults] { return }
-
- gdb_test "cont" "Continuing.*Program exited normally.*" \
- "continue to exit in test_simple_watchpoint"
- }
-
- # Test disabling watchpoints.
-
- proc test_disabling_watchpoints {} {
- global gdb_prompt
- global binfile
- global srcfile
- global decimal
- global hex
-
- # Ensure that the watchpoint is disabled when we startup.
-
- if [gdb_test "disable 3" "^disable 3\[\r\n\]+" "disable watchpoint in test_disabling_watchpoints" ] {
- return 0;
- }
-
-
- # Run until we get to the first marker function.
-
- gdb_run_cmd
- set timeout 600
- gdb_expect {
- -re "Breakpoint 1, marker1 .*$gdb_prompt $" {
- pass "run to marker1 in test_disabling_watchpoints"
- }
- -re ".*$gdb_prompt $" {
- fail "run to marker1 in test_disabling_watchpoints"
- return
- }
- timeout {
- fail "run to marker1 in test_disabling_watchpoints (timeout)"
- return
- }
- }
-
- # After reaching the marker function, enable the watchpoint.
-
- if [gdb_test "enable 3" "^enable 3\[\r\n\]+" "watchpoint enabled" ] {
- return ;
- }
-
-
- # Continue until the first change, from -1 to 0
- # Don't check the old value, because on VxWorks the variable value
- # will not have been reinitialized.
- gdb_test "cont" "Continuing.*\[Ww\]atchpoint.*ival3.*Old value = .*New value = 0.*ival3 = count; ival4 = count;.*" "watchpoint hit in test_disabling_watchpoints, first time"
-
- # Continue until the next change, from 0 to 1.
- gdb_test "cont" "Continuing.*\[Ww\]atchpoint.*ival3.*Old value = 0.*New value = 1.*ival3 = count; ival4 = count;.*" "watchpoint hit in test_disabling_watchpoints, second time"
-
- # Disable the watchpoint but leave breakpoints
-
- if [gdb_test "disable 3" "^disable 3\[\r\n\]+" "disable watchpoint #2 in test_disabling_watchpoints" ] {
- return 0;
- }
-
-
- # Check watchpoint list, looking for the entry that confirms the
- # watchpoint is disabled.
- gdb_test "info watchpoints" "3\[ \]*.*watchpoint\[ \]*keep\[ \]*n\[ \]*ival3\r\n.*" "watchpoint disabled in table"
-
- # Continue until we hit the finishing marker function.
- # Make sure we hit no more watchpoints.
- gdb_test "cont" "Continuing.*Breakpoint.*marker2 \\(\\).*" \
- "disabled watchpoint skipped"
-
- if [target_info exists gdb,noresults] { return }
-
- gdb_test "cont" "Continuing.*Program exited normally.*" \
- "continue to exit in test_disabling_watchpoints"
- }
-
- # Test stepping and other mundane operations with watchpoints enabled
- proc test_stepping {} {
- global gdb_prompt
-
- if [runto marker1] then {
- gdb_test "watch ival2" ".*\[Ww\]atchpoint \[0-9\]*: ival2"
-
- # Well, let's not be too mundane. It should be a *bit* of a challenge
- gdb_test "break func2 if 0" "Breakpoint.*at.*"
- gdb_test "p \$func2_breakpoint_number = \$bpnum" " = .*"
-
- # The HPPA has a problem here if it's not using hardware watchpoints
- if {[ istarget "hppa*-*-*" ] && ![ istarget "hppa*-*-*bsd*" ]} then {
- # Don't actually try doing the call, if we do we can't continue.
- setup_xfail "*-*-*"
- fail "calling function with watchpoint enabled"
- } else {
- # The problem is that GDB confuses stepping through the call
- # dummy with hitting the breakpoint at the end of the call dummy.
- # Will be fixed once all architectures define
- # CALL_DUMMY_BREAKPOINT_OFFSET.
- setup_xfail "*-*-*"
- # This doesn't occur if the call dummy starts with a call,
- # because we are out of the dummy by the first time the inferior
- # stops.
- clear_xfail "d10v*-*-*"
- clear_xfail "m68*-*-*"
- clear_xfail "i*86*-*-*"
- clear_xfail "vax-*-*"
- # The following architectures define CALL_DUMMY_BREAKPOINT_OFFSET.
- clear_xfail "alpha-*-*"
- clear_xfail "mips*-*-*"
- clear_xfail "sparc-*-*"
- clear_xfail "hppa*-*-*bsd*"
- # It works with the generic inferior function calling code too.
- clear_xfail "mn10200*-*-*"
- clear_xfail "mn10300*-*-*"
- gdb_test "p func1 ()" "= 73" \
- "calling function with watchpoint enabled"
- }
-
- #
- # "finish" brings us back to main.
- # On some targets (e.g. alpha) gdb will stop from the finish in midline
- # of the marker1 call. This is due to register restoring code on
- # the alpha and might be caused by stack adjustment instructions
- # on other targets. In this case we will step once more.
- #
-
- send_gdb "finish\n"
- gdb_expect {
- -re "Run.*exit from.*marker1.* at" { }
- default { fail "finish from marker1" ; return }
- }
-
- gdb_expect {
- -re "marker1 \\(\\);.*$gdb_prompt $" {
- send_gdb "step\n"
- exp_continue
- }
- -re "func1 \\(\\);.*$gdb_prompt $" {
- pass "finish from marker1"
- }
- -re ".*$gdb_prompt $" {
- fail "finish from marker1"
- }
- default { fail "finish from marker1" ; return }
- }
-
- gdb_test "next" "for \\(count = 0.*" "next to `for' in watchpoint.exp"
-
- # Now test that "until" works. It's a bit tricky to test
- # "until", because compilers don't always arrange the code
- # exactly the same way, and we might get slightly different
- # sequences of statements. But the following should be true
- # (if not it is a compiler or a debugger bug): The user who
- # does "until" at every statement of a loop should end up
- # stepping through the loop once, and the debugger should not
- # stop for any of the remaining iterations.
-
- gdb_test "until" "ival1 = count.*" "until to ival1 assignment"
- gdb_test "until" "ival3 = count.*" "until to ival3 assignment"
- send_gdb "until\n"
- gdb_expect {
- -re "(for \\(count = 0|\}).*$gdb_prompt $" {
- gdb_test "until" "ival1 = count; /. Outside loop ./" \
- "until out of loop"
- }
- -re "ival1 = count; /. Outside loop ./.*$gdb_prompt $" {
- pass "until out of loop"
- }
- -re ".*$gdb_prompt $" {
- fail "until out of loop"
- }
- default { fail "until out of loop" ; return }
- }
-
- gdb_test "step" "ival2 = count.*" "step to ival2 assignment"
- }
- }
-
- # Test stepping and other mundane operations with watchpoints enabled
- proc test_watchpoint_triggered_in_syscall {} {
- global gdb_prompt
-
- if [target_info exists gdb,noinferiorio] {
- verbose "Skipping test_watchpoint_triggered_in_syscall due to noinferiorio"
- return
- }
- # Run until we get to the first marker function.
- set x 0
- set y 0
- set testname "Watch buffer passed to read syscall"
- if [runto marker2] then {
- gdb_test "watch buf\[0\]" ".*\[Ww\]atchpoint \[0-9\]*: buf\\\[0\\\]"
- gdb_test "watch buf\[1\]" ".*\[Ww\]atchpoint \[0-9\]*: buf\\\[1\\\]"
- gdb_test "watch buf\[2\]" ".*\[Ww\]atchpoint \[0-9\]*: buf\\\[2\\\]"
- gdb_test "watch buf\[3\]" ".*\[Ww\]atchpoint \[0-9\]*: buf\\\[3\\\]"
- gdb_test "watch buf\[4\]" ".*\[Ww\]atchpoint \[0-9\]*: buf\\\[4\\\]"
- gdb_test "break marker4" ".*Breakpoint.*"
-
- gdb_test "set doread = 1" ""
-
- # If we send_gdb "123\n" before gdb has switched the tty, then it goes
- # to gdb, not the inferior, and we lose. So that is why we have
- # watchpoint.c prompt us, so we can wait for that prompt.
- send_gdb "continue\n";
- gdb_expect {
- -re "Continuing\\.\r\ntype stuff for buf now:" {
- pass "continue to read"
- }
- default {
- fail "continue to read";
- return ;
- }
- }
-
- send_gdb "123\n"
- gdb_expect {
- -re ".*\[Ww\]atchpoint.*buf\\\[0\\\].*Old value = 0.*New value = 49\[^\n\]*\n" { set x [expr $x+1] ; exp_continue }
- -re ".*\[Ww\]atchpoint.*buf\\\[1\\\].*Old value = 0.*New value = 50\[^\n\]*\n" { set x [expr $x+1] ; exp_continue }
- -re ".*\[Ww\]atchpoint.*buf\\\[2\\\].*Old value = 0.*New value = 51\[^\n\]*\n" { set x [expr $x+1] ; exp_continue }
- -re ".*\[Ww\]atchpoint.*buf\\\[3\\\].*Old value = 0.*New value = 10\[^\n\]*\n" { set x [expr $x+1] ; exp_continue }
- -re ".*$gdb_prompt $" { pass "sent 123" }
- timeout { fail "sent 123 (timeout)" }
- }
-
- # Examine the values in buf to see how many watchpoints we
- # should have printed.
- send_gdb "print buf\[0\]\n"
- gdb_expect {
- -re ".*= 49.*$gdb_prompt $" { set y [expr $y+1]; pass "print buf\[0\]"}
- -re ".*= 0.*$gdb_prompt $" { pass "print buf\[0\]"}
- -re ".*$gdb_prompt $" { fail "print buf\[0\]"}
- default { fail "print buf\[0\]"}
- }
- send_gdb "print buf\[1\]\n"
- gdb_expect {
- -re ".*= 50.*$gdb_prompt $" { set y [expr $y+1]; pass "print buf\[1\]"}
- -re ".*= 0.*$gdb_prompt $" { pass "print buf\[1\]"}
- -re ".*$gdb_prompt $" { fail "print buf\[1\]"}
- default { fail "print buf\[1\]"}
- }
- send_gdb "print buf\[2\]\n"
- gdb_expect {
- -re ".*= 51.*$gdb_prompt $" { set y [expr $y+1]; pass "print buf\[2\]"}
- -re ".*= 0.*$gdb_prompt $" { pass "print buf\[2\]"}
- -re ".*$gdb_prompt $" { fail "print buf\[2\]"}
- default { fail "print buf\[2\]"}
- }
- send_gdb "print buf\[3\]\n"
- gdb_expect {
- -re ".*= 10.*$gdb_prompt $" { set y [expr $y+1]; pass "print buf\[3\]"}
- -re ".*= 0.*$gdb_prompt $" { pass "print buf\[3\]"}
- -re ".*$gdb_prompt $" { fail "print buf\[3\]" }
- default { fail "print buf\[3\]" }
- }
-
- # Did we find what we were looking for? If not, flunk it.
- if [expr $x==$y] then { pass $testname } else { fail "$testname (only triggered $x watchpoints, expected $y)"}
-
- # Continue until we hit the finishing marker function.
- # Make sure we hit no more watchpoints.
- gdb_test "cont" "Continuing.*Breakpoint.*marker4 \\(\\).*" \
- "continue to marker4"
-
- # Disable everything so we can finish the program at full speed
- gdb_test "disable" "" "disable in test_watchpoint_triggered_in_syscall"
-
- if [target_info exists gdb,noresults] { return }
-
- gdb_test "cont" "Continuing.*Program exited normally.*" \
- "continue to exit in test_watchpoint_triggered_in_syscall"
- }
- }
-
- # Do a simple test of of watching through a pointer when the pointer
- # itself changes. Should add some more complicated stuff here.
-
- proc test_complex_watchpoint {} {
- global gdb_prompt
-
- if [runto marker4] then {
- gdb_test "watch ptr1->val" ".*\[Ww\]atchpoint \[0-9\]*: ptr1->val"
- gdb_test "break marker5" ".*Breakpoint.*"
-
- gdb_test "cont" "Continuing.*\[Ww\]atchpoint.*ptr1->val.*Old value = 1.*New value = 2.*" "Test complex watchpoint"
-
- # Continue until we hit the marker5 function.
- # Make sure we hit no more watchpoints.
-
- gdb_test "cont" "Continuing.*Breakpoint.*marker5 \\(\\).*" \
- "did not trigger wrong watchpoint"
- #********************
- # Test watches of things declared locally in a function.
- # In particular, test that a watch of stack-based things
- # is deleted when the stack-based things go out of scope.
- #
- gdb_test "disable" "" "disable in test_complex_watchpoint"
- gdb_test "break marker6" ".*Breakpoint.*"
- gdb_test "cont" "Continuing.*Breakpoint.*marker6 \\(\\).*" \
- "continue to marker6"
- gdb_test "break func2" ".*Breakpoint.*"
- gdb_test "cont" "Continuing.*func2.*"
-
- # Test a watch of a single stack-based variable, whose scope
- # is the function we're now in. This should auto-delete when
- # execution exits the scope of the watchpoint.
- #
- gdb_test "watch local_a" ".*\[Ww\]atchpoint \[0-9\]*: local_a" "set local watch"
- gdb_test "cont" "\[Ww\]atchpoint.*local_a.*" "trigger local watch"
- gdb_test "cont" "Continuing.*Watchpoint .* deleted because the program has left the block in.*which its expression is valid.*" "self-delete local watch"
-
- # after func2 returned, gdb stopped and deleted the watchpoint
- # we're now in main, let's get to func2
- gdb_test "cont" "Continuing.*func2.*"
-
- # We should be in "func2" again now. Test a watch of an
- # expression which includes both a stack-based local and
- # something whose scope is larger than this invocation
- # of "func2". This should also auto-delete.
- #
- gdb_test "watch local_a + ival5" ".*\[Ww\]atchpoint \[0-9\]*: local_a . ival5" \
- "set partially local watch"
- gdb_test "cont" "Continuing.*\[Ww\]atchpoint .*: local_a . ival5.*" \
- "trigger1 partially local watch"
- gdb_test "cont" "Continuing.*\[Ww\]atchpoint .*: local_a . ival5.*" \
- "trigger2 partially local watch"
- gdb_test "cont" "Continuing.*\[Ww\]atchpoint .* deleted because the program has left the block in.*which its expression is valid.*" \
- "self-delete partially local watch"
-
- # after func2 returned, gdb stopped and deleted the watchpoint
- # we're now in main, let's get to func2
- gdb_test "cont" "Continuing.*func2.*"
-
- # We should be in "func2" again now. Test a watch of a
- # static (non-stack-based) local. Since this has scope
- # across any invocations of "func2", it should not auto-
- # delete.
- #
- gdb_test "watch static_b" ".*\[Ww\]atchpoint \[0-9\]*: static_b" \
- "set static local watch"
- gdb_test "cont" "Continuing.*\[Ww\]atchpoint .*: static_b.*" \
- "trigger static local watch"
- gdb_test "cont" "Continuing.*marker6 \\(\\).*" \
- "continue after trigger static local watch"
- gdb_test "info break" ".*watchpoint.*static_b.*" \
- "static local watch did not self-delete"
-
- # We should be in "recurser" now. Test a watch of a stack-
- # based local. Symbols mentioned in a watchpoint are bound
- # at watchpoint-creation. Thus, a watch of a stack-based
- # local to a recursing function should be bound only to that
- # one invocation, and should not trigger for other invocations.
- #
- gdb_test "tbreak recurser" ".*Breakpoint.*"
- gdb_test "cont" "Continuing.*recurser.*"
- gdb_test "watch local_x" ".*\[Ww\]atchpoint \[0-9\]*: local_x" \
- "set local watch in recursive call"
- gdb_test "cont" "Continuing.*\[Ww\]atchpoint .*: local_x.*New value = 2.*" \
- "trigger local watch in recursive call"
- gdb_test "cont" "Continuing.*\[Ww\]atchpoint .* deleted because the program has left the block in.*which its expression is valid.*" \
- "self-delete local watch in recursive call"
-
-
-
-
- #******************
- # Disable everything so we can finish the program at full speed
- gdb_test "disable" "" "disable in test_complex_watchpoint"
-
- if [target_info exists gdb,noresults] { return }
-
-
- gdb_test "cont" "Continuing.*Program exited normally.*" \
- "continue to exit in test_complex_watchpoint"
- }
- }
-
- # Start with a fresh gdb.
-
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load $binfile
- set timeout 600
- verbose "Timeout now 600 sec.\n"
-
- if [initialize] then {
-
- test_simple_watchpoint
-
- # The IDT/sim monitor only has 8 (!) open files, of which it uses
- # 4 (!). So we have to make sure one program exits before
- # starting another one.
- if [istarget "mips-idt-*"] then {
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load $binfile
- initialize
- }
-
- test_disabling_watchpoints
-
- # See above.
- if [istarget "mips-idt-*"] then {
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load $binfile
- initialize
- }
-
- if ![target_info exists gdb,cannot_call_functions] {
- test_stepping
-
- # See above.
- if [istarget "mips-idt-*"] then {
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load $binfile
- initialize
- }
- }
-
- # Only enabled for some targets merely because it has not been tested
- # elsewhere.
- # On sparc-sun-sunos4.1.3, GDB was running all the way to the marker4
- # breakpoint before stopping for the watchpoint. I don't know why.
- if {[istarget "hppa*-*-*"]} then {
- test_watchpoint_triggered_in_syscall
- }
-
- # See above.
- if [istarget "mips-idt-*"] then {
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load $binfile
- initialize
- }
-
- # Only enabled for some targets merely because it has not been tested
- # elsewhere.
- if {[istarget "hppa*-*-*"] || \
- [istarget "sparc*-*-sunos*"] || \
- [istarget "m32r-*-*"]} then {
- test_complex_watchpoint
- #***************
- }
-
- # Verify that a user can force GDB to use "slow" watchpoints.
- # (This proves rather little on kernels that don't support
- # fast watchpoints, but still...)
- #
- if ![runto_main] then { fail "watch tests suppressed" }
-
- send_gdb "set can-use-hw-watchpoints 0\n"
- gdb_expect {
- -re "$gdb_prompt $"\
- {pass "disable fast watches"}
- timeout {fail "(timeout) disable fast watches"}
- }
- send_gdb "show can-use-hw-watchpoints\n"
- gdb_expect {
- -re "Debugger's willingness to use watchpoint hardware is 0.*$gdb_prompt $"\
- {pass "show disable fast watches"}
- -re "$gdb_prompt $"\
- {fail "show disable fast watches"}
- timeout {fail "(timeout) show disable fast watches"}
- }
- send_gdb "watch ival3 if count > 1\n"
- gdb_expect {
- -re "Watchpoint \[0-9\]*: ival3.*$gdb_prompt $"\
- {pass "set slow conditional watch"}
- -re "$gdb_prompt $"\
- {fail "set slow conditional watch"}
- timeout {fail "(timeout) set slow conditional watch"}
- }
- send_gdb "continue\n"
- gdb_expect {
- -re "Watchpoint \[0-9\]*: ival3.*Old value = 1.*New value = 2.*$gdb_prompt $"\
- {pass "trigger slow conditional watch"}
- -re "$gdb_prompt $"\
- {fail "trigger slow conditional watch"}
- timeout {fail "(timeout) trigger slow conditional watch"}
- }
-
- # We've explicitly disabled hardware watches. Verify that GDB
- #
- #
- send_gdb "rwatch ival3\n"
- gdb_expect {
- -re "Expression cannot be implemented with read/access watchpoint..*$gdb_prompt $"\
- {pass "rwatch disallowed when can-set-hw-watchpoints cleared"}
- -re "$gdb_prompt $"\
- {fail "rwatch disallowed when can-set-hw-watchpoints cleared"}
- timeout {fail "(timeout) rwatch disallowed when can-use-hw-watchpoints cleared"}
- }
-
- # Read- and access watchpoints are unsupported on HP-UX. Verify
- # that GDB gracefully responds to requests to create them.
- #
- if [istarget "hppa*-*-hpux*"] then {
- send_gdb "set can-use-hw-watchpoints 1\n"
- gdb_expect {
- -re "$gdb_prompt $"\
- {pass "enable fast watches"}
- timeout {fail "(timeout) enable fast watches"}
- }
- send_gdb "rwatch ival3\n"
- gdb_expect {
- -re "Target does not have this type of hardware watchpoint support.*$gdb_prompt $"\
- {pass "read watches disallowed"}
- -re "$gdb_prompt $"\
- {fail "read watches disallowed"}
- timeout {fail "(timeout) read watches disallowed"}
- }
-
- send_gdb "awatch ival3\n"
- gdb_expect {
- -re "Target does not have this type of hardware watchpoint support.*$gdb_prompt $"\
- {pass "access watches disallowed"}
- -re "$gdb_prompt $"\
- {fail "access watches disallowed"}
- timeout {fail "(timeout) access watches disallowed"}
- }
-
- #***************
- }
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/xdb.c gdb/testsuite/gdb.hp/xdb.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/xdb.c Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/xdb.c Wed Dec 31 16:00:00 1969
***************
*** 1,20 ****
- #include <stdio.h>
-
- int callee( x )
- int x;
- {
- int y = x * x;
- return (y - 2);
- }
-
- main()
- {
- int i;
- for (i = 1; i < 10; i++)
- {
- printf( "%d ", callee( i ));
-
- }
- printf( " Goodbye!\n" );
-
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/xdb0.c gdb/testsuite/gdb.hp/xdb0.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/xdb0.c Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/xdb0.c Wed Dec 31 16:00:00 1969
***************
*** 1,42 ****
- #include "xdb0.h"
-
- main ()
- {
- int x;
- #ifdef usestubs
- set_debug_traps();
- breakpoint();
- #endif
- x = 0;
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- }
-
- static void
- unused ()
- {
- /* Not used for anything */
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/xdb0.h gdb/testsuite/gdb.hp/xdb0.h
*** ../gdb-19990719/gdb/testsuite/gdb.hp/xdb0.h Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/xdb0.h Wed Dec 31 16:00:00 1969
***************
*** 1,36 ****
- /* An include file that actually causes code to be generated in the
- including file. This is known to cause problems on some systems. */
-
- static void
- foo (x)
- int x;
- {
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/xdb1.c gdb/testsuite/gdb.hp/xdb1.c
*** ../gdb-19990719/gdb/testsuite/gdb.hp/xdb1.c Mon Jan 4 07:37:21 1999
--- gdb/testsuite/gdb.hp/xdb1.c Wed Dec 31 16:00:00 1969
***************
*** 1,33 ****
- void
- bar (x)
- int x;
- {
- printf ("%d\n", x);
-
- long_line ();
- }
-
- static void
- unused ()
- {
- /* Not used for anything */
- }
-
-
- /* This routine has a very long line that will break searching in older
- versions of GDB. */
-
- long_line ()
- {
- oof (67);
-
- oof (6789);
-
- oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 5 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 10 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 15 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 20 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 25 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 30 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 35 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 40 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 45 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 50 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 55 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 60 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 65 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (1234); /* 70 */
- }
-
- oof (n)
- int n;
- {
- return n + 1;
- }
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/xdb1.exp gdb/testsuite/gdb.hp/xdb1.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/xdb1.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/xdb1.exp Wed Dec 31 16:00:00 1969
***************
*** 1,78 ****
- # Copyright (C) 1992, 1994, 1995 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # This file was written by Fred Fish. (fnf@cygnus.com)
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- global usestubs
-
- #
- # test running programs
- #
- set prms_id 0
- set bug_id 0
-
- set testfile "xdb"
- set srcfile ${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
- if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- if [get_compiler_info ${binfile}] {
- return -1;
- }
- if { $gcc_compiled } then { continue }
-
- global GDBFLAGS
- set saved_gdbflags $GDBFLAGS
-
- set GDBFLAGS "$GDBFLAGS --xdb"
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
- gdb_test "set pagination off" ""
- gdb_test "show pagination" "State of pagination is off."
- gdb_test "set pagination on" ""
- gdb_test "show pagination" "State of pagination is on."
-
- gdb_test "txbreak callee" "Breakpoint.*at.*"
- gdb_test "info break" "Num.*Type.*Disp.*Enb.*Address.*What\r\n.*breakpoint.*del.*y.*"
-
- gdb_test "xbreak callee" "Breakpoint.*at.*.*"
- gdb_test "info break" "Num.*Type.*Disp.*Enb.*Address.*What\r\n.*breakpoint.*keep.*y.*"
-
- gdb_exit
- set GDBFLAGS $saved_gdbflags
- return 0
-
-
-
-
-
-
-
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/xdb2.exp gdb/testsuite/gdb.hp/xdb2.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/xdb2.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/xdb2.exp Wed Dec 31 16:00:00 1969
***************
*** 1,105 ****
- # Copyright (C) 1992, 1994, 1995 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
- # This file was written by Fred Fish. (fnf@cygnus.com)
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- global message
-
- #
- # test running programs
- #
- set prms_id 0
- set bug_id 0
-
- set testfile "xdb"
- set binfile ${objdir}/${subdir}/${testfile}
-
- if { [gdb_compile "${srcdir}/${subdir}/xdb0.c" "${binfile}0.o" object {debug}] != "" } {
- perror "Couldn't compile ${testfile}0.c to object"
- return -1
- }
-
- if { [gdb_compile "${srcdir}/${subdir}/xdb1.c" "${binfile}1.o" object {debug}] != "" } {
- perror "Couldn't compile ${testfile}1.c to object"
- return -1
- }
-
- if { [gdb_compile "${binfile}0.o ${binfile}1.o" ${binfile} executable {debug}] != "" } {
- perror "Couldn't link ${testfile}."
- return -1
- }
-
- if [get_compiler_info ${binfile}] {
- return -1;
- }
-
- if { $gcc_compiled } then { continue }
-
- global GDBFLAGS
- set saved_gdbflags $GDBFLAGS
- set GDBFLAGS "$GDBFLAGS --xdb"
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
- gdb_test "break main" ""
- gdb_test "run" ""
- gdb_test "go +2" "Breakpoint.*at.*file.*xdb0\.c, line 12\.\r\nContinuing at.*\r\nmain \\(\\) at.*xdb0\.c:12\r\n12\[ \t\]+foo \\(x\\+\\+\\);"
- gdb_test "go -2" "Note: breakpoint.*also set at pc.*\.\r\nBreakpoint.*at.*file.*xdb0\.c, line 10\.\r\nContinuing at.*\.\r\n\r\nBreakpoint.*, main \\(\\) at.*xdb0\.c:10.*"
- gdb_test "go 16" "Breakpoint.*at.*file.*xdb0\.c, line 16\.\r\nContinuing at.*\.\r\nmain \\(\\) at.*xdb0\.c:16\r\n16\[ \t\]+foo \\(x\\+\\+\\);"
-
- send_gdb "go bar\n"
- gdb_expect {
- -re ".*Line 5 is not in .main.. Jump anyway.*y or n. $" {
- send_gdb "y\n"
- gdb_expect {
- -re "$gdb_prompt $"\
- {pass "go bar"}
- timeout {fail "(timeout) go bar"}
- }
- }
- -re "Continuing at.*\.\r\nbar \\(x=0\\) at.*xdb1\.c:5" {}
- timeout { perror "(timeout) go bar" ; return }
- }
-
- # Verify that GDB responds gracefully to a "go" command without
- # an argument.
- #
- gdb_test "go" "Usage: go <location>"
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
-
- gdb_test "break bar" ""
- gdb_test "run" ""
- gdb_test "backtrace full" ".*bar \\(x=0\\) at.*xdb1\.c:5\r\nNo locals\.\r\n.1.* in foo \\(x=1\\) at.*xdb0\.h:8\r\nNo locals\.\r\n.2.* in main \\(\\) at.*xdb0\.c:11\r\n.*x = 1"
- gdb_test "bt 1 full" ".*bar \\(x=0\\) at.*xdb1\.c:5\r\nNo locals\.\r\n\\(More stack frames follow\.\.\.\\)"
- gdb_test "bt full 2" ".*bar \\(x=0\\) at.*xdb1\.c:5\r\nNo locals\.\r\n.1.* in foo \\(x=1\\) at.*xdb0\.h:8\r\nNo locals\.\r\n\\(More stack frames follow\.\.\.\\)"
-
- set GDBFLAGS $saved_gdbflags
- return 0
--- 0 ----
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.hp/xdb3.exp gdb/testsuite/gdb.hp/xdb3.exp
*** ../gdb-19990719/gdb/testsuite/gdb.hp/xdb3.exp Tue Mar 23 20:06:22 1999
--- gdb/testsuite/gdb.hp/xdb3.exp Wed Dec 31 16:00:00 1969
***************
*** 1,308 ****
- # Copyright (C) 1998 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
- # (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. */
-
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- if { [skip_hp_tests] } then { continue }
-
- set testfile1 "average"
- set testfile2 "sum"
- set testfile "xdb-test"
- set binfile1 ${objdir}/${subdir}/${testfile1}
- set binfile2 ${objdir}/${subdir}/${testfile2}
- set binfile ${objdir}/${subdir}/${testfile}
-
- if { [gdb_compile "${srcdir}/${subdir}/average.c" "${binfile1}.o" object {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- if { [gdb_compile "${srcdir}/${subdir}/sum.c" "${binfile2}.o" object {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- if { [gdb_compile "${binfile1}.o ${binfile2}.o" ${binfile} executable {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
- }
-
- if [get_compiler_info ${binfile}] {
- return -1;
- }
- if { $gcc_compiled } then { continue }
-
-
- proc xdb_reinitialize_dir { subdir } {
- global gdb_prompt
-
- send_gdb "D\n"
- gdb_expect {
- -re "Reinitialize source path to empty.*y or n. " {
- send_gdb "y\n"
- gdb_expect {
- -re "Source directories searched.*$gdb_prompt $" {
- send_gdb "D $subdir\n"
- gdb_expect {
- -re "Source directories searched.*$gdb_prompt $" {
- verbose "Dir set to $subdir"
- }
- -re ".*$gdb_prompt $" {
- perror "Dir \"$subdir\" failed."
- }
- }
- }
- -re ".*$gdb_prompt $" {
- perror "Dir \"$subdir\" failed."
- }
- }
- }
- -re ".*$gdb_prompt $" {
- perror "Dir \"$subdir\" failed."
- }
- }
- }
-
- #
- #test_search
- #
- proc test_search { } {
- gdb_test "set listsize 4" ""
- gdb_test "list average.c:1" "1\[ \t\]+/. This is a sample .*"
- gdb_test "/ print_average" "10\[ \t\]+void print_average\\(int list.*"
- gdb_test "/ print_average" "12\[ \t\]+void print_average\\(list, low, high\\)"
- gdb_test "/ print_average" "35\[ \t\]+print_average \\(my_list, first, last\\);"
- gdb_test "? print_average" "12\[ \t\]+void print_average\\(list, low, high\\)"
- gdb_test "? sum" "Expression not found"
- }
-
- #
- #test_viewing_loc
- #
- proc test_viewing_loc { } {
- gdb_test "L" "No stack."
- gdb_test "break main" ""
- gdb_test "R" ""
- gdb_test "L" "#0\[ \t\]+main \\(\\) at.*average.c:31\r\n31\[ \t\]+int first = 0;"
- }
-
- #
- #test_dir_list
- #
- proc test_dir_list { } {
- gdb_test "ld" "Source directories searched: .*"
- }
-
- #
- #test_list_sources
- #
- proc test_list_sources { } {
- gdb_test "lf" "Source files for which symbols have been read in:.*average\\.c,.*Source files for which symbols will be read in on demand:.*sum\\.c"
- }
-
- #
- #test_vlist
- #
- proc test_vlist { } {
- gdb_test "v main" "27\[ \t\]+main \\(\\)\r\n28\[ \t\]+#endif\r\n29\[ \t\]+.\r\n30\[ \t\]+char c;"
- }
-
- #
- #test_va
- #
- proc test_va { } {
- gdb_test "va main" "Dump of assembler code for function main:.*End of assembler dump\."
- }
-
- #
- #test_list_globals
- #
- proc test_list_globals { } {
- gdb_test "lg" "All defined variables:\r\n\r\nFile globals:.*"
- # gdb_test "lg" "All defined variables:\r\n\r\nFile globals:\r\nchar __buffer.512.;\r\nint __d_eh_catch_catch;\r\nint __d_eh_catch_throw;.*"
- }
-
- #
- #test_list_registers
- #
- proc test_list_registers { } {
- gdb_test "lr" "\[ \t\]+flags:.*r18:.*pcsqt:.*ccr:.*\r\n\[ \t\]+r1:.*r19:.*eiem:.*cr12:.*"
- gdb_test "lr r1" "r1 .*"
- }
-
- #
- #test_backtrace
- #
- proc test_backtrace { } {
- gdb_test "t" "#0 main \\(\\) at.*average.c:31"
- gdb_test "T" "#0 main \\(\\) at.*average.c:31\r\n\[ \t\]+c = 0.*\r\n\[ \t\]+first = 0\r\n\[ \t\]+last = 0"
-
- gdb_test "break sum" ""
- gdb_test "cont" ""
-
- gdb_test "t" "#0 sum \\(list=0x.*, low=0, high=9\\) at.*sum\.c:11\r\n#1 0x.* in print_average \\(list=0x.*, low=0, high=9\\) at.*average\.c:17\r\n#2 0x.* in main \\(\\) at.*average\.c:35"
- gdb_test "t 1" "#0 sum \\(list=0x.*, low=0, high=9\\) at.*sum\.c:11\r\n\\(More stack frames follow\.\.\.\\)"
- gdb_test "T" "#0 sum \\(list=0x.*, low=0, high=9\\) at.*sum\.c:11\r\n\[ \t\]+i = 0\r\n\[ \t\]+s = 0\r\n#1 0x.* in print_average \\(list=0x.*, low=0, high=9\\) at.*average\.c:17\r\n\[ \t\]+total = 0\r\n\[ \t\]+num_elements = 0\r\n\[ \t\]+average = 0\r\n#2 0x.* in main \\(\\) at.*average\.c:35\r\n\[ \t\]+c = 0 '.000'\r\n\[ \t\]+first = 0\r\n\[ \t\]+last = 9"
- gdb_test "T 1" "#0 sum \\(list=0x.*, low=0, high=9\\) at.*sum\.c:11\r\n\[ \t\]+i = 0\r\n\[ \t\]+s = 0\r\n\\(More stack frames follow\.\.\.\\)"
-
- gdb_test "V" "#0 sum \\(list=0x.*, low=0, high=9\\) at.*sum\.c:11\r\n\\11\[ \t\]+int i, s = 0;"
- gdb_test "V 1" "#1 0x.* in print_average \\(list=0x.*, low=0, high=9\\) at.*average\.c:17\r\n17\[ \t\]+total = sum\\(list, low, high\\);"
- }
-
- #
- # test_go
- #
- proc test_go { } {
- gdb_test "break main" ""
- gdb_test "R" ""
-
- gdb_test "g +1" "Breakpoint.*at 0x.*: file.*average\.c, line 32\.\r\nContinuing at 0x.*\.\r\nmain \\(\\) at.*average\.c:32\r\n32\[ \t\]+int last = num-1;"
- gdb_test "g 35" "Breakpoint.*at 0x.*: file.*average\.c, line 35\.\r\nContinuing at 0x.*\.\r\nmain \\(\\) at.*average\.c:35\r\n35\[ \t\]+print_average \\(my_list, first, last\\);"
-
- }
-
- #
- #test_breakpoints
- #
- proc test_breakpoints { } {
- global gdb_prompt
-
- gdb_test "sb" ""
- gdb_test "lb" "Num.*Type.*Disp.*Enb.*Address.*What\r\n1\[ \r\]+breakpoint\[ \r\]+keep n.*in main at.*average\.c:31.*"
- gdb_test "ab" ""
- gdb_test "lb" "Num.*Type.*Disp.*Enb.*Address.*What\r\n1\[ \r\]+breakpoint\[ \r\]+keep y.*in main at.*average\.c:31.*"
- gdb_test "ba sum" "Breakpoint.*at.*: file.*sum\.c, line 11\."
- gdb_test "cont" ""
- gdb_test "bx" "Breakpoint.*at.*: file.*sum.c, line 15\."
- gdb_test "bx if (1)" "Breakpoint.*at.*: file.*sum.c, line 15\."
- gdb_test "bx 1" "Breakpoint.*at.*: file.*average.c, line 22\."
- gdb_test "bx 1 if (1)" "Breakpoint.*at.*: file.*average.c, line 22\."
- gdb_test "bc 1 2" "Will ignore next 2 crossings of breakpoint 1\."
- gdb_test "lb 1" "Num.*Type.*Disp.*Enb.*Address.*What\r\n1\[ \r\]+breakpoint\[ \r\]+keep y.*in main at.*average\.c:31\r\n.*breakpoint already hit 1 time\r\n.*ignore next 2 hits.*"
-
- send_gdb "db\n"
- gdb_expect {
- -re "Delete all breakpoints.*y or n. $" {
- send_gdb "y\n"
- exp_continue
- }
- -re "y\r\n$gdb_prompt $" {}
- -re ".*$gdb_prompt $" { # This happens if there were no breakpoints
- }
- timeout { perror "Delete all breakpoints (timeout)" ; return }
- }
- send_gdb "lb\n"
- gdb_expect {
- -re "No breakpoints or watchpoints..*$gdb_prompt $" {}
- -re ".*$gdb_prompt $" { perror "breakpoints not deleted" ; return }
- timeout { perror "info breakpoints (timeout)" ; return }
- }
- gdb_test "xbreak" "Breakpoint.*at.*file.*sum.c, line 15."
- gdb_test "xbreak print_average" "Breakpoint.*at.*file.*average.c, line 22."
- gdb_test "xbreak if (1)" "Note: breakpoint.*also set at pc.*Breakpoint.*at.*file.*sum.c, line 15."
- gdb_test "xbreak print_average if (1)" "Note: breakpoint.*also set at pc.*Breakpoint.*at.*file.*average.c, line 22."
-
- send_gdb "lb\n"
- gdb_expect {
- -re "Num Type Disp Enb Address What.*breakpoint keep y.*in sum at.*sum.c:15.*breakpoint keep y.*in print_average at.*average.c:22.*breakpoint keep y.*in sum at.*sum.c:15.*stop only if 1.*breakpoint keep y.*in print_average at.*average.c:22.*stop only if 1.*$gdb_prompt $" {pass "lb on xbreaks"}
- -re ".*$gdb_prompt $" { fail "breakpoints not deleted"}
- timeout { fail "info breakpoints (timeout)" }
- }
-
- }
-
- #
- # test_signals
- #
- proc test_signals { } {
- gdb_test "handle SIGTERM nostop noprint" ""
- gdb_test "z SIGTERM s" "Signal.*Stop.*Print.*Pass to program.*Description\r\nSIGTERM.*Yes.*Yes.*Yes.*Terminated"
- gdb_test "z SIGTERM r" "Signal.*Stop.*Print.*Pass to program.*Description\r\nSIGTERM.*No.*No.*Yes.*Terminated"
- gdb_test "z SIGTERM i" "Signal.*Stop.*Print.*Pass to program.*Description\r\nSIGTERM.*No.*No.*No.*Terminated"
- gdb_test "z SIGTERM r" "Signal.*Stop.*Print.*Pass to program.*Description\r\nSIGTERM.*No.*Yes.*No.*Terminated"
- gdb_test "z SIGTERM Q" "Signal.*Stop.*Print.*Pass to program.*Description\r\nSIGTERM.*No.*No.*No.*Terminated"
- gdb_test "lz" "Signal.*Stop.*Print.*Pass to program.*Description\r\n\r\nSIGHUP.*Yes.*"
- }
-
-
-
- # Start with a fresh gdb.
- global GDBFLAGS
- set saved_gdbflags $GDBFLAGS
-
- set GDBFLAGS "$GDBFLAGS --xdb"
-
- gdb_exit
- gdb_start
-
- xdb_reinitialize_dir $srcdir/$subdir
-
- gdb_load ${binfile}
- send_gdb "set width 0\n"
- gdb_expect -re "$gdb_prompt $"
- test_search
- test_viewing_loc
- test_dir_list
- test_list_sources
- test_vlist
- test_va
- gdb_test "l" "No arguments.\r\nc = 0.*\r\nfirst = 0\r\nlast = 0"
- #test_list_globals
- test_list_registers
- test_backtrace
-
- # Start with a fresh gdb.
-
- gdb_exit
- gdb_start
- xdb_reinitialize_dir $srcdir/$subdir
-
- gdb_load ${binfile}
- send_gdb "set width 0\n"
- gdb_expect -re "$gdb_prompt $"
- test_go
-
-
- gdb_exit
- gdb_start
- xdb_reinitialize_dir $srcdir/$subdir
-
- gdb_load ${binfile}
- send_gdb "set width 0\n"
- gdb_expect -re "$gdb_prompt $"
- gdb_test "break main" ""
- gdb_test "R" ""
- gdb_test "S" "32\[ \t\]+int last = num-1;"
- test_breakpoints
- test_signals
- gdb_test "sm" ""
- gdb_test "info set" ".*pagination: State of pagination is off.*"
- gdb_test "am" ""
- gdb_test "info set" ".*pagination: State of pagination is on.*"
- gdb_exit
-
- set GDBFLAGS $saved_gdbflags
-
- return 0
-
-
-
-
-
-
--- 0 ----
^ permalink raw reply [flat|nested] 7+ messages in thread
* gdb.threads testsuite patch
1999-07-22 18:19 gdb.disasm testsuite patch Jimmy Guo
` (2 preceding siblings ...)
1999-07-22 18:43 ` gdb.hp " Jimmy Guo
@ 1999-07-22 18:52 ` Jimmy Guo
1999-08-04 17:01 ` gdb.disasm " Stan Shebs
4 siblings, 0 replies; 7+ messages in thread
From: Jimmy Guo @ 1999-07-22 18:52 UTC (permalink / raw)
To: gdb-patches
This patch contains merged gdb.threads testsuite, and it concludes the
HP <-> Cygnus gdb testsuite merge patches for now :)
File renames / moves (a tar file of gdb.threads has been ftp'd over as
ftp.cygnus.com:/incoming/hp_gdb.threads.tar):
Old New
--- ---
gdb.hp/attach2.exp attach2.exp
compiler.c
gdb.hp/more-steps.c more-steps.c
gdb.hp/more-steps.exp more-steps.exp
gdb.hp/quicksort.c quicksort.c
gdb.hp/quicksort.exp quicksort.exp
gdb.hp/start-stop.c start-stop.c
gdb.hp/start-stop.exp start-stop.exp
gdb.hp/thr-lib.c thr-lib.c
gdb.hp/thr-lib.exp thr-lib.exp
gdb.hp/thr-lib.h thr-lib.h
gdb.hp/thr-liblib.c thr-liblib.c
gdb.hp/thr-stg.exp thr-stg.exp
- Jimmy Guo, guo@cup.hp.com
/opt/gnu/bin/diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.threads gdb/testsuite/gdb.threads
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.threads/Makefile.in gdb/testsuite/gdb.threads/Makefile.in
*** ../gdb-19990719/gdb/testsuite/gdb.threads/Makefile.in Fri Oct 11 17:10:37 1996
--- gdb/testsuite/gdb.threads/Makefile.in Thu Jul 22 17:50:35 1999
***************
*** 1,7 ****
VPATH = @srcdir@
srcdir = @srcdir@
! EXECUTABLES = pthreads
all:
@echo "Nothing to be done for all..."
--- 1,9 ----
VPATH = @srcdir@
srcdir = @srcdir@
! EXECUTABLES = more-steps pthreads quicksort step start-stop thr-lib
!
! MISCELLANEOUS = thr-liblib.sl
all:
@echo "Nothing to be done for all..."
***************
*** 15,21 ****
check:
clean mostlyclean:
! -rm -f *~ *.o a.out xgdb *.x *.ci *.tmp core* $(EXECUTABLES)
distclean maintainer-clean realclean: clean
-rm -f Makefile config.status config.log config.h
--- 17,25 ----
check:
clean mostlyclean:
! -rm -f *~ *.o *.ci
! -rm -f core $(EXECUTABLES)
! -rm -f $(MISCELLANEOUS)
distclean maintainer-clean realclean: clean
-rm -f Makefile config.status config.log config.h
***************
*** 24,29 ****
--- 28,34 ----
$(SHELL) ./config.status --recheck
config.h: stamp-h ; @true
+
stamp-h: config.in config.status
CONFIG_HEADERS=config.h:config.in $(SHELL) config.status
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.threads/attach2.exp gdb/testsuite/gdb.threads/attach2.exp
*** ../gdb-19990719/gdb/testsuite/gdb.threads/attach2.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.threads/attach2.exp Thu Jul 22 17:50:37 1999
***************
*** 0 ****
--- 1,263 ----
+ # attach.exp -- Expect script to test attaching to a threaded pgm
+ # Copyright (C) 1992 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ if { ![istarget "hppa*-*-hpux11.*"] } {
+ verbose "HPUX thread test ignored for non-hppa or pre-HP/UX-10.30 targets."
+ return 0
+ }
+
+ set testfile quicksort
+ set srcfile ${srcdir}/${subdir}/${testfile}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile}] {
+ return -1
+ }
+
+ set oldtimeout $timeout
+ set oldverbose $verbose
+
+ # To build the executable we need to link against the thread library.
+ #
+ if { $hp_cc_compiler } {
+ set additional_flags "additional_flags=-Ae"
+ } else {
+ set additional_flags ""
+ }
+
+ if { [gdb_compile "${srcdir}/${subdir}/${testfile}.c" "${binfile}" executable [list debug $additional_flags ldflags=-lpthread]] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ # Because we can't attach over nfs, copy binfile to /tmp/${binfile}.${pid}
+ # and replace binfile with a symbolic link
+
+ set pid [pid]
+ exec /bin/cp -f ${binfile} /tmp/attach2.${pid}
+ exec rm -f ${binfile}
+ exec ln -s /tmp/attach2.${pid} ${binfile}
+
+ # Thread stuff is _slow_; prepare for long waits.
+ #
+ # Further, this test has some "null" lines designed
+ # to consume output from gdb that was too late to be
+ # matched (sequence is "gdb_test" sends; timeout and
+ # on to next send; result finally comes in; mismatch).
+ #
+ # The null command is 'gdb_test "p \$pc" ".*" ""'
+ # NOTE: this command undoes any up/down stuff!
+ #
+ proc pre_timeout { how_long } {
+ global timeout
+
+ set timeout [expr "$timeout + $how_long"]
+ }
+
+ proc post_timeout {} {
+ global timeout
+ global oldtimeout
+
+ set timeout $oldtimeout
+ gdb_test "p \$pc" ".*" ""
+ }
+
+ # We used to wait 5 seconds , but tiamat is faster than
+ # hydra...or is it that the OS allocates time differently(?).
+ #
+ set delay 5
+ if { ![istarget "hppa*-*-hpux11.*"] } {
+ set delay 45
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+
+ # Start the application running and get its pid.
+ # Then we wait for it to get started and attach.
+ #
+ set testpid [eval exec $binfile 1 &]
+ exec sleep $delay
+
+ # Now attach to the file.
+ #
+ pre_timeout 100
+ gdb_test "file $binfile" ".*" "Force switch to gdb64 if necessary."
+ gdb_test "attach $testpid" ".*Attaching to.*process.*Reading symbols from.*done.*" "attach to target"
+ post_timeout
+
+ # Wait for things to quiesce.
+ #
+ exec sleep 0
+
+ send_gdb "bt\n"
+
+ set do_return 0
+ set do_go_to_118 0
+ pre_timeout 400
+ gdb_expect {
+ -re ".*sleep.*work_init.*main.*$gdb_prompt $" {
+ pass "at expected location"
+ }
+ -re ".*drand48.*$gdb_prompt $" {
+ set do_go_to_118 1
+ }
+ -re ".*pthread_mutex_lock.*$gdb_prompt $" {
+ set do_go_to_118 1
+ }
+ -re ".*pthread_mutex_unlock.*$gdb_prompt $" {
+ set do_go_to_118 1
+ }
+ -re ".*main.*$gdb_prompt $" {
+ set do_go_to_118 1
+ }
+ -re ".*No stack.*$gdb_prompt $" {
+ fail "Failed attach, change wait amount down, rest would fail"
+ set do_return 1
+ }
+ -re ".*$gdb_prompt $" {
+ # Who knows?
+ #
+ set do_go_to_118 1
+ }
+ timeout {
+ set do_return 1
+ fail "timeout on bt, avoiding rest of test"
+ }
+ }
+ post_timeout
+
+ # Too late; just give up.
+ #
+ if { $do_return } {
+ set timeout $oldtimeout
+ set verbose $oldverbose
+ return 0
+ }
+
+ # Maybe too early--set a temp break and continue.
+ # We have to set this on both paths, so that we can
+ # know what numbers breakpoints will be.
+ #
+ gdb_test "tb 118" ".*Breakpoint 1.*118.*"
+ if { $do_go_to_118 } {
+ pre_timeout 100
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*at.*118.*118.*$gdb_prompt $" {
+ # Ok, just keep going
+ }
+ -re ".*Program exited.*$gdb_prompt $" {
+ fail "Attached too late, set wait amount downwards"
+ set timeout $oldtimeout
+ set verbose $oldverbose
+ return 0
+ }
+ -re ".*$gdb_prompt $" {
+ fail "Unexpected result on attach"
+ set timeout $oldtimeout
+ set verbose $oldverbose
+ return 0
+ }
+ timeout {
+ fail "timeout on continue "
+ }
+ }
+ post_timeout
+ }
+ gdb_test "delete 1" ".*" "delete bp 1 if it is still there."
+
+ # Look at the threads.
+ #
+ pre_timeout 100
+ gdb_test "info thread" ".*7.*6.*5.*4.*3.*2.*\\\* 1.*thread.*" "first info thread"
+ post_timeout
+
+ # We expect to be inside the "sleep" call, so check that.
+ #
+ if { [expr "!$do_go_to_118"] } {
+ gdb_test "up" ".*\#1.*(nanosleep|_sigtimedwait|sigtimedwait).*" "up 1"
+ gdb_test "up" ".*\#2.*sleep.*" "up 2"
+ pre_timeout 100
+ gdb_test "up" ".*\#3.*work_init.*$testfile.*c:11\[48\].*sleep.*" "up 3"
+ post_timeout
+ } else {
+ send_user "Skipped three tests\n"
+ }
+
+ # Get out of that call.
+ #
+ gdb_test "b 120" ".*Breakpoint 2.*120.*" "set bp"
+ pre_timeout 100
+ gdb_test "c" ".*Breakpoint 2.*at.*120.*" "hit bp"
+ post_timeout
+
+ # Look at the threads.
+ #
+ pre_timeout 100
+ gdb_test "info thread" ".*7.*6.*5.*4.*3.*2.*1.*thread.*$testfile.*c*120.*" "2nd info thread"
+ post_timeout
+
+ # Do some more stuff, to make sure we can
+ #
+ gdb_test "thread 3" ".*Switching to.*thread.*ksleep.*" "switch thread"
+
+ if [istarget "hppa2.0w-*-*"] {
+ gdb_test "up" ".*in .stub.*from.*libpthread.*" "up 5"
+ } else {
+ gdb_test "up" ".*_lwp_cond_timedwait.*" "up 5"
+ }
+ gdb_test "up" ".*pthread_cond_wait.*" "up 6"
+ gdb_test "up" ".*\#3.*worker.*144.*" "up 7"
+ gdb_test "up" ".*(__pthread_exit|__pthread_create_system).*" "up 8"
+ gdb_test "up" ".*Initial.*cannot go up.*" "found thread base"
+
+ gdb_test "b 145 thr 3" ".*Breakpoint 3.*145.*" "thread-specific bp"
+ gdb_test "i b" ".*2.*breakpoint.*at.*120.*3.*breakpoint.*at.*145 thread 3.*" "show thread-specific bp"
+ gdb_test "del 2" ".*"
+
+ gdb_test "c" ".*Breakpoint 3.*145.*" "hit thread-specific bp"
+ gdb_test "i th" ".*\\\* 3.*145.*" "at correct thread"
+
+ pre_timeout 100
+ gdb_test "n" ".*146.*" "next from thread-specific bp"
+ post_timeout
+
+ gdb_test "d 3" ".*"
+ gdb_test "c" ".*Program exited normally\..*" "run to finish"
+
+ # Done!
+ #
+ gdb_exit
+
+ set timeout $oldtimeout
+ set verbose $oldverbose
+
+ # Cleanup the file placed in /tmp and the symlink
+ #
+ exec rm -f ${binfile} /tmp/attach2.${pid}
+
+ return 0
+
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.threads/compiler.c gdb/testsuite/gdb.threads/compiler.c
*** ../gdb-19990719/gdb/testsuite/gdb.threads/compiler.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.threads/compiler.c Thu Jul 22 17:48:46 1999
***************
*** 0 ****
--- 1,31 ----
+ /* Often the behavior of any particular test depends upon what compiler was
+ used to compile the test. As each test is compiled, this file is
+ preprocessed by the same compiler used to compile that specific test
+ (different tests might be compiled by different compilers, particularly
+ if compiled at different times), and used to generate a *.ci (compiler
+ info) file for that test.
+
+ I.E., when callfuncs is compiled, a callfuncs.ci file will be generated,
+ which can then be sourced by callfuncs.exp to give callfuncs.exp access
+ to information about the compilation environment.
+
+ TODO: It might be a good idea to add expect code that tests each
+ definition made with 'set" to see if one already exists, and if so
+ warn about conflicts if it is being set to something else. */
+
+ /* This needs to be kept in sync with whatis.c and gdb.exp(get_compiler_info).
+ If this ends up being hairy, we could use a common header file. */
+
+ #if defined (__STDC__) || defined (_AIX)
+ set signed_keyword_not_used 0
+ #else
+ set signed_keyword_not_used 1
+ #endif
+
+ #if defined (__GNUC__)
+ set gcc_compiled __GNUC__
+ #else
+ set gcc_compiled 0
+ #endif
+
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.threads/more-steps.c gdb/testsuite/gdb.threads/more-steps.c
*** ../gdb-19990719/gdb/testsuite/gdb.threads/more-steps.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.threads/more-steps.c Thu Jul 22 17:50:38 1999
***************
*** 0 ****
--- 1,140 ----
+ /* BeginSourceFile more_steps.c
+
+ This file creates a lot of threads which then execute
+ in parallel, so that wdb can be tested on handling
+ simultaneous thread events.
+
+ To compile:
+
+ cc -Ae +DA1.0 -g -o more_steps -lpthread more_steps.c
+
+ To run:
+
+ more_threads
+ */
+
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <assert.h>
+ #include <pthread.h>
+
+ #define TRUE 1
+ #define FALSE 0
+ #define N_THREADS 3
+ #define PHASES 3
+
+ typedef enum {
+ ZERO,
+ ONE,
+ TWO,
+ THREE
+ } phase_t;
+
+ /* Uncomment to turn on debugging output */
+ /* #define DEBUG */
+
+ /* Locks.
+ */
+ int lock_one; /* Main W, others R */
+ int lock_two; /* ditto */
+ int lock_end[ N_THREADS ]; /* Main R, others R[i] */
+ int phase[ N_THREADS ];
+
+ /* Routine for each thread to run.
+ */
+ void *spin( vp )
+ void * vp;
+ {
+ int me = (int) vp;
+ int i;
+
+ lock_end[ me ] = TRUE;
+
+ phase[ me ] = ONE;
+
+ while( lock_one );
+
+ phase[ me ] = TWO;
+
+ while( lock_two );
+
+ phase[ me ] = THREE;
+
+ lock_end[ me ] = FALSE;
+ }
+
+ void
+ do_pass()
+ {
+ int i;
+ pthread_t t[ N_THREADS ];
+ int err;
+ int done;
+
+ /* Start N_THREADS threads, then join them so
+ * that they are terminated.
+ */
+ for( i = 0; i < N_THREADS; i++ ) {
+ err = pthread_create( &t[i], NULL, spin, (void *)i );
+ if( err != 0 ) {
+ printf( "== Start/stop, error in thread %d create\n", i );
+ }
+ }
+
+ /* Do phase 1.
+ */
+ lock_one = FALSE;
+
+ /* Do phase 2.
+ */
+ lock_two = FALSE;
+
+ /* Be done.
+ */
+ done = 0;
+ while( !done ) {
+
+ /* Be optimistic.
+ */
+ done = 1;
+ for( i = 0; i < N_THREADS; i++ ) {
+ if( lock_end[i] ) {
+ /* Thread "i" is not ready yet.
+ */
+ done = 0;
+ break;
+ }
+ }
+ }
+
+ /* Finish up
+ */
+ for( i = 0; i < N_THREADS; i++ ) {
+ err = pthread_join(t[i], NULL ); /* Line 105 */
+ if( err != 0 ) { /* Line 106 */
+ printf( "== Start/stop, error in thread %d join\n", i );
+ }
+ }
+
+ i = 10; /* Line 109. Null line for setting bpts on. */
+ }
+
+ main( argc, argv )
+ int argc;
+ char **argv;
+ {
+ int i;
+
+ /* Init
+ */
+ lock_one = TRUE;
+ lock_two = TRUE;
+ for( i = 0; i < N_THREADS; i++ ) {
+ lock_end[i] = TRUE;
+ phase[i] = ZERO;
+ }
+
+ do_pass();
+ return(0);
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.threads/more-steps.exp gdb/testsuite/gdb.threads/more-steps.exp
*** ../gdb-19990719/gdb/testsuite/gdb.threads/more-steps.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.threads/more-steps.exp Thu Jul 22 17:50:38 1999
***************
*** 0 ****
--- 1,131 ----
+ # more-steps.exp -- Expect script to test gdb's ability to step threaded pgms
+ # Copyright (C) 1992 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ if { ![istarget "hppa*-*-hpux11.*"] } {
+ verbose "HPUX thread test ignored for non-hppa or pre-HP/UX-10.30 targets."
+ return 0
+ }
+
+ set testfile more-steps
+ set srcfile ${srcdir}/${subdir}/${testfile}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile}] {
+ return -1
+ }
+
+ # To build the executable we need to link against the thread library.
+ #
+ if { $hp_cc_compiler } {
+ set additional_flags "additional_flags=-Ae"
+ } else {
+ set additional_flags ""
+ }
+
+ if { [gdb_compile "${srcdir}/${subdir}/${testfile}.c" "${binfile}" executable [list debug $additional_flags ldflags=-lpthread]] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ # Thread stuff is _slow_; prepare for long waits.
+ #
+ set oldtimeout $timeout
+ set timeout [expr "$timeout + 300"]
+ set oldverbose $verbose
+ #set verbose 40
+
+ # Further, this test has some "null" lines designed
+ # to consume output from gdb that was too late to be
+ # matched (sequence is "gdb_test" sends; timeout and
+ # on to next send; result finally comes in; mismatch).
+ #
+ # The null command is 'gdb_test "p \$pc" ".*" ""'
+ #
+ # NOTE: to pass a literal "$", "/" or "*" (etc.) to gdb_test,
+ # remember that the pattern will be escaped once and
+ # $-evaluated twice:
+ #
+ # "\\\*" matches "\*"
+ # "\$" matches "$"
+ #
+ proc fix_timeout {} {
+ gdb_test "p \$pc" ".*" ""
+ }
+
+ #=========================
+ #
+ # Simple sanity test first.
+ #
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ # First, step in the main thread.
+ #
+ gdb_test "b do_pass" ".*Breakpoint 1.*" "breakpoint at do_pass"
+ gdb_test "r" ".*Breakpoint 1.*do_pass.*" "run"
+
+ # Breaks as well as nexts to make
+ # sure we can handle simultaneous hit
+ # of bpt and step, as well as stepping
+ # past bpts.
+ #
+ gdb_test "tb 87" ".*Breakpoint 2.*" "tbreak at line 87"
+ gdb_test "tb 91" ".*Breakpoint 3.*" "tbreak at line 91"
+ gdb_test "tb 96" ".*Breakpoint 4.*" "tbreak at line 96"
+ gdb_test "tb 113" ".*Breakpoint 5.*" "tbreak at line 113"
+ gdb_test "c" ".*do_pass.*87.*" "87"
+ gdb_test "n" ".*do_pass.*91.*" "n"
+
+ # This only gets a number, as it doesn't
+ # hit a bpt.
+ #
+ gdb_test "n" ".*95.*" "n"
+
+ gdb_test "n" ".*do_pass.*96.*" "n"
+ gdb_test "c" ".*do_pass.*113.*" "c"
+ gdb_test "c" ".*Program exited normally.*" "c"
+
+ # Now step in a thread
+ #
+ gdb_test "r" ".*Breakpoint.*do_pass.*" "do_pass"
+ gdb_test "until 87" ".*do_pass.*87.*" "until"
+ gdb_test "thr 4" ".*Switching to thread 4.*spin.*56.*" "switch"
+ gdb_test "tb 60 thr 4" ".*Breakpoint.*" "tbreak at line 60 thread 4"
+
+ # If we do "next" now, all the other threads
+ # can finish!
+ #
+ gdb_test "n" ".*58.*" "next line"
+ gdb_test "i th" ".*\\\* 4 sys.*spin.*1 sys.*do_pass.*" "still in 4"
+
+ # Done!
+ #
+ gdb_exit
+
+ set timeout $oldtimeout
+ set verbose $oldverbose
+
+ return 0
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.threads/pthreads.exp gdb/testsuite/gdb.threads/pthreads.exp
*** ../gdb-19990719/gdb/testsuite/gdb.threads/pthreads.exp Tue Feb 9 14:43:31 1999
--- gdb/testsuite/gdb.threads/pthreads.exp Thu Jul 22 17:50:37 1999
***************
*** 50,55 ****
--- 50,56 ----
set options "debug"
lappend options "incdir=${objdir}/${subdir}"
lappend options "libs=$lib"
+ clone_output "Trying to link against $lib"
set ccout [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $options]
switch -regexp -- $ccout {
".*no posix threads support.*" {
***************
*** 65,73 ****
--- 66,77 ----
{^$} {
pass "successfully compiled posix threads test case"
set built_binfile 1
+ clone_output "Linking against $lib works."
break
}
}
+
+ clone_output "Failure ignored."
}
if {$built_binfile == "0"} {
unsupported "Couldn't compile ${srcfile}, ${why_msg}"
***************
*** 180,186 ****
# We should be able to do an info threads before starting any others.
send_gdb "info threads\n"
gdb_expect {
! -re ".*Thread.*LWP.*main.*$gdb_prompt $" {
pass "info threads"
}
-re "\r\n$gdb_prompt $" {
--- 184,190 ----
# We should be able to do an info threads before starting any others.
send_gdb "info threads\n"
gdb_expect {
! -re ".*(Thread.*LWP| thread ).*main.*$gdb_prompt $" {
pass "info threads"
}
-re "\r\n$gdb_prompt $" {
***************
*** 193,223 ****
# Extract the thread id number of main thread from "info threads" output.
send_gdb "info threads\n"
! gdb_expect -re "(\[0-9\]+)(${horiz}Thread${horiz}main.*)($gdb_prompt $)"
set main_id $expect_out(1,string)
# Check that we can continue and create the first thread.
gdb_test "break thread1" "Breakpoint .* file .*$srcdir.*"
gdb_test "continue" \
! "Continuing.*Breakpoint .*, thread1 \\(arg=0xfeedface\\).*at.*$srcfile.*" \
"Continue to creation of first thread"
gdb_test "disable" ""
# Extract the thread id number of thread 1 from "info threads" output.
send_gdb "info threads\n"
! gdb_expect -re "(\[0-9\]+)(${horiz}Thread${horiz}thread1.*)($gdb_prompt $)"
set thread1_id $expect_out(1,string)
# Check that we can continue and create the second thread,
# ignoring the first thread for the moment.
gdb_test "break thread2" "Breakpoint .* file .*$srcdir.*"
gdb_test "continue" \
! "Continuing.*Breakpoint .*, thread2 \\(arg=0xdeadbeef\\).*at.*$srcfile.*" \
"Continue to creation of second thread"
# Extract the thread id number of thread 2 from "info threads" output.
send_gdb "info threads\n"
! gdb_expect -re "(\[0-9\]+)(${horiz}Thread${horiz}thread2.*)($gdb_prompt $)"
set thread2_id $expect_out(1,string)
return 1
--- 197,227 ----
# Extract the thread id number of main thread from "info threads" output.
send_gdb "info threads\n"
! gdb_expect -re "(\[0-9\]+)${horiz}(Thread|thread)${horiz}main.*$gdb_prompt $"
set main_id $expect_out(1,string)
# Check that we can continue and create the first thread.
gdb_test "break thread1" "Breakpoint .* file .*$srcdir.*"
gdb_test "continue" \
! "Continuing.*Breakpoint .*, thread1 \\(arg=0xfeedface.*\\).*at.*$srcfile.*" \
"Continue to creation of first thread"
gdb_test "disable" ""
# Extract the thread id number of thread 1 from "info threads" output.
send_gdb "info threads\n"
! gdb_expect -re "(\[0-9\]+)${horiz}(Thread|thread)${horiz}thread1.*$gdb_prompt $"
set thread1_id $expect_out(1,string)
# Check that we can continue and create the second thread,
# ignoring the first thread for the moment.
gdb_test "break thread2" "Breakpoint .* file .*$srcdir.*"
gdb_test "continue" \
! "Continuing.*Breakpoint .*, thread2 \\(arg=0xdeadbeef.*\\).*at.*$srcfile.*" \
"Continue to creation of second thread"
# Extract the thread id number of thread 2 from "info threads" output.
send_gdb "info threads\n"
! gdb_expect -re "(\[0-9\]+)${horiz}(Thread|thread)${horiz}thread2.*$gdb_prompt $"
set thread2_id $expect_out(1,string)
return 1
***************
*** 232,240 ****
}
# Send a continue followed by ^C to the process to stop it.
! send_gdb "continue\n"
set description "Stopped with a ^C"
! after 1000 [send_gdb "\003"]
gdb_expect {
-re "Program received signal SIGINT.*$gdb_prompt $" {
pass $description
--- 236,256 ----
}
# Send a continue followed by ^C to the process to stop it.
! #
! # On fast systems the 'after 1000' part will have the threads
! # stopped by breakpoint SIGTRAP.
! # On HP-UX we'll just send ^C when we see that the threads are
! # running again.
! # - guo
! #
set description "Stopped with a ^C"
! if [istarget "hppa*-hp-hpux*"] {
! send_gdb "continue\n"
! gdb_expect -re "Continuing"
! send_gdb "\003"
! } else {
! after 1000 [send_gdb "\003"]
! }
gdb_expect {
-re "Program received signal SIGINT.*$gdb_prompt $" {
pass $description
***************
*** 242,247 ****
--- 258,266 ----
-re "Quit.*$gdb_prompt $" {
pass $description
}
+ -re "$gdb_prompt $" {
+ fail $description
+ }
timeout {
fail "$description (timeout)"
}
***************
*** 263,272 ****
".* in main \\(argc=.*, argv=.*\\).*" \
"check backtrace from main thread"
gdb_test "thread apply $thread1_id backtrace" \
! ".* in thread1 \\(arg=0xfeedface\\).*" \
"check backtrace from thread 1"
gdb_test "thread apply $thread2_id backtrace" \
! ".* in thread2 \\(arg=0xdeadbeef\\).*" \
"check backtrace from thread 2"
# Check that we can apply the backtrace command to all
--- 282,291 ----
".* in main \\(argc=.*, argv=.*\\).*" \
"check backtrace from main thread"
gdb_test "thread apply $thread1_id backtrace" \
! ".* in thread1 \\(arg=0xfeedface.*\\).*" \
"check backtrace from thread 1"
gdb_test "thread apply $thread2_id backtrace" \
! ".* in thread2 \\(arg=0xdeadbeef.*\\).*" \
"check backtrace from thread 2"
# Check that we can apply the backtrace command to all
***************
*** 324,328 ****
--- 343,355 ----
check_control_c
check_backtraces
}
+
+ # let the program continue so we don't have the process hanging
+ # on the system
+ # - guo
+ send_gdb "disable\n"
+ gdb_expect -re "$gdb_prompt $"
+ send_gdb "continue\n"
+ gdb_expect -re "$gdb_prompt $"
}
clear_xfail "alpha-*-osf*"
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.threads/quicksort.c gdb/testsuite/gdb.threads/quicksort.c
*** ../gdb-19990719/gdb/testsuite/gdb.threads/quicksort.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.threads/quicksort.c Thu Jul 22 17:50:38 1999
***************
*** 0 ****
--- 1,284 ----
+ /* BeginSourceFile quicksort.c
+
+ This file is take from the DDE test system. It spawns six
+ threads to do a sort of an array of random numbers.
+
+ The locations marked "quick N" are used in the test "quicksort.exp".
+
+ The locations marked "att N" are used in the test "attach.exp".
+
+ To compile:
+
+ cc -Ae +DA1.0 -g -o quicksort -lpthread quicksort.c
+
+ To run:
+
+ quicksort --normal run
+ quicksort 1 --waits before starting to allow attach
+ */
+
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <assert.h>
+ #include <pthread.h>
+
+ #define TRUE 1
+ #define FALSE 0
+ #define SORTSET 100000
+
+ /* Uncomment to turn on debugging output */
+ /* #define QUICK_DEBUG */
+
+ /* Uncomment to turn on wait on each thread create */
+ /* #define THREAD_WAIT */
+
+ /* Fewer than SORT_DIRECT items are sorted with an insertion sort. */
+ #define SORT_DIRECT 20
+
+ /* Work at this depth or less generates a separate work item. */
+ #define DEFER_DEPTH 6
+
+ /* Workpile controller */
+ typedef void (*work_proc_t)(void *);
+
+ typedef struct workpile_struct {
+ pthread_mutex_t lock; /* mutex for this structure */
+ pthread_cond_t work_wait; /* workers waiting for work */
+ pthread_cond_t finish_wait; /* to wait for workers to finish */
+ int max_pile; /* length of workpile array */
+ work_proc_t worker_proc; /* work procedure */
+ int n_working; /* number of workers working */
+ int n_waiting; /* number of workers waiting for work */
+ int n_pile; /* number of pointers in the workpile */
+ int inp; /* FIFO input pointer */
+ int outp; /* FIFO output pointer */
+ void *pile[1]; /* array of pointers - the workpile */
+ } *workpile_t;
+
+ typedef struct {
+ float *data; /* Array to sort */
+ int n; /* Number of elements in the array */
+ int depth; /* Depth of recursion */
+ workpile_t wp; /* Workpile to use */
+ } quick_sort_args;
+
+ /* True if waiting for attach.
+ */
+ int wait_here = FALSE;
+
+ static workpile_t quick_sort_workpile = NULL;
+
+ void *worker(void * wptr);
+
+ /* Allocates and initializes a workpile that holds max_pile entries.
+ * worker_proc is called to process each work item on the queue.
+ */
+ workpile_t
+ work_init(int max_pile, work_proc_t worker_proc, int n_threads)
+ {
+ int err;
+ pthread_t t;
+ workpile_t *wpptr = (workpile_t *)malloc (sizeof(workpile_t));
+ workpile_t wp = (workpile_t)malloc(sizeof (struct workpile_struct) +
+ (max_pile * sizeof (void *)));
+ if (wp != NULL) {
+ *wpptr = wp;
+ pthread_mutex_init(&wp->lock, NULL);
+ pthread_cond_init(&wp->work_wait, NULL);
+ pthread_cond_init(&wp->finish_wait, NULL);
+ wp->max_pile = max_pile;
+ wp->worker_proc = worker_proc;
+ wp->n_working = wp->n_waiting = wp->n_pile = 0;
+ wp->inp = wp->outp = 0;
+ while (n_threads--) {
+ err = pthread_create(&t, NULL,
+ worker, (void *)wpptr);
+ #ifdef QUICK_DEBUG
+ printf( "== Quicksort: created new thread\n" );
+ #ifdef THREAD_WAIT
+ if( n_threads > 0 ) {
+ int i;
+ printf( "== Quicksort: waiting on user input of an integer\n" );
+ scanf( "%d", &i );
+ printf( "== Quicksort: continuing with quicksort\n" );
+ }
+ #endif
+ #endif
+
+ assert(err == 0); /* quick 1 */
+ }
+ /* All the threads have now been created.
+ */
+ assert( n_threads == -1 ); /* att 1 */
+ if( wait_here ) { sleep(10); /* gdb.threads/attache.exp */
+ #ifdef QUICK_DEBUG /* wants to hit 118 after c */
+ printf( "== Quicksort: waiting for attach\n" );
+ #endif
+ sleep( 25 );
+ }
+ wait_here = 99; /* att 2, otherwise useless */
+ }
+ return (wp); /* quick 2 */
+ }
+
+ /*
+ * Worker thread routine. Continuously looks for work, calls the
+ * worker_proc associated with the workpile to do work.
+ */
+ void *
+ worker(void * wptr)
+ {
+ workpile_t wp;
+ void *ptr;
+
+ wp = * (workpile_t *) wptr;
+
+ pthread_mutex_lock(&wp->lock);
+ wp->n_working++;
+ for (;;) {
+ while (wp->n_pile == 0) { /* wait for new work */
+ if (--wp->n_working == 0)
+ pthread_cond_signal(&wp->finish_wait);
+ wp->n_waiting++;
+ pthread_cond_wait(&wp->work_wait, &wp->lock);
+ wp->n_waiting--; /* quick 3 */
+ wp->n_working++;
+ }
+ wp->n_pile--;
+ ptr = wp->pile[wp->outp];
+ wp->outp = (wp->outp + 1) % wp->max_pile;
+ pthread_mutex_unlock(&wp->lock);
+ /* Call application worker routine. */
+ (*wp->worker_proc)(ptr);
+ pthread_mutex_lock(&wp->lock); /* quick 4 */
+ }
+ /* NOTREACHED */
+ }
+
+ /* Puts ptr in workpile. Called at the outset, or within a worker. */
+ void
+ work_put(workpile_t wp, void *ptr)
+ {
+ pthread_mutex_lock(&wp->lock);
+ if (wp->n_waiting) {
+ /* idle workers to be awakened */
+ pthread_cond_signal(&wp->work_wait);
+ }
+ assert(wp->n_pile != wp->max_pile); /* check for room */
+ wp->n_pile++;
+ wp->pile[wp->inp] = ptr;
+ wp->inp = (wp->inp + 1) % wp->max_pile;
+ pthread_mutex_unlock(&wp->lock);
+ }
+
+
+ /* Wait until all work is done and workers quiesce. */
+ void
+ work_wait(workpile_t wp)
+ {
+ pthread_mutex_lock(&wp->lock);
+ while(wp->n_pile !=0 || wp->n_working != 0)
+ pthread_cond_wait(&wp->finish_wait, &wp->lock);
+ pthread_mutex_unlock(&wp->lock);
+ }
+
+ void
+ quick_sort_aux(float *data, int n, int depth, workpile_t wp, int deferrable)
+ {
+ int i,j;
+
+ /* If array small, use insertion sort */
+ if (n <= SORT_DIRECT) {
+ for (j = 1; j < n; j++) {
+ /* data[0..j-1] in sort; find a spot for data[j] */
+ float key = data[j];
+ for (i = j - 1; i >= 0 && key < data[i]; i--)
+ data[i+1] = data[i];
+ data[i+1] = key;
+ }
+ return;
+ }
+ /* Defer this work to work queue if policy says so */
+ if (deferrable && depth <= DEFER_DEPTH) {
+ quick_sort_args *q = (quick_sort_args *)
+ malloc(sizeof (quick_sort_args));
+ assert(q != NULL);
+ q->data = data; q->n = n; q->depth = depth; q->wp = wp;
+ work_put(wp, (void *)q);
+ return;
+ }
+ /* Otherwise, partition data based on a median estimate */
+ #define swap(i,j) {float t = data[i]; data[i] = data[j]; data[j] = t;}
+ i = 0;
+ j = n - 1;
+ for (;;) {
+ while (data[i] < data[j]) j--;
+ if (i >= j) break;
+ swap(i, j); i++;
+ while (data[i] < data[j]) i++;
+ if (i >= j) { i = j; break; }
+ swap(i, j); j--;
+ }
+ /* Median value is now at data[i] */
+ /* Partitioned so that data[0..i-1] <= median <= data[i+1..n-1] */
+ quick_sort_aux(data, i, depth+1, wp, TRUE);
+ quick_sort_aux(&data[i+1], n-i-1, depth+1, wp, TRUE);
+ }
+ /* Called from workpile controller with argument pointing to work. */
+ void
+ quick_sort_worker(void *a)
+ {
+ quick_sort_args *q = (quick_sort_args *)a;
+ quick_sort_aux(q->data, q->n, q->depth, q->wp, FALSE);
+ free(q);
+ }
+ /* Main routine, called by client to do a sort. */
+ void
+ quick_sort(float *data, int n)
+ {
+ if (quick_sort_workpile == NULL) {
+ int n_threads = 6;
+ quick_sort_workpile = work_init(2 << DEFER_DEPTH,
+ quick_sort_worker, n_threads);
+ assert(quick_sort_workpile != NULL);
+ }
+
+ quick_sort_aux(data, n, 0, quick_sort_workpile, FALSE);
+
+ /* Wait for all work to finish */
+ work_wait(quick_sort_workpile);
+
+ #ifdef QUICK_DEBUG
+ printf( "== Quicksort: done sorting\n" );
+ #endif
+ }
+
+
+ main( argc, argv )
+ int argc;
+ char **argv;
+ {
+ float data[SORTSET];
+ int i; int debugging = 0;
+
+ if((argc > 1) && (0 != argv )) {
+ if( 1 == atoi( argv[1] ) )
+ wait_here = TRUE;
+ }
+
+ for(i = 0; i < SORTSET; i++)
+ data[SORTSET -1 -i] = drand48();
+
+ for(i = 0; i < SORTSET; i++)
+ if (debugging)
+ printf("data[%d] = %f\n", i, data[i]);
+
+ quick_sort(data, SORTSET);
+ for(i = 0; i < SORTSET; i++)
+ if (debugging)
+ printf("data[%d] = %f\n", i, data[i]);
+
+ return(0);
+ }
+ /* EndSourceFile */
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.threads/quicksort.exp gdb/testsuite/gdb.threads/quicksort.exp
*** ../gdb-19990719/gdb/testsuite/gdb.threads/quicksort.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.threads/quicksort.exp Thu Jul 22 18:50:01 1999
***************
*** 0 ****
--- 1,839 ----
+ # quicksort.exp -- Expect script to test gdb with quicksort.c
+ # Copyright (C) 1992 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ if { ![istarget "hppa*-*-hpux11.*"] } {
+ verbose "HPUX thread test ignored for non-hppa or pre-HP/UX-10.30 targets."
+ return 0
+ }
+
+ set testfile quicksort
+ set srcfile ${srcdir}/${subdir}/${testfile}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile}] {
+ return -1
+ }
+
+ # To build the executable we need to link against the thread library.
+ #
+
+ if { $hp_cc_compiler } {
+ set additional_flags "additional_flags=-Ae"
+ } else {
+ set additional_flags ""
+ }
+
+ if { [gdb_compile "${srcdir}/${subdir}/${testfile}.c" "${binfile}" executable [list debug $additional_flags ldflags=-lpthread]] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ # Thread stuff is _slow_; prepare for long waits.
+ #
+ set oldtimeout $timeout
+ set timeout [expr "$timeout + 600"]
+
+ # Further, this test has some "null" lines designed
+ # to consume output from gdb that was too late to be
+ # matched (sequence is "gdb_test" sends; timeout and
+ # on to next send; result finally comes in; mismatch).
+ #
+ # The null command is 'gdb_test "p \$pc" ".*" ""'
+ #
+ # NOTE: to pass a literal "$", "/" or "*" (etc.) to gdb_test,
+ # remember that the pattern will be escaped once and
+ # $-evaluated twice:
+ #
+ # "\\\*" matches "\*"
+ # "\$" matches "$"
+ #
+ proc fix_timeout {} {
+ gdb_test "p \$pc" ".*" ""
+ }
+
+ #=========================
+ #
+ # Simple sanity test first.
+ #
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ gdb_test "tb 122" ".*Breakpoint.*" "tbreak at line 122"
+ gdb_test "r" ".*122.*" "run to line 122"
+ gdb_test "thr 99" ".*Thread ID 99 not known.*" "Check too-big thread number"
+ gdb_test "tb 145 thr 3" ".*Breakpoint.*" "set thread-specific bp 145"
+ gdb_test "tb 146 thr 4" ".*Breakpoint.*" "set thread-specific bp 146"
+ gdb_test "c" ".*Switched to thread.*14\[56\].*" "auto switch"
+ gdb_test "c" ".*Switched to thread.*14\[56\].*" "auto switch 2"
+ gdb_test "c" ".*Program exited normally.*" "continue"
+
+ #=========================
+ #
+ # Test that you can't do a thread select after a program runs.
+ #
+ gdb_test "thread" ".*No stack.*" "No live thread after run"
+ gdb_test "thr 2" ".*No stack.*" "Can't set thread after run"
+
+ #=========================
+ #
+ # Test thread command changes, look for frame level reset bug.
+ #
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+ gdb_test "b 122" ".*" "break at line 122"
+ gdb_test "r" ".*122.*" "run to line 122"
+
+ # Prep for frame level test--go up/info thread/check frame
+ #
+ gdb_test "up" ".*quick_sort.*" "up"
+ gdb_test "up" ".*main.*" "up"
+
+ send_gdb "i th\n"
+ gdb_expect {
+ -re ".*7 thread.* in .* from .* in .* from .* 6 thread.*$gdb_prompt $" {
+ fail "old thread command, says things twice"
+ }
+ -re ".*7 system thread.*6 system th.*5 sys.*4.*3.*2.*1.*work_init.*$gdb_prompt $" {
+ pass "info threads"
+ }
+ -re ".*$gdb_prompt $" { fail "no info thread command" }
+ timeout { fail "timeout" }
+ }
+
+ # We should have been restored two frames up--check.
+ #
+ send_gdb "up\n"
+ gdb_expect {
+ -re ".*Initial frame selected.*$gdb_prompt $" {
+ pass "Frame correctly reset after 'info threads'"
+ }
+ -re ".*quick_sort.*$gdb_prompt $" {
+ fail "Old gdb bug; should be fixed someday"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "real bug--FIX!"
+ }
+ timeout { fail "timeout" }
+ }
+
+ # Do it again, only just go to a middle frame, and use another thread.
+ #
+ gdb_test "thr 5" ".*" "switching to thread 5"
+ gdb_test "bt" ".*0.*__ksleep.*.*1.*libpthread.*.*2.*pthread_cond_wait.*.*3.*worker.*144.*.*4.*__pthread_create_system.*" "backtrace in thread 5"
+ send_gdb "up\n"
+ gdb_expect {
+ -re ".*1.*_lwp_cond_timedwait.*$gdb_prompt $" { pass "up 1 in thread 5 (1)" }
+ -re ".*1.*in .stub.*libpthread.*$gdb_prompt $" { pass "up 1 in thread 5 (2)" }
+ timeout { fail "(timeout) up 1 in thread 5" }
+ }
+ gdb_test "up" ".*2.*pthread_cond_wait.*" "up 2 in thread 5"
+ gdb_test "up" ".*3.*worker.*" "up 3 in thread 5"
+ gdb_test "i th" ".*7.*6.*work_init.*" "getting ids of the current threads"
+ gdb_test "f" ".*3.*worker.*" "Frame restored"
+ gdb_test "p wp->max_pile" ".*= 128.*" "can see vars in frame"
+
+ # Thread command changes
+ #
+ gdb_test "thr" ".*Current thread is 5.*" "threads-no-num"
+ gdb_test "thr 6" ".*Switching to thread 6.*" "new switch"
+ gdb_test "thr" ".*Current thread is 6.*" "check switch"
+ gdb_test "thr 6" ".*Current thread is already 6.*" "dup, no switch"
+ gdb_test "thr app all p x" ".*No symbol.*" "thread app all"
+ gdb_test "thr" ".*Current thread is 6.*" "restore current thread"
+
+ #=========================
+ #
+ # Test new stepping
+ #
+
+ proc get_hit { } {
+ global hit2
+ global hit3
+ global hit4
+ global hit5
+ global hit6
+ global hit7
+ global gdb_prompt
+
+ send_gdb "cont\n"
+ gdb_expect {
+ -re ".*Breakpoint.*145.*$gdb_prompt $" {
+ send_gdb "thr\n"
+ gdb_expect {
+ -re ".*is 7.*$gdb_prompt $" {
+ set hit7 [expr "$hit7 + 1"]
+ }
+ -re ".*is 6.*$gdb_prompt $" {
+ set hit6 [expr "$hit6 + 1"]
+ }
+ -re ".*is 5.*$gdb_prompt $" {
+ set hit5 [expr "$hit5 + 1"]
+ }
+ -re ".*is 4.*$gdb_prompt $" {
+ set hit4 [expr "$hit4 + 1"]
+ }
+ -re ".*is 3.*$gdb_prompt $" {
+ set hit3 [expr "$hit3 + 1"]
+ }
+ -re ".*is 2.*$gdb_prompt $" {
+ set hit2 [expr "$hit2 + 1"]
+ }
+ -re ".*$gdb_prompt $" {
+ fail "can't see which thread"
+ }
+ timeout { fail "timeout" }
+ }
+ }
+ -re ".*$gdb_prompt $" {
+ fail "thread command"
+ }
+ timeout { fail "timeout" }
+ }
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+ gdb_test "break 122" ".*" "break at line 122"
+ gdb_test "run" ".*122.*" "run to line 122"
+
+ # Make sure we hit a bp on every thread.
+ #
+ # Try one, via thread-specific bps
+ #
+ gdb_test "break 145 thr 2" ".*" "set thread-specific bp thr 2"
+ gdb_test "break 145 thr 3" ".*" "set thread-specific bp thr 3"
+ gdb_test "break 145 thr 4" ".*" "set thread-specific bp thr 4"
+ gdb_test "break 145 thr 5" ".*" "set thread-specific bp thr 5"
+ gdb_test "break 145 thr 6" ".*" "set thread-specific bp thr 6"
+ gdb_test "break 145 thr 7" ".*" "set thread-specific bp thr 7"
+
+ set hit2 0
+ set hit3 0
+ set hit4 0
+ set hit5 0
+ set hit6 0
+ set hit7 0
+
+ get_hit
+ get_hit
+ get_hit
+ get_hit
+ get_hit
+ get_hit
+
+ # Sometimes we hit one twice and don't hit another.
+ set total_hits [expr $hit2 + $hit3 + $hit4 + $hit5 + $hit6 + $hit7 ]
+ if $total_hits==6 {
+ pass "thread-specific bps 1"
+ } else {
+ fail "thread-specific bps 1"
+ }
+
+ #====================
+ #
+ # Now use generic bps
+ #
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+ gdb_test "b 122" ".*" "break at line 122"
+ gdb_test "r" ".*122.*" "run to line 122"
+
+ # Make sure we hit a bp on every thread.
+ #
+ # Try two, via non-thread-specific bp
+ #
+ gdb_test "b 145" ".*" "b 145"
+
+ set hit2 0
+ set hit3 0
+ set hit4 0
+ set hit5 0
+ set hit6 0
+ set hit7 0
+
+ get_hit
+ get_hit
+ get_hit
+ get_hit
+ get_hit
+ get_hit
+
+ # Sometimes we hit one twice and don't hit another.
+ set hit_totals [expr "$hit2 + $hit3 + $hit4 + $hit5 + $hit6 + $hit7"]
+ if { [expr "$hit_totals == 6"] } {
+ pass "thread-specific bps 2"
+ } else {
+ fail "thread-specific bps 2"
+ }
+
+ #====================
+ #
+ # Complicated (original) test next.
+ #
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+
+ if ![runto_main] then {
+ fail "Can't run to main"
+ return 0
+ }
+
+ # OK, we're at "main", there should be one thread.
+ #
+ gdb_test "info thread" ".*\\\* 1 system thread .*main.*" "initial thread"
+
+ # Try to see the threads being created: set a breakpoint
+ # after the creation and go around the loop a few times.
+ #
+ gdb_test "break 109" "Breakpoint.*109.*" "set bpt"
+
+ gdb_test "c" ".*New thread.*Breakpoint.*109.*" "first continue"
+ fix_timeout
+
+ # Make sure we don't wait (waiting is for attach test)
+ #
+ gdb_test "set wait_here = 0" ".*" "make sure we don't wait"
+
+ send_gdb "info thr\n"
+ gdb_expect {
+ -re ".*2 system th.*1 sy.*109.*$gdb_prompt $" { pass "saw thread create" }
+ -re ".*1 system thread.*87.*$gdb_prompt $" { fail "didn't see thread create" }
+ -re ".*$gdb_prompt $" { fail "no info thread command" }
+ timeout { fail "timeout" }
+ }
+
+ gdb_test "c" ".*New thread.*Breakpoint.*109.*" "continue"
+ fix_timeout
+
+ send_gdb "info thr\n"
+ gdb_expect {
+ -re ".*3 system thread.*2 sys.*\\\* 1 system thread.*109.*$gdb_prompt $" {
+ pass "saw thread create" }
+ -re ".*2 system thread.*1 sys.*109.*$gdb_prompt $" {
+ fail "didn't see thread create"
+ }
+ -re ".*1 system thread.*109.*$gdb_prompt $" {
+ fail "didn't see thread create"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "no info thread command"
+ }
+ timeout { fail "timeout" }
+ }
+
+ fix_timeout
+ gdb_test "clear" ".*Deleted breakpoint.*" "clear"
+
+ # Now go on to the end of thread creation.
+ #
+ gdb_test "b 122" ".*" "set bpt 122"
+ gdb_test "c" ".*New thread.*New thread.*New thread.*122.*" "continue"
+ gdb_test "p \$pc" ".*" "print pc"
+ gdb_test "clear" ".*Deleted breakpoint.*" "clear"
+
+ send_gdb "info thr\n"
+ gdb_expect {
+ -re ".*7 system thread.*6 sys.*5.*1 system thread.*122.*$gdb_prompt $"
+ { pass "saw thread creates" }
+ -re ".*$gdb_prompt $"
+ { fail "no info thread command" }
+ timeout { fail "timeout" }
+ }
+
+ # Try a thread-specific breakpoint; we expect the other threads to
+ # be waiting at this point.
+ #
+ gdb_test "thr 3" ".*Switching to thread.*ksleep.*" "thread switch"
+ gdb_test "i th" ".*\\\* 3 system thread.*" "show new current thread"
+
+ send_gdb "up\n"
+ gdb_expect {
+ -re ".*lwp_cond_timedwait.*$gdb_prompt $" { pass "up to _lwp_cond_timedwait (1)"}
+ -re ".*stub.*$gdb_prompt $" { pass "up to _lwp_cond_timedwait (1)"}
+ timeout { fail "(timeout) up to _lwp_cond_timedwait" }
+ }
+ gdb_test "up" ".*pthread_cond_wait.*" "up to __pthread_cond_wait"
+ gdb_test "up" ".*worker.*144.*" "up to worker"
+
+ gdb_test "b 145 th 3" ".*Breakpoint.*145.*" "set thread-specific bp"
+ gdb_test "i b" ".*breakpoint.*breakpoint.*145 thread 3.*" "show thread-specific bp"
+
+ gdb_test "c" ".*Breakpoint.*145.*145.*" "hit thread-specific bp"
+ gdb_test "p \$pc" ".*" "print pc"
+
+ # Test thread apply command on thread specific data.
+ #
+ gdb_test "thre app all p \$pc" ".*Thread 7.*Thread 6.*Thread 5.*Thread 4.*Thread 3.*Thread 2.*Thread 1.*" "thread apply all"
+ gdb_test "thr ap 1 3 5 p \$pc" ".*Thread 1.*Thread 3.*Thread 5.*" "thr app 1 3 5"
+
+ # Switch again, and test that others continue on a "next"
+ # This test _could_ fail due to timing issues, but that's
+ # unlikely.
+ #
+ gdb_test "thr 7" ".*Switching to thread.*" "switch to thread 7"
+
+ # Make sure that "up" stops at __pthread_exit, or
+ # __pthread_create, the pseudo-roots, and that we
+ # only see that pseudo-root once.
+ #
+ send_gdb "bt\n"
+ gdb_expect {
+ -re ".*Error accessing memory address.*$gdb_prompt $" { fail "bt" }
+ -re ".*pthread_create.*pthread_create.*$gdb_prompt $" { fail "bt" }
+ -re ".*worker.*pthread_create.*$gdb_prompt $" { pass "bt" }
+ -re ".*pthread_exit.*$gdb_prompt $" { pass "bt" }
+ -re ".*$gdb_prompt $" { fail "bt" }
+ timeout { fail "timeout on bt" }
+ }
+
+ gdb_test "up" ".*" "up"
+ gdb_test "up" ".*" "up"
+ send_gdb "up\n"
+ # The ".*__pthread_cond_wait" pattern happens if we were stopped in
+ # __ksleep
+ gdb_expect {
+ -re ".*144.*$gdb_prompt $" { pass "Up 3" }
+ -re ".*pthread_cond_wait.*$gdb_prompt $" { pass "Up 3" }
+ -re ".*$gdb_prompt $" { fail "Up 3" }
+ timeout { fail "timeout on Up 3" }
+ }
+
+ gdb_test "up" ".*pthread_.*" "Up 4"
+ send_gdb "up\n"
+ gdb_expect {
+ -re ".*Initial frame selected; you cannot go up.*$gdb_prompt $" { pass "catch end of thread stack" }
+ -re ".* in __pthread_create_system.*$gdb_prompt $" {
+ gdb_test "up" ".*Initial frame selected; you cannot go up.*" "catch end of thread stack"
+ }
+ -re ".*$gdb_prompt $" { fail "catch end of thread stack" }
+ timeout { fail "(timeout) catch end of thread stack" }
+ }
+
+ #=====================
+ #
+ # Things get iffy here; when we step, sometimes the step
+ # completes, sometimes it doesn't. When it doesn't, we
+ # hit a bp somewhere else and the step never completes
+ # (wait_for_inferior just evaporates it).
+ #
+ # I think the right answer is that any failures here
+ # should stick around to trigger later fixing.
+ #
+ # Here's the plan:
+ #
+ # Bps at 148 (5) and 154 (6) on thread 7 (two bps so we
+ # see the difference between going around the loop and
+ # reporting the same bp hit twice).
+ #
+ # Bp at 144 on thread 3.
+ #
+ # Step out of a library routine.
+ #
+ # Either the step will finish or a bp will hit. Try to
+ # handle all the cases.
+ #
+ gdb_test "b 148 thr 7" ".*Breakpoint.*148.*" "set bpt 1"
+ gdb_test "b 154 thr 7" ".*Breakpoint.*154.*" "set bpt 2"
+
+ set hit_154_bp 0
+ set hit_148_bp 0
+ set hit_145_bp 0
+ set step_completed 0
+
+ # Expect zero hits
+ #
+ gdb_test "i b" ".*" "info break"
+
+ # DTS 10080CLLbs - thread switch not reported
+ setup_xfail hppa*-*-*11* 10080CLLbs
+ send_gdb "n\n"
+ gdb_expect {
+ -re ".*Single stepping.*_lwp_cond_timedwait.*$gdb_prompt $" {
+ send_gdb "thr\n"
+ gdb_expect {
+ -re ".*is 7.*$gdb_prompt $" {
+ set step_completed 1
+ pass "completed step in library code"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "completed step in library code, but in wrong thread"
+ }
+ timeout { fail "timeout" }
+ }
+ }
+ -re ".*Single stepping.*Switched to thread 3.*Breakpoint.*$gdb_prompt $" {
+ pass "step cancelled; hit bp due to thread parallelism"
+ set hit_145_bp 1
+ }
+ -re ".*Single stepping.*Switched to thread 7.*Breakpoint.*148.*$gdb_prompt $" {
+ pass "step cancelled; hit bp due to thread parallelism"
+ set hit_148_bp 1
+ }
+ -re ".*Single stepping.*Switched to thread 7.*Breakpoint.*154.*$gdb_prompt $" {
+ pass "step cancelled; hit bp due to thread parallelism"
+ set hit_154_bp 1
+ }
+ -re ".*$gdb_prompt $" {
+ send_gdb "thr\n"
+ gdb_expect {
+ -re ".*is 7.*$gdb_prompt $" {
+ fail "No event?"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "No event"
+ }
+ timeout { fail "timeout" }
+ }
+ }
+ timeout { fail "timeout" }
+ }
+
+ # Sometimes used to get SIGTRAP here; that should be fixed
+ #
+
+ # Expect appropriate hits of bpt; too much work to parse
+ # result and check...
+ #
+ gdb_test "i b" ".*" "info break"
+
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*SIGTRAP.*$gdb_prompt $" {
+ fail "got SIGTRAP"
+ }
+ -re ".*Switched to thread 7.*Breakpoint.*154.*$gdb_prompt $" {
+ if { $hit_154_bp == 1 } {
+ fail "re-hit old bp"
+ } else {
+ pass "continue; hit parallel event after continue"
+ }
+ set hit_154_bp 1
+ }
+ -re ".*Switched to thread 7.*Breakpoint.*148.*$gdb_prompt $" {
+ if { $hit_148_bp == 1 } {
+ fail "re-hit old bp"
+ } else {
+ pass "continue; hit parallel event after continue"
+ }
+ set hit_148_bp 1
+ }
+ -re ".*Breakpoint.*154.*$gdb_prompt $" {
+ if { $hit_154_bp == 1 } {
+ fail "re-hit old bp"
+ } else {
+ send_gdb "thr\n"
+ gdb_expect {
+ -re ".*is 7.*$gdb_prompt $" {
+ pass "continue; hit parallel event after continue"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "hit bp in wrong thread"
+ }
+ timeout { fail "timeout" }
+ }
+ }
+ set hit_154_bp 1
+ }
+ -re ".*Breakpoint.*148.*$gdb_prompt $" {
+ if { $hit_148_bp == 1 } {
+ fail "re-hit old bp"
+ } else {
+ send_gdb "thr\n"
+ gdb_expect {
+ -re ".*is 7.*$gdb_prompt $" {
+ pass "continue; hit parallel event after continue"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "hit bp in wrong thread"
+ }
+ timeout { fail "timeout" }
+ }
+ }
+ set hit_148_bp 1
+ }
+ -re ".*Breakpoint.*145.*$gdb_prompt $" {
+ if { $hit_145_bp == 1 } {
+ fail "re-hit old bp"
+ } else {
+ send_gdb "thr\n"
+ gdb_expect {
+ -re ".*is 3.*$gdb_prompt $" {
+ pass "continue; hit parallel event after continue"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "hit bp in wrong thread"
+ }
+ timeout { fail "timeout" }
+ }
+ }
+ set hit_145_bp 1
+ }
+ -re ".*_lwp_cond_timedwait.*$gdb_prompt $" {
+ pass "continue; hit step completion after continue"
+ }
+ -re ".*Program exited normally.*" {
+ fail "Program ended? HOW?"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "Unexpected event"
+ }
+ timeout { fail "timeout" }
+ }
+
+ # There are a number of places we _could_ be now;
+ # this is the price of really running in parallel.
+ #
+ send_gdb "n\n"
+ gdb_expect {
+ -re ".*Switched to thread 7.*pthread_cond_wait.*$gdb_prompt $" {
+ if { $step_completed } {
+ fail "step already completed"
+ } else {
+ pass "finish step"
+ }
+ }
+ -re ".*pthread_cond_wait.*$gdb_prompt $" {
+ #
+ # Unlikely, but we might finish the range step from inside
+ # ksleep, before anything else.
+ #
+ if { $step_completed } {
+ fail "step already completed"
+ } else {
+ send_gdb "thr\n"
+ gdb_expect {
+ -re ".*is 7.*$gdb_prompt $" {
+ pass "finish step"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "step in wrong thread"
+ }
+ timeout { fail "timeout" }
+ }
+ }
+ }
+ -re ".*Switched to thread.*Breakpoint.*145.*$gdb_prompt $" {
+ pass "auto-switch thread"
+ }
+ -re ".*Breakpoint.*145.*$gdb_prompt $" {
+ pass "auto-switch not needed, ok"
+ }
+ -re "146.*wp->n_working.*" {
+ pass "auto-switch not needed, ok"
+ }
+ -re ".*140.*while.*n_pile.*$gdb_prompt $" {
+ #
+ # This is just going around the loop from the 154 bp.
+ #
+ send_gdb "thr\n"
+ gdb_expect {
+ -re ".*is 7.*$gdb_prompt $" {
+ pass "finish step"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "step in wrong thread"
+ }
+ timeout { fail "timeout" }
+ }
+ }
+ -re ".*149.*ptr = wp.*pile.*$gdb_prompt $" {
+ #
+ # This is just going around the loop from the 148 bp.
+ #
+ if { $hit_154_bp } {
+ send_gdb "thr\n"
+ gdb_expect {
+ -re ".*is 7.*$gdb_prompt $" {
+ pass "finish step"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "step in wrong thread"
+ }
+ timeout { fail "timeout" }
+ }
+ } else {
+ pass "step from 149 but didn't hit it first"
+ }
+ }
+ -re ".*Breakpoint 5.*154.*$gdb_prompt $" {
+ gdb_test "i b" ".*"
+ if { $hit_154_bp } {
+ fail "hit bp again?"
+ } else {
+ pass "hit bp"
+ }
+ }
+ -re ".*Breakpoint 5.*148.*$gdb_prompt $" {
+ gdb_test "i b" ".*"
+ if { $hit_148_bp } {
+ fail "hit bp again?"
+ } else {
+ pass "hit bp"
+ }
+ }
+ -re ".*$gdb_prompt $" {
+ fail "no step finished"
+ }
+ timeout { fail "timeout on 'next'" }
+ }
+
+ # Let's get into some kind of known state again.
+ #
+ gdb_test "thr 7" ".*" "thread 7"
+ gdb_test "info thread" ".*" "info thread"
+ #gdb_test "i b" ".*"
+
+ # Leave breakpoint "154 thr 7" as only live bp.
+ #
+ gdb_test "d 1" ".*" "del main bp"
+ gdb_test "d 4" ".*" "thread-specific bpt delete"
+ gdb_test "d 5" ".*" "other bp delete"
+ send_gdb "i b\n"
+ gdb_expect {
+ -re ".*breakpoint.*breakpoint.*$gdb_prompt $" {
+ fail "more than one bp left"
+ }
+ -re ".*breakpoint.*154.*thread.*7.*$gdb_prompt $" {
+ pass "Only one bp left"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "Wrong or no bp left"
+ }
+ timeout { fail "timeout on info b" }
+ }
+
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*SIGTRAP.*Switched to thread.*$gdb_prompt $" {
+ fail "SIGTRAP error; lost thread-specific bpt"
+ }
+ -re ".*SIGTRAP.*Switched to thread.*154.*$gdb_prompt $" {
+ fail "SIGTRAP, but hit right thread-specific bpt"
+ }
+ -re ".*Switched to thread.*Breakpoint.*154.*$gdb_prompt $" {
+ pass "auto-switch back"
+ }
+ -re ".*Breakpoint.*154.*$gdb_prompt $" {
+ pass "step to bp"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "auto-switch back"
+ }
+ -re ".*Program exited normally.*$gdb_prompt $" {
+ fail "step lost"
+ }
+ timeout {
+ fail "timeout"
+ }
+ }
+ fix_timeout
+
+ gdb_test "cle" ".*Deleted breakpoint.*" "delete last breakpoint"
+
+ # Sometimes get SIGTRAP here. Continue sometimes gets another...
+ #
+ # DTS 10082CLLbs - Sometimes gdb gets a SIGTRAP on a deleted breakpoint
+ setup_xfail hppa*-*-*11* 10082CLLbs
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*SIGTRAP.*154.*154.*$gdb_prompt $" {
+ fail "SIGTRAP on deleted bp 154 "
+ gdb_test "n" ".*"
+ gdb_test "set confirm off" ".*"
+ gdb_test "delete" ".*"
+ gdb_test "c" ".*"
+ gdb_test "n" ".*"
+ gdb_test "c" ".*"
+ gdb_test "n" ".*"
+ gdb_test "c" ".*"
+ gdb_test "n" ".*"
+ gdb_test "c" ".*"
+ gdb_test "n" ".*"
+ gdb_test "c" ".*"
+ gdb_test "n" ".*"
+ gdb_test "c" ".*"
+ gdb_test "n" ".*"
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*$gdb_prompt $" { pass "fixup"}
+ timeout { fail "fixup" }
+ }
+ }
+ -re ".*SIGTRAP.*144.*145.*$gdb_prompt $" {
+ fail "SIGTRAP on deleted bp 145 "
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*$gdb_prompt $" { pass "fixup"}
+ timeout { fail "fixup" }
+ }
+ }
+ -re ".*SIGTRAP.*148.*148.*$gdb_prompt $" {
+ fail "SIGTRAP on deleted bp 148 "
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*$gdb_prompt $" { pass "fixup"}
+ timeout { fail "fixup" }
+ }
+ }
+ -re ".*SIGTRAP.*$gdb_prompt $" {
+ fail "unknown SIGTRAP"
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*$gdb_prompt $" { pass "fixup"}
+ timeout { fail "fixup" }
+ }
+ }
+ -re ".*Program exited.*$gdb_prompt $" {
+ pass "run to end"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "run to end"
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*$gdb_prompt $" { pass "fixup"}
+ timeout { fail "fixup" }
+ }
+ }
+ timeout { fail "timeout" }
+ }
+
+ gdb_test "p \$pc" ".*No registers.*" "program done"
+
+ # Done!
+ #
+ gdb_exit
+
+ set timeout $oldtimeout
+
+ return 0
+
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.threads/start-stop.c gdb/testsuite/gdb.threads/start-stop.c
*** ../gdb-19990719/gdb/testsuite/gdb.threads/start-stop.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.threads/start-stop.c Thu Jul 22 17:50:39 1999
***************
*** 0 ****
--- 1,161 ----
+ /* BeginSourceFile start_stop.c
+
+ This file creates and deletes threads, so that wdb
+ can be tested on thread delete.
+
+ To compile:
+
+ cc -Ae +DA1.0 -g -o start_stop -lpthread start_stop.c
+
+ To run:
+
+ start_stop --normal run
+ start_stop 1 --waits in each thread to keep it alive.
+ */
+
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <assert.h>
+ #include <pthread.h>
+
+ #define TRUE 1
+ #define FALSE 0
+ #define OUTER_LOOP_COUNT 3
+ #define N_THREADS 3
+ #define MAX_LOCAL_VAL 40
+
+ /* Uncomment to turn on debugging output */
+ /* #define START_DEBUG */
+
+ /* True if waiting for attach.
+ */
+ int wait_here;
+
+ /* Thing to check for debugging purposes.
+ */
+ int a_global = 0;
+
+ /* Thread-local storage.
+ */
+ __thread int a_thread_local;
+
+ /* Check the results of thread-local storage.
+ */
+ int thread_local_val[ N_THREADS ];
+ int val_debugger_saw[ N_THREADS ];
+
+ /* Routine for each thread to run, does nothing.
+ */
+ void *spin( vp )
+ void * vp;
+ {
+ int me = (int) vp;
+ int i;
+
+ #ifdef START_DEBUG
+ printf( "== In thread %d\n", me );
+ #endif
+
+ a_global++;
+
+ a_thread_local = 0;
+ for( i = 0; i < a_global; i++ ) {
+ a_thread_local += i;
+ }
+
+ thread_local_val[ me ] = a_thread_local; /* Line 67 */
+
+ printf( "== Thread %d, a_thread_local is %d\n",
+ (int) vp, a_thread_local );
+
+ if( wait_here ) {
+ /* Extend life of thread to extend life of thread-local var.
+ * This makes life easier for human debugging (though you'd
+ * probably want to make the delay longer).
+ */
+ /*sleep( 5 );*/
+ }
+ }
+
+ void
+ do_pass( pass )
+ int pass;
+ {
+ int i;
+ pthread_t t[ N_THREADS ];
+ int err;
+
+ for( i = 0; i < N_THREADS; i++) {
+ thread_local_val[i] = 0;
+ val_debugger_saw[i] = 0;
+ }
+
+ /* Start N_THREADS threads, then join them so
+ * that they are terminated.
+ */
+ for( i = 0; i < N_THREADS; i++ ) {
+ err = pthread_create( &t[i], NULL, spin, (void *)i );
+ if( err != 0 ) {
+ printf( "== Start/stop, error in thread %d create\n", i );
+ }
+ }
+
+ for( i = 0; i < N_THREADS; i++ ) {
+ err = pthread_join(t[i], NULL ); /* Line 105 */
+ if( err != 0 ) { /* Line 106 */
+ printf( "== Start/stop, error in thread %d join\n", i );
+ }
+ }
+
+ i = 10; /* Line 111. Null line for setting bpts on. */
+
+ /*#ifdef START_DEBUG*/
+ for( i = 0; i < N_THREADS; i++) {
+ printf( " Local in thread %d was %d, debugger saw %d\n",
+ i, thread_local_val[i], val_debugger_saw[i] );
+ }
+ printf( "== Pass %d done\n", pass );
+ /*#endif*/
+
+ }
+
+ void
+ do_it()
+ {
+ /* We want to start some threads and then
+ * end them, and then do it again and again
+ */
+ int i;
+ int dummy;
+
+ for( i = 0; i < OUTER_LOOP_COUNT; i++ ) {
+ do_pass( i );
+ dummy = i; /* Line 134, null line for setting bps on */
+ }
+ }
+
+ main( argc, argv )
+ int argc;
+ char **argv;
+ {
+ wait_here = FALSE;
+ if((argc > 1) && (0 != argv )) {
+ if( 1 == atoi( argv[1] ) )
+ wait_here = TRUE;
+ }
+
+ #ifdef START_DEBUG
+ printf( "== Test starting\n" );
+ #endif
+
+ do_it();
+
+ #ifdef START_DEBUG
+ printf( "== Test done\n" );
+ #endif
+
+ return(0);
+ }
+
+ /* EndSourceFile */
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.threads/start-stop.exp gdb/testsuite/gdb.threads/start-stop.exp
*** ../gdb-19990719/gdb/testsuite/gdb.threads/start-stop.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.threads/start-stop.exp Thu Jul 22 17:50:39 1999
***************
*** 0 ****
--- 1,373 ----
+ # start-stop.exp -- Expect script to test a threaded pgm which has terminating threads
+ # Copyright (C) 1992 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ # Comment out for now, since this test is (sometimes?) hanging on 11.0
+ #
+ # return 0
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ if { ![istarget "hppa*-*-hpux11.*"] } {
+ verbose "HPUX thread test ignored for non-hppa or pre-HP/UX-10.30 targets."
+ return 0
+ }
+
+ set testfile start-stop
+ set srcfile ${srcdir}/${subdir}/${testfile}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile}] {
+ return -1
+ }
+
+ # To build the executable we need to link against the thread library.
+ #
+ if { $hp_cc_compiler } {
+ set additional_flags "additional_flags=-Ae"
+ } else {
+ set additional_flags ""
+ }
+
+ if { [gdb_compile "${srcdir}/${subdir}/${testfile}.c" "${binfile}" executable [list debug $additional_flags ldflags=-lpthread]] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ # Thread stuff is _slow_; prepare for long waits.
+ #
+ # Further, this test has some "null" lines designed
+ # to consume output from gdb that was too late to be
+ # matched (sequence is "gdb_test" sends; timeout and
+ # on to next send; result finally comes in; mismatch).
+ #
+ # The null command is 'gdb_test "p \$pc" ".*" ""'
+ # NOTE: this command undoes any up/down stuff!
+ #
+ proc pre_timeout {} {
+ global timeout
+
+ set timeout [expr "$timeout + 100"]
+ }
+
+ proc post_timeout {} {
+ global timeout
+ global oldtimeout
+
+ set timeout $oldtimeout
+ gdb_test "p \$pc" ".*" ""
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+
+ gdb_load ${binfile}
+ if ![runto_main] then {
+ fail "Can't run to main"
+ return 0
+ }
+
+ set oldtimeout $timeout
+ #set timeout [expr "$timeout + 200"]
+ set oldverbose $verbose
+ #set verbose 40
+
+ gdb_test "b do_pass" ".*" "set do_pass bp"
+ gdb_test "c" ".*Breakpoint.*do_pass.*" "run to do_pass"
+
+ # Should be only one thread.
+ #
+ pre_timeout
+ send_gdb "info thread\n"
+ gdb_expect {
+ -re ".*2 process.*$gdb_prompt $" { fail "Old code for 'thread.c'" }
+ -re ".*2 system thread.*1 sys.*$gdb_prompt $" { fail "Too many threads" }
+ -re ".*1 system thread.*$gdb_prompt $" { pass "Just one thread" }
+ -re ".*$gdb_prompt $" { fail "no thread info" }
+ timeout { fail "timeout on info thread 1" }
+ }
+ post_timeout
+
+ # Run to a point after the thread creates (105 is just
+ # before the first join).
+ #
+ # The "== Thread" stuff is output from the computing threads.
+ #
+ gdb_test "b 105" ".*Breakpoint.*" "set 105 bp"
+
+ pre_timeout
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*== Thread.*== Thread.*== Thread.*105.*$gdb_prompt $" {
+ set threads_exist 0
+ pass "new threads created and ended - 1st case"
+ }
+ -re ".*== Thread.*== Thread.*105.*$gdb_prompt $" {
+ set threads_exist 1
+ pass "new threads created and ended - 2nd case"
+ }
+ -re ".*== Thread.*.*105.*$gdb_prompt $" {
+ set threads_exist 2
+ pass "new threads created and ended - 3rd case"
+ }
+ -re ".*New thread.*New th.*New th.*105.*$gdb_prompt $" {
+ set threads_exist 3
+ pass "new threads created"
+ }
+ -re ".*Breakpoint.*105.*$gdb_prompt $" {
+ set threads_exist 0
+ fail "didn't see any threads"
+ }
+ -re ".*$gdb_prompt $" {
+ set threads_exist 0
+ fail "didn't even hit bp"
+ }
+ timeout {
+ set threads_exist -1
+ fail "timeout on continue"
+ }
+ }
+
+ gdb_test "cle" ".*Deleted.*" "del bp at 105"
+
+ # Check that threads are being consumed at the join call.
+ # We expect to join three times. If we ever see the bp at
+ # 111, we've gone too far.
+ #
+ gdb_test "b 106" ".*Breakpoint.*106.*" "set bp at 106"
+ gdb_test "b 111" ".*Breakpoint.*111.*" "set bp at 111"
+
+ # This one is sure: we're already in the loop.
+ #
+ #gdb_test "c" ".*Breakpoint.*106.*" "hit bp at 106 1st time, 2 left"
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*== Thread.*== Thread.*== Thread.*Breakpoint.*106.*$gdb_prompt $" {
+ set threads_exist [expr "$threads_exist - 3"]
+ pass "hit bp at 106 1st time, 2 left - 1st case"
+ }
+ -re ".*== Thread.*== Thread.*Breakpoint.*106.*$gdb_prompt $" {
+ set threads_exist [expr "$threads_exist - 2"]
+ pass "hit bp at 106 1st time, 2 left - 2nd case"
+ }
+ -re ".*== Thread.*.*Breakpoint.*106.*$gdb_prompt $" {
+ set threads_exist [expr "$threads_exist - 1"]
+ pass "hit bp at 106 1st time, 2 left - 3rd case"
+ }
+ -re ".*Breakpoint.*106.*$gdb_prompt $" {
+ pass "hit bp at 106 1st time, 2 left"
+ }
+ -re ".*$gdb_prompt $" { fail "hit bp at 106 1st time, 2 left" }
+ timeout { fail "timeout on hit bp at 106 1st time, 2 left" }
+ }
+
+ # Look at the threads again. We expect that some of
+ # the threads may have already finished execution.
+ #
+ send_gdb "info thread\n"
+ gdb_expect {
+ -re ".*system.*system.*system.*system.*thread.*$gdb_prompt $" { set seen_threads 3 }
+ -re ".*system.*system.*system.*thread.*$gdb_prompt $" { set seen_threads 2 }
+ -re ".*system.*system.*thread.*$gdb_prompt $" { set seen_threads 1 }
+ -re ".*system.*thread.*$gdb_prompt $" { set seen_threads 0 }
+ -re ".*$gdb_prompt $" { set seen_threads 0 }
+ timeout {
+ set seen_threads -10
+ fail "timeout on second info thread"
+ }
+ }
+ post_timeout
+
+ if { $seen_threads == $threads_exist } {
+ pass "saw all threads that existed"
+ } else {
+ if { $seen_threads > $threads_exist } {
+ fail "may have seen threads ($threads_exist vs $seen_threads) that didn't finish exiting yet"
+ } else {
+ fail "didn't see live threads ($threads_exist vs $seen_threads)"
+ }
+ }
+
+ # Did we go around the loop again?
+ #
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*Breakpoint.*111.*" {
+ fail "didn't join right 1"
+ gdb_test "cle" ".*"
+ }
+ -re ".*Breakpoint.*106.*" {
+ pass "hit bp at 106 2nd time, 1 left"
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*Breakpoint.*111.*" {
+ fail "didn't join right 2"
+ gdb_test "cle" ".*"
+ }
+ -re ".*Breakpoint.*106.*" {
+ pass "hit bp at 106 3rd time, 0 left"
+ gdb_test "cle" ".*"
+ gdb_test "c" ".*Breakpoint.*111.*"
+ gdb_test "cle" ".*"
+ }
+ timeout { fail "timeout going around the loop"}
+ }
+ }
+ timeout { fail "timeout getting to 106"}
+ }
+
+ # Should only be one thread now.
+ #
+ pre_timeout
+ send_gdb "info thread\n"
+ gdb_expect {
+ -re ".*2 system thread.*1 sys.*$gdb_prompt $" { fail "Too many threads" }
+ -re ".*1 system th.*$gdb_prompt $" { pass "Just one thread" }
+ -re ".*$gdb_prompt $" { pass "One thread shown as no threads, ok" }
+ timeout { fail "timeout third info thread" }
+ }
+ post_timeout
+
+ #============================= Begin pass 2 ===========
+ #
+ # Ok, go around again
+ #
+ gdb_test "c" ".*Breakpoint.*do_pass.*" "hit do_pass bp again 2"
+ gdb_test "b 105" ".*Breakpoint.*" "set 105 bp 2"
+
+ pre_timeout
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*== Thread.*== Thread.*== Thread.*$gdb_prompt $" {
+ set threads_exist 0
+ pass "new threads created and ended 2 - 1st case"
+ }
+ -re ".*== Thread.*== Thread.*== Thread.*" {
+ pass "new threads created and ended 2 - variant on 1st case"
+ }
+ -re ".*== Thread.*== Thread.*$gdb_prompt $" {
+ set threads_exist 1
+ pass "new threads created and ended 2 - 2nd case"
+ }
+ -re ".*== Thread.*$gdb_prompt $" {
+ set threads_exist 2
+ pass "new threads created and ended 2 - 3rd case"
+ }
+ -re ".*New system thread.*New sys.*New.*105.*$gdb_prompt $" {
+ set threads_exist 3
+ pass "new threads created 2"
+ }
+ timeout {
+ set threads_exist -1
+ fail "timeout on continue 2"
+ }
+ }
+
+ # Look at the threads again. We expect that some of
+ # the threads may have already finished execution.
+ #
+ send_gdb "info thread\n"
+ gdb_expect {
+ -re ".*4 .*3 .*2 .* 1.*thread.*$gdb_prompt $" { set seen_threads 3 }
+ -re ".*3 .*2 .* 1.*thread.*$gdb_prompt $" { set seen_threads 2 }
+ -re ".*2 .* 1.*thread.*$gdb_prompt $" { set seen_threads 1 }
+ -re ".* 1.*thread.*$gdb_prompt $" { set seen_threads 0 }
+ -re ".*$gdb_prompt $" { set seen_threads 0 }
+ timeout {
+ set seen_threads -10
+ fail "timeout on second info thread 2"
+ }
+ }
+ post_timeout
+
+ if { $seen_threads == $threads_exist } {
+ pass "saw all threads that existed 2"
+ } else {
+ if { $seen_threads > $threads_exist } {
+ fail "may have seen threads ($threads_exist vs $seen_threads) that didn't finish exiting yet 2"
+ } else {
+ fail "didn't see live threads 2 ($threads_exist vs $seen_threads)"
+ }
+ }
+
+ gdb_test "cle" ".*Deleted.*" "del bp at 105 2"
+
+ # Check that threads are being consumed at the join call.
+ # We expect to join three times. If we ever see the bp at
+ # 111, we've gone too far.
+ #
+ gdb_test "b 106" ".*Breakpoint.*106.*" "set bp at 106 2"
+ gdb_test "b 111" ".*Breakpoint.*111.*" "set bp at 111 2"
+
+ # This one is sure: we're already in the loop.
+ #
+ gdb_test "c" ".*Breakpoint.*106.*" "hit bp at 106 1st time, 2 left 2"
+
+ # Did we go around the loop again?
+ #
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*Breakpoint.*111.*" {
+ fail "didn't join right 1, pass 2"
+ gdb_test "cle" ".*"
+ }
+ -re ".*Breakpoint.*106.*" {
+ pass "hit bp at 106 2nd time, 1 left, pass 2"
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*Breakpoint.*111.*" {
+ fail "didn't join right 2, pass 2"
+ gdb_test "cle" ".*"
+ }
+ -re ".*Breakpoint.*106.*" {
+ pass "hit bp at 106 3rd time, 0 left, pass 2"
+ gdb_test "cle" ".*"
+ gdb_test "c" ".*Breakpoint.*111.*"
+ gdb_test "cle" ".*"
+ }
+ timeout { fail "timeout going around loop, pass 2"}
+ }
+ }
+ timeout { fail "timeout continue to 106, pass 2"}
+ }
+
+ # Should only be one thread now.
+ #
+ pre_timeout
+ send_gdb "info thread\n"
+ gdb_expect {
+ -re ".*2 system thread.*1 sys.*$gdb_prompt $" { fail "Too many threads, pass 2" }
+ -re ".*1 system thread.*$gdb_prompt $" { pass "Just one thread, pass 2" }
+ -re ".*$gdb_prompt $" { pass "One thread shown as no threads, ok, pass 2" }
+ timeout { fail "timeout last info thread, pass 2" }
+ }
+ post_timeout
+
+ # Done!
+ #
+ gdb_exit
+
+ set timeout $oldtimeout
+ set verbose $oldverbose
+
+ # execute_anywhere "rm -f ${binfile}"
+ #
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.threads/thr-lib.c gdb/testsuite/gdb.threads/thr-lib.c
*** ../gdb-19990719/gdb/testsuite/gdb.threads/thr-lib.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.threads/thr-lib.c Thu Jul 22 17:50:39 1999
***************
*** 0 ****
--- 1,79 ----
+ /* Thread local in a library.
+ */
+ #include "thr-lib.h"
+ /*
+ * #define NTHREADS 4
+ * #define NUM_ELEMS 12
+ */
+
+ extern void* adder( void * );
+
+ pthread_mutex_t mutex; /* mutex for protecting global data total */
+
+ int numbers[NUM_ELEMS] = {5, 4, 3, 2, 1, 6, 7, 8, 9, 10, 12, 11};
+ int total = 0;
+
+ int debugger_saw[NTHREADS][ELEMS_PER_THREAD]; /* [4][3] */
+ int the_code_saw[NTHREADS][ELEMS_PER_THREAD];
+
+ int get_number(i)
+ int i;
+ {
+ /* sleep to force context switch to another thread in non-MP system
+ * so that TLS symbols are used by multiple threads concurrently
+ * in some way.
+ */
+ sleep(1);
+ return numbers[i];
+ }
+
+ main()
+ {
+ pthread_t thread[NTHREADS];
+ void *status;
+ int i, j, ret;
+
+ printf("== Thread: Test started\n");
+
+ for( i = 0; i < NTHREADS; i++ ) {
+ for( j = 0; j < ELEMS_PER_THREAD; j++ ) {
+ debugger_saw[i][j] = 0;
+ the_code_saw[i][j] = 0;
+ }
+ }
+
+ ret = pthread_mutex_init(&mutex, NULL);
+ if (ret != 0) {
+ printf("== Thread: pthread_mutex_init() error: %d\n", ret);
+ exit(1);
+ }
+
+ for (i=0; i < NTHREADS; i++) {
+ ret = pthread_create( &thread[i],
+ NULL,
+ adder,
+ (void *) i);
+ if (ret != 0) {
+ printf("== Thread: pthread_create() error: %d\n", ret);
+ exit(1);
+ }
+ printf("== Thread: thread %d created\n", i);
+ }
+
+ for (i=0; i < NTHREADS; i++) {
+ pthread_join( thread[i], &status);
+ }
+
+ printf("== Thread: total = %d\n", total); /* Expect "78" */
+
+ for( i = 0; i < NTHREADS; i++ ) {
+ for( j = 0; j < ELEMS_PER_THREAD; j++ ) {
+ printf( "== Thread: the debugger saw %d, the program saw %d\n",
+ debugger_saw[i][j],
+ the_code_saw[i][j] );
+ }
+ }
+
+ printf("== Thread: Test ended\n");
+ exit(0);
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.threads/thr-lib.exp gdb/testsuite/gdb.threads/thr-lib.exp
*** ../gdb-19990719/gdb/testsuite/gdb.threads/thr-lib.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.threads/thr-lib.exp Thu Jul 22 17:50:39 1999
***************
*** 0 ****
--- 1,253 ----
+ # thr-lib.exp -- Expect script to test thread-local storage in lib
+ # Copyright (C) 1992 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ if { ![istarget "hppa*-*-hpux11.*"] } {
+ verbose "HPUX thread test ignored for non-hppa or pre-HP/UX-10.30 targets."
+ return 0
+ }
+
+ set testfile thr-lib
+ set srcfile ${srcdir}/${subdir}/${testfile}.c
+ set libsrc ${srcdir}/${subdir}/${testfile}lib.c
+ set mainobj ${objdir}/${testfile}.o
+ set libobj ${objdir}/${testfile}lib.o
+ set libsl ${objdir}/${subdir}/${testfile}lib.sl
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ # To build the executable we need to do this:
+ #
+ # cc -c -Aa -g -D_HPUX_SOURCE -D_REENTRANT +DA1.0 ./gdb.hp/thr-lib.c
+ # cc -c -Aa -g -D_HPUX_SOURCE -D_REENTRANT +DA1.0 +z ./gdb.hp/thr-liblib.c
+ # ld -o thread_local_in_lib.lib.sl -b ./gdb.hp/thr-liblib.o
+ # ld -a archive /opt/langtools/lib/crt0.o /opt/langtools/lib/end.o \
+ # thr-lib.o ./gdb.hp/thr-liblib.sl \
+ # -o thr-lib -lpthread -lc
+ #
+ if { [gdb_compile "${srcfile}" "${mainobj}" object {debug}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+ if { [gdb_compile "${libsrc}" "${libobj}" object {debug additional_flags=+z}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ remote_exec build "ld -o ${libsl} -b ${libobj}"
+ if [istarget "hppa2.0w-*-*"] {
+ remote_exec build "ld -a archive /opt/langtools/lib/pa20_64/crt0.o /opt/langtools/lib/pa20_64/end.o ${mainobj} ${libsl} -lpthread -lc -o ${binfile}"
+ } else {
+ remote_exec build "ld -a archive /opt/langtools/lib/crt0.o /opt/langtools/lib/end.o ${mainobj} ${libsl} -lpthread -lc -o ${binfile}"
+ }
+
+ # Thread stuff is _slow_; prepare for long waits.
+ #
+ # Further, this test has some "null" lines designed
+ # to consume output from gdb that was too late to be
+ # matched (sequence is "gdb_test" sends; timeout and
+ # on to next send; result finally comes in; mismatch).
+ #
+ # The null command is 'gdb_test "p \$pc" ".*" ""'
+ # NOTE: this command undoes any up/down stuff!
+ #
+ proc pre_timeout {} {
+ global timeout
+
+ set timeout [expr "$timeout + 100"]
+ }
+
+ proc post_timeout {} {
+ global timeout
+ global oldtimeout
+
+ set timeout $oldtimeout
+ gdb_test "p \$pc" ".*" ""
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+
+ set oldtimeout $timeout
+ # RM: Set timeout to a lower value so this test doesn't run forever
+ set timeout [expr "30"]
+ set oldverbose $verbose
+
+ gdb_load ${binfile}
+
+ # Here we go: test various things.
+ #
+ gdb_test "b adder" ".*Breakpoint.*deferred.*adder.*Breakpoint deferred until a shared library containing.*" "shared loc, needs to run"
+ gdb_test "b main" ".*"
+ gdb_test "run" ".*Breakpoint 2, main.*"
+
+ # Set a bp to inspect the results
+ #
+ gdb_test "b 67" ".*Breakpoint 3.*"
+
+ # get to a point where we can set the collection breakpoint.
+ #
+ gdb_test "tb adder" ".*Breakpoint 4.*line 47.*" "set bp in shared lib"
+ gdb_test "c" ".*Switched to.*adder.*" "run to shared lib rtn"
+
+ # Check locations of things
+ #
+ gdb_test "i ad sum" ".*Symbol \"sum\" is a thread-local variable.*offset.*from the thread base register mpsfu_high.*" "find sum"
+ gdb_test "i add x" ".*Symbol \"x\" is a thread-local variable.*" "find x"
+
+ # Set a breakpoint later on in "adder" and
+ # collect the thread local's value.
+ #
+ gdb_test "b 61" ".*Breakpoint 5.*61.*" "Set collection bp"
+
+ # extra check for grins, expect to hit "adder" in thread 2 first
+ # but could be wrong...
+ #
+ gdb_test "info thread" ".*\\\* 2.*thread.*thread.*" "two threads"
+
+ # Can't use "gdb_test", as it uses "$gdb_prompt $" in
+ # testing the result. Our new prompt is ">", with
+ # no trailing space, so we can't do this just by
+ # changing "prompt".
+ #
+ # Anyway, I couldn't get expect to see the ">" prompt,
+ # during the command addition, so I just punted.
+ # _You_ are welcome to try, if you want!
+ #
+ send_gdb "commands 5\n"
+ gdb_expect {
+ -re "(.*Type commands.*\"end\"\.\r\n\>)" {
+ pass "start commands"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "start commands"
+ }
+ }
+
+ # Assume we're in commands-input mode. (Self-debug stuff turned off)
+ #
+ send_gdb "silent\n"
+ #send_gdb "p id\n"
+ #send_gdb "p j\n"
+ #send_gdb "p x\[j\]\n"
+ send_gdb "set debugger_saw\[id\]\[j\] = x\[j\]\n"
+ send_gdb "continue\n"
+ send_gdb "end\n"
+
+ gdb_expect {
+ -re ".*set.*cont.*$gdb_prompt $" {
+ pass "add commands"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "add commands"
+ }
+ }
+
+ # Check out of paranoia.
+ #
+ send_gdb "info break 5\n"
+ gdb_expect {
+ -re ".*breakpoint.*set debugger_saw.*continue.*$gdb_prompt $" {
+ pass "Commands added"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "Commands not added."
+ }
+ }
+
+ # When we hit the breakpoint for which we have commands set,
+ # gdb is going to dump core because there is a continue command embedded
+ # in the commands set and this is due to DTS 10120CLLbs. When this
+ # DTS is fixed, we should be able to continue with the rest of the test.
+
+ setup_xfail "hppa*-*-*" 10120CLLbs
+ send_gdb " \n"
+ gdb_expect {
+ -re ".*$gdb_prompt $" { fail "About to dump core -- returning"; return }
+ }
+
+ # We now expect to run through the whole application
+ # Since this'll run for while, set a generous timeout.
+ #
+ #RM: Keep low timeout here too
+ #set timeout [expr "$timeout + 30"]
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*Program exited normally.*$gdb_prompt $" {
+ fail "program runaway"
+ }
+ -re ".*Breakpoint 2.*67.*$gdb_prompt $" {
+ pass "get to end"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "No progress?"
+ }
+ timeout { fail "timeout" }
+ }
+ #RM: Still want a low timeout
+ #set timeout $oldtimeout
+
+ gdb_test "p debugger_saw" ".*5, 1, 9.*4, 6, 10.*3, 7, 12.*2, 8, 11.*" "check results"
+
+ # Often only one misses; let's get detailed!
+ #
+ gdb_test "p debugger_saw\[0\]\[0\]" ".*= 5.*" "1"
+ gdb_test "p debugger_saw\[0\]\[1\]" ".*= 1.*" "2"
+ gdb_test "p debugger_saw\[0\]\[2\]" ".*= 9.*" "3"
+ gdb_test "p debugger_saw\[1\]\[0\]" ".*= 4.*" "4"
+ gdb_test "p debugger_saw\[1\]\[1\]" ".*= 6.*" "5"
+ gdb_test "p debugger_saw\[1\]\[2\]" ".*= 10.*" "6"
+ gdb_test "p debugger_saw\[2\]\[0\]" ".*= 3.*" "7"
+ gdb_test "p debugger_saw\[2\]\[1\]" ".*= 7.*" "8"
+ gdb_test "p debugger_saw\[2\]\[2\]" ".*= 12.*" "9"
+ gdb_test "p debugger_saw\[3\]\[0\]" ".*= 2.*" "10"
+ gdb_test "p debugger_saw\[3\]\[1\]" ".*= 8.*" "11"
+ gdb_test "p debugger_saw\[3\]\[2\]" ".*= 11.*" "12"
+
+ send_gdb "i th\n"
+ gdb_expect {
+ -re ".* 1.*system thread.* 2.*system thread.*$gdb_prompt $" {
+ fail "Too many threads left"
+ }
+ -re ".*\\\* 1.*system thread.*main.*$gdb_prompt $" {
+ pass "Expect only base thread"
+ }
+ -re ".*No stack.*$gdb_prompt $" {
+ fail "runaway"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "Hunh?"
+ }
+ timeout { fail "timeout" }
+ }
+
+ gdb_test "c" ".*exited normally.*" "run to completion"
+
+ # Done!
+ #
+ gdb_exit
+
+ set timeout $oldtimeout
+ set verbose $oldverbose
+
+ # execute_anywhere "rm -f ${binfile}"
+ #
+ return 0
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.threads/thr-lib.h gdb/testsuite/gdb.threads/thr-lib.h
*** ../gdb-19990719/gdb/testsuite/gdb.threads/thr-lib.h Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.threads/thr-lib.h Thu Jul 22 17:50:40 1999
***************
*** 0 ****
--- 1,7 ----
+ #include <stdio.h>
+ #include <pthread.h>
+
+ #define NTHREADS 4
+ #define NUM_ELEMS 12
+
+ #define ELEMS_PER_THREAD (NUM_ELEMS/NTHREADS)
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.threads/thr-liblib.c gdb/testsuite/gdb.threads/thr-liblib.c
*** ../gdb-19990719/gdb/testsuite/gdb.threads/thr-liblib.c Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.threads/thr-liblib.c Thu Jul 22 17:50:40 1999
***************
*** 0 ****
--- 1,92 ----
+ #include <stdio.h>
+
+ /* Library code for thread local in lib test.
+ */
+ #include "thr-lib.h"
+
+ extern pthread_mutex_t mutex;
+ extern int get_number();
+ extern int total;
+ extern int the_code_saw[NTHREADS][ELEMS_PER_THREAD];
+
+ /* The debugger should see this without a declaration.
+ *
+ * extern int debugger_saw[NTHREADS][ELEMS_PER_THREAD];
+ */
+
+ /* The actual thread locals.
+ */
+ __thread int sum;
+ __thread int x[ ELEMS_PER_THREAD ]; /* [3] */
+
+ void sumup()
+ {
+ int j;
+
+ sum = 0;
+ for (j = 0; j < ELEMS_PER_THREAD; j++) {
+ sum += x[j];
+ }
+
+ if( sum == x[0] )
+ /* It won't be "==", but this lets us set a breakpoint
+ * and look at the thread-local storage.
+ */
+ sum++;
+
+ x[0] = x[2]; /* Another no-op for debugger use */
+ }
+
+ void *adder( vid )
+ void * vid;
+ {
+ int id;
+ int i, j;
+ int ret;
+
+ id = (int) vid;
+
+ /* printf( "== Thread: Welcome to adder %d\n", id ); */
+
+ for (j = 0; j < ELEMS_PER_THREAD; j++) {
+ x[j] = 0;
+ }
+
+ for (i = id, j = 0; i < NUM_ELEMS; i += NTHREADS, j++ ) {
+
+ /* printf( "== Thread: id %d, i %d, j %d\n", id, i, j );
+ fflush( stdout ); */
+
+ x[j] = get_number(i); /* {0,1,2,3} +0, +4, +8 */
+
+ /* Record for posterity; the debugger will gather
+ * the same data here, using "x[j]".
+ */
+ the_code_saw[ id ][ j ] = x[j];
+
+ /* printf( "== Thread %d, sample %d, val %d, i %d\n", id, j, x[j],i );
+ fflush( stdout ); */
+ }
+
+ sumup();
+ /* printf("== Thread: adder %d contributes total %d\n", id, sum); */
+
+ /* protect global data */
+ ret = pthread_mutex_lock(&mutex);
+ if (ret != 0) {
+ printf("== Thread: pthread_mutex_lock() error: %d\n", ret);
+ exit(1);
+ }
+
+ total += sum;
+
+ ret = pthread_mutex_unlock(&mutex);
+ if (ret != 0) {
+ printf("== Thread: pthread_mutex_unlock() error: %d\n", ret);
+ exit(1);
+ }
+
+ if( NTHREADS != 4 || ELEMS_PER_THREAD != 3 || NUM_ELEMS != 12 ) {
+ printf( "** ERROR in test code **\n" );
+ }
+ }
diff -r -c -N ../gdb-19990719/gdb/testsuite/gdb.threads/thr-stg.exp gdb/testsuite/gdb.threads/thr-stg.exp
*** ../gdb-19990719/gdb/testsuite/gdb.threads/thr-stg.exp Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.threads/thr-stg.exp Thu Jul 22 17:50:40 1999
***************
*** 0 ****
--- 1,245 ----
+ # thread_local_stg.exp -- Expect script to test thread-local storage
+ # Copyright (C) 1992 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
+ # (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. */
+
+ # Please email any bugs, comments, and/or additions to this file to:
+ # bug-gdb@prep.ai.mit.edu
+
+ if $tracelevel then {
+ strace $tracelevel
+ }
+
+ if { ![istarget "hppa*-*-hpux11.*"] } {
+ verbose "HPUX thread test ignored for non-hppa or pre-HP/UX-10.30 targets."
+ return 0
+ }
+
+ set testfile start-stop
+ set srcfile ${srcdir}/${subdir}/${testfile}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+
+ if [get_compiler_info ${binfile}] {
+ return -1
+ }
+
+ # To build the executable we need to link against the thread library.
+ #
+ if { $hp_cc_compiler } {
+ set additional_flags "additional_flags=-Ae"
+ } else {
+ set additional_flags ""
+ }
+ if { [gdb_compile "${srcdir}/${subdir}/${testfile}.c" "${binfile}" executable [list debug $additional_flags ldflags=-lpthread]] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ }
+
+ # Thread stuff is _slow_; prepare for long waits.
+ #
+ # Further, this test has some "null" lines designed
+ # to consume output from gdb that was too late to be
+ # matched (sequence is "gdb_test" sends; timeout and
+ # on to next send; result finally comes in; mismatch).
+ #
+ # The null command is 'gdb_test "p \$pc" ".*" ""'
+ # NOTE: this command undoes any up/down stuff!
+ #
+ proc pre_timeout {} {
+ global timeout
+
+ set timeout [expr "$timeout + 100"]
+ }
+
+ proc post_timeout {} {
+ global timeout
+ global oldtimeout
+
+ set timeout $oldtimeout
+ gdb_test "p \$pc" ".*" ""
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+
+ gdb_load ${binfile}
+ if ![runto_main] then {
+ fail "Can't run to main"
+ return 0
+ }
+
+ set oldtimeout $timeout
+ #set timeout [expr "$timeout + 200"]
+ set oldverbose $verbose
+ #set verbose 40
+
+ gdb_test "b do_pass" ".*" "set do_pass bp"
+ gdb_test "c" ".*do_pass.*" "run to do_pass"
+ gdb_test "cle" ".*"
+
+ # Set a breakpoint at the "spin" routine and
+ # collect the thread local's value.
+ #
+ gdb_test "b 67" ".*Breakpoint 3.*67.*" "Set bp"
+
+ # Can't use "gdb_test", as it uses "$gdb_prompt $" in
+ # testing the result. Our new prompt is ">", with
+ # no trailing space, so we can't do this just by
+ # changing "prompt".
+ #
+ # Anyway, I couldn't get expect to see the ">" prompt,
+ # during the command addition, so I just punted.
+ # _You_ are welcome to try, if you want!
+ #
+ send_gdb "commands 3\n"
+ gdb_expect {
+ -re "(.*Type commands.*\"end\"\.\r\n\>)" {
+ pass "start commands"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "start commands"
+ }
+ }
+
+ # Assume we're in commands-input mode.
+ #
+ send_gdb "silent\n"
+ send_gdb "set val_debugger_saw\[me\] = a_thread_local\n"
+ send_gdb "continue\n"
+ send_gdb "end\n"
+
+ gdb_expect {
+ -re ".*set.*cont.*$gdb_prompt $" {
+ pass "add commands"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "add commands"
+ }
+ }
+
+ # Check out of paranoia.
+ #
+ send_gdb "info break 3\n"
+ gdb_expect {
+ -re ".*breakpoint.*set val_debugger.*continue.*$gdb_prompt $" {
+ pass "Commands added"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "Commands not added."
+ }
+ }
+
+ # Set a bp to inspect the results
+ #
+ gdb_test "b 134" ".*Breakpoint 4.*"
+
+ # We now expect to run through a whole pass, seeing
+ # specific results as noted below (actual gotten by
+ # running application with debugging print statements
+ # turned on.
+ #
+ # Since this'll run for while, set a generous timeout.
+ #
+ set timeout [expr "$timeout + 30"]
+ send_gdb "c\n"
+ gdb_expect {
+ -re ".*Program exited normally.*$gdb_prompt $" {
+ fail "program runaway"
+ }
+ -re ".*Pass 0 done.*Pass 1 done.*$gdb_prompt $" {
+ fail "program runaway 2"
+ }
+ -re ".*Pass 0 done.*Breakpoint 4.*134.*$gdb_prompt $" {
+ pass "get to end of first pass"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "No progress?"
+ }
+ timeout { fail "timeout" }
+ }
+
+ gdb_test "p val_debugger_saw" ".*0, 1, 3.*" "first pass"
+
+ send_gdb "i th\n"
+ gdb_expect {
+ -re ".* 1.*system thread.* 2.*system thread.*$gdb_prompt $" {
+ fail "Too many threads left"
+ }
+ -re ".*\\\* 1 system thread.*$gdb_prompt $" {
+ pass "Expect only base thread"
+ }
+ -re ".*No stack.*$gdb_prompt $" {
+ fail "runaway"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "Hunh?"
+ }
+ timeout { fail "timeout" }
+ }
+
+ gdb_test "i b" ".*4.*breakpoint.*134.*hit.*1 time.*" "Expect 134 bp to exist"
+
+ gdb_test "c" ".*Breakpoint 4.*134.*" "get to end of second pass"
+ gdb_test "p val_debugger_saw" ".*6, 10, 15.*" "second pass"
+
+ gdb_test "c" ".*Breakpoint 4.*134.*" "get to end of third pass"
+ gdb_test "p val_debugger_saw" ".*21, 28, 36.*" "third pass"
+
+ gdb_test "info bre 3" ".*already hit 9 times.*" "count of silent bp hits"
+
+ # Start over and do some "info address" stuff
+ #
+ send_gdb "d\n"
+ gdb_expect {
+ -re ".*Delete all breakpoints.*$" {
+ send_gdb "y\n"
+ gdb_expect {
+ -re ".*$gdb_prompt $" {
+ pass "del bps"
+ }
+ }
+ }
+ -re ".*$gdb_prompt $" { fail "no question" }
+ }
+
+ gdb_test "b spin" ".*Breakpoint 5.*"
+
+ send_gdb "r\n"
+ gdb_expect {
+ -re ".*Start it from the beginning.*$" {
+ send_gdb "y\n"
+ gdb_expect {
+ -re ".*$gdb_prompt $" { pass "restart" }
+ }
+ }
+ -re ".*Starting program.*$gdb_prompt $" {
+ pass "restart after previous fails"
+ }
+ -re ".*$gdb_prompt $" { fail "Can't restart" }
+ }
+ gdb_test "i ad a_global" ".*a_global.*static storage at address.*" "i ad a_global"
+ gdb_test "i add me" ".*me.*local variable at frame offset.*" "i ad me"
+ gdb_test "i ad a_thread_local" ".*a_thread_local.*a thread-local variable at offset.*" "i ad a_thread_local"
+
+ # Done!
+ #
+ gdb_exit
+
+ set timeout $oldtimeout
+ set verbose $oldverbose
+
+ # execute_anywhere "rm -f ${binfile}"
+ #
+ return 0
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: gdb.disasm testsuite patch
1999-07-22 18:19 gdb.disasm testsuite patch Jimmy Guo
` (3 preceding siblings ...)
1999-07-22 18:52 ` gdb.threads " Jimmy Guo
@ 1999-08-04 17:01 ` Stan Shebs
1999-08-04 17:14 ` Jimmy Guo
4 siblings, 1 reply; 7+ messages in thread
From: Stan Shebs @ 1999-08-04 17:01 UTC (permalink / raw)
To: guo; +Cc: gdb-patches
Date: Thu, 22 Jul 1999 18:19:20 -0700 (PDT)
From: Jimmy Guo <guo@cup.hp.com>
This patch contains merged gdb.disasm testsuite.
It includes merge changes and some new tests added by HP for pa1.1 / 2.0
/ 2.0w testing. A FSF copyright assignment is on its way.
File renames / moves (a tar file of gdb.disasm has been ftp'd over as
ftp.cygnus.com:/incoming/hp_gdb.disasm.tar, *** since there're binaries
included please apply the actual change from the tar file ***):
This patch didn't work very well for me, perhaps because
testsuite/tools doesn't exist? Also, I'd still like to avoid the
binary files, they're going to be trouble from now until the end of
time. Even the initial submission can't be handled in the usual
way because of this.
Also, Jeff Law is bashing on disassembly testsuite, and we need to
coordinate that as well. Let's get together and discuss.
Stan
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: gdb.disasm testsuite patch
1999-08-04 17:01 ` gdb.disasm " Stan Shebs
@ 1999-08-04 17:14 ` Jimmy Guo
0 siblings, 0 replies; 7+ messages in thread
From: Jimmy Guo @ 1999-08-04 17:14 UTC (permalink / raw)
To: Stan Shebs; +Cc: gdb-patches
I've submitted the tools stuff (contains just one script) via ftp, on
the same day after this patch was submitted.
About the binary bits, yes this is a pain. Let's discuss this offline
to find an alternative.
- Jimmy
> This patch contains merged gdb.disasm testsuite.
>
> It includes merge changes and some new tests added by HP for pa1.1 / 2.0
> / 2.0w testing. A FSF copyright assignment is on its way.
>
> File renames / moves (a tar file of gdb.disasm has been ftp'd over as
> ftp.cygnus.com:/incoming/hp_gdb.disasm.tar, *** since there're binaries
> included please apply the actual change from the tar file ***):
>
>This patch didn't work very well for me, perhaps because
>testsuite/tools doesn't exist? Also, I'd still like to avoid the
>binary files, they're going to be trouble from now until the end of
>time. Even the initial submission can't be handled in the usual
>way because of this.
>
>Also, Jeff Law is bashing on disassembly testsuite, and we need to
>coordinate that as well. Let's get together and discuss.
>
> Stan
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~1999-08-04 17:14 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-07-22 18:19 gdb.disasm testsuite patch Jimmy Guo
1999-07-22 18:23 ` tools/ tar " Jimmy Guo
1999-07-22 18:28 ` gdb.fortran " Jimmy Guo
1999-07-22 18:43 ` gdb.hp " Jimmy Guo
1999-07-22 18:52 ` gdb.threads " Jimmy Guo
1999-08-04 17:01 ` gdb.disasm " Stan Shebs
1999-08-04 17:14 ` Jimmy Guo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox