This is the mail archive of the gdb-patches@sourceware.cygnus.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

submission: dejagnu & gdb/testsuite/gdb.base patch


Here is the patch containing gdb/testsuite/gdb.base changes resulting
from the HP and Cygnus tree merge, as well as:
     dejagnu/runtest.exp
	:: backout dependency on environment variable equivalents to TCL
	   variables
     dejagnu/lib/target.exp
        :: backout dependency on environment variable equivalents to TCL
	   variables
	   adjust HP compiler warning message filtering,
     gdb/testsuite/configure
        :: add gdb.fortran to the list of configdirs
	   (more fortran tests, which require compilation and executable
	    cleanup, will appear in a following patch)
     gdb/testsuite/configure.in
        :: add gdb.fortran to the list of configdirs
	   (more fortran tests, which require compilation and executable
	    cleanup, will appear in a following patch)
     gdb/testsuite/lib/gdb.exp
        :: enhance gdb_test proc to use -notransfer when multiple
	   GDB commands are to be tested; this enhancement allows expect
	   to keep in its unmatched buffer all outputs from multiple
	   commands to be used for pattern matching, in case the pattern
	   to be matched contains outputs from any command that is not
	   the last
	   add f77 support in get_compiler_info
	   add hp_*_compiler support in get_compiler_info

The merged gdb.base structure contains file renames (to satisfy doschk),
and movements (some moved from and to gdb.hp/ tree).

- Jimmy Guo, guo@cup.hp.com

/opt/gnu/bin/diff -c -N  /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/dejagnu/runtest.exp dejagnu/runtest.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/dejagnu/runtest.exp	Tue May  4 12:09:33 1999
--- dejagnu/runtest.exp	Wed Jun 23 13:05:08 1999
***************
*** 1594,1617 ****
  # "{ name var1=value1 ... }" where `name' is a generic name for the pass and
  # currently has no other meaning.
  
-     global env
- 
      if { [info exists MULTIPASS] } {
  	set multipass $MULTIPASS
-     } elseif {[info exists env(MULTIPASS)]} {
- 	set multipass $env(MULTIPASS)
      }
      if { $multipass == "" } {
  	set multipass { "" }
      }
  
! # If PASS is specified, either as a TCL variable or in environment, we
! # want to run only the tests specified. Its value should be a number
! # or a list of numbers that specify the passes that we want to run.
      if [info exists PASS] {
  	set pass $PASS
-     } elseif [info exists env(PASS)] {
- 	set pass $env(PASS)
      } else {
  	set pass ""
      }
--- 1594,1611 ----
  # "{ name var1=value1 ... }" where `name' is a generic name for the pass and
  # currently has no other meaning.
  
      if { [info exists MULTIPASS] } {
  	set multipass $MULTIPASS
      }
      if { $multipass == "" } {
  	set multipass { "" }
      }
  
! # If PASS is specified, we want to run only the tests specified.
! # Its value should be a number or a list of numbers that specify the
! # passes that we want to run.
      if [info exists PASS] {
  	set pass $PASS
      } else {
  	set pass ""
      }
/opt/gnu/bin/diff -c -N  /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/dejagnu/lib/target.exp dejagnu/lib/target.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/dejagnu/lib/target.exp	Fri May 21 00:55:50 1999
--- dejagnu/lib/target.exp	Wed Jun 23 13:05:16 1999
***************
*** 142,204 ****
      if [ishost "alpha*-*-*"] {
          regsub -all "(^|\n)(/usr/(ucb|bin)/ld.*without exceptions was\[^\n\]+\n?)" $text "\\1" text
      }
      if [ishost "hppa*-*-hpux*"] {
!        # Ignore the compiler's warnings about PA incompatibility.
!        regsub -all "(^|\n)\[^\n\]*PA 2.0 object file \[^\n\]* was detected. The linked output may not run on a PA 1.x system." $text "" text 
   
!        regsub -all "(^|\n)\[^\n\]*PA 2.0 object file \[^\n\]* was detected. The linked output may not run on a PA 1.x system." $text "" text 
! 
!        # And the linker's +vcompatwarnings verbage.
!        regsub -all "(^|\n)\[^\n\]*Linker features were used that may not be supported\[^\n\]*.\[^\n\]*." $text "" text
  
!        # Ignore these warnings, which the HP aCC compiler seems to
!        # generate on HP-UX 10.30 and 11.0.  (Something is probably
!        # wrong with some system headers, but still...)
!        #
!        # This particular warning always is given with a line of warning
!        # text, followed by a source line, followed by a line with "^^^"
!        # underlining an offending symbol name.  Here we slurp up the
!        # warning text and the next two lines, assuming that they are
!        # the source line and underline chars.
!        #
!        regsub -all "Warning .*The linkage directive is ignored for an object or function declared static..\[^\n\]*.\[^\n\]*." $text "" text
   
!        # Ignore these warnings, which I often see from the ANSI C
!        # compiler installed on HP-UX 11.0 machines.  (Something is
!        # probably wrong with an installation, or perhaps NLS isn't
!        # quite healthy yet on 11.0.  In either case, it's easier to
!        # "fix" this nit here, than it is to track down & fix the
!        # root cause.)
!        #
!        # This particular warning always is given with a line of warning
!        # text, followed by line that says "Using internal messages".
!        #
!        regsub -all "Warning: Unable to open pxdb message catalog.*" $text "" text
!        regsub -all ".* Using internal messages.*" $text "" text
   
!        # Another form of the "unable to find message catalog" warning.
!        #
!        regsub -all "cpp: warning .*Possibly incorrect message catalog." $text "" text
   
!        # Another odd warning on 11.0.
!        #
!        regsub -all "aCC .assigner.: Warning .*Could not find library for -l.*" $text "" text
   
!        # Oh heck, just keep adding 'em here...
!        #
!        regsub -all "aCC .assigner.: Warning .*Could not satisfy instantiation request for \[^\n\]* contained in\[^\n\]*\n\t/lib/pa20_64/lib\[a-zA-Z0-9\]*.sl" $text "" text
         
!       # Remove the lines that are output by the HP F77 compiler to
!       # indicate the functions that are being compiled.
!       upvar compiler_type compiler_type
!       if { [info exists compiler_type] && $compiler_type == "f77" } {
! 	  regsub -all "\[ \ta-zA-Z_0-9\./\]*:\[\r\n\]+" $text "" text
!       }
  
!       # Ignore the warnings about unknown options
!       regsub -all ".*warning \[0-9\]+: Unknown option.*ignored.*" $text "" text
! 
!       }
  
      # Ignore these.
      regsub -all "(^|\n)\[^\n\]*linker input file unused since linking not done" $text "" text
--- 142,204 ----
      if [ishost "alpha*-*-*"] {
          regsub -all "(^|\n)(/usr/(ucb|bin)/ld.*without exceptions was\[^\n\]+\n?)" $text "\\1" text
      }
+ 
      if [ishost "hppa*-*-hpux*"] {
!         # Ignore the compiler's warnings about PA incompatibility.
!         regsub -all "(^|\n)\[^\n\]*PA 2.0 object file \[^\n\]* was detected. The linked output may not run on a PA 1.x system." $text "" text 
   
!         # And the linker's +vcompatwarnings verbage.
!         regsub -all "(^|\n)\[^\n\]*Linker features were used that may not be supported\[^\n\]*.\[^\n\]*." $text "" text
  
!         # Ignore these warnings, which the HP aCC compiler seems to
!         # generate on HP-UX 10.30 and 11.0.  (Something is probably
!         # wrong with some system headers, but still...)
!         #
!         # This particular warning always is given with a line of warning
!         # text, followed by a source line, followed by a line with "^^^"
!         # underlining an offending symbol name.  Here we slurp up the
!         # warning text and the next two lines, assuming that they are
!         # the source line and underline chars.
!         #
!         regsub -all "Warning .*The linkage directive is ignored for an object or function declared static..\[^\n\]*.\[^\n\]*." $text "" text
   
!         # Ignore these warnings, which I often see from the ANSI C
!         # compiler installed on HP-UX 11.0 machines.  (Something is
!         # probably wrong with an installation, or perhaps NLS isn't
!         # quite healthy yet on 11.0.  In either case, it's easier to
!         # "fix" this nit here, than it is to track down & fix the
!         # root cause.)
!         #
!         # This particular warning always is given with a line of warning
!         # text, followed by line that says "Using internal messages".
!         #
!         regsub -all "Warning: Unable to open pxdb message catalog.*" $text "" text
!         regsub -all ".* Using internal messages.*" $text "" text
   
!         # Another form of the "unable to find message catalog" warning.
!         #
!         regsub -all "cpp: warning .*Possibly incorrect message catalog." $text "" text
   
!         # Another odd warning on 11.0.
!         #
!         regsub -all "aCC .assigner.: Warning .*Could not find library for -l.*" $text "" text
   
!         # Oh heck, just keep adding 'em here...
!         #
!         regsub -all "aCC .assigner.: Warning .*Could not satisfy instantiation request for \[^\n\]* contained in\[^\n\]*\n\t/lib/pa20_64/lib\[a-zA-Z0-9\]*.sl" $text "" text
         
!         # Remove the lines that are output by the HP F77 / F90 compiler to
!         # indicate the functions that are being compiled.
!         upvar compiler_type compiler_type
!         if { [info exists compiler_type]
! 	    &&
! 	    ($compiler_type == "f77") } {
! 	    regsub -all "\[ \ta-zA-Z_0-9\./\-\]*(:|)\[\r\n\]+.*" $text "" text
!         }
  
!         # Ignore the warnings about unknown options
!         regsub -all ".*warning \[0-9\]+: Unknown option.*ignored.*" $text "" text
!     }
  
      # Ignore these.
      regsub -all "(^|\n)\[^\n\]*linker input file unused since linking not done" $text "" text
***************
*** 283,289 ****
  proc default_target_compile {source destfile type options} {
      global target_triplet
      global tool_root_dir
-     global env
      global CFLAGS_FOR_TARGET
      global compiler_flags
  
--- 283,288 ----
***************
*** 300,310 ****
  
      if [info exists CFLAGS_FOR_TARGET] {
  	append add_flags " $CFLAGS_FOR_TARGET"
- # The top level Makefile sets (and exports) a *FLAGS_FOR_TARGET
- # that may not be applicable to testsuite runs.  This conflict
- # needs to be resolved.
- #    } elseif [info exists env(CFLAGS_FOR_TARGET)] {
- #	append add_flags " $env(CFLAGS_FOR_TARGET)"
      }
  
      if [info exists target_info(host,name)] {
--- 299,304 ----
***************
*** 393,440 ****
      global CC_FOR_TARGET
      global CXX_FOR_TARGET
      global F77_FOR_TARGET
!     
      if [info exists CC_FOR_TARGET] {
  	if { $compiler == "" } {
  	    set compiler $CC_FOR_TARGET
  	}
- # When started from a mid-level directory (eg gdb)
- # the Makefile may export a *_FOR_TARGET that isn't
- # applicable.
- #    } elseif [info exists env(CC_FOR_TARGET)] {
- #	if { $compiler == "" } {
- #	    set compiler $env(CC_FOR_TARGET)
- #	}
-     } elseif { [info exists env(CC_FOR_TARGET)] && $env(CC_FOR_TARGET) != "" } {
- 	if { $compiler == "" } {
- 	    set compiler $env(CC_FOR_TARGET)
- 	}
      }
  
      if [info exists CXX_FOR_TARGET] {
  	if { $compiler_type == "c++" } {
  	    set compiler $CXX_FOR_TARGET
  	}
- # When started from a mid-level directory (eg gdb)
- # the Makefile may export a *_FOR_TARGET that isn't
- # applicable.
- #    } elseif [info exists env(CXX_FOR_TARGET)] {
- #	if { $compiler_type == "c++" } {
- #	    set compiler $env(CXX_FOR_TARGET)
- #	}
      }
  
      if [info exists F77_FOR_TARGET] {
  	if { $compiler_type == "f77" } {
  	    set compiler $F77_FOR_TARGET
  	}
- # When started from a mid-level directory (eg gdb)
- # the Makefile may export a *_FOR_TARGET that isn't
- # applicable.
- #    } elseif [info exists env(F77_FOR_TARGET)] {
- #	if { $compiler_type == "f77" } {
- #	    set compiler $env(F77_FOR_TARGET)
- #	}
      }
  
      if { $compiler == "" } {
--- 387,409 ----
      global CC_FOR_TARGET
      global CXX_FOR_TARGET
      global F77_FOR_TARGET
! 
      if [info exists CC_FOR_TARGET] {
  	if { $compiler == "" } {
  	    set compiler $CC_FOR_TARGET
  	}
      }
  
      if [info exists CXX_FOR_TARGET] {
  	if { $compiler_type == "c++" } {
  	    set compiler $CXX_FOR_TARGET
  	}
      }
  
      if [info exists F77_FOR_TARGET] {
  	if { $compiler_type == "f77" } {
  	    set compiler $F77_FOR_TARGET
  	}
      }
  
      if { $compiler == "" } {
***************
*** 642,655 ****
  }
  
  proc default_target_assemble { source destfile flags } {
!     global env
!     global AS_FOR_TARGET;
!     global ASFLAGS_FOR_TARGET;
  
      if [info exists AS_FOR_TARGET] {
  	set AS "$AS_FOR_TARGET";
-     } elseif [info exists env(AS_FOR_TARGET)] {
- 	set AS $env(AS_FOR_TARGET)
      } else {
  	if ![board_info target exists assembler] {
  	    set AS [find_gas];
--- 611,621 ----
  }
  
  proc default_target_assemble { source destfile flags } {
!     global AS_FOR_TARGET
!     global ASFLAGS_FOR_TARGET
  
      if [info exists AS_FOR_TARGET] {
  	set AS "$AS_FOR_TARGET";
      } else {
  	if ![board_info target exists assembler] {
  	    set AS [find_gas];
***************
*** 660,670 ****
  
      if [info exists ASFLAGS_FOR_TARGET] {
  	append flags " $ASFLAGS_FOR_TARGET";
- # The top level Makefile sets (and exports) a *FLAGS_FOR_TARGET
- # that may not be applicable to testsuite runs.  This conflict
- # needs to be resolved.
- #    } elseif [info exists env(ASFLAGS_FOR_TARGET)] {
- #	append flags " $env(ASFLAGS_FOR_TARGET)"
      }
  
      if [is_remote host] {
--- 626,631 ----
***************
*** 698,711 ****
  }
  
  proc default_link { board objects destfile flags } {
!     global env
!     global LD_FOR_TARGET;
!     global LDFLAGS_FOR_TARGET;
  
      if [info exists LD_FOR_TARGET] {
  	set LD "$LD_FOR_TARGET";
-     } elseif [info exists env(LD_FOR_TARGET)] {
- 	set LD $env(LD_FOR_TARGET)
      } else {
  	if ![board_info target exists linker] {
  	    set LD [find_ld];
--- 659,669 ----
  }
  
  proc default_link { board objects destfile flags } {
!     global LD_FOR_TARGET
!     global LDFLAGS_FOR_TARGET
  
      if [info exists LD_FOR_TARGET] {
  	set LD "$LD_FOR_TARGET";
      } else {
  	if ![board_info target exists linker] {
  	    set LD [find_ld];
***************
*** 716,726 ****
  
      if [info exists LDFLAGS_FOR_TARGET] {
  	append flags " $LDFLAGS_FOR_TARGET";
- # The top level Makefile sets (and exports) a *FLAGS_FOR_TARGET
- # that may not be applicable to testsuite runs.  This conflict
- # needs to be resolved.
- #    } elseif [info exists env(LDFLAGS_FOR_TARGET)] {
- #	append flags " $env(LDFLAGS_FOR_TARGET)"
      }
  
      if [board_info $board exists ldflags] {
--- 674,679 ----
/opt/gnu/bin/diff -c -N  /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/configure gdb/testsuite/configure
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/configure	Mon Jun 21 12:36:09 1999
--- gdb/testsuite/configure	Wed Jun 23 13:07:40 1999
***************
*** 639,651 ****
  
  # Directories to use in all configurations.
  configdirs="gdb.asm \
!             gdb.base \
!             gdb.c++ \
!             gdb.disasm \
!             gdb.chill \
!             gdb.threads \
!             gdb.trace"
! 
  
  # Directories to use for a configuration which uses stabs.
  stabsdirs="gdb.stabs"
--- 639,651 ----
  
  # Directories to use in all configurations.
  configdirs="gdb.asm \
! 	    gdb.base \
! 	    gdb.c++ \
! 	    gdb.disasm \
! 	    gdb.chill \
! 	    gdb.fortran \
! 	    gdb.threads \
! 	    gdb.trace"
  
  # Directories to use for a configuration which uses stabs.
  stabsdirs="gdb.stabs"
/opt/gnu/bin/diff -c -N  /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/configure.in gdb/testsuite/configure.in
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/configure.in	Mon Jun 21 12:36:09 1999
--- gdb/testsuite/configure.in	Wed Jun 23 13:07:45 1999
***************
*** 14,26 ****
  
  # Directories to use in all configurations.
  configdirs="gdb.asm \
!             gdb.base \
!             gdb.c++ \
!             gdb.disasm \
!             gdb.chill \
!             gdb.threads \
!             gdb.trace"
! 
  
  # Directories to use for a configuration which uses stabs.
  stabsdirs="gdb.stabs"
--- 14,26 ----
  
  # Directories to use in all configurations.
  configdirs="gdb.asm \
! 	    gdb.base \
! 	    gdb.c++ \
! 	    gdb.disasm \
! 	    gdb.chill \
! 	    gdb.fortran \
! 	    gdb.threads \
! 	    gdb.trace"
  
  # Directories to use for a configuration which uses stabs.
  stabsdirs="gdb.stabs"
/opt/gnu/bin/diff -c -N  /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/lib/gdb.exp gdb/testsuite/lib/gdb.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/lib/gdb.exp	Mon Jun 21 12:36:03 1999
--- gdb/testsuite/lib/gdb.exp	Thu Jun 24 20:33:00 1999
***************
*** 374,380 ****
  		    fail "$message";
  		    return $result;
  		}
! 		gdb_expect 2 {
  		    -re "\[\r\n\]" { }
  		    timeout { }
  		}
--- 374,385 ----
  		    fail "$message";
  		    return $result;
  		}
! 		# since we're checking if each line of the multi-line
! 		# command are 'accepted' by GDB here,
! 		# we need to set -notransfer expect option so that
! 		# command output is not lost for pattern matching
! 		# - guo
! 		gdb_expect -notransfer 2 {
  		    -re "\[\r\n\]" { }
  		    timeout { }
  		}
***************
*** 883,889 ****
  		    return 1;
  		}
  	    }
! 	} else {
  	    if { [eval gdb_preprocess \
  		    [list "${srcdir}/${subdir}/compiler.c" "${binfile}.ci"] \
  		    $args] != "" } {
--- 888,894 ----
  		    return 1;
  		}
  	    }
! 	} elseif { $args != "f77" } {
  	    if { [eval gdb_preprocess \
  		    [list "${srcdir}/${subdir}/compiler.c" "${binfile}.ci"] \
  		    $args] != "" } {
***************
*** 893,949 ****
  	}
      }
      
!     source ${binfile}.ci
      return 0;
  }
  
! proc gdb_preprocess {source dest args} {
!     global CC_FOR_TARGET
!     global CXX_FOR_TARGET
  
!     if { [llength $args] == 0 } {
          set which_compiler "c"
      } else {
          if { $args =="c++" } {
              set which_compiler "c++"
          } else {
  	    perror "Unknown compiler type supplied to gdb_preprocess"
! 	    return 1;
          }
      }
  
      if [info exists CC_FOR_TARGET] {
! 	if { $which_compiler == "c"} {
! 	    set compiler $CC_FOR_TARGET;
  	}
      }
   
      if [info exists CXX_FOR_TARGET] {
! 	if { $which_compiler == "c++"} {
! 	    set compiler $CXX_FOR_TARGET;
  	}
      }
  
      if { ![info exists compiler] } {
          if { $which_compiler == "c" } {
  	    if {[info exists CC]} {
! 		set compiler $CC;
  	    }
  	}
          if { $which_compiler == "c++" } {
  	    if {[info exists CXX]} {
! 		set compiler $CXX;
  	    }
  	}
  	if {![info exists compiler]} {
  	    set compiler [board_info [target_info name] compiler];
  	    if { $compiler == "" } {
! 		puts "default_target_compile: No compiler to compile with";
! 		return "default_target_compile: No compiler to compile with";
  	    }
  	}
      }
  
      set cmdline "$compiler -E $source > $dest"
  
      verbose "Invoking $compiler -E $source > $dest"
--- 898,993 ----
  	}
      }
      
!     uplevel \#0 {set gcc_compiled 0}
!     if { [llength $args] == 0 || $args != "f77" } {
!         source ${binfile}.ci
!     }
! 
!     uplevel \#0 {set hp_cc_compiler 0}
!     uplevel \#0 {set hp_aCC_compiler 0}
!     uplevel \#0 {set hp_f77_compiler 0}
!     uplevel \#0 {set hp_f90_compiler 0}
!     if {!$gcc_compiled && [istarget "hppa*-*-hpux*"]} {
! 	# Check for the HP compilers
! 	set compiler [lindex [split [get_compiler $args] " "] 0]
! 	catch "exec what $compiler" output
! 	if [regexp ".*HP aC\\+\\+.*" $output] {
! 	    uplevel \#0 {set hp_aCC_compiler 1}
! 	} elseif [regexp ".*HP C Compiler.*" $output] {
! 	    uplevel \#0 {set hp_cc_compiler 1}
! 	} elseif [regexp ".*HP-UX f77.*" $output] {
! 	    uplevel \#0 {set hp_f77_compiler 1}
! 	} elseif [regexp ".*HP-UX f90.*" $output] {
! 	    uplevel \#0 {set hp_f90_compiler 1}
! 	}
!     }
      return 0;
  }
  
! proc get_compiler {args} {
!     global CC CC_FOR_TARGET CXX CXX_FOR_TARGET F77_FOR_TARGET
  
!     if { [llength $args] == 0 
! 	 || ([llength $args] == 1 && [lindex $args 0] == "") } {
          set which_compiler "c"
      } else {
          if { $args =="c++" } {
              set which_compiler "c++"
+ 	} elseif { $args =="f77" } {
+ 	    set which_compiler "f77"
          } else {
  	    perror "Unknown compiler type supplied to gdb_preprocess"
! 	    return 1
          }
      }
  
      if [info exists CC_FOR_TARGET] {
! 	if {$which_compiler == "c"} {
! 	    set compiler $CC_FOR_TARGET
  	}
      }
   
      if [info exists CXX_FOR_TARGET] {
! 	if {$which_compiler == "c++"} {
! 	    set compiler $CXX_FOR_TARGET
! 	}
!     }
! 
!     if [info exists F77_FOR_TARGET] {
! 	if {$which_compiler == "f77"} {
! 	    set compiler $F77_FOR_TARGET
  	}
      }
  
      if { ![info exists compiler] } {
          if { $which_compiler == "c" } {
  	    if {[info exists CC]} {
! 		set compiler $CC
  	    }
  	}
          if { $which_compiler == "c++" } {
  	    if {[info exists CXX]} {
! 		set compiler $CXX
  	    }
  	}
  	if {![info exists compiler]} {
  	    set compiler [board_info [target_info name] compiler];
  	    if { $compiler == "" } {
! 		perror "gdb_preprocess: No compiler to compile with"
! 		return 1
  	    }
  	}
      }
  
+     return $compiler
+ }
+ 
+ proc gdb_preprocess {source dest args} {
+     set compiler [get_compiler "$args"]
+     if { $compiler == "" } {
+ 	return 1
+     }
+ 
      set cmdline "$compiler -E $source > $dest"
  
      verbose "Invoking $compiler -E $source > $dest"
***************
*** 999,1004 ****
--- 1043,1062 ----
  #
  
  proc gdb_expect { args } {
+     # allow -notransfer expect flag specification,
+     # used by gdb_test routine for multi-line commands.
+     # packed with gtimeout when fed to remote_expect routine,
+     # which is a hack but due to what looks like a res and orig
+     # parsing problem in remote_expect routine (dejagnu/lib/remote.exp):
+     # what's fed into res is not removed from orig.
+     # - guo
+     if { [lindex $args 0] == "-notransfer" } {
+ 	set notransfer -notransfer;
+ 	set args [lrange $args 1 end];
+     } else {
+ 	set notransfer "";
+     }
+ 
      if { [llength $args] == 2  && [lindex $args 0] != "-re" } {
  	set gtimeout [lindex $args 0];
  	set expcode [list [lindex $args 1]];
***************
*** 1038,1044 ****
  	    set remote_suppress_flag 1;
  	}
      }
!     set code [catch {uplevel remote_expect host $gtimeout $expcode} string];
      if [info exists old_val] {
  	set remote_suppress_flag $old_val;
      } else {
--- 1096,1103 ----
  	    set remote_suppress_flag 1;
  	}
      }
!     set code [catch \
! 	{uplevel remote_expect host "$gtimeout $notransfer" $expcode} string];
      if [info exists old_val] {
  	set remote_suppress_flag $old_val;
      } else {
/opt/gnu/bin/diff -c -N  /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base gdb/testsuite/gdb.base
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/Makefile.in gdb/testsuite/gdb.base/Makefile.in
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/Makefile.in	Thu Jun  3 11:48:09 1999
--- gdb/testsuite/gdb.base/Makefile.in	Thu Jun 24 20:28:01 1999
***************
*** 1,20 ****
  VPATH = @srcdir@
  srcdir = @srcdir@
  
! EXECUTABLES = all-types annota1 annota2 bitfields break \
! 	call-ar-st call-rt-st call-strs callfuncs callfuncs2 commands \
! 	compiler condbreak constvars coremaker display \
! 	ending-run exprs funcargs int-type interrupt \
! 	jump langs \
! 	list long_long \
! 	mips_pro miscexprs nodebug opaque pointers pointers2 printcmds ptype \
! 	recurse reread reread1 restore return run \
! 	scope section_command setshow setvar \
! 	shmain sigall signals smoke smoke1 \
! 	solib so-impl-ld so-indr-cl \
! 	step-test structs structs2 twice-tmp varargs watchpoint whatis
  
! MISCELLANEOUS = coremmap.data shr1.sl shr2.sl solib1.sl solib2.sl
  
  all:
  	@echo "Nothing to be done for all..."
--- 1,18 ----
  VPATH = @srcdir@
  srcdir = @srcdir@
  
! EXECUTABLES = all-types annota1 annota2 bitfields break call-ar-st \
! 	call-rt-st call-strs callfns callfns2 commands compiler condbreak \
! 	constvars coremaker dbx-test display ending-run execd-prog exprs \
! 	foll-exec foll-fork foll-vfork funcargs int-type interrupt jump \
! 	langs list long_long mips_pro miscexprs nodebug opaque overlays \
! 	ptrs ptrs2 printcmds ptype recurse reread reread1 restore return \
! 	run scope section_command setshow setvar shmain sigall signals \
! 	solib solib_sl so-impl-ld so-indr-cl step-test structs structs2 \
! 	twice-tmp varargs vforked-prog watchpoint whatis
  
! MISCELLANEOUS = coremmap.data ../foobar.baz \
! 	shr1.sl shr2.sl solib_sl.sl solib1.sl solib2.sl
  
  all:
  	@echo "Nothing to be done for all..."
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/a1-self.exp gdb/testsuite/gdb.base/a1-self.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/a1-self.exp	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/a1-self.exp	Thu Jun 24 20:29:39 1999
***************
*** 0 ****
--- 1,430 ----
+ #   Copyright (C) 1988, 1990, 1991, 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 Rob Savoye. (rob@cygnus.com)
+ 
+ if $tracelevel then {
+     strace $tracelevel
+ }
+ 
+ set prms_id 0
+ set bug_id 0
+ 
+ # are we on a target board
+ if [is_remote target] {
+     return
+ }
+ 
+ if [istarget "m68k*-*-hpux*"] then {
+     # The top-level makefile passes CFLAGS= (no -g) for hp300.  This probably
+     # should be fixed (it is only needed for gcc bootstrapping, not gdb),
+     # but until then.....
+     setup_xfail "*-*-*"
+     fail "cannot test self if compiled without debug info"
+     return -1
+ }
+ 
+ # Not all of the lines of code near the start of main are executed for
+ # every machine.  Also, optimization may reorder some of the lines.
+ # So all we do is try to step or next over everything until we get
+ # to a line that we know is always executed.
+ 
+ proc do_steps_and_nexts {} {
+     global gdb_prompt
+     global srcdir
+  
+     gdb_reinitialize_dir $srcdir/..
+ 
+     for {set count 0} {$count < 20} {incr count} {
+ 	send_gdb "list\n"
+ 	gdb_expect {
+ 	    -re ".*symarg = NULL.*$gdb_prompt $" {
+ 		set description "step over symarg initialization"
+ 		set command "step"
+ 	    }
+ 	    -re ".*execarg = NULL.*$gdb_prompt $" {
+ 		set description "step over execarg initialization"
+ 		set command "step"
+ 	    }
+ 	    -re ".*corearg = NULL.*$gdb_prompt $" {
+ 		set description "step over corearg initialization"
+ 		set command "step"
+ 	    }
+ 	    -re ".*cdarg = NULL.*$gdb_prompt $" {
+ 		set description "step over cdarg initialization"
+ 		set command "step"
+ 	    }
+ 	    -re ".*ttyarg = NULL.*$gdb_prompt $" {
+ 		set description "step over ttyarg initialization"
+ 		set command "step"
+ 	    }
+ 	    -re ".*interparg = NULL.*$gdb_prompt $" {
+ 		set description "step over interparg initialization"
+ 		set command "step"
+ 	    }
+ 	    -re ".*time_at_startup = get_run_time.*$gdb_prompt $" {
+ 		set description "next over get_run_time and everything it calls"
+ 		set command "next"
+ 	    }
+ 	    -re ".*START_PROGRESS.*$gdb_prompt $" {
+ 		set description "next over START_PROGRESS and everything it calls"
+ 		set command "next"
+ 	    }
+ 	    -re ".*mac_init.*$gdb_prompt $" {
+ 		set description "next over mac_init and everything it calls"
+ 		set command "next"
+ 	    }
+ 	    -re ".*init_malloc.*$gdb_prompt $" {
+ 		set description "next over init_malloc and everything it calls"
+ 		set command "next"
+ 	    }
+ 	    -re ".*count . 0x3.*$gdb_prompt $" {
+ 		set description "next over conditional stack alignment code 1"
+ 		set command "next"
+ 	    }
+ 	    -re ".*if .i != 0.*$gdb_prompt $" {
+ 		set description "next over conditional stack alignment code 2"
+ 		set command "next"
+ 	    }
+ 	    -re ".*alloca .i - 4.*$gdb_prompt $" {
+ 		set description "next over conditional stack alignment alloca"
+ 		set command "next"
+ 	    }
+ 	    -re ".*SET_TOP_LEVEL.*$gdb_prompt $" {
+ 		set description "next over SET_TOP_LEVEL call"
+ 		set command "next"
+ 	    }
+ 	    -re ".*cmdsize = 1.*$gdb_prompt $" {
+ 		set description "step over cmdsize initialization"
+ 		set command "next"
+ 	    }
+ 	    -re ".*cmdarg = .* xmalloc.*$gdb_prompt $" {
+ 		set description "next over cmdarg initialization via xmalloc"
+ 		set command "next"
+ 	    }
+ 	    -re ".*ncmd = 0.*$gdb_prompt $" {
+ 		set description "next over ncmd initialization"
+ 		set command "next"
+ 	    }
+ 	    -re ".*dirsize = 1.*$gdb_prompt $" {
+ 		set description "next over dirsize initialization"
+ 		set command "next"
+ 	    }
+ 	    -re ".*dirarg = .* xmalloc.*$gdb_prompt $" {
+ 		return
+ 	    }
+ 	    -re "\[ \t\]+\{\r\n$gdb_prompt $" {
+ 		setup_xfail "mips-*-irix5*"
+ 		fail "$description ended up at odd location"
+ 	    }
+ 	    -re ".*main.c.*No such file or directory.*$gdb_prompt $" {
+ 		setup_xfail "rs6000-*-aix3*"
+ 		fail "must be able to list source lines"
+ 		return
+ 	    }
+ 	    -re ".*$gdb_prompt $" {
+ 		fail "unknown source line after $description"
+ 		return
+ 	    }
+ 	    default {
+ 		fail "unknown source line near main"
+ 		return
+ 	    }
+ 	}
+ 	send_gdb "$command\n"
+ 	gdb_expect {
+ 	    -re ".*No such file or directory.\r\n$gdb_prompt $" {
+ 		fail "$description (no source available)"
+ 	    }
+ 	    -re ".*A file or directory .* does not exist..\r\n$gdb_prompt $" {
+ 		fail "$description (no source available)"
+ 	    }
+ 	    -re ".*$gdb_prompt $" {
+ 		pass "$description"
+ 	    }
+ 	    timeout {
+ 		fail "$description (timeout)"
+ 	    }
+ 	}
+     }
+ }
+ 
+ proc test_with_self { executable } {
+     global gdb_prompt
+     global tool
+     global det_file
+     global decimal
+     global timeout
+ 
+     # load yourself into the debugger
+     # This can take a relatively long time, particularly for testing where
+     # the executable is being accessed over a network, or where gdb does not
+     # support partial symbols for a particular target and has to load the
+     # entire symbol table.  Set the timeout to 10 minutes, which should be
+     # adequate for most environments (it *has* timed out with 5 min on a
+     # SPARCstation SLC under moderate load, so this isn't unreasonable).
+     # After gdb is started, set the timeout to 30 seconds for the duration
+     # of this test, and then back to the original value.
+ 
+     set oldtimeout $timeout
+     set timeout 600
+     verbose "Timeout is now $timeout seconds" 2
+     if {[gdb_load $executable] <0} then {
+ 	set timeout $oldtimeout
+ 	verbose "Timeout is now $timeout seconds" 2
+ 	return -1
+     }
+     set timeout $oldtimeout
+     verbose "Timeout is now $timeout seconds" 2
+ 
+     # disassemble yourself
+     gdb_test "x/10i main" \
+ 	    "x/10i.*main.*main.$decimal.*main.$decimal.*" \
+ 	    "Disassemble main"
+ 
+     # Set a breakpoint at main
+     gdb_test "break main" \
+ 	    "Breakpoint.*at.* file.*, line.*" \
+ 	    "breakpoint in main"
+ 
+     # We'll need this when we send a ^C to GDB.  Need to do it before we
+     # run the program and gdb starts saving and restoring tty states.
+     # On Ultrix, we don't need it and it is really slow (because shell_escape
+     # doesn't use vfork).
+     if ![istarget "*-*-ultrix*"] then {
+ 	gdb_test "shell stty intr '^C'" "" \
+ 	    "set interrupt character in test_with_self"
+     }
+ 
+     # FIXME: If we put this after the run to main, the first list
+     # command doesn't print the same line as the current line where
+     # gdb is stopped.
+     gdb_test "set listsize 1" "" "set listsize to 1"
+ 
+     # run yourself
+     # It may take a very long time for the inferior gdb to start (lynx),
+     # so we bump it back up for the duration of this command.
+     set timeout 600
+ 
+     set description "run until breakpoint at main"
+     send_gdb "run -nw\n"
+     gdb_expect {
+ 	-re "Starting program.*Breakpoint \[0-9\]+,.*main .argc.*argv.* at .*main.c:.*$gdb_prompt $" {
+ 	    pass "$description"
+ 	}
+ 	-re "Starting program.*Breakpoint \[0-9\]+,.*main .argc.*argv.*$gdb_prompt $" {
+ 	    xfail "$description (line numbers scrambled?)"
+ 	}
+ 	-re "vfork: No more processes.*$gdb_prompt $" {
+ 	    fail "$description (out of virtual memory)"
+ 	    set timeout $oldtimeout
+ 	    verbose "Timeout is now $timeout seconds" 2
+ 	    return -1
+ 	}
+ 	-re ".*$gdb_prompt $" {
+ 	    fail "$description"
+ 	    set timeout $oldtimeout
+ 	    verbose "Timeout is now $timeout seconds" 2
+ 	    return -1
+ 	}
+ 	timeout {
+ 	    fail "$description (timeout)"
+ 	}
+     }
+ 
+     set timeout $oldtimeout
+     verbose "Timeout is now $timeout seconds" 2
+ 
+     # do we have a version number ?
+     send_gdb "print version\n"
+     gdb_expect {
+ 	-re ".\[0-9\]+ = +0x.*\[0-9.\]+.*$gdb_prompt $" {
+ 	    pass "printed version"
+ 	}
+ 	-re ".\[0-9\]+ = +.+ +0x.*\[0-9.\]+.*$gdb_prompt $" {
+ 	    pass "printed version with cast"
+ 	}
+ 	-re ".*$gdb_prompt $"	{ fail "printed version" }
+ 	timeout		{ fail "(timeout) printed version" }
+     }
+ 
+     do_steps_and_nexts
+ 
+     gdb_test "print \"foo\"" ".\[0-9\]+ = \"foo\"" "print a string"
+ 
+     # do_steps_and_nexts left us ready to execute an xmalloc call,
+     # so give that a try.
+     # If we don't actually enter the xmalloc call when we give a
+     # step command that seems like a genuine bug.  It seems to happen
+     # on most RISC processors.
+     setup_xfail "alpha-*-*" "mips-*-*"
+     set description "step into xmalloc call"
+     send_gdb "step\n"
+     gdb_expect {
+ 	-re "xmalloc.*size=.*at.*utils.c.*$gdb_prompt $" {
+ 	    pass "$description"
+ 	}
+ 	-re ".*No such file or directory.\r\n$gdb_prompt $" {
+ 	    pass "$description (no source available)"
+ 	}
+ 	-re "A file or directory .* does not exist..\r\n$gdb_prompt $" {
+ 	    pass "$description (no source available)"
+ 	}
+ 	-re ".*$gdb_prompt $" {
+ 	    fail "$description"
+ 	}
+ 	timeout {
+ 	    fail "$description (timeout)"
+ 	}
+     }
+ 
+     # start the "xgdb" process
+     send_gdb "continue\n"
+     gdb_expect {
+ 	-re "GNU gdb \[0-9\.\]*.*
+ Copyright \[0-9\]* Free Software Foundation, Inc.*
+ GDB is free software, covered by the GNU General Public License, and you are.*
+ welcome to change it and/or distribute copies of it under certain conditions.*
+ Type \"show copying\" to see the conditions.*
+ There is absolutely no warranty for GDB.  Type \"show warranty\" for details.*
+ This GDB was configured as .*$gdb_prompt $"\
+ 	    { pass "xgdb is at prompt" }
+ 	-re "GDB is free software and you are welcome to distribute copies of it.*
+  under certain conditions; type \"show copying\" to see the conditions..*
+ There is absolutely no warranty for GDB; type \"show warranty\" for details..*
+ GDB.*Copyright \[0-9\]+ Free Software Foundation, Inc..*$gdb_prompt $"\
+ 	    { pass "xgdb is at prompt (obsolescent gdb)" }
+ 	-re ".*$gdb_prompt $"       { fail "xgdb is at prompt" }
+ 	timeout	            { fail "(timeout) xgdb is at prompt" }
+     }
+     
+     # set xgdb prompt so we can tell which is which
+     send_gdb "set prompt (xgdb) \n"
+     gdb_expect {
+ 	-re "\[(\]xgdb\[)\].*\[(\]xgdb\[)\] $"	{ pass "Set xgdb prompt" }
+ 	-re ".*$gdb_prompt $"		{ fail "Set xgdb prompt" }
+ 	default				{ fail "(timeout) Set xgdb prompt" }
+     }
+     
+     # kill the xgdb process
+     set description "send ^C to child process"
+     send_gdb "\003"
+     gdb_expect {
+ 	-re "Program received signal SIGINT.*$gdb_prompt $" {
+ 	    pass "$description"
+ 	}
+ 	-re ".*$gdb_prompt $" {
+ 	    fail "$description"
+ 	}
+ 	timeout {
+ 	    fail "$description (timeout)"
+ 	}
+     }
+     
+     set description "send SIGINT signal to child process"
+     send_gdb "signal SIGINT\n"
+     gdb_expect {
+ 	-re "Continuing with signal SIGINT.*$gdb_prompt $" {
+ 	    pass "$description"
+ 	}
+ 	-re ".*$gdb_prompt $" {
+ 	    fail "$description"
+ 	}
+ 	timeout {
+ 	    fail "$description (timeout)"
+ 	}
+     }
+     
+     # get a stack trace
+     #
+     # This fails on some linux systems for unknown reasons.  On the
+     # systems where it fails, sometimes it works fine when run manually.
+     # The testsuite failures may not be limited to just aout systems.
+     setup_xfail "i*86-pc-linuxaout-gnu" "hppa*-*-hpux*"
+     set description "backtrace through signal handler"
+     send_gdb "backtrace\n"
+     gdb_expect {
+ 	-re "#0.*read.*in main \\(.*\\) at .*main\\.c.*$gdb_prompt $" {
+ 	    pass "$description"
+ 	}
+ 	-re ".*$gdb_prompt $" {
+ 	    # On the alpha, we hit the infamous problem about gdb
+ 	    # being unable to get the frame pointer (mentioned in
+ 	    # gdb/README).  As it is intermittent, there is no way to
+ 	    # XFAIL it which will give us an XPASS if the problem goes
+ 	    # away.
+ 	    setup_xfail "alpha*-*-osf*"
+ 	    fail "$description"
+ 	}
+ 	timeout {
+ 	    fail "$description (timeout)"
+ 	}
+     }
+ 
+ 
+     # Set the timeout back to the value it had when we were called.
+     set timeout $oldtimeout
+     verbose "Timeout is now $timeout seconds" 2
+ 
+     # Restart gdb in case next test expects it to be started already.
+     return 0
+ }
+ 
+ # Find a pathname to a file that we would execute if the shell was asked
+ # to run $arg using the current PATH.
+ 
+ proc find_gdb { arg } {
+ 
+     # If the arg directly specifies an existing executable file, then
+     # simply use it.
+ 
+     if [file executable $arg] then {
+ 	return $arg
+     }
+ 
+     set result [which $arg]
+     if [string match "/" [ string range $result 0 0 ]] then {
+ 	return $result
+     }
+ 
+     # If everything fails, just return the unqualified pathname as default
+     # and hope for best.
+ 
+     return $arg
+ }
+ 
+ # Run the test with self.
+ # Copy the file executable file in case this OS doesn't like to edit its own
+ # text space.
+ 
+ set GDB_FULLPATH [find_gdb $GDB]
+ 
+ # Remove any old copy lying around.
+ remote_file host delete x$tool
+ 
+ gdb_start
+ set file [remote_download host $GDB_FULLPATH x$tool]
+ set result [test_with_self $file];
+ gdb_exit;
+ catch "remote_file host delete $file";
+ 
+ if {$result <0} then {
+     warning "Couldn't test self"
+     return -1
+ }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/a1-selftest.exp gdb/testsuite/gdb.base/a1-selftest.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/a1-selftest.exp	Fri Jun  4 09:53:43 1999
--- gdb/testsuite/gdb.base/a1-selftest.exp	Wed Dec 31 16:00:00 1969
***************
*** 1,430 ****
- #   Copyright (C) 1988, 1990, 1991, 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 Rob Savoye. (rob@cygnus.com)
- 
- if $tracelevel then {
-     strace $tracelevel
- }
- 
- set prms_id 0
- set bug_id 0
- 
- # are we on a target board
- if [is_remote target] {
-     return
- }
- 
- if [istarget "m68k*-*-hpux*"] then {
-     # The top-level makefile passes CFLAGS= (no -g) for hp300.  This probably
-     # should be fixed (it is only needed for gcc bootstrapping, not gdb),
-     # but until then.....
-     setup_xfail "*-*-*"
-     fail "cannot test self if compiled without debug info"
-     return -1
- }
- 
- # Not all of the lines of code near the start of main are executed for
- # every machine.  Also, optimization may reorder some of the lines.
- # So all we do is try to step or next over everything until we get
- # to a line that we know is always executed.
- 
- proc do_steps_and_nexts {} {
-     global gdb_prompt
-     global srcdir
-  
-     gdb_reinitialize_dir $srcdir/..
- 
-     for {set count 0} {$count < 20} {incr count} {
- 	send_gdb "list\n"
- 	gdb_expect {
- 	    -re ".*symarg = NULL.*$gdb_prompt $" {
- 		set description "step over symarg initialization"
- 		set command "step"
- 	    }
- 	    -re ".*execarg = NULL.*$gdb_prompt $" {
- 		set description "step over execarg initialization"
- 		set command "step"
- 	    }
- 	    -re ".*corearg = NULL.*$gdb_prompt $" {
- 		set description "step over corearg initialization"
- 		set command "step"
- 	    }
- 	    -re ".*cdarg = NULL.*$gdb_prompt $" {
- 		set description "step over cdarg initialization"
- 		set command "step"
- 	    }
- 	    -re ".*ttyarg = NULL.*$gdb_prompt $" {
- 		set description "step over ttyarg initialization"
- 		set command "step"
- 	    }
- 	    -re ".*interparg = NULL.*$gdb_prompt $" {
- 		set description "step over interparg initialization"
- 		set command "step"
- 	    }
- 	    -re ".*time_at_startup = get_run_time.*$gdb_prompt $" {
- 		set description "next over get_run_time and everything it calls"
- 		set command "next"
- 	    }
- 	    -re ".*START_PROGRESS.*$gdb_prompt $" {
- 		set description "next over START_PROGRESS and everything it calls"
- 		set command "next"
- 	    }
- 	    -re ".*mac_init.*$gdb_prompt $" {
- 		set description "next over mac_init and everything it calls"
- 		set command "next"
- 	    }
- 	    -re ".*init_malloc.*$gdb_prompt $" {
- 		set description "next over init_malloc and everything it calls"
- 		set command "next"
- 	    }
- 	    -re ".*count . 0x3.*$gdb_prompt $" {
- 		set description "next over conditional stack alignment code 1"
- 		set command "next"
- 	    }
- 	    -re ".*if .i != 0.*$gdb_prompt $" {
- 		set description "next over conditional stack alignment code 2"
- 		set command "next"
- 	    }
- 	    -re ".*alloca .i - 4.*$gdb_prompt $" {
- 		set description "next over conditional stack alignment alloca"
- 		set command "next"
- 	    }
- 	    -re ".*SET_TOP_LEVEL.*$gdb_prompt $" {
- 		set description "next over SET_TOP_LEVEL call"
- 		set command "next"
- 	    }
- 	    -re ".*cmdsize = 1.*$gdb_prompt $" {
- 		set description "step over cmdsize initialization"
- 		set command "next"
- 	    }
- 	    -re ".*cmdarg = .* xmalloc.*$gdb_prompt $" {
- 		set description "next over cmdarg initialization via xmalloc"
- 		set command "next"
- 	    }
- 	    -re ".*ncmd = 0.*$gdb_prompt $" {
- 		set description "next over ncmd initialization"
- 		set command "next"
- 	    }
- 	    -re ".*dirsize = 1.*$gdb_prompt $" {
- 		set description "next over dirsize initialization"
- 		set command "next"
- 	    }
- 	    -re ".*dirarg = .* xmalloc.*$gdb_prompt $" {
- 		return
- 	    }
- 	    -re "\[ \t\]+\{\r\n$gdb_prompt $" {
- 		setup_xfail "mips-*-irix5*"
- 		fail "$description ended up at odd location"
- 	    }
- 	    -re ".*main.c.*No such file or directory.*$gdb_prompt $" {
- 		setup_xfail "rs6000-*-aix3*"
- 		fail "must be able to list source lines"
- 		return
- 	    }
- 	    -re ".*$gdb_prompt $" {
- 		fail "unknown source line after $description"
- 		return
- 	    }
- 	    default {
- 		fail "unknown source line near main"
- 		return
- 	    }
- 	}
- 	send_gdb "$command\n"
- 	gdb_expect {
- 	    -re ".*No such file or directory.\r\n$gdb_prompt $" {
- 		fail "$description (no source available)"
- 	    }
- 	    -re ".*A file or directory .* does not exist..\r\n$gdb_prompt $" {
- 		fail "$description (no source available)"
- 	    }
- 	    -re ".*$gdb_prompt $" {
- 		pass "$description"
- 	    }
- 	    timeout {
- 		fail "$description (timeout)"
- 	    }
- 	}
-     }
- }
- 
- proc test_with_self { executable } {
-     global gdb_prompt
-     global tool
-     global det_file
-     global decimal
-     global timeout
- 
-     # load yourself into the debugger
-     # This can take a relatively long time, particularly for testing where
-     # the executable is being accessed over a network, or where gdb does not
-     # support partial symbols for a particular target and has to load the
-     # entire symbol table.  Set the timeout to 10 minutes, which should be
-     # adequate for most environments (it *has* timed out with 5 min on a
-     # SPARCstation SLC under moderate load, so this isn't unreasonable).
-     # After gdb is started, set the timeout to 30 seconds for the duration
-     # of this test, and then back to the original value.
- 
-     set oldtimeout $timeout
-     set timeout 600
-     verbose "Timeout is now $timeout seconds" 2
-     if {[gdb_load $executable] <0} then {
- 	set timeout $oldtimeout
- 	verbose "Timeout is now $timeout seconds" 2
- 	return -1
-     }
-     set timeout $oldtimeout
-     verbose "Timeout is now $timeout seconds" 2
- 
-     # disassemble yourself
-     gdb_test "x/10i main" \
- 	    "x/10i.*main.*main.$decimal.*main.$decimal.*" \
- 	    "Disassemble main"
- 
-     # Set a breakpoint at main
-     gdb_test "break main" \
- 	    "Breakpoint.*at.* file.*, line.*" \
- 	    "breakpoint in main"
- 
-     # We'll need this when we send a ^C to GDB.  Need to do it before we
-     # run the program and gdb starts saving and restoring tty states.
-     # On Ultrix, we don't need it and it is really slow (because shell_escape
-     # doesn't use vfork).
-     if ![istarget "*-*-ultrix*"] then {
- 	gdb_test "shell stty intr '^C'" "" \
- 	    "set interrupt character in test_with_self"
-     }
- 
-     # FIXME: If we put this after the run to main, the first list
-     # command doesn't print the same line as the current line where
-     # gdb is stopped.
-     gdb_test "set listsize 1" "" "set listsize to 1"
- 
-     # run yourself
-     # It may take a very long time for the inferior gdb to start (lynx),
-     # so we bump it back up for the duration of this command.
-     set timeout 600
- 
-     set description "run until breakpoint at main"
-     send_gdb "run -nw\n"
-     gdb_expect {
- 	-re "Starting program.*Breakpoint \[0-9\]+,.*main .argc.*argv.* at .*main.c:.*$gdb_prompt $" {
- 	    pass "$description"
- 	}
- 	-re "Starting program.*Breakpoint \[0-9\]+,.*main .argc.*argv.*$gdb_prompt $" {
- 	    xfail "$description (line numbers scrambled?)"
- 	}
- 	-re "vfork: No more processes.*$gdb_prompt $" {
- 	    fail "$description (out of virtual memory)"
- 	    set timeout $oldtimeout
- 	    verbose "Timeout is now $timeout seconds" 2
- 	    return -1
- 	}
- 	-re ".*$gdb_prompt $" {
- 	    fail "$description"
- 	    set timeout $oldtimeout
- 	    verbose "Timeout is now $timeout seconds" 2
- 	    return -1
- 	}
- 	timeout {
- 	    fail "$description (timeout)"
- 	}
-     }
- 
-     set timeout $oldtimeout
-     verbose "Timeout is now $timeout seconds" 2
- 
-     # do we have a version number ?
-     send_gdb "print version\n"
-     gdb_expect {
- 	-re ".\[0-9\]+ = +0x.*\[0-9.\]+.*$gdb_prompt $" {
- 	    pass "printed version"
- 	}
- 	-re ".\[0-9\]+ = +.+ +0x.*\[0-9.\]+.*$gdb_prompt $" {
- 	    pass "printed version with cast"
- 	}
- 	-re ".*$gdb_prompt $"	{ fail "printed version" }
- 	timeout		{ fail "(timeout) printed version" }
-     }
- 
-     do_steps_and_nexts
- 
-     gdb_test "print \"foo\"" ".\[0-9\]+ = \"foo\"" "print a string"
- 
-     # do_steps_and_nexts left us ready to execute an xmalloc call,
-     # so give that a try.
-     # If we don't actually enter the xmalloc call when we give a
-     # step command that seems like a genuine bug.  It seems to happen
-     # on most RISC processors.
-     setup_xfail "alpha-*-*" "mips-*-*"
-     set description "step into xmalloc call"
-     send_gdb "step\n"
-     gdb_expect {
- 	-re "xmalloc.*size=.*at.*utils.c.*$gdb_prompt $" {
- 	    pass "$description"
- 	}
- 	-re ".*No such file or directory.\r\n$gdb_prompt $" {
- 	    pass "$description (no source available)"
- 	}
- 	-re "A file or directory .* does not exist..\r\n$gdb_prompt $" {
- 	    pass "$description (no source available)"
- 	}
- 	-re ".*$gdb_prompt $" {
- 	    fail "$description"
- 	}
- 	timeout {
- 	    fail "$description (timeout)"
- 	}
-     }
- 
-     # start the "xgdb" process
-     send_gdb "continue\n"
-     gdb_expect {
- 	-re "GNU gdb \[0-9\.\]*.*
- Copyright \[0-9\]* Free Software Foundation, Inc.*
- GDB is free software, covered by the GNU General Public License, and you are.*
- welcome to change it and/or distribute copies of it under certain conditions.*
- Type \"show copying\" to see the conditions.*
- There is absolutely no warranty for GDB.  Type \"show warranty\" for details.*
- This GDB was configured as .*$gdb_prompt $"\
- 	    { pass "xgdb is at prompt" }
- 	-re "GDB is free software and you are welcome to distribute copies of it.*
-  under certain conditions; type \"show copying\" to see the conditions..*
- There is absolutely no warranty for GDB; type \"show warranty\" for details..*
- GDB.*Copyright \[0-9\]+ Free Software Foundation, Inc..*$gdb_prompt $"\
- 	    { pass "xgdb is at prompt (obsolescent gdb)" }
- 	-re ".*$gdb_prompt $"       { fail "xgdb is at prompt" }
- 	timeout	            { fail "(timeout) xgdb is at prompt" }
-     }
-     
-     # set xgdb prompt so we can tell which is which
-     send_gdb "set prompt (xgdb) \n"
-     gdb_expect {
- 	-re "\[(\]xgdb\[)\].*\[(\]xgdb\[)\] $"	{ pass "Set xgdb prompt" }
- 	-re ".*$gdb_prompt $"		{ fail "Set xgdb prompt" }
- 	default				{ fail "(timeout) Set xgdb prompt" }
-     }
-     
-     # kill the xgdb process
-     set description "send ^C to child process"
-     send_gdb "\003"
-     gdb_expect {
- 	-re "Program received signal SIGINT.*$gdb_prompt $" {
- 	    pass "$description"
- 	}
- 	-re ".*$gdb_prompt $" {
- 	    fail "$description"
- 	}
- 	timeout {
- 	    fail "$description (timeout)"
- 	}
-     }
-     
-     set description "send SIGINT signal to child process"
-     send_gdb "signal SIGINT\n"
-     gdb_expect {
- 	-re "Continuing with signal SIGINT.*$gdb_prompt $" {
- 	    pass "$description"
- 	}
- 	-re ".*$gdb_prompt $" {
- 	    fail "$description"
- 	}
- 	timeout {
- 	    fail "$description (timeout)"
- 	}
-     }
-     
-     # get a stack trace
-     #
-     # This fails on some linux systems for unknown reasons.  On the
-     # systems where it fails, sometimes it works fine when run manually.
-     # The testsuite failures may not be limited to just aout systems.
-     setup_xfail "i*86-pc-linuxaout-gnu" "hppa*-*-hpux*"
-     set description "backtrace through signal handler"
-     send_gdb "backtrace\n"
-     gdb_expect {
- 	-re "#0.*read.*in main \\(.*\\) at .*main\\.c.*$gdb_prompt $" {
- 	    pass "$description"
- 	}
- 	-re ".*$gdb_prompt $" {
- 	    # On the alpha, we hit the infamous problem about gdb
- 	    # being unable to get the frame pointer (mentioned in
- 	    # gdb/README).  As it is intermittent, there is no way to
- 	    # XFAIL it which will give us an XPASS if the problem goes
- 	    # away.
- 	    setup_xfail "alpha*-*-osf*"
- 	    fail "$description"
- 	}
- 	timeout {
- 	    fail "$description (timeout)"
- 	}
-     }
- 
- 
-     # Set the timeout back to the value it had when we were called.
-     set timeout $oldtimeout
-     verbose "Timeout is now $timeout seconds" 2
- 
-     # Restart gdb in case next test expects it to be started already.
-     return 0
- }
- 
- # Find a pathname to a file that we would execute if the shell was asked
- # to run $arg using the current PATH.
- 
- proc find_gdb { arg } {
- 
-     # If the arg directly specifies an existing executable file, then
-     # simply use it.
- 
-     if [file executable $arg] then {
- 	return $arg
-     }
- 
-     set result [which $arg]
-     if [string match "/" [ string range $result 0 0 ]] then {
- 	return $result
-     }
- 
-     # If everything fails, just return the unqualified pathname as default
-     # and hope for best.
- 
-     return $arg
- }
- 
- # Run the test with self.
- # Copy the file executable file in case this OS doesn't like to edit its own
- # text space.
- 
- set GDB_FULLPATH [find_gdb $GDB]
- 
- # Remove any old copy lying around.
- remote_file host delete x$tool
- 
- gdb_start
- set file [remote_download host $GDB_FULLPATH x$tool]
- set result [test_with_self $file];
- gdb_exit;
- catch "remote_file host delete $file";
- 
- if {$result <0} then {
-     warning "Couldn't test self"
-     return -1
- }
--- 0 ----
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/all-bin.exp gdb/testsuite/gdb.base/all-bin.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/all-bin.exp	Mon Jan  4 13:35:26 1999
--- gdb/testsuite/gdb.base/all-bin.exp	Thu Jun 24 20:28:20 1999
***************
*** 45,50 ****
--- 45,67 ----
      gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
      }
  
+ if [get_compiler_info ${binfile}] {
+     return -1
+ }
+ 
+ # if compiled by HP's aCC compiler (C++ compiler), comparison results
+ # are of type boolean instead of type integer, therefore we use symbolic
+ # values for comparison results, depending on compiler used.
+ # - guo
+ #
+ if {$hp_aCC_compiler} {
+     set true true
+     set false false
+ } else {
+     set true 1
+     set false 0
+ }
+ 
  gdb_exit
  gdb_start
  gdb_reinitialize_dir $srcdir/$subdir
***************
*** 206,212 ****
  
  send_gdb "print v_int <= v_short\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of v_int<=v_short"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_short" }
--- 223,229 ----
  
  send_gdb "print v_int <= v_short\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of v_int<=v_short"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_short" }
***************
*** 236,242 ****
  
  send_gdb "print v_int <= v_signed_short\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of v_int<=v_signed_short"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_signed_short" }
--- 253,259 ----
  
  send_gdb "print v_int <= v_signed_short\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of v_int<=v_signed_short"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_signed_short" }
***************
*** 246,252 ****
  
  send_gdb "print v_int <= v_unsigned_short\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of v_int<=v_unsigned_short"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_unsigned_short" }
--- 263,269 ----
  
  send_gdb "print v_int <= v_unsigned_short\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of v_int<=v_unsigned_short"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_unsigned_short" }
***************
*** 256,262 ****
  
  send_gdb "print v_int <= v_signed_int\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of v_int<=v_signed_int"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_signed_int" }
--- 273,279 ----
  
  send_gdb "print v_int <= v_signed_int\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of v_int<=v_signed_int"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_signed_int" }
***************
*** 266,272 ****
  
  send_gdb "print v_int <= v_unsigned_int\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of v_int<=v_unsigned_int"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_unsigned_int" }
--- 283,289 ----
  
  send_gdb "print v_int <= v_unsigned_int\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of v_int<=v_unsigned_int"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_unsigned_int" }
***************
*** 276,282 ****
  
  send_gdb "print v_int <= v_long\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of v_int<=v_long"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_long" }
--- 293,299 ----
  
  send_gdb "print v_int <= v_long\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of v_int<=v_long"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_long" }
***************
*** 286,292 ****
  
  send_gdb "print v_int <= v_signed_long\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of v_int<=v_signed_long"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_signed_long" }
--- 303,309 ----
  
  send_gdb "print v_int <= v_signed_long\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of v_int<=v_signed_long"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_signed_long" }
***************
*** 296,302 ****
  
  send_gdb "print v_int <= v_unsigned_long\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of v_int<=v_unsigned_long"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_unsigned_long" }
--- 313,319 ----
  
  send_gdb "print v_int <= v_unsigned_long\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of v_int<=v_unsigned_long"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_unsigned_long" }
***************
*** 306,312 ****
  
  send_gdb "print v_int <= v_float\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of v_int<=v_float"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_float" }
--- 323,329 ----
  
  send_gdb "print v_int <= v_float\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of v_int<=v_float"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_float" }
***************
*** 316,322 ****
  
  send_gdb "print v_int <= v_double\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of v_int<=v_double"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_double" }
--- 333,339 ----
  
  send_gdb "print v_int <= v_double\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of v_int<=v_double"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int<=v_double" }
***************
*** 335,341 ****
  
  send_gdb "print v_int && v_char\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of v_int&&v_char"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_char" }
--- 352,358 ----
  
  send_gdb "print v_int && v_char\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of v_int&&v_char"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_char" }
***************
*** 344,350 ****
  
  send_gdb "print v_int && v_short\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of v_int&&v_short"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_short" }
--- 361,367 ----
  
  send_gdb "print v_int && v_short\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of v_int&&v_short"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_short" }
***************
*** 354,360 ****
  
  send_gdb "print v_int && v_signed_char\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of v_int&&v_signed_char"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_signed_char" }
--- 371,377 ----
  
  send_gdb "print v_int && v_signed_char\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of v_int&&v_signed_char"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_signed_char" }
***************
*** 364,370 ****
  
  send_gdb "print v_int && v_unsigned_char\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of v_int&&v_unsigned_char"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_unsigned_char" }
--- 381,387 ----
  
  send_gdb "print v_int && v_unsigned_char\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of v_int&&v_unsigned_char"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_unsigned_char" }
***************
*** 374,380 ****
  
  send_gdb "print v_int && v_signed_short\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of v_int&&v_signed_short"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_signed_short" }
--- 391,397 ----
  
  send_gdb "print v_int && v_signed_short\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of v_int&&v_signed_short"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_signed_short" }
***************
*** 384,390 ****
  
  send_gdb "print v_int && v_unsigned_short\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of v_int&&v_unsigned_short"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_unsigned_short" }
--- 401,407 ----
  
  send_gdb "print v_int && v_unsigned_short\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of v_int&&v_unsigned_short"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_unsigned_short" }
***************
*** 394,400 ****
  
  send_gdb "print v_int && v_signed_int\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of v_int&&v_signed_int"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_signed_int" }
--- 411,417 ----
  
  send_gdb "print v_int && v_signed_int\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of v_int&&v_signed_int"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_signed_int" }
***************
*** 404,410 ****
  
  send_gdb "print v_int && v_unsigned_int\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of v_int&&v_unsigned_int"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_unsigned_int" }
--- 421,427 ----
  
  send_gdb "print v_int && v_unsigned_int\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of v_int&&v_unsigned_int"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_unsigned_int" }
***************
*** 414,420 ****
  
  send_gdb "print v_int && v_long\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of v_int&&v_long"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_long" }
--- 431,437 ----
  
  send_gdb "print v_int && v_long\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of v_int&&v_long"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_long" }
***************
*** 424,430 ****
  
  send_gdb "print v_int && v_signed_long\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of v_int&&v_signed_long"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_signed_long" }
--- 441,447 ----
  
  send_gdb "print v_int && v_signed_long\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of v_int&&v_signed_long"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_signed_long" }
***************
*** 434,440 ****
  
  send_gdb "print v_int && v_unsigned_long\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of v_int&&v_unsigned_long"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_unsigned_long" }
--- 451,457 ----
  
  send_gdb "print v_int && v_unsigned_long\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of v_int&&v_unsigned_long"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_unsigned_long" }
***************
*** 444,450 ****
  
  send_gdb "print v_int && v_float\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of v_int&&v_float"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_float" }
--- 461,467 ----
  
  send_gdb "print v_int && v_float\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of v_int&&v_float"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_float" }
***************
*** 454,460 ****
  
  send_gdb "print v_int && v_double\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of v_int&&v_double"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_double" }
--- 471,477 ----
  
  send_gdb "print v_int && v_double\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of v_int&&v_double"
        }
      -re ".*$gdb_prompt $" { fail "print value of v_int&&v_double" }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/annota1.c gdb/testsuite/gdb.base/annota1.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/annota1.c	Tue May  4 09:01:37 1999
--- gdb/testsuite/gdb.base/annota1.c	Thu Jun 24 20:28:31 1999
***************
*** 6,21 ****
--- 6,33 ----
  #endif
  
  
+ #ifdef PROTOTYPES
+ void
+ handle_USR1 (int sig)
+ {
+ }
+ #else
  void
  handle_USR1 (sig)
       int sig;
  {
  }
+ #endif
  
  int value;
  
+ #ifdef PROTOTYPES
+ int
+ main (void)
+ #else
  int
  main ()
+ #endif
  {
    int my_array[3] = { 1, 2, 3 };
    
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/annota1.exp gdb/testsuite/gdb.base/annota1.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/annota1.exp	Tue Jun  8 18:29:45 1999
--- gdb/testsuite/gdb.base/annota1.exp	Thu Jun 24 20:28:31 1999
***************
*** 62,68 ****
  #
  # the line at which break main will put the breakpoint
  #
! set main_line 20
  
  # The commands we test here produce many lines of output; disable "press 
  # <return> to continue" prompts.
--- 62,68 ----
  #
  # the line at which break main will put the breakpoint
  #
! set main_line 32
  
  # The commands we test here produce many lines of output; disable "press 
  # <return> to continue" prompts.
***************
*** 143,149 ****
  #exp_internal 1
  send_gdb "run\n"
    gdb_expect {
!     -re "\r\n\032\032post-prompt\r\nStarting program: $binfile \(\r\n\r\n\032\032frames-invalid\)+\(\r\n\r\n\032\032breakpoints-invalid\)*.*\(\r\n\r\n\032\032frames-invalid\)*\r\n\r\n\032\032starting\(\r\n\r\n\032\032frames-invalid\)+\r\n\r\n\032\032breakpoint 1\r\n\r\nBreakpoint 1, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n.*annota1.c\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n$main_line\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*$srcfile:$main_line:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
  	                    { pass "run until main breakpoint" }
      -re ".*$gdb_prompt$"       { fail "run until main breakpoint" }
      timeout	            { fail "run until main breakpoint (timeout)" }
--- 143,149 ----
  #exp_internal 1
  send_gdb "run\n"
    gdb_expect {
!     -re "\r\n\032\032post-prompt\r\nStarting program: $binfile \(\r\n\r\n\032\032frames-invalid\)+\(\r\n\r\n\032\032breakpoints-invalid\)*.*\(\r\n\r\n\032\032frames-invalid\)*\r\n\r\n\032\032starting\(\r\n\r\n\032\032frames-invalid\)+\r\n\r\n\032\032breakpoint 1\r\n\r\nBreakpoint 1, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n.*annota1.c\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n$main_line\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*$srcfile:$main_line:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n.*$gdb_prompt$" \
  	                    { pass "run until main breakpoint" }
      -re ".*$gdb_prompt$"       { fail "run until main breakpoint" }
      timeout	            { fail "run until main breakpoint (timeout)" }
***************
*** 258,264 ****
  #
  send_gdb "signal SIGUSR1\n"
  gdb_expect {
!   -re "\r\n\032\032post-prompt\r\nContinuing with signal SIGUSR1.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoint 2\r\n\r\nBreakpoint 2, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nhandle_USR1\r\n\032\032frame-args\r\n \\(\r\n\032\032arg-begin\r\nsig\r\n\032\032arg-name-end\r\n=\r\n\032\032arg-value -\r\n$decimal\r\n\032\032arg-end\r\n\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${srcdir}/${subdir}/${srcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*annota1.c:.*:185:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
  	{ pass "send SIGUSR1" }
    -re ".*$gdb_prompt$"     { fail "send SIGUSR1" }
    timeout	            { fail "send SIGUSR1 (timeout)" }
--- 258,264 ----
  #
  send_gdb "signal SIGUSR1\n"
  gdb_expect {
!   -re "\r\n\032\032post-prompt\r\nContinuing with signal SIGUSR1.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoint 2\r\n\r\nBreakpoint 2, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nhandle_USR1\r\n\032\032frame-args\r\n \\(\r\n\032\032arg-begin\r\nsig\r\n\032\032arg-name-end\r\n=\r\n\032\032arg-value -\r\n$decimal\r\n\032\032arg-end\r\n\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${srcdir}/${subdir}/${srcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*annota1.c:.*:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
  	{ pass "send SIGUSR1" }
    -re ".*$gdb_prompt$"     { fail "send SIGUSR1" }
    timeout	            { fail "send SIGUSR1 (timeout)" }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/attach.c gdb/testsuite/gdb.base/attach.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/attach.c	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/attach.c	Thu Jun 24 20:28:33 1999
***************
*** 0 ****
--- 1,20 ----
+ /* 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;
+ 
+ int main ()
+ {
+   int  local_i = 0;
+ 
+   while (! should_exit)
+     {
+       local_i++;
+     }
+   return 0;
+ }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/attach.exp gdb/testsuite/gdb.base/attach.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/attach.exp	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/attach.exp	Thu Jun 24 20:28:34 1999
***************
*** 0 ****
--- 1,437 ----
+ #   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 { ![istarget "hppa*-*-hpux*"] } {
+     #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."
+ }
+ 
+ # 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/attach1.${pid}
+   exec rm -f ${binfile}
+   set binfile /tmp/attach1.${pid}
+ #  exec ln -s /tmp/attach1.${pid} ${binfile}
+ 
+ # 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."
+ }
+ 
+ # Because we can't attach over nfs, copy binfile2 to /tmp/${binfile2}.${pid}
+ # and replace binfile2 with a symbolic link
+ 
+   set pid [pid]
+   exec cp -f ${binfile2} /tmp/attach2.${pid} 
+   exec rm -f ${binfile2}
+   set binfile2 /tmp/attach2.${pid}
+ #  exec ln -s /tmp/attach2.${pid} ${binfile2}
+ 
+ 
+ if [get_compiler_info ${binfile}] {
+     return -1
+ }
+ 
+ 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 failed.*Hint.*$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 15 
+    send_gdb "file\n"
+    gdb_expect {
+       -re ".*gdb internal error.*$" { 
+           fail "Internal error, prob. Memory corruption" 
+       }
+       -re "No executable 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.
+    #
+    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 executable 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
+    #
+    gdb_test "file $binfile2" ".*" "force switch to gdb64, if necessary"
+    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
+    #
+     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
+ 
+ # this seems not necessary. - guo
+ #
+ # # Since we have moved the executable to /tmp, it will be hard for gdb
+ # # to find the object file/executable to read the symbols.  This is
+ # # a known limitation.  We try and get the name of the executable the
+ # # process is running from a variety of methods, but none is foolproof.
+ # # Using "dir" will get us the symbols.
+ # 
+ # gdb_test "dir ./gdb.base" ".*" "set up directory before attach"
+ 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 "*-*-*"
+ }
+ 
+ # Cleanup the files placed in /tmp and the symlinks
+   remote_exec build "rm -f ${binfile} ${binfile2} /tmp/attach1.${pid} /tmp/attach2.${pid}"
+ 
+ return 0
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/attach2.c gdb/testsuite/gdb.base/attach2.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/attach2.c	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/attach2.c	Thu Jun 24 20:28:34 1999
***************
*** 0 ****
--- 1,24 ----
+ /* 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>
+ #include <unistd.h>
+ 
+ int  should_exit = 0;
+ 
+ int 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);
+ }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/average.c gdb/testsuite/gdb.base/average.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/average.c	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/average.c	Thu Jun 24 20:28:33 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 PROTOTYPES
+ 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 PROTOTYPES
+ 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 -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/bitfields.c gdb/testsuite/gdb.base/bitfields.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/bitfields.c	Thu Mar 30 16:42:34 1995
--- gdb/testsuite/gdb.base/bitfields.c	Thu Jun 24 20:28:01 1999
***************
*** 5,11 ****
     this may cause some tests to fail.  But at least we can still compile
     the test program and run the tests... */
  
! #ifndef __STDC__
  #define signed  /**/
  #endif
  
--- 5,11 ----
     this may cause some tests to fail.  But at least we can still compile
     the test program and run the tests... */
  
! #if !defined(__STDC__) && !defined(__cplusplus)
  #define signed  /**/
  #endif
  
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/break.c gdb/testsuite/gdb.base/break.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/break.c	Mon Apr 17 12:55:19 1995
--- gdb/testsuite/gdb.base/break.c	Thu Jun 24 20:28:01 1999
***************
*** 29,34 ****
--- 29,35 ----
  
  #else /* ! vxworks */
  #  include <stdio.h>
+ #  include <stdlib.h>
  #endif /* ! vxworks */
  
  /*
***************
*** 38,57 ****
--- 39,72 ----
   * of gcc have or have had problems with this).
   */
  
+ #ifdef PROTOTYPES
+ int marker1 (void) { return (0); }
+ int marker2 (int a) { return (1); }
+ void marker3 (char *a, char *b) {}
+ void marker4 (long d) {}
+ #else
  int marker1 () { return (0); }
  int marker2 (a) int a; { return (1); }
  void marker3 (a, b) char *a, *b; {}
  void marker4 (d) long d; {}
+ #endif
  
  /*
   *	This simple classical example of recursion is useful for
   *	testing stack backtraces and such.
   */
  
+ #ifdef PROTOTYPES
+ int factorial(int);
+ 
+ int
+ main (int argc, char **argv, char **envp)
+ #else
  int
  main (argc, argv, envp)
  int argc;
  char *argv[], **envp;
+ #endif
  {
  #ifdef usestubs
      set_debug_traps();
***************
*** 70,77 ****
--- 85,96 ----
      return 0;
  }
  
+ #ifdef PROTOTYPES
+ int factorial (int value)
+ #else
  int factorial (value)
  int value;
+ #endif
  {
      if (value > 1) {
  	value *= factorial (value - 1);
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/break.exp gdb/testsuite/gdb.base/break.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/break.exp	Thu Mar 18 23:35:16 1999
--- gdb/testsuite/gdb.base/break.exp	Thu Jun 24 20:28:02 1999
***************
*** 39,44 ****
--- 39,48 ----
      gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
  }
  
+ if [get_compiler_info ${binfile}] {
+     return -1
+ }
+ 
  gdb_exit
  gdb_start
  gdb_reinitialize_dir $srcdir/$subdir
***************
*** 88,109 ****
  #
  # test break at line number
  #
! gdb_test "break 64" \
!     "Breakpoint.*at.* file .*$srcfile, line 64\\." \
      "breakpoint line number"
  
  #
  # test duplicate breakpoint
  #
! gdb_test "break 64" \
!     "Note: breakpoint \[0-9\]+ also set at pc.*Breakpoint \[0-9\]+ at.* file .*$srcfile, line 64\\." \
      "breakpoint duplicate"
  
  #
  # test break at line number in file
  #
! gdb_test "break $srcfile:70" \
!     "Breakpoint.*at.* file .*$srcfile, line 70\\." \
      "breakpoint line number in file"
  
  
--- 92,113 ----
  #
  # test break at line number
  #
! gdb_test "break 79" \
!     "Breakpoint.*at.* file .*$srcfile, line 79\\." \
      "breakpoint line number"
  
  #
  # test duplicate breakpoint
  #
! gdb_test "break 79" \
!     "Note: breakpoint \[0-9\]+ also set at pc.*Breakpoint \[0-9\]+ at.* file .*$srcfile, line 79\\." \
      "breakpoint duplicate"
  
  #
  # test break at line number in file
  #
! gdb_test "break $srcfile:85" \
!     "Breakpoint.*at.* file .*$srcfile, line 85\\." \
      "breakpoint line number in file"
  
  
***************
*** 111,128 ****
  # check to see what breakpoints are set
  #
  if [target_info exists gdb_stub] {
!     set main_line 57
  } else {
!     set main_line 60
  }
  
  gdb_test "info break" \
      "Num Type\[ \]+Disp Enb Address\[ \]+What.*
  \[0-9\]+\[\t \]+breakpoint     keep y.* in main at .*$srcfile:$main_line.*
! \[0-9\]+\[\t \]+breakpoint     keep y.* in factorial at .*$srcfile:76.*
! \[0-9\]+\[\t \]+breakpoint     keep y.* in main at .*$srcfile:64.*
! \[0-9\]+\[\t \]+breakpoint     keep y.* in main at .*$srcfile:64.*
! \[0-9\]+\[\t \]+breakpoint     keep y.* in main at .*$srcfile:70" \
      "breakpoint info"
  
  
--- 115,137 ----
  # check to see what breakpoints are set
  #
  if [target_info exists gdb_stub] {
!     set main_line 72
  } else {
!     set main_line 75
  }
  
+ if {$hp_aCC_compiler} {
+     set proto "\\(int\\)"
+ } else {
+     set proto ""
+ }
  gdb_test "info break" \
      "Num Type\[ \]+Disp Enb Address\[ \]+What.*
  \[0-9\]+\[\t \]+breakpoint     keep y.* in main at .*$srcfile:$main_line.*
! \[0-9\]+\[\t \]+breakpoint     keep y.* in factorial$proto at .*$srcfile:95.*
! \[0-9\]+\[\t \]+breakpoint     keep y.* in main at .*$srcfile:79.*
! \[0-9\]+\[\t \]+breakpoint     keep y.* in main at .*$srcfile:79.*
! \[0-9\]+\[\t \]+breakpoint     keep y.* in main at .*$srcfile:85" \
      "breakpoint info"
  
  
***************
*** 150,184 ****
  	send_gdb "y\n"
  	exp_continue
      }
!     -re "Starting program.*Breakpoint \[0-9\]+,.*main .*argc.*argv.* at .*$srcfile:60.*60\[\t \]+if .argc.* \{.*$gdb_prompt $"\
  	                    { pass "run until function breakpoint" }
      -re ".*$gdb_prompt $"       { fail "run until function breakpoint" }
      timeout	            { fail "run until function breakpoint (timeout)" }
    }
  } else {
      if ![target_info exists gdb_stub] {
! 	gdb_test continue "Continuing\\..*Breakpoint \[0-9\]+, main \\(argc=.*, argv=.*, envp=.*\\) at .*$srcfile:60.*60\[\t \]+if .argc.*\{" "stub continue"
      }
  }
  
  #
  # run until the breakpoint at a line number
  #
! gdb_test continue "Continuing\\..*Breakpoint \[0-9\]+, main \\(argc=.*, argv=.*, envp=.*\\) at .*$srcfile:64.*64\[\t \]+printf.*factorial.*" \
  			"run until breakpoint set at a line number"
  
  #
  # Run until the breakpoint set in a function in a file
  #
  for {set i 6} {$i >= 1} {incr i -1} {
! 	gdb_test continue "Continuing\\..*Breakpoint \[0-9\]+, factorial \\(value=$i\\) at .*$srcfile:76.*76\[\t \]+if .value > 1. \{" \
  			"run until file:function($i) breakpoint"
  }
  
  #
  # run until the file:function breakpoint at a line number in a file
  #
! gdb_test continue "Continuing\\..*Breakpoint \[0-9\]+, main \\(argc=.*, argv=.*, envp=.*\\) at .*$srcfile:70.*70\[\t \]+return 0;" \
  		"run until file:linenum breakpoint"
  
  #
--- 159,193 ----
  	send_gdb "y\n"
  	exp_continue
      }
!     -re "Starting program.*Breakpoint \[0-9\]+,.*main .*argc.*argv.* at .*$srcfile:75.*75\[\t \]+if .argc.* \{.*$gdb_prompt $"\
  	                    { pass "run until function breakpoint" }
      -re ".*$gdb_prompt $"       { fail "run until function breakpoint" }
      timeout	            { fail "run until function breakpoint (timeout)" }
    }
  } else {
      if ![target_info exists gdb_stub] {
! 	gdb_test continue "Continuing\\..*Breakpoint \[0-9\]+, main \\(argc=.*, argv=.*, envp=.*\\) at .*$srcfile:75.*75\[\t \]+if .argc.*\{" "stub continue"
      }
  }
  
  #
  # run until the breakpoint at a line number
  #
! gdb_test continue "Continuing\\..*Breakpoint \[0-9\]+, main \\(argc=.*, argv=.*, envp=.*\\) at .*$srcfile:79.*79\[\t \]+printf.*factorial.*" \
  			"run until breakpoint set at a line number"
  
  #
  # Run until the breakpoint set in a function in a file
  #
  for {set i 6} {$i >= 1} {incr i -1} {
! 	gdb_test continue "Continuing\\..*Breakpoint \[0-9\]+, factorial \\(value=$i\\) at .*$srcfile:95.*95\[\t \]+.*if .value > 1. \{.*" \
  			"run until file:function($i) breakpoint"
  }
  
  #
  # run until the file:function breakpoint at a line number in a file
  #
! gdb_test continue "Continuing\\..*Breakpoint \[0-9\]+, main \\(argc=.*, argv=.*, envp=.*\\) at .*$srcfile:85.*85\[\t \]+return 0;" \
  		"run until file:linenum breakpoint"
  
  #
***************
*** 202,232 ****
  #
  # test break at line number
  #
! send_gdb "tbreak 64\n"
  gdb_expect {
!     -re "Breakpoint.*at.* file .*$srcfile, line 64.*$gdb_prompt $" { pass "Temporary breakpoint line number #1" }
  	-re ".*$gdb_prompt $"   { pass "Temporary breakpoint line number #1" }
  	timeout	    { fail "breakpoint line number #1 (timeout)" }
  }
  
! gdb_test "tbreak 60" "Breakpoint.*at.* file .*$srcfile, line 60.*" "Temporary breakpoint line number #2"
  
  #
  # test break at line number in file
  #
! send_gdb "tbreak $srcfile:70\n"
  gdb_expect {
!     -re "Breakpoint.*at.* file .*$srcfile, line 70.*$gdb_prompt $" { pass "Temporary breakpoint line number in file #1" }
  	-re ".*$gdb_prompt $"   { pass "Temporary breakpoint line number in file #1" }
  	timeout	    { fail "Temporary breakpoint line number in file #1 (timeout)" }
  }
  
! gdb_test  "tbreak $srcfile:66" "Breakpoint.*at.* file .*$srcfile, line 66.*" "Temporary breakpoint line number in file #2"
  
  #
  # check to see what breakpoints are set (temporary this time)
  #
! gdb_test "info break" "Num Type.*Disp Enb Address.*What.*\[\r\n\]\[0-9\]+\[\t \]+breakpoint     del.*y.*in main at .*$srcfile:$main_line.*\[\r\n\]\[0-9\]+\[\t \]+breakpoint     del.*y.*in factorial at .*$srcfile:76.*\[\r\n\]\[0-9\]+\[\t \]+breakpoint     del.*y.*in main at .*$srcfile:64.*\[\r\n\]\[0-9\]+\[\t \]+breakpoint     del.*y.*in main at .*$srcfile:70.*" "Temporary breakpoint info"
  
  
  #***********
--- 211,248 ----
  #
  # test break at line number
  #
! send_gdb "tbreak 79\n"
  gdb_expect {
!     -re "Breakpoint.*at.* file .*$srcfile, line 79.*$gdb_prompt $" { pass "Temporary breakpoint line number #1" }
  	-re ".*$gdb_prompt $"   { pass "Temporary breakpoint line number #1" }
  	timeout	    { fail "breakpoint line number #1 (timeout)" }
  }
  
! gdb_test "tbreak 75" "Breakpoint.*at.* file .*$srcfile, line 75.*" "Temporary breakpoint line number #2"
  
  #
  # test break at line number in file
  #
! send_gdb "tbreak $srcfile:85\n"
  gdb_expect {
!     -re "Breakpoint.*at.* file .*$srcfile, line 85.*$gdb_prompt $" { pass "Temporary breakpoint line number in file #1" }
  	-re ".*$gdb_prompt $"   { pass "Temporary breakpoint line number in file #1" }
  	timeout	    { fail "Temporary breakpoint line number in file #1 (timeout)" }
  }
  
! gdb_test  "tbreak $srcfile:81" "Breakpoint.*at.* file .*$srcfile, line 81.*" "Temporary breakpoint line number in file #2"
  
  #
  # check to see what breakpoints are set (temporary this time)
  #
! gdb_test "info break" "Num Type.*Disp Enb Address.*What.*\[\r\n\]
! \[0-9\]+\[\t \]+breakpoint     del.*y.*in main at .*$srcfile:$main_line.*\[\r\n\]
! \[0-9\]+\[\t \]+breakpoint     del.*y.*in factorial$proto at .*$srcfile:95.*\[\r\n\]
! \[0-9\]+\[\t \]+breakpoint     del.*y.*in main at .*$srcfile:79.*\[\r\n\]
! \[0-9\]+\[\t \]+breakpoint     del.*y.*in main at .*$srcfile:75.*\[\r\n\]
! \[0-9\]+\[\t \]+breakpoint     del.*y.*in main at .*$srcfile:85.*\[\r\n\]
! \[0-9\]+\[\t \]+breakpoint     del.*y.*in main at .*$srcfile:81.*" \
!     "Temporary breakpoint info"
  
  
  #***********
***************
*** 301,318 ****
  # Verify that "until <location>" works.  (This is really just syntactic
  # sugar for "tbreak <location>; continue".)
  #
! send_gdb "until 64\n"
  gdb_expect {
!   -re "main .* at .*:64.*$gdb_prompt $"\
!           {pass "until 64"}
    -re "$gdb_prompt $"\
!           {fail "until 64"}
!   timeout {fail "(timeout) until 64"}
  }
  
  # Verify that a malformed "until" is gracefully caught.
  #
! send_gdb "until 65 then stop\n"
  gdb_expect {
    -re "Junk at end of arguments..*$gdb_prompt $"\
            {pass "malformed until"}
--- 317,334 ----
  # Verify that "until <location>" works.  (This is really just syntactic
  # sugar for "tbreak <location>; continue".)
  #
! send_gdb "until 79\n"
  gdb_expect {
!   -re "main .* at .*:79.*$gdb_prompt $"\
!           {pass "until 79"}
    -re "$gdb_prompt $"\
!           {fail "until 79"}
!   timeout {fail "(timeout) until 79"}
  }
  
  # Verify that a malformed "until" is gracefully caught.
  #
! send_gdb "until 80 then stop\n"
  gdb_expect {
    -re "Junk at end of arguments..*$gdb_prompt $"\
            {pass "malformed until"}
***************
*** 379,391 ****
  #
  if ![runto_main] then { fail "break tests suppressed" }
  
! send_gdb "break 64\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line 64.*$gdb_prompt $"\
!           {pass "set to-be-silent break 64"}
    -re "$gdb_prompt $"\
!           {fail "set to-be-silent break 64"}
!   timeout {fail "(timeout) set to-be-silent break 64"}
  }
  
  send_gdb "commands $expect_out(1,string)\n"
--- 395,407 ----
  #
  if ![runto_main] then { fail "break tests suppressed" }
  
! send_gdb "break 79\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line 79.*$gdb_prompt $"\
!           {pass "set to-be-silent break 79"}
    -re "$gdb_prompt $"\
!           {fail "set to-be-silent break 79"}
!   timeout {fail "(timeout) set to-be-silent break 79"}
  }
  
  send_gdb "commands $expect_out(1,string)\n"
***************
*** 393,425 ****
  send_gdb "end\n"
  gdb_expect {
    -re ".*$gdb_prompt $"\
!           {pass "set silent break 64"}
!   timeout {fail "(timeout) set silent break 64"}
  }
  
  send_gdb "info break $expect_out(1,string)\n"
  gdb_expect {
!   -re "\[0-9\]*\[ \t\]*breakpoint.*:64\r\n\[ \t\]*silent.*$gdb_prompt $"\
!           {pass "info silent break 64"}
    -re "$gdb_prompt $"\
!           {fail "info silent break 64"}
!   timeout {fail "(timeout) info silent break 64"}
  }
  send_gdb "continue\n"
  gdb_expect {
    -re "Continuing.\r\n$gdb_prompt $"\
!           {pass "hit silent break 64"}
    -re "$gdb_prompt $"\
!           {fail "hit silent break 64"}
!   timeout {fail "(timeout) hit silent break 64"}
  }
  send_gdb "bt\n"
  gdb_expect {
!   -re "#0  main .* at .*:64.*$gdb_prompt $"\
!           {pass "stopped for silent break 64"}
    -re "$gdb_prompt $"\
!           {fail "stopped for silent break 64"}
!   timeout {fail "(timeout) stopped for silent break 64"}
  }
  
  # Verify that GDB can at least parse a breakpoint with the
--- 409,441 ----
  send_gdb "end\n"
  gdb_expect {
    -re ".*$gdb_prompt $"\
!           {pass "set silent break 79"}
!   timeout {fail "(timeout) set silent break 79"}
  }
  
  send_gdb "info break $expect_out(1,string)\n"
  gdb_expect {
!   -re "\[0-9\]*\[ \t\]*breakpoint.*:79\r\n\[ \t\]*silent.*$gdb_prompt $"\
!           {pass "info silent break 79"}
    -re "$gdb_prompt $"\
!           {fail "info silent break 79"}
!   timeout {fail "(timeout) info silent break 79"}
  }
  send_gdb "continue\n"
  gdb_expect {
    -re "Continuing.\r\n$gdb_prompt $"\
!           {pass "hit silent break 79"}
    -re "$gdb_prompt $"\
!           {fail "hit silent break 79"}
!   timeout {fail "(timeout) hit silent break 79"}
  }
  send_gdb "bt\n"
  gdb_expect {
!   -re "#0  main .* at .*:79.*$gdb_prompt $"\
!           {pass "stopped for silent break 79"}
    -re "$gdb_prompt $"\
!           {fail "stopped for silent break 79"}
!   timeout {fail "(timeout) stopped for silent break 79"}
  }
  
  # Verify that GDB can at least parse a breakpoint with the
***************
*** 427,433 ****
  # thread-specific breakpoint really triggers appropriately.
  # The gdb.threads subdirectory contains tests for that.)
  #
! send_gdb "break 65 thread 999\n"
  gdb_expect {
    -re "Unknown thread 999.*$gdb_prompt $"\
            {pass "thread-specific breakpoint on non-existent thread disallowed"}
--- 443,449 ----
  # thread-specific breakpoint really triggers appropriately.
  # The gdb.threads subdirectory contains tests for that.)
  #
! send_gdb "break 80 thread 999\n"
  gdb_expect {
    -re "Unknown thread 999.*$gdb_prompt $"\
            {pass "thread-specific breakpoint on non-existent thread disallowed"}
***************
*** 435,441 ****
            {fail "thread-specific breakpoint on non-existent thread disallowed"}
    timeout {fail "(timeout) thread-specific breakpoint on non-existent thread disallowed"}
  }
! send_gdb "break 65 thread foo\n"
  gdb_expect {
    -re "Junk after thread keyword..*$gdb_prompt $"\
            {pass "thread-specific breakpoint on bogus thread ID disallowed"}
--- 451,457 ----
            {fail "thread-specific breakpoint on non-existent thread disallowed"}
    timeout {fail "(timeout) thread-specific breakpoint on non-existent thread disallowed"}
  }
! send_gdb "break 80 thread foo\n"
  gdb_expect {
    -re "Junk after thread keyword..*$gdb_prompt $"\
            {pass "thread-specific breakpoint on bogus thread ID disallowed"}
***************
*** 447,453 ****
  # Verify that GDB responds gracefully to a breakpoint command with
  # trailing garbage.
  #
! send_gdb "break 65 foo\n"
  gdb_expect {
    -re "Junk at end of arguments..*$gdb_prompt $"\
            {pass "breakpoint with trailing garbage disallowed"}
--- 463,469 ----
  # Verify that GDB responds gracefully to a breakpoint command with
  # trailing garbage.
  #
! send_gdb "break 80 foo\n"
  gdb_expect {
    -re "Junk at end of arguments..*$gdb_prompt $"\
            {pass "breakpoint with trailing garbage disallowed"}
***************
*** 466,474 ****
            {pass "step over breakpoint"}
    timeout {fail "(timeout) step over breakpoint"}
  }
! send_gdb "clear 66\n"
  gdb_expect {
!   -re "No breakpoint at 66..*$gdb_prompt $"\
            {pass "clear line has no breakpoint disallowed"}
    -re "$gdb_prompt $"\
            {fail "clear line has no breakpoint disallowed"}
--- 482,490 ----
            {pass "step over breakpoint"}
    timeout {fail "(timeout) step over breakpoint"}
  }
! send_gdb "clear 81\n"
  gdb_expect {
!   -re "No breakpoint at 81..*$gdb_prompt $"\
            {pass "clear line has no breakpoint disallowed"}
    -re "$gdb_prompt $"\
            {fail "clear line has no breakpoint disallowed"}
***************
*** 485,499 ****
  
  # Verify that a breakpoint can be set via a convenience variable.
  #
! send_gdb "set \$foo=66\n"
  gdb_expect {
    -re "$gdb_prompt $"\
!           {pass "set convenience variable \$foo to 66"}
!   timeout {fail "(timeout) set convenience variable \$foo to 66"}
  }
  send_gdb "break \$foo\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line 66.*$gdb_prompt $"\
            {pass "set breakpoint via convenience variable"}
    -re "$gdb_prompt $"\
            {fail "set breakpoint via convenience variable"}
--- 501,515 ----
  
  # Verify that a breakpoint can be set via a convenience variable.
  #
! send_gdb "set \$foo=81\n"
  gdb_expect {
    -re "$gdb_prompt $"\
!           {pass "set convenience variable \$foo to 81"}
!   timeout {fail "(timeout) set convenience variable \$foo to 81"}
  }
  send_gdb "break \$foo\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line 81.*$gdb_prompt $"\
            {pass "set breakpoint via convenience variable"}
    -re "$gdb_prompt $"\
            {fail "set breakpoint via convenience variable"}
***************
*** 503,513 ****
  # Verify that GDB responds gracefully to an attempt to set a
  # breakpoint via a convenience variable whose type is not integer.
  #
! send_gdb "set \$foo=66.5\n"
  gdb_expect {
    -re "$gdb_prompt $"\
!           {pass "set convenience variable \$foo to 66.5"}
!   timeout {fail "(timeout) set convenience variable \$foo to 66.5"}
  }
  send_gdb "break \$foo\n"
  gdb_expect {
--- 519,529 ----
  # Verify that GDB responds gracefully to an attempt to set a
  # breakpoint via a convenience variable whose type is not integer.
  #
! send_gdb "set \$foo=81.5\n"
  gdb_expect {
    -re "$gdb_prompt $"\
!           {pass "set convenience variable \$foo to 81.5"}
!   timeout {fail "(timeout) set convenience variable \$foo to 81.5"}
  }
  send_gdb "break \$foo\n"
  gdb_expect {
***************
*** 522,528 ****
  #
  send_gdb "break marker2\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line 42.*$gdb_prompt $"\
            {pass "set breakpoint on to-be-called function"}
    -re "$gdb_prompt $"\
            {fail "set breakpoint on to-be-called function"}
--- 538,544 ----
  #
  send_gdb "break marker2\n"
  gdb_expect {
!     -re "Breakpoint (\[0-9\]*) at .*, line 4\[49\].*$gdb_prompt $"\
            {pass "set breakpoint on to-be-called function"}
    -re "$gdb_prompt $"\
            {fail "set breakpoint on to-be-called function"}
***************
*** 530,536 ****
  }
  send_gdb "print marker2(99)\n"
  gdb_expect {
!   -re "The program being debugged stopped while in a function called from GDB.\r\nWhen the function .marker2. is done executing, GDB will silently\r\nstop .instead of continuing to evaluate the expression containing\r\nthe function call...*$gdb_prompt $"\
            {pass "hit breakpoint on called function"}
    -re "$gdb_prompt $"\
            {fail "hit breakpoint on called function"}
--- 546,552 ----
  }
  send_gdb "print marker2(99)\n"
  gdb_expect {
!   -re "The program being debugged stopped while in a function called from GDB.\r\nWhen the function .marker2$proto. is done executing, GDB will silently\r\nstop .instead of continuing to evaluate the expression containing\r\nthe function call...*$gdb_prompt $"\
            {pass "hit breakpoint on called function"}
    -re "$gdb_prompt $"\
            {fail "hit breakpoint on called function"}
***************
*** 543,549 ****
  if [istarget "hppa*-*-hpux*"] then {
    send_gdb "bt\n"
    gdb_expect {
!     -re "#0\[ \t\]*marker2.*:42\r\n#1.*_sr4export.*$gdb_prompt $"\
              {pass "backtrace while in called function"}
      -re "$gdb_prompt $"\
              {fail "backtrace while in called function"}
--- 559,567 ----
  if [istarget "hppa*-*-hpux*"] then {
    send_gdb "bt\n"
    gdb_expect {
!       -re "#0\[ \t\]*marker2.*:4\[49\]\r\n#1.*_sr4export.*$gdb_prompt $"\
!             {pass "backtrace while in called function"}
!       -re "#0\[ \t\]*marker2.*:4\[49\]\r\n#1.*function called from gdb.*$gdb_prompt $"\
              {pass "backtrace while in called function"}
      -re "$gdb_prompt $"\
              {fail "backtrace while in called function"}
***************
*** 551,557 ****
    }
    send_gdb "finish\n"
    gdb_expect {
!     -re "Run till exit from .*marker2.* at .*42\r\n.* in _sr4export.*$gdb_prompt $"\
              {pass "finish from called function"}
      -re "$gdb_prompt $"\
              {fail "finish from called function"}
--- 569,577 ----
    }
    send_gdb "finish\n"
    gdb_expect {
!       -re "Run till exit from .*marker2.* at .*4\[49\]\r\n.* in _sr4export.*$gdb_prompt $"\
!             {pass "finish from called function"}
!       -re "Run till exit from .*marker2.* at .*4\[49\]\r\n.*function called from gdb.*$gdb_prompt $"\
              {pass "finish from called function"}
      -re "$gdb_prompt $"\
              {fail "finish from called function"}
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/call-ar-st.c gdb/testsuite/gdb.base/call-ar-st.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/call-ar-st.c	Tue Mar  9 07:50:01 1999
--- gdb/testsuite/gdb.base/call-ar-st.c	Thu Jun 24 20:28:26 1999
***************
*** 141,149 ****
--- 141,153 ----
   * IN     id_int student       -- enumerated type
   * IN     colors shirt         -- enumerated type
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void print_student_id_shirt_color (id_int student, colors shirt)
+ #else
  void print_student_id_shirt_color ( student, shirt ) 
   id_int student;
   colors shirt;
+ #endif
  {
  
   printf("student id : %d\t", student);
***************
*** 192,200 ****
   * PRINT_CHAR_ARRAY : 
   * IN     char  array_c[]      -- character array 
   *****************************************************************/
  void print_char_array ( array_c ) 
       char    array_c[];
! 
  {
  
    int index;
--- 196,207 ----
   * PRINT_CHAR_ARRAY : 
   * IN     char  array_c[]      -- character array 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void print_char_array (char array_c[])
+ #else
  void print_char_array ( array_c ) 
       char    array_c[];
! #endif
  {
  
    int index;
***************
*** 212,220 ****
   * PRINT_DOUBLE_ARRAY : 
   * IN     double array_d[]      -- array of doubles
   *****************************************************************/
  void print_double_array (array_d) 
       double  array_d[];
! 
  {
  
    int index;
--- 219,230 ----
   * PRINT_DOUBLE_ARRAY : 
   * IN     double array_d[]      -- array of doubles
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void print_double_array (double  array_d[])
+ #else
  void print_double_array (array_d) 
       double  array_d[];
! #endif
  {
  
    int index;
***************
*** 232,240 ****
   * PRINT_FLOAT_ARRAY: 
   * IN     float array_f[]      -- array of floats 
   *****************************************************************/
  void print_float_array ( array_f )
       float array_f[];
! 
  {
  
    int index;
--- 242,253 ----
   * PRINT_FLOAT_ARRAY: 
   * IN     float array_f[]      -- array of floats 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void print_float_array (float array_f[])
+ #else
  void print_float_array ( array_f )
       float array_f[];
! #endif
  {
  
    int index;
***************
*** 253,261 ****
   * PRINT_INT_ARRAY: 
   * IN     int  array_i[]      -- array of integers 
   *****************************************************************/
  void print_int_array ( array_i )
       int array_i[];
! 
  {
  
    int index;
--- 266,277 ----
   * PRINT_INT_ARRAY: 
   * IN     int  array_i[]      -- array of integers 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void print_int_array (int array_i[])
+ #else
  void print_int_array ( array_i )
       int array_i[];
! #endif
  {
  
    int index;
***************
*** 277,288 ****
   * IN     float array_f[]      -- array of floats 
   * IN     double array_d[]      -- array of doubles 
   *****************************************************************/
  void print_all_arrays( array_i, array_c, array_f, array_d )
       int array_i[];
       char array_c[];
       float array_f[];
       double array_d[];
! 
  {
    print_int_array(array_i);
    print_char_array(array_c);
--- 293,307 ----
   * IN     float array_f[]      -- array of floats 
   * IN     double array_d[]      -- array of doubles 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void print_all_arrays(int array_i[], char array_c[], float array_f[], double array_d[])
+ #else
  void print_all_arrays( array_i, array_c, array_f, array_d )
       int array_i[];
       char array_c[];
       float array_f[];
       double array_d[];
! #endif
  {
    print_int_array(array_i);
    print_char_array(array_c);
***************
*** 306,313 ****
--- 325,336 ----
   * A do nothing function. Used to provide a point at which calls can be made.  
   * IN  int seed
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void compute_with_small_structs (int seed)
+ #else
  void compute_with_small_structs ( seed ) 
   int seed;
+ #endif
  {
  
       struct small_rep_info_t array[4];
***************
*** 337,342 ****
--- 360,368 ----
   * IN  unsigned e  -- 0 or 1 
   * IN  unsigned o  -- 0 or 1 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_bit_flags (struct bit_flags_t *bit_flags, unsigned a, unsigned b, unsigned g, unsigned d, unsigned e, unsigned o)
+ #else
  void init_bit_flags ( bit_flags, a, b, g, d, e, o )
  struct bit_flags_t *bit_flags;
  unsigned a;
***************
*** 345,350 ****
--- 371,377 ----
  unsigned d;
  unsigned e;
  unsigned o; 
+ #endif
  {
  
     bit_flags->alpha = a;
***************
*** 370,375 ****
--- 397,405 ----
   * IN  unsigned e  -- 0 or 1 
   * IN  unsigned o  -- 0 or 1 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_bit_flags_combo (struct bit_flags_combo_t *bit_flags_combo, unsigned a, unsigned b, char ch1, unsigned g, unsigned d, char ch2, unsigned e, unsigned o)
+ #else
  void init_bit_flags_combo ( bit_flags_combo, a, b, ch1, g, d, ch2, e, o )
       struct bit_flags_combo_t *bit_flags_combo;
       unsigned a;
***************
*** 380,385 ****
--- 410,416 ----
       char     ch2;
       unsigned e;
       unsigned o; 
+ #endif
  {
  
     bit_flags_combo->alpha = a;
***************
*** 398,406 ****
--- 429,441 ----
   * OUT  struct one_double_t *one_double  -- structure to fill 
   * IN   double init_val
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_one_double (struct one_double_t *one_double, double init_val)
+ #else
  void init_one_double ( one_double, init_val )
       struct one_double_t *one_double;
       double init_val; 
+ #endif
  {
  
       one_double->double1  = init_val;
***************
*** 412,421 ****
--- 447,460 ----
   * IN  float init_val1 
   * IN  float init_val2 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_two_floats (struct two_floats_t *two_floats, float init_val1, float init_val2)
+ #else
  void init_two_floats ( two_floats, init_val1, init_val2 )
       struct two_floats_t *two_floats; 
       float init_val1;
       float init_val2;
+ #endif
  {
       two_floats->float1 = init_val1;
       two_floats->float2 = init_val2;
***************
*** 427,436 ****
--- 466,479 ----
   * IN  char init_val1 
   * IN  char init_val2 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_two_chars (struct two_char_t *two_char, char init_val1, char init_val2)
+ #else
  void init_two_chars ( two_char, init_val1, init_val2 )
       struct two_char_t *two_char;
       char init_val1;
       char init_val2; 
+ #endif
  {
  
       two_char->ch1 = init_val1;
***************
*** 444,454 ****
--- 487,501 ----
   * IN  char init_val2 
   * IN  char init_val3 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_three_chars (struct three_char_t *three_char, char init_val1, char init_val2, char init_val3)
+ #else
  void init_three_chars ( three_char, init_val1, init_val2, init_val3 )  
       struct three_char_t *three_char; 
       char init_val1;
       char init_val2;
       char init_val3;
+ #endif
  {
  
       three_char->ch1 = init_val1;
***************
*** 465,470 ****
--- 512,520 ----
   * IN  char init_val4 
   * IN  char init_val5 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_five_chars (struct five_char_t *five_char, char init_val1, char init_val2, char init_val3, char init_val4, char init_val5)
+ #else
  void init_five_chars ( five_char, init_val1, init_val2, init_val3,init_val4,init_val5 )
       struct five_char_t *five_char;
       char init_val1;
***************
*** 472,477 ****
--- 522,528 ----
       char init_val3;
       char init_val4;
       char init_val5;
+ #endif
  {
       five_char->ch1 = init_val1;
       five_char->ch2 = init_val2;
***************
*** 486,495 ****
--- 537,550 ----
   * IN  int  init_val1 
   * IN  char init_val2 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_int_char_combo (struct int_char_combo_t *combo, int init_val1, char init_val2)
+ #else
  void init_int_char_combo ( combo, init_val1, init_val2 )
       struct int_char_combo_t *combo;
       int init_val1; 
       char init_val2; 
+ #endif
  {
  
       combo->int1 = init_val1;
***************
*** 501,510 ****
   * OUT struct small_rep_into_t *small_struct -- structure to be filled
   * IN  int  seed 
   *****************************************************************/
  void init_struct_rep( small_struct, seed )
       struct small_rep_info_t *small_struct;
       int    seed;
! 
  {
  
        small_struct->value = 2 + (seed*2); 
--- 556,568 ----
   * OUT struct small_rep_into_t *small_struct -- structure to be filled
   * IN  int  seed 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_struct_rep(struct small_rep_info_t *small_struct, int seed)
+ #else
  void init_struct_rep( small_struct, seed )
       struct small_rep_info_t *small_struct;
       int    seed;
! #endif
  {
  
        small_struct->value = 2 + (seed*2); 
***************
*** 516,521 ****
--- 574,597 ----
   * Takes all the small structures as input and calls the appropriate
   * initialization routine for each structure
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_small_structs (
+      struct small_rep_info_t  *struct1,
+      struct small_rep_info_t  *struct2,
+      struct small_rep_info_t  *struct3,
+      struct small_rep_info_t  *struct4,
+      struct bit_flags_t       *flags,
+      struct bit_flags_combo_t *flags_combo,
+      struct three_char_t      *three_char,
+      struct five_char_t       *five_char,
+      struct int_char_combo_t  *int_char_combo,
+      struct one_double_t      *d1,
+      struct one_double_t      *d2,
+      struct one_double_t      *d3,
+      struct two_floats_t      *f1,
+      struct two_floats_t      *f2,
+      struct two_floats_t      *f3)
+ #else
  void init_small_structs (struct1, struct2, struct3,struct4,flags,flags_combo,
  three_char, five_char,int_char_combo, d1, d2,d3,f1,f2,f3)
       struct small_rep_info_t  *struct1;
***************
*** 533,539 ****
       struct two_floats_t      *f1;
       struct two_floats_t      *f2;
       struct two_floats_t      *f3;
! 
  {
  
       init_bit_flags(flags, (unsigned)1, (unsigned)0, (unsigned)1, 
--- 609,615 ----
       struct two_floats_t      *f1;
       struct two_floats_t      *f2;
       struct two_floats_t      *f3;
! #endif
  {
  
       init_bit_flags(flags, (unsigned)1, (unsigned)0, (unsigned)1, 
***************
*** 560,565 ****
--- 636,654 ----
   * PRINT_TEN_DOUBLES : 
   * ?????????????????????????????
   ****************************************************************/
+ #ifdef PROTOTYPES
+ void print_ten_doubles (
+      double d1,
+      double d2,
+      double d3,
+      double d4,
+      double d5,
+      double d6,
+      double d7,
+      double d8,
+      double d9,
+      double d10)
+ #else
  void print_ten_doubles ( d1, d2, d3, d4, d5, d6, d7, d8, d9, d10 )
       double d1;
       double d2;
***************
*** 571,576 ****
--- 660,666 ----
       double d8;
       double d9;
       double d10; 
+ #endif
  {
  
    printf("Two Doubles : %f\t%f\n", d1, d2);
***************
*** 584,591 ****
--- 674,685 ----
   * PRINT_BIT_FLAGS : 
   * IN struct bit_flags_t bit_flags 
   ****************************************************************/
+ #ifdef PROTOTYPES
+ void print_bit_flags (struct bit_flags_t bit_flags)
+ #else
  void print_bit_flags ( bit_flags )
  struct bit_flags_t bit_flags;
+ #endif
  {
  
       if (bit_flags.alpha) printf("alpha\n");
***************
*** 600,607 ****
   * PRINT_BIT_FLAGS_COMBO : 
   * IN struct bit_flags_combo_t bit_flags_combo 
   ****************************************************************/
  void print_bit_flags_combo ( bit_flags_combo )
! struct bit_flags_combo_t bit_flags_combo;
  {
  
       if (bit_flags_combo.alpha) printf("alpha\n");
--- 694,705 ----
   * PRINT_BIT_FLAGS_COMBO : 
   * IN struct bit_flags_combo_t bit_flags_combo 
   ****************************************************************/
+ #ifdef PROTOTYPES
+ void print_bit_flags_combo (struct bit_flags_combo_t bit_flags_combo)
+ #else
  void print_bit_flags_combo ( bit_flags_combo )
!      struct bit_flags_combo_t bit_flags_combo;
! #endif
  {
  
       if (bit_flags_combo.alpha) printf("alpha\n");
***************
*** 617,624 ****
--- 715,726 ----
   * PRINT_ONE_DOUBLE : 
   * IN struct one_double_t one_double 
   ****************************************************************/
+ #ifdef PROTOTYPES
+ void print_one_double (struct one_double_t one_double)
+ #else
  void print_one_double ( one_double )
  struct one_double_t one_double;
+ #endif
  {
  
       printf("Contents of one_double_t: \n\n");
***************
*** 629,636 ****
--- 731,742 ----
   * PRINT_TWO_FLOATS : 
   * IN struct two_floats_t two_floats 
   ****************************************************************/
+ #ifdef PROTOTYPES
+ void print_two_floats (struct two_floats_t two_floats)
+ #else
  void print_two_floats ( two_floats )
  struct two_floats_t two_floats; 
+ #endif
  {
  
       printf("Contents of two_floats_t: \n\n");
***************
*** 641,648 ****
--- 747,758 ----
   * PRINT_TWO_CHARS : 
   * IN struct two_char_t two_char
   ****************************************************************/
+ #ifdef PROTOTYPES
+ void print_two_chars (struct two_char_t two_char)
+ #else
  void print_two_chars ( two_char )
  struct two_char_t two_char; 
+ #endif
  {
  
       printf("Contents of two_char_t: \n\n");
***************
*** 653,660 ****
--- 763,774 ----
   * PRINT_THREE_CHARS : 
   * IN struct three_char_t three_char
   ****************************************************************/
+ #ifdef PROTOTYPES
+ void print_three_chars (struct three_char_t three_char)
+ #else
  void print_three_chars ( three_char )
  struct three_char_t three_char;
+ #endif
  {
  
       printf("Contents of three_char_t: \n\n");
***************
*** 665,672 ****
--- 779,790 ----
   * PRINT_FIVE_CHARS : 
   * IN struct five_char_t five_char
   ****************************************************************/
+ #ifdef PROTOTYPES
+ void print_five_chars (struct five_char_t five_char)
+ #else
  void print_five_chars ( five_char ) 
  struct five_char_t five_char; 
+ #endif
  {
  
       printf("Contents of five_char_t: \n\n");
***************
*** 679,686 ****
--- 797,808 ----
   * PRINT_INT_CHAR_COMBO : 
   * IN struct int_char_combo_t int_char_combo
   ****************************************************************/
+ #ifdef PROTOTYPES
+ void print_int_char_combo (struct int_char_combo_t int_char_combo)
+ #else
  void print_int_char_combo ( int_char_combo )
  struct int_char_combo_t int_char_combo;
+ #endif
  {
  
       printf("Contents of int_char_combo_t: \n\n");
***************
*** 695,705 ****
   * IN struct small_rep_info_t  struct2
   * IN struct small_rep_info_t  struct3
   ****************************************************************/
  void print_struct_rep( struct1, struct2, struct3)
       struct small_rep_info_t struct1;
       struct small_rep_info_t struct2;
       struct small_rep_info_t struct3;
! 
  {
  
  
--- 817,833 ----
   * IN struct small_rep_info_t  struct2
   * IN struct small_rep_info_t  struct3
   ****************************************************************/
+ #ifdef PROTOTYPES
+ void print_struct_rep(
+      struct small_rep_info_t struct1,
+      struct small_rep_info_t struct2,
+      struct small_rep_info_t struct3)
+ #else
  void print_struct_rep( struct1, struct2, struct3)
       struct small_rep_info_t struct1;
       struct small_rep_info_t struct2;
       struct small_rep_info_t struct3;
! #endif
  {
  
  
***************
*** 721,733 ****
   * IN struct small_rep_info_t  struct3
   * IN struct small_rep_info_t  struct4
   ****************************************************************/
  void sum_struct_print ( seed, struct1, struct2, struct3, struct4) 
       int seed;
       struct small_rep_info_t struct1;
       struct small_rep_info_t struct2; 
       struct small_rep_info_t struct3; 
       struct small_rep_info_t struct4; 
! 
  {
       int sum;
  
--- 849,869 ----
   * IN struct small_rep_info_t  struct3
   * IN struct small_rep_info_t  struct4
   ****************************************************************/
+ #ifdef PROTOTYPES
+ void sum_struct_print (
+      int seed,
+      struct small_rep_info_t struct1,
+      struct small_rep_info_t struct2, 
+      struct small_rep_info_t struct3,
+      struct small_rep_info_t struct4)
+ #else
  void sum_struct_print ( seed, struct1, struct2, struct3, struct4) 
       int seed;
       struct small_rep_info_t struct1;
       struct small_rep_info_t struct2; 
       struct small_rep_info_t struct3; 
       struct small_rep_info_t struct4; 
! #endif
  {
       int sum;
  
***************
*** 742,747 ****
--- 878,901 ----
   * All of the small structures of odd sizes (40 bits, 8bits, etc.)
   * are pushed onto the stack.
   ****************************************************************/
+ #ifdef PROTOTYPES
+ void print_small_structs (
+      struct small_rep_info_t  struct1,
+      struct small_rep_info_t  struct2,
+      struct small_rep_info_t  struct3,
+      struct small_rep_info_t  struct4,
+      struct bit_flags_t       flags,
+      struct bit_flags_combo_t flags_combo,
+      struct three_char_t      three_char,
+      struct five_char_t       five_char,
+      struct int_char_combo_t  int_char_combo,
+      struct one_double_t      d1,
+      struct one_double_t      d2,
+      struct one_double_t      d3,
+      struct two_floats_t      f1,
+      struct two_floats_t      f2,
+      struct two_floats_t      f3)
+ #else
  void print_small_structs ( struct1, struct2, struct3,  struct4, flags, 
  flags_combo, three_char, five_char, int_char_combo, d1, d2,d3,f1,f2,f3)
       struct small_rep_info_t  struct1;
***************
*** 759,764 ****
--- 913,919 ----
       struct two_floats_t      f1;
       struct two_floats_t      f2;
       struct two_floats_t      f3;
+ #endif
  {
     print_bit_flags(flags);
     print_bit_flags_combo(flags_combo);
***************
*** 784,789 ****
--- 939,968 ----
   * may force more space to be pushed onto the stack as part of the callers
   * frame.
   ****************************************************************/
+ #ifdef PROTOTYPES
+ void print_long_arg_list (
+      double a,
+      double b,
+      int c,
+      int d,
+      int e,
+      int f,
+      struct small_rep_info_t  struct1,
+      struct small_rep_info_t  struct2,
+      struct small_rep_info_t  struct3,
+      struct small_rep_info_t  struct4,
+      struct bit_flags_t       flags,
+      struct bit_flags_combo_t flags_combo,
+      struct three_char_t      three_char,
+      struct five_char_t       five_char,
+      struct int_char_combo_t  int_char_combo,
+      struct one_double_t      d1,
+      struct one_double_t      d2,
+      struct one_double_t      d3,
+      struct two_floats_t      f1,
+      struct two_floats_t      f2,
+      struct two_floats_t      f3)
+ #else
  void print_long_arg_list ( a, b, c, d, e, f, struct1, struct2, struct3, 
  struct4, flags, flags_combo, three_char, five_char, int_char_combo, d1,d2,d3,
  f1, f2, f3 )
***************
*** 808,814 ****
       struct two_floats_t      f1;
       struct two_floats_t      f2;
       struct two_floats_t      f3;
! 
  {
      printf("double : %f\n", a);
      printf("double : %f\n", b);
--- 987,993 ----
       struct two_floats_t      f1;
       struct two_floats_t      f2;
       struct two_floats_t      f3;
! #endif
  {
      printf("double : %f\n", a);
      printf("double : %f\n", b);
***************
*** 822,830 ****
  }
  
  
  void print_one_large_struct( linked_list1 )
       struct array_rep_info_t linked_list1;
! 
  {
  
   /* printf("Contents of linked list1: \n\n");
--- 1001,1012 ----
  }
  
  
+ #ifdef PROTOTYPES
+ void print_one_large_struct (struct array_rep_info_t linked_list1)
+ #else
  void print_one_large_struct( linked_list1 )
       struct array_rep_info_t linked_list1;
! #endif
  {
  
   /* printf("Contents of linked list1: \n\n");
***************
*** 845,855 ****
   * IN struct array_rep_info_t linked_list2
   * IN struct array_rep_info_t linked_list3
   ****************************************************************/
  void print_array_rep( linked_list1, linked_list2, linked_list3 )
       struct array_rep_info_t linked_list1;
       struct array_rep_info_t linked_list2;
       struct array_rep_info_t linked_list3;
! 
  {
  
    int index;
--- 1027,1043 ----
   * IN struct array_rep_info_t linked_list2
   * IN struct array_rep_info_t linked_list3
   ****************************************************************/
+ #ifdef PROTOTYPES
+ void print_array_rep(
+      struct array_rep_info_t linked_list1,
+      struct array_rep_info_t linked_list2,
+      struct array_rep_info_t linked_list3)
+ #else
  void print_array_rep( linked_list1, linked_list2, linked_list3 )
       struct array_rep_info_t linked_list1;
       struct array_rep_info_t linked_list2;
       struct array_rep_info_t linked_list3;
! #endif
  {
  
    int index;
***************
*** 895,907 ****
   * IN struct array_rep_info_t linked_list3
   * IN struct array_rep_info_t linked_list4
   ****************************************************************/
  void sum_array_print ( seed, linked_list1, linked_list2, linked_list3,linked_list4)
       int seed;
       struct array_rep_info_t linked_list1;
       struct array_rep_info_t linked_list2;
       struct array_rep_info_t linked_list3;
       struct array_rep_info_t linked_list4;
! 
  {
       int index;
       int sum;
--- 1083,1103 ----
   * IN struct array_rep_info_t linked_list3
   * IN struct array_rep_info_t linked_list4
   ****************************************************************/
+ #ifdef PROTOTYPES
+ void sum_array_print (
+      int seed,
+      struct array_rep_info_t linked_list1,
+      struct array_rep_info_t linked_list2,
+      struct array_rep_info_t linked_list3,
+      struct array_rep_info_t linked_list4)
+ #else
  void sum_array_print ( seed, linked_list1, linked_list2, linked_list3,linked_list4)
       int seed;
       struct array_rep_info_t linked_list1;
       struct array_rep_info_t linked_list2;
       struct array_rep_info_t linked_list3;
       struct array_rep_info_t linked_list4;
! #endif
  {
       int index;
       int sum;
***************
*** 925,934 ****
   * IN struct array_rep_info_t *linked_list
   * IN int    seed
   ****************************************************************/
  void init_array_rep( linked_list, seed )
       struct array_rep_info_t *linked_list;
       int    seed;
! 
  {
  
    int index;
--- 1121,1135 ----
   * IN struct array_rep_info_t *linked_list
   * IN int    seed
   ****************************************************************/
+ #ifdef PROTOTYPES
+ void init_array_rep(
+      struct array_rep_info_t *linked_list,
+      int    seed)
+ #else
  void init_array_rep( linked_list, seed )
       struct array_rep_info_t *linked_list;
       int    seed;
! #endif
  {
  
    int index;
***************
*** 994,1000 ****
    for (index = 0; index < 120; index++) {
        if ((index%2) == 0) char_array[index] = 'Z';
  	 else char_array[index] = 'a';
!   } char_array[120] = '\0'; /* call-ar-st.exp uses line numbers everywhere */
  
    for (index = 0; index < 100; index++) {
        double_array[index] = index*23.4567;
--- 1195,1202 ----
    for (index = 0; index < 120; index++) {
        if ((index%2) == 0) char_array[index] = 'Z';
  	 else char_array[index] = 'a';
!   }
!   char_array[120] = '\0';
  
    for (index = 0; index < 100; index++) {
        double_array[index] = index*23.4567;
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/call-ar-st.exp gdb/testsuite/gdb.base/call-ar-st.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/call-ar-st.exp	Tue Jun  8 03:11:33 1999
--- gdb/testsuite/gdb.base/call-ar-st.exp	Thu Jun 24 20:28:26 1999
***************
*** 101,113 ****
      continue
  }
  
! #go -until 1007
! gdb_test "tbreak 1007" \
!     "Breakpoint \[0-9\]+.*file.*$srcfile, line 1007.*" \
!     "tbreakpoint line 1007"
  
  gdb_test continue \
! "Continuing\\..*main \\(\\) at.*$srcfile:1007.*" \
  "run until breakpoint set at a line"
  
  
--- 101,113 ----
      continue
  }
  
! #go -until 1209
! gdb_test "tbreak 1209" \
!     "Breakpoint \[0-9\]+.*file.*$srcfile, line 1209.*" \
!     "tbreakpoint line 1209"
  
  gdb_test continue \
! "Continuing\\..*main \\(\\) at.*$srcfile:1209.*" \
  "run until breakpoint set at a line"
  
  
***************
*** 136,153 ****
  
  
  
! #go -until 1014
! gdb_test "tbreak 1014" \
! "Breakpoint.*file.*$srcfile, line 1014.*" \
! "tbreakpoint line 1014"
  
  send_gdb "continue\n"
  gdb_expect {
!     -re "array_c :\[ \t\r\n\]+=========\[ \t\r\n\]+\[ \t\r\n\]+Z\[ \t\r\n\]+aZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZ\[ \t\r\n\]+aZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZ\[ \t\r\n\]+aZaZaZaZaZaZaZaZaZa\[ \t\r\n\]+\[ \t\r\n\]+\[ \t\r\n\]+main.*at.*$srcfile:1014\[ \t\r\n\]+.*print_double_array\\(double_array\\).*$gdb_prompt $" {
!         pass "continue to 1014"
        }
!     -re ".*$gdb_prompt $" { fail "continue to 1014" }
!     timeout           { fail "(timeout) continue to 1014" }
  }
  
  # I am disabling this test, because it takes too long. I verified by
--- 136,153 ----
  
  
  
! #go -until 1216
! gdb_test "tbreak 1216" \
! "Breakpoint.*file.*$srcfile, line 1216.*" \
! "tbreakpoint line 1216"
  
  send_gdb "continue\n"
  gdb_expect {
!     -re "array_c :\[ \t\r\n\]+=========\[ \t\r\n\]+\[ \t\r\n\]+Z\[ \t\r\n\]+aZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZ\[ \t\r\n\]+aZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZ\[ \t\r\n\]+aZaZaZaZaZaZaZaZaZa\[ \t\r\n\]+\[ \t\r\n\]+\[ \t\r\n\]+main.*at.*$srcfile:1216\[ \t\r\n\]+.*print_double_array\\(double_array\\).*$gdb_prompt $" {
!         pass "continue to 1216"
        }
!     -re ".*$gdb_prompt $" { fail "continue to 1216" }
!     timeout           { fail "(timeout) continue to 1216" }
  }
  
  # I am disabling this test, because it takes too long. I verified by
***************
*** 163,181 ****
  #  }
  
  #set timeout $oldtimeout
! #go -until 1018
! gdb_test "tbreak 1018" \
!     "Breakpoint.* file .*$srcfile, line 1018.*" \
!     "tbreakpoint line 1018"
  
  gdb_test continue \
! "Continuing\\..*array_d :.*array_f :.*student id :\[\t \]+.*YELLOW.*array_i :.*main \\(\\) at .*call-ar-st.c:1018\[ \t\r\n\]+.*print_all_arrays\\(integer_array, char_array, float_array, double_array\\)." \
! "continuing to breakpoint 1018"
  
  #step
      send_gdb "step\n"
      gdb_expect {
!         -re "print_all_arrays \\(array_i=, array_c=.ZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZa., array_f=, array_d=\\) at .*call-ar-st.c:287\[ \t\r\n\]+287.*print_int_array\\(array_i\\);.*$gdb_prompt $" {pass "step inside print_all_arrays"}
          -re ".*$gdb_prompt $" { fail "step inside print_all_arrays" }
          timeout { fail "step inside print_all_arrays (timeout)" }
      }
--- 163,181 ----
  #  }
  
  #set timeout $oldtimeout
! #go -until 1220
! gdb_test "tbreak 1220" \
!     "Breakpoint.* file .*$srcfile, line 1220.*" \
!     "tbreakpoint line 1220"
  
  gdb_test continue \
! "Continuing\\..*array_d :.*array_f :.*student id :\[\t \]+.*YELLOW.*array_i :.*main \\(\\) at .*call-ar-st.c:1220\[ \t\r\n\]+.*print_all_arrays\\(integer_array, char_array, float_array, double_array\\)." \
! "continuing to breakpoint 1220"
  
  #step
      send_gdb "step\n"
      gdb_expect {
!         -re "print_all_arrays \\(array_i=, array_c=.ZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZa., array_f=, array_d=\\) at .*call-ar-st.c:306\[ \t\r\n\]+306.*print_int_array\\(array_i\\);.*$gdb_prompt $" {pass "step inside print_all_arrays"}
          -re ".*$gdb_prompt $" { fail "step inside print_all_arrays" }
          timeout { fail "step inside print_all_arrays (timeout)" }
      }
***************
*** 184,190 ****
  #step -over
      send_gdb "next\n"
      gdb_expect {
!         -re "array_i :.*288.*print_char_array\\(array_c\\);.*$gdb_prompt $" {pass "next over print_int_array in print-all_arrays"}
          -re ".*$gdb_prompt $" { fail "next over print_int_array in print-all_arrays" }
          timeout { fail "next over print_int_array in print-all_arrays (timeout)" }
      }
--- 184,190 ----
  #step -over
      send_gdb "next\n"
      gdb_expect {
!         -re "array_i :.*307.*print_char_array\\(array_c\\);.*$gdb_prompt $" {pass "next over print_int_array in print-all_arrays"}
          -re ".*$gdb_prompt $" { fail "next over print_int_array in print-all_arrays" }
          timeout { fail "next over print_int_array in print-all_arrays (timeout)" }
      }
***************
*** 203,214 ****
    }
  }
  
! #go -until 1034
! gdb_test "tbreak 1034" \
! "Breakpoint.* file .*$srcfile, line 1034.*" \
! "tbreakpoint line 1034"
  
! gdb_test continue "Continuing\\..*array_c.*array_f.*array_d.*HELLO WORLD.*main \\(\\) at .*call-ar-st.c:1034.*printf\\(.BYE BYE FOR NOW.n.\\)." "continuing to 1034"
  
  
  #call sum_array_print(10, *list1, *list2, *list3, *list4)
--- 203,214 ----
    }
  }
  
! #go -until 1236
! gdb_test "tbreak 1236" \
! "Breakpoint.* file .*$srcfile, line 1236.*" \
! "tbreakpoint line 1236"
  
! gdb_test continue "Continuing\\..*array_c.*array_f.*array_d.*HELLO WORLD.*main \\(\\) at .*call-ar-st.c:1236.*printf\\(.BYE BYE FOR NOW.n.\\)." "continuing to 1236"
  
  
  #call sum_array_print(10, *list1, *list2, *list3, *list4)
***************
*** 225,237 ****
  #step over
  send_gdb "n\n"
  gdb_expect {
!     -re ".*BYE BYE FOR NOW.*1035.*printf\\(.VERY GREEN GRASS.n.\\);.*$gdb_prompt $" { pass "next to 1035"}
!     -re ".*$gdb_prompt $" { fail "next to 1035" }
!     timeout { fail "next to 1035(timeout)" }
  }
  
  #call print_array_rep(\*list1, \*list2, \*list3)
  
  send_gdb "print print_array_rep(\*list1, \*list2, \*list3)\n"
  gdb_expect {
      -re ".*$gdb_prompt $" {
--- 225,240 ----
  #step over
  send_gdb "n\n"
  gdb_expect {
!     -re ".*BYE BYE FOR NOW.*1237.*printf\\(.VERY GREEN GRASS.n.\\);.*$gdb_prompt $" { pass "next to 1237"}
!     -re ".*$gdb_prompt $" { fail "next to 1237" }
!     timeout { fail "next to 1237(timeout)" }
  }
  
  #call print_array_rep(\*list1, \*list2, \*list3)
  
+ # what is this test trying to do??? the regexp looks funny.
+ # - guo
+ #
  send_gdb "print print_array_rep(\*list1, \*list2, \*list3)\n"
  gdb_expect {
      -re ".*$gdb_prompt $" {
***************
*** 241,257 ****
      timeout           { fail "(timeout) print print_array_rep(*list1, *list2, *list3)" }
    }
  
! #go -until 1039
! gdb_test "tbreak 1039" \
!     "Breakpoint..* file .*$srcfile, line 1039.*" \
!     "tbreakpoint line 1039"
  
  send_gdb  "continue\n"
  gdb_expect {
!  -re ".*main \\(\\) at .*call-ar-st.c:1039\r\n1039\t\[ \]+sum_array_print\\(10, \\*list1, \\*list2, \\*list3, \\*list4\\);.*$gdb_prompt $" {
!                    pass "continue to 1039"}
!  -re ".*$gdb_prompt $" { fail "continue to 1039"}
!  timeout           { fail "(timeout) continue to 1039"}
  }
  
  
--- 244,260 ----
      timeout           { fail "(timeout) print print_array_rep(*list1, *list2, *list3)" }
    }
  
! #go -until 1241
! gdb_test "tbreak 1241" \
!     "Breakpoint..* file .*$srcfile, line 1241.*" \
!     "tbreakpoint line 1241"
  
  send_gdb  "continue\n"
  gdb_expect {
!  -re ".*main \\(\\) at .*call-ar-st.c:1241\r\n1241\t\[ \]+sum_array_print\\(10, \\*list1, \\*list2, \\*list3, \\*list4\\);.*$gdb_prompt $" {
!                    pass "continue to 1241"}
!  -re ".*$gdb_prompt $" { fail "continue to 1241"}
!  timeout           { fail "(timeout) continue to 1241"}
  }
  
  
***************
*** 268,274 ****
  	".*Breakpoint ${decimal}: file .*call-ar-st.c, line.*" \
  	"set breakpoint in sum_array_print"
  gdb_test "continue" \
! 	".*Breakpoint ${decimal}, sum_array_print \\(seed=10, linked_list1=.next_index = .1, 2, 3, 4, 5, 6, 7, 8, 9, 10., values = .4, 6, 8, 10, 12, 14, 16, 18, 20, 22., head = 0., linked_list2=.next_index = .1, 2, 3, 4, 5, 6, 7, 8, 9, 10., values = .8, 10, 12, 14, 16, 18, 20, 22, 24, 26., head = 0., linked_list3=.next_index = .1, 2, 3, 4, 5, 6, 7, 8, 9, 10., values = .10, 12, 14, 16, 18, 20, 22, 24, 26, 28., head = 0., linked_list4=.next_index = .1, 2, 3, 4, 5, 6, 7, 8, 9, 10., values = .20, 22, 24, 26, 28, 30, 32, 34, 36, 38., head = 0.\\) at .*call-ar-st.c:909\[ \t\n\r\]+909.*printf\\(.Sum of 4 arrays, by element \\(add in seed as well\\).*\\);.*" \
  	"check args of sum_array_print"
  
  #call print_array_rep(linked_list1, linked_list2, linked_list3)
--- 271,277 ----
  	".*Breakpoint ${decimal}: file .*call-ar-st.c, line.*" \
  	"set breakpoint in sum_array_print"
  gdb_test "continue" \
! 	".*Breakpoint ${decimal}, sum_array_print \\(seed=10, linked_list1=.next_index = .1, 2, 3, 4, 5, 6, 7, 8, 9, 10., values = .4, 6, 8, 10, 12, 14, 16, 18, 20, 22., head = 0., linked_list2=.next_index = .1, 2, 3, 4, 5, 6, 7, 8, 9, 10., values = .8, 10, 12, 14, 16, 18, 20, 22, 24, 26., head = 0., linked_list3=.next_index = .1, 2, 3, 4, 5, 6, 7, 8, 9, 10., values = .10, 12, 14, 16, 18, 20, 22, 24, 26, 28., head = 0., linked_list4=.next_index = .1, 2, 3, 4, 5, 6, 7, 8, 9, 10., values = .20, 22, 24, 26, 28, 30, 32, 34, 36, 38., head = 0.\\) at .*call-ar-st.c:1105\[ \t\n\r\]+1105.*printf\\(.Sum of 4 arrays, by element \\(add in seed as well\\).*\\);.*" \
  	"check args of sum_array_print"
  
  #call print_array_rep(linked_list1, linked_list2, linked_list3)
***************
*** 285,301 ****
  #}
  
  
! #go -until 1079
! gdb_test "tbreak 1079" \
!     "Breakpoint.* file .*call-ar-st.c, line 1079.*" \
!     "tbreakpoint line 1079"
  
  send_gdb "continue\n"
  gdb_expect {
!  -re  "Continuing\\..*Sum of 4 arrays.*Contents of linked list1.*Contents of two_floats_t.*main \\(\\) at .*call-ar-st.c:1079.*c = 0.*$gdb_prompt $" {
!                  pass "continue to 1079"}
!       -re ".*$gdb_prompt $" { fail "continue to 1079"}           
!       timeout           { fail "(timeout) continue to 1079"}
  }
  
  #call print_small_structs(*struct1, *struct2, *struct3, *struct4,*flags, *flags_combo,
--- 288,304 ----
  #}
  
  
! #go -until 1281
! gdb_test "tbreak 1281" \
!     "Breakpoint.* file .*call-ar-st.c, line 1281.*" \
!     "tbreakpoint line 1281"
  
  send_gdb "continue\n"
  gdb_expect {
!  -re  "Continuing\\..*Sum of 4 arrays.*Contents of linked list1.*Contents of two_floats_t.*main \\(\\) at .*call-ar-st.c:1281.*c = 0.*$gdb_prompt $" {
!                  pass "continue to 1281"}
!       -re ".*$gdb_prompt $" { fail "continue to 1281"}           
!       timeout           { fail "(timeout) continue to 1281"}
  }
  
  #call print_small_structs(*struct1, *struct2, *struct3, *struct4,*flags, *flags_combo,
***************
*** 334,345 ****
    }
  }
  
! #go -until 1084
! gdb_test "tbreak 1084" \
!     "Breakpoint .* file .*call-ar-st.c, line 1084.*" \
!     "tbreakpoint line 1084"
! 
! gdb_test continue "Continuing\\..*main \\(.*\\) at.*call-ar-st.c:1084\[\t\r\n \]+1084.*print_long_arg_list \\( a, b, c, d, e, f, .struct1, .struct2, .struct3, .struct4,.*" "continue to 1084"
  
  # We can't just assume that a "step" will get us into print_long_arg_list here,either.
  gdb_test "tbreak print_long_arg_list" \
--- 337,368 ----
    }
  }
  
! #go -until 1286
! gdb_test "tbreak 1286" \
!     "Breakpoint .* file .*call-ar-st.c, line 1286.*" \
!     "tbreakpoint line 1286"
! 
! gdb_test continue "Continuing\\..*main \\(.*\\) at.*call-ar-st.c:1286\[\t\r\n \]+1286.*print_long_arg_list \\( a, b, c, d, e, f, .struct1, .struct2, .struct3, .struct4,.*" "continue to 1286"
! 
! if { [istarget "hppa*-*-hpux*"] } {
!     #
!     # NOTE:(FIXME)
!     # the aCC demangler cannot demangle the name of a function with >10 args.
!     # so I added a .* after the name of the function, to match the
!     # incredibly long mangled name 
!     # (getting aCC's libdemangle.a bundled w/ the system?)
!     # DTS CLLbs16994  coulter 990114
!     # 
!     # FIXME: use step for hppa* testing for now
!     # guo 990621
!     #
!     send_gdb "step\n"
!     gdb_expect {
!         -re ".*print_long_arg_list.*\\(a=22.219999999999999, b=33.332999999999998, c=0, d=-25, e=100, f=2345, struct1=\{value = 6, head = 0\}, struct2=\{value = 10, head = 0\}, struct3=\{value = 12, head = 0\}, struct4=\{value = 14, head = 0\}, flags=\{alpha = 1, beta = 0, gamma = 1, delta = 0, epsilon = 1, omega = 0\}, flags_combo=\{alpha = 1, beta = 0, ch1 = 121 \'y\', gamma = 1, delta = 0, ch2 = 110 \'n\', epsilon = 1, omega = 0\}, three_char=\{ch1 = 97 \'a\', ch2 = 98 \'b\', ch3 = 99 \'c\'\}, five_char=\{ch1 = 108 \'l\', ch2 = 109 \'m\', ch3 = 110 \'n\', ch4 = 111 \'o\', ch5 = 112 \'p\'\}, int_char_combo=\{int1 = 123, ch1 = 122 \'z\'\}, d1=\{double1 = 10.5\}, d2=\{double1 = -3.3399999999999999\}, d3=\{double1 = 675.09123\}, f1=\{float1 = 45.2340012, float2 = 43.5999985\}, f2=\{float1 = 78.0100021, float2 = 122.099998\}, f3=\{float1 = -1232.34497, float2 = -199.210007\}\\) at ${srcdir}/${subdir}/${srcfile}:992\[\r\n\]+992\[ \t\]+printf\\(\"double :.*\", a\\);.*$gdb_prompt $" {pass "step into print_long_arg_list"}
!         -re ".*$gdb_prompt $" { fail "step into print_long_arg_list" }
!         timeout { fail "step into print_long_arg_list (timeout)" }
!     }
! } else {
  
  # We can't just assume that a "step" will get us into print_long_arg_list here,either.
  gdb_test "tbreak print_long_arg_list" \
***************
*** 348,354 ****
  send_gdb "continue\n"
  if {![target_info exists gdb,skip_float_tests]} {
    gdb_expect {
!     -re ".*print_long_arg_list \\(a=22.219999999999999, b=33.332999999999998, c=0, d=-25, e=100, f=2345, struct1=\{value = 6, head = 0\}, struct2=\{value = 10, head = 0\}, struct3=\{value = 12, head = 0\}, struct4=\{value = 14, head = 0\}, flags=\{alpha = 1, beta = 0, gamma = 1, delta = 0, epsilon = 1, omega = 0\}, flags_combo=\{alpha = 1, beta = 0, ch1 = 121 \'y\', gamma = 1, delta = 0, ch2 = 110 \'n\', epsilon = 1, omega = 0\}, three_char=\{ch1 = 97 \'a\', ch2 = 98 \'b\', ch3 = 99 \'c\'\}, five_char=\{ch1 = 108 \'l\', ch2 = 109 \'m\', ch3 = 110 \'n\', ch4 = 111 \'o\', ch5 = 112 \'p\'\}, int_char_combo=\{int1 = 123, ch1 = 122 \'z\'\}, d1=\{double1 = 10.5\}, d2=\{double1 = -3.3399999999999999\}, d3=\{double1 = 675.09123\}, f1=\{float1 = 45.2340012, float2 = 43.5999985\}, f2=\{float1 = 78.0100021, float2 = 122.099998\}, f3=\{float1 = -1232.34497, float2 = -199.210007\}\\) at ${srcdir}/${subdir}/${srcfile}:813\[\r\n\]+813\[ \t\]+printf\\(\"double :.*\", a\\);.*$gdb_prompt $" {pass "step into print_long_arg_list"}
      -re ".*$gdb_prompt $" { fail "step into print_long_arg_list" }
      timeout { fail "step into print_long_arg_list (timeout)" }
    }
--- 371,377 ----
  send_gdb "continue\n"
  if {![target_info exists gdb,skip_float_tests]} {
    gdb_expect {
!     -re ".*print_long_arg_list \\(a=22.219999999999999, b=33.332999999999998, c=0, d=-25, e=100, f=2345, struct1=\{value = 6, head = 0\}, struct2=\{value = 10, head = 0\}, struct3=\{value = 12, head = 0\}, struct4=\{value = 14, head = 0\}, flags=\{alpha = 1, beta = 0, gamma = 1, delta = 0, epsilon = 1, omega = 0\}, flags_combo=\{alpha = 1, beta = 0, ch1 = 121 \'y\', gamma = 1, delta = 0, ch2 = 110 \'n\', epsilon = 1, omega = 0\}, three_char=\{ch1 = 97 \'a\', ch2 = 98 \'b\', ch3 = 99 \'c\'\}, five_char=\{ch1 = 108 \'l\', ch2 = 109 \'m\', ch3 = 110 \'n\', ch4 = 111 \'o\', ch5 = 112 \'p\'\}, int_char_combo=\{int1 = 123, ch1 = 122 \'z\'\}, d1=\{double1 = 10.5\}, d2=\{double1 = -3.3399999999999999\}, d3=\{double1 = 675.09123\}, f1=\{float1 = 45.2340012, float2 = 43.5999985\}, f2=\{float1 = 78.0100021, float2 = 122.099998\}, f3=\{float1 = -1232.34497, float2 = -199.210007\}\\) at ${srcdir}/${subdir}/${srcfile}:992\[\r\n\]+992\[ \t\]+printf\\(\"double :.*\", a\\);.*$gdb_prompt $" {pass "step into print_long_arg_list"}
      -re ".*$gdb_prompt $" { fail "step into print_long_arg_list" }
      timeout { fail "step into print_long_arg_list (timeout)" }
    }
***************
*** 360,365 ****
--- 383,390 ----
    }
  }
  
+ }
+ 
  #call print_small_structs(struct1, struct2, struct3, struct4, flags, flags_combo, three_char, five_char, int_char_combo, d1, d2, d3, f1, f2, f3)
  if {![target_info exists gdb,skip_float_tests]} {
    send_gdb "print print_small_structs(struct1, struct2, struct3, struct4, flags, flags_combo, three_char, five_char, int_char_combo, d1, d2, d3, f1, f2, f3)\n"
***************
*** 373,391 ****
  }
  
  
! #go -until 1098
! gdb_test "tbreak 1098" \
!     "Breakpoint.* file .*call-ar-st.c, line 1098.*" \
!     "tbreakpoint line 1098"
  
! gdb_test continue "Continuing\\..*Contents of two_floats_t:.*main \\(\\) at.*call-ar-st.c:1098.*1098.*init_bit_flags_combo\\(flags_combo, \\(unsigned\\)1, \\(unsigned\\)0, .y.,.*" \
!   "continue to 1098"
  
  #step
      send_gdb "step\n"
      gdb_expect {
          -re "
! init_bit_flags_combo \\(bit_flags_combo=, a=1, b=0, ch1=121 .y., g=1, d=0, ch2=110 .n., e=1, o=0\\) at .*call-ar-st.c:385\[ \t\n\r\]+385.*bit_flags_combo->alpha = a;.*$gdb_prompt $" {
                              pass "step into init_bit_flags_combo"}
          -re ".*$gdb_prompt $" { fail "step into init_bit_flags_combo" }
          timeout { fail "step into init_bit_flags_combo (timeout)" }
--- 398,416 ----
  }
  
  
! #go -until 1300
! gdb_test "tbreak 1300" \
!     "Breakpoint.* file .*call-ar-st.c, line 1300.*" \
!     "tbreakpoint line 1300"
  
! gdb_test continue "Continuing\\..*Contents of two_floats_t:.*main \\(\\) at.*call-ar-st.c:1300.*1300.*init_bit_flags_combo\\(flags_combo, \\(unsigned\\)1, \\(unsigned\\)0, .y.,.*" \
!   "continue to 1300"
  
  #step
      send_gdb "step\n"
      gdb_expect {
          -re "
! init_bit_flags_combo \\(bit_flags_combo=, a=1, b=0, ch1=121 .y., g=1, d=0, ch2=110 .n., e=1, o=0\\) at .*call-ar-st.c:416\[ \t\n\r\]+416.*bit_flags_combo->alpha = a;.*$gdb_prompt $" {
                              pass "step into init_bit_flags_combo"}
          -re ".*$gdb_prompt $" { fail "step into init_bit_flags_combo" }
          timeout { fail "step into init_bit_flags_combo (timeout)" }
***************
*** 402,416 ****
    }
  
  
! #go -until 1103
! gdb_test "tbreak 1103" \
!     "Breakpoint.* file .*call-ar-st.c, line 1103.*" \
!     "tbreakpoint line 1103"
  
! gdb_test continue "Continuing\\..*main \\(\\) at .*call-ar-st.c:1103\[\r\n\t \]+1103.*init_int_char_combo\\(int_char_combo, 13, .!.\\);" \
! "continue to 1103"
  
  #call print_long_arg_list(a, b, c, d, e, f, *struct1, *struct2, *struct3, *struct4, *flags, *flags_combo, *three_char, *five_char, *int_char_combo, *d1, *d2, *d3, *f1, *f2, *f3)
  if {![target_info exists gdb,skip_float_tests]} {
    send_gdb "print print_long_arg_list(a, b, c, d, e, f, *struct1, *struct2, *struct3, *struct4, *flags, *flags_combo, *three_char, *five_char, *int_char_combo, *d1, *d2, *d3, *f1, *f2, *f3)\n"
    gdb_expect {
--- 427,448 ----
    }
  
  
! #go -until 1305
! gdb_test "tbreak 1305" \
!     "Breakpoint.* file .*call-ar-st.c, line 1305.*" \
!     "tbreakpoint line 1305"
  
! gdb_test continue "Continuing\\..*main \\(\\) at .*call-ar-st.c:1305\[\r\n\t \]+1305.*init_int_char_combo\\(int_char_combo, 13, .!.\\);" \
! "continue to 1305"
  
  #call print_long_arg_list(a, b, c, d, e, f, *struct1, *struct2, *struct3, *struct4, *flags, *flags_combo, *three_char, *five_char, *int_char_combo, *d1, *d2, *d3, *f1, *f2, *f3)
+ 
+ # FIXME:
+ # HP aCC demangler currently does not handle hp aCC functions with >10 args
+ # DTS CLLbs16994  coulter 990114
+ 
+ if {$hp_aCC_compiler} {setup_xfail "hppa*-*-*"}
+ 
  if {![target_info exists gdb,skip_float_tests]} {
    send_gdb "print print_long_arg_list(a, b, c, d, e, f, *struct1, *struct2, *struct3, *struct4, *flags, *flags_combo, *three_char, *five_char, *int_char_combo, *d1, *d2, *d3, *f1, *f2, *f3)\n"
    gdb_expect {
***************
*** 423,435 ****
  }
  
  
! #go -until 1109
! gdb_test "tbreak 1109" \
!     "Breakpoint.* file .*call-ar-st.c, line 1109.*" \
!     "tbreakpoint line 1109"
  
! gdb_test continue "Continuing\\..*main \\(\\) at .*call-ar-st.c:1109\[ \t\n\r\]+1109.*compute_with_small_structs\\(35\\);" \
! "continue to 1109"
  
  
  #call sum_struct_print(10, *struct1, *struct2, *struct3, *struct4)
--- 455,467 ----
  }
  
  
! #go -until 1311
! gdb_test "tbreak 1311" \
!     "Breakpoint.* file .*call-ar-st.c, line 1311.*" \
!     "tbreakpoint line 1311"
  
! gdb_test continue "Continuing\\..*main \\(\\) at .*call-ar-st.c:1311\[ \t\n\r\]+1311.*compute_with_small_structs\\(35\\);" \
! "continue to 1311"
  
  
  #call sum_struct_print(10, *struct1, *struct2, *struct3, *struct4)
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/call-rt-st.c gdb/testsuite/gdb.base/call-rt-st.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/call-rt-st.c	Thu Feb 25 17:18:04 1999
--- gdb/testsuite/gdb.base/call-rt-st.c	Thu Jun 24 20:28:26 1999
***************
*** 119,124 ****
--- 119,134 ----
   * IN  unsigned e  -- 0 or 1 
   * IN  unsigned o  -- 0 or 1 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_bit_flags (
+ struct bit_flags_t *bit_flags,
+ unsigned a,
+ unsigned b,
+ unsigned g,
+ unsigned d,
+ unsigned e,
+ unsigned o)
+ #else
  void init_bit_flags (bit_flags,a,b,g,d,e,o) 
  struct bit_flags_t *bit_flags;
  unsigned a;
***************
*** 127,132 ****
--- 137,143 ----
  unsigned d;
  unsigned e;
  unsigned o; 
+ #endif
  {
  
     bit_flags->alpha = a;
***************
*** 152,157 ****
--- 163,180 ----
   * IN  unsigned e  -- 0 or 1 
   * IN  unsigned o  -- 0 or 1 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_bit_flags_combo (
+ struct bit_flags_combo_t *bit_flags_combo,
+ unsigned a,
+ unsigned b,
+ char ch1,
+ unsigned g,
+ unsigned d,
+ char ch2,
+ unsigned e,
+ unsigned o)
+ #else
  void init_bit_flags_combo (bit_flags_combo, a, b, ch1, g, d, ch2, e, o)
  struct bit_flags_combo_t *bit_flags_combo;
  unsigned a;
***************
*** 162,167 ****
--- 185,191 ----
  char ch2;
  unsigned e;
  unsigned o;
+ #endif
  {
  
     bit_flags_combo->alpha = a;
***************
*** 180,188 ****
--- 204,216 ----
   * OUT  struct one_double_t *one_double  -- structure to fill 
   * IN   double init_val
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_one_double ( struct one_double_t *one_double, double init_val)
+ #else
  void init_one_double (one_double, init_val)
  struct one_double_t *one_double; 
  double init_val;
+ #endif
  {
  
       one_double->double1  = init_val;
***************
*** 194,203 ****
--- 222,238 ----
   * IN  float init_val1 
   * IN  float init_val2 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_two_floats (
+      struct two_floats_t *two_floats,
+      float init_val1,
+      float init_val2)
+ #else
  void init_two_floats (two_floats, init_val1, init_val2)
  struct two_floats_t *two_floats;
  float init_val1;
  float init_val2;
+ #endif
  {
  
       two_floats->float1 = init_val1;
***************
*** 211,221 ****
--- 246,264 ----
   * IN  char init_val2 
   * IN  char init_val3 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_three_chars (
+ struct three_char_t *three_char,
+ char init_val1,
+ char init_val2,
+ char init_val3)
+ #else
  void init_three_chars ( three_char, init_val1, init_val2, init_val3)
  struct three_char_t *three_char;
  char init_val1;
  char init_val2;
  char init_val3;
+ #endif
  {
  
       three_char->ch1 = init_val1;
***************
*** 232,237 ****
--- 275,289 ----
   * IN  char init_val4 
   * IN  char init_val5 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_five_chars (
+ struct five_char_t *five_char,
+ char init_val1,
+ char init_val2,
+ char init_val3,
+ char init_val4,
+ char init_val5)
+ #else
  void init_five_chars ( five_char, init_val1, init_val2, init_val3, init_val4, init_val5)
  struct five_char_t *five_char;
  char init_val1;
***************
*** 239,244 ****
--- 291,297 ----
  char init_val3;
  char init_val4;
  char init_val5;
+ #endif
  {
  
       five_char->ch1 = init_val1;
***************
*** 254,263 ****
--- 307,323 ----
   * IN  int  init_val1 
   * IN  char init_val2 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_int_char_combo (
+ struct int_char_combo_t *combo,
+ int init_val1,
+ char init_val2)
+ #else
  void init_int_char_combo ( combo, init_val1, init_val2)
  struct int_char_combo_t *combo;
  int init_val1;
  char init_val2;
+ #endif
  {
  
       combo->int1 = init_val1;
***************
*** 269,278 ****
   * OUT struct small_rep_into_t *small_struct -- structure to be filled
   * IN  int  seed 
   *****************************************************************/
  void init_struct_rep( small_struct, seed)
  struct small_rep_info_t *small_struct;
  int    seed;
! 
  {
  
        small_struct->value = 2 + (seed*2); 
--- 329,343 ----
   * OUT struct small_rep_into_t *small_struct -- structure to be filled
   * IN  int  seed 
   *****************************************************************/
+ #ifdef PROTOTYPES
+ void init_struct_rep(
+      struct small_rep_info_t *small_struct,
+      int seed)
+ #else
  void init_struct_rep( small_struct, seed)
  struct small_rep_info_t *small_struct;
  int    seed;
! #endif
  {
  
        small_struct->value = 2 + (seed*2); 
***************
*** 283,290 ****
--- 348,359 ----
   * PRINT_BIT_FLAGS : 
   * IN struct bit_flags_t bit_flags 
   ****************************************************************/
+ #ifdef PROTOTYPES
+ struct bit_flags_t print_bit_flags (struct bit_flags_t bit_flags)
+ #else
  struct bit_flags_t print_bit_flags ( bit_flags)
  struct bit_flags_t bit_flags;
+ #endif
  {
  
       if (bit_flags.alpha) printf("alpha\n");
***************
*** 301,308 ****
--- 370,381 ----
   * PRINT_BIT_FLAGS_COMBO : 
   * IN struct bit_flags_combo_t bit_flags_combo 
   ****************************************************************/
+ #ifdef PROTOTYPES
+ struct bit_flags_combo_t print_bit_flags_combo (struct bit_flags_combo_t bit_flags_combo)
+ #else
  struct bit_flags_combo_t print_bit_flags_combo ( bit_flags_combo )
  struct bit_flags_combo_t bit_flags_combo;
+ #endif
  {
  
       if (bit_flags_combo.alpha) printf("alpha\n");
***************
*** 320,327 ****
--- 393,404 ----
   * PRINT_ONE_DOUBLE : 
   * IN struct one_double_t one_double 
   ****************************************************************/
+ #ifdef PROTOTYPES
+ struct one_double_t print_one_double (struct one_double_t one_double)
+ #else
  struct one_double_t print_one_double ( one_double )
  struct one_double_t one_double;
+ #endif
  {
  
       printf("Contents of one_double_t: \n\n");
***************
*** 334,341 ****
--- 411,422 ----
   * PRINT_TWO_FLOATS : 
   * IN struct two_floats_t two_floats 
   ****************************************************************/
+ #ifdef PROTOTYPES
+ struct two_floats_t print_two_floats (struct two_floats_t two_floats)
+ #else
  struct two_floats_t print_two_floats ( two_floats ) 
  struct two_floats_t two_floats;
+ #endif
  {
  
       printf("Contents of two_floats_t: \n\n");
***************
*** 348,355 ****
--- 429,440 ----
   * PRINT_THREE_CHARS : 
   * IN struct three_char_t three_char
   ****************************************************************/
+ #ifdef PROTOTYPES
+ struct three_char_t print_three_chars (struct three_char_t three_char)
+ #else
  struct three_char_t print_three_chars ( three_char ) 
  struct three_char_t three_char;
+ #endif
  {
  
       printf("Contents of three_char_t: \n\n");
***************
*** 362,369 ****
--- 447,458 ----
   * PRINT_FIVE_CHARS : 
   * IN struct five_char_t five_char
   ****************************************************************/
+ #ifdef PROTOTYPES
+ struct five_char_t print_five_chars (struct five_char_t five_char)
+ #else
  struct five_char_t print_five_chars ( five_char )
  struct five_char_t five_char;
+ #endif
  {
  
       printf("Contents of five_char_t: \n\n");
***************
*** 378,385 ****
--- 467,478 ----
   * PRINT_INT_CHAR_COMBO : 
   * IN struct int_char_combo_t int_char_combo
   ****************************************************************/
+ #ifdef PROTOTYPES
+ struct int_char_combo_t print_int_char_combo (struct int_char_combo_t int_char_combo)
+ #else
  struct int_char_combo_t print_int_char_combo ( int_char_combo )
  struct int_char_combo_t int_char_combo;
+ #endif
  {
  
       printf("Contents of int_char_combo_t: \n\n");
***************
*** 391,399 ****
  /*****************************************************************
   * PRINT_STRUCT_REP : 
   ****************************************************************/
  struct small_rep_info_t print_struct_rep( struct1 )
  struct small_rep_info_t struct1;
! 
  {
  
    printf("Contents of struct1: \n\n");
--- 484,495 ----
  /*****************************************************************
   * PRINT_STRUCT_REP : 
   ****************************************************************/
+ #ifdef PROTOTYPES
+ struct small_rep_info_t print_struct_rep(struct small_rep_info_t struct1)
+ #else
  struct small_rep_info_t print_struct_rep( struct1 )
  struct small_rep_info_t struct1;
! #endif
  {
  
    printf("Contents of struct1: \n\n");
***************
*** 406,413 ****
--- 502,513 ----
  }
  
  
+ #ifdef PROTOTYPES
+ struct array_rep_info_t print_one_large_struct(struct array_rep_info_t linked_list1)
+ #else
  struct array_rep_info_t print_one_large_struct( linked_list1 )
  struct array_rep_info_t linked_list1;
+ #endif
  {
  
  
***************
*** 423,432 ****
   * IN struct array_rep_info_t *linked_list
   * IN int    seed
   ****************************************************************/
  void init_array_rep( linked_list, seed )
  struct array_rep_info_t *linked_list;
  int    seed;
! 
  {
  
    int index;
--- 523,535 ----
   * IN struct array_rep_info_t *linked_list
   * IN int    seed
   ****************************************************************/
+ #ifdef PROTOTYPES
+ void init_array_rep(struct array_rep_info_t *linked_list, int seed)
+ #else
  void init_array_rep( linked_list, seed )
  struct array_rep_info_t *linked_list;
  int    seed;
! #endif
  {
  
    int index;
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/call-rt-st.exp gdb/testsuite/gdb.base/call-rt-st.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/call-rt-st.exp	Mon May 17 11:18:23 1999
--- gdb/testsuite/gdb.base/call-rt-st.exp	Thu Jun 24 20:28:26 1999
***************
*** 122,129 ****
  
  send_gdb "finish\n"
  gdb_expect {
!  -re  "Run till exit from .0  loop_count \\(\\) at.*call-rt-st.c:106\[ \t\r\n\]+main \\(\\) at.*call-rt-st.c:514\[ \t\r\n\]+514\[\t \]+return 0;.*$gdb_prompt $" {
!                  pass "finish out from  loop_count"}
        -re ".*$gdb_prompt $" { fail "finish out from loop_count"}           
        timeout           { fail "(timeout)finish out from loop_count"}
  }
--- 122,131 ----
  
  send_gdb "finish\n"
  gdb_expect {
!  -re  "Run till exit from .0  loop_count \\(\\) at.*call-rt-st.c:106\[ \t\r\n\]+main \\(\\) at.*call-rt-st.c:617\[ \t\r\n\]+617\[\t \]+return 0;.*$gdb_prompt $" {
!                  pass "finish out from  loop_count (line 617)"}
!  -re  "Run till exit from .0  loop_count \\(\\) at.*call-rt-st.c:106\[ \t\r\n\]+main \\(\\) at.*call-rt-st.c:615\[ \t\r\n\]+615\[\t \]+loop_count.*$gdb_prompt $" {
!                  pass "finish out from  loop_count (line 615)"}
        -re ".*$gdb_prompt $" { fail "finish out from loop_count"}           
        timeout           { fail "(timeout)finish out from loop_count"}
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/call-strs.c gdb/testsuite/gdb.base/call-strs.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/call-strs.c	Thu Jun 10 21:12:42 1999
--- gdb/testsuite/gdb.base/call-strs.c	Thu Jun 24 20:28:27 1999
***************
*** 1,16 ****
--- 1,33 ----
  #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ 
  char buf[100];
  char bigbuf[1000];
  char * s;
  
+ #ifdef PROTOTYPES
+ char * str_func1(char *s1)
+ #else
  char * str_func1(s1)
  char *s1;
+ #endif
  {
    printf("first string arg is: %s\n", s1);
    strcpy(bigbuf, s1);
    return bigbuf;
  }
  
+ #ifdef PROTOTYPES
+ char * str_func(
+ char * s1, 
+ char * s2,
+ char * s3,
+ char * s4,
+ char * s5,
+ char * s6,
+ char * s7)
+ #else
  char * str_func(s1, 
                  s2,
                 s3,
***************
*** 25,30 ****
--- 42,48 ----
  char * s5;
  char * s6;
  char * s7;
+ #endif
  {
    printf("first string arg is: %s\n", s1);
    printf("second string arg is: %s\n", s2);
***************
*** 49,59 ****
    return (char*) malloc (1);
  }
  
! main()
  {
    s = &buf[0];
    strcpy(buf, "test string");
    str_func("abcd", "efgh", "ijkl", "mnop", "qrst", "uvwx", "yz12");
    str_func1("abcd");
  }
  
--- 67,78 ----
    return (char*) malloc (1);
  }
  
! int main()
  {
    s = &buf[0];
    strcpy(buf, "test string");
    str_func("abcd", "efgh", "ijkl", "mnop", "qrst", "uvwx", "yz12");
    str_func1("abcd");
+   return 0;
  }
  
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/call-strs.exp gdb/testsuite/gdb.base/call-strs.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/call-strs.exp	Fri Mar 12 06:55:27 1999
--- gdb/testsuite/gdb.base/call-strs.exp	Thu Jun 24 20:28:27 1999
***************
*** 217,242 ****
      timeout           { fail "(timeout) call str_func(\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\")" }
    }
  
! #print str_func(s,s,s,s,s,s,s,s)
! send_gdb "print  str_func(s,s,s,s,s,s,s,s)\n"
  gdb_expect {
      -re "first string arg is: test string\[ \t\r\n\]+second string arg is: test string\[ \t\r\n\]+third string arg is: test string\[ \t\r\n\]+fourth string arg is: test string\[ \t\r\n\]+fifth string arg is: test string\[ \t\r\n\]+sixth string arg is: test string\[ \t\r\n\]+seventh string arg is: test string\[ \t\r\n\]+.*\"test stringtest stringtest stringtest stringtest stringtest stringtest string\".*$gdb_prompt $" {
!         pass "print str_func(s,s,s,s,s,s,s,s)"
        }
!     -re ".*$gdb_prompt $" { fail "print str_func(s,s,s,s,s,s,s,s)" }
!     timeout           { fail "(timeout) print str_func(s,s,s,s,s,s,s,s)" }
    }
  
! #call str_func(s,s,s,s,s,s,s,s)
! send_gdb "call  str_func(s,s,s,s,s,s,s,s)\n"
  gdb_expect {
      -re "first string arg is: test string\[ \t\r\n\]+second string arg is: test string\[ \t\r\n\]+third string arg is: test string\[ \t\r\n\]+fourth string arg is: test string\[ \t\r\n\]+fifth string arg is: test string\[ \t\r\n\]+sixth string arg is: test string\[ \t\r\n\]+seventh string arg is: test string\[ \t\r\n\]+.*\"test stringtest stringtest stringtest stringtest stringtest stringtest string\".*$gdb_prompt $" {
!         pass "call str_func(s,s,s,s,s,s,s,s)"
        }
!     -re ".*$gdb_prompt $" { fail "call str_func(s,s,s,s,s,s,s,s)" }
!     timeout           { fail "(timeout) call str_func(s,s,s,s,s,s,s,s)" }
    }
  
  gdb_exit
  return 0
- ~
--- 217,241 ----
      timeout           { fail "(timeout) call str_func(\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\")" }
    }
  
! #print str_func(s,s,s,s,s,s,s)
! send_gdb "print  str_func(s,s,s,s,s,s,s)\n"
  gdb_expect {
      -re "first string arg is: test string\[ \t\r\n\]+second string arg is: test string\[ \t\r\n\]+third string arg is: test string\[ \t\r\n\]+fourth string arg is: test string\[ \t\r\n\]+fifth string arg is: test string\[ \t\r\n\]+sixth string arg is: test string\[ \t\r\n\]+seventh string arg is: test string\[ \t\r\n\]+.*\"test stringtest stringtest stringtest stringtest stringtest stringtest string\".*$gdb_prompt $" {
!         pass "print str_func(s,s,s,s,s,s,s)"
        }
!     -re ".*$gdb_prompt $" { fail "print str_func(s,s,s,s,s,s,s)" }
!     timeout           { fail "(timeout) print str_func(s,s,s,s,s,s,s)" }
    }
  
! #call str_func(s,s,s,s,s,s,s)
! send_gdb "call  str_func(s,s,s,s,s,s,s)\n"
  gdb_expect {
      -re "first string arg is: test string\[ \t\r\n\]+second string arg is: test string\[ \t\r\n\]+third string arg is: test string\[ \t\r\n\]+fourth string arg is: test string\[ \t\r\n\]+fifth string arg is: test string\[ \t\r\n\]+sixth string arg is: test string\[ \t\r\n\]+seventh string arg is: test string\[ \t\r\n\]+.*\"test stringtest stringtest stringtest stringtest stringtest stringtest string\".*$gdb_prompt $" {
!         pass "call str_func(s,s,s,s,s,s,s)"
        }
!     -re ".*$gdb_prompt $" { fail "call str_func(s,s,s,s,s,s,s)" }
!     timeout           { fail "(timeout) call str_func(s,s,s,s,s,s,s)" }
    }
  
  gdb_exit
  return 0
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/callfns.c gdb/testsuite/gdb.base/callfns.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/callfns.c	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/callfns.c	Thu Jun 24 20:28:36 1999
***************
*** 0 ****
--- 1,359 ----
+ /* Support program for testing gdb's ability to call functions
+    in the inferior, pass appropriate arguments to those functions,
+    and get the returned result. */
+ 
+ #ifdef NO_PROTOTYPES
+ #define PARAMS(paramlist) ()
+ #else
+ #define PARAMS(paramlist) paramlist
+ #endif
+ 
+ # include <stdlib.h>
+ # include <string.h>
+ 
+ char char_val1 = 'a';
+ char char_val2 = 'b';
+ 
+ short short_val1 = 10;
+ short short_val2 = -23;
+ 
+ int int_val1 = 87;
+ int int_val2 = -26;
+ 
+ long long_val1 = 789;
+ long long_val2 = -321;
+ 
+ float float_val1 = 3.14159;
+ float float_val2 = -2.3765;
+ 
+ double double_val1 = 45.654;
+ double double_val2 = -67.66;
+ 
+ #define DELTA (0.001)
+ 
+ char *string_val1 = (char *)"string 1";
+ char *string_val2 = (char *)"string 2";
+ 
+ char char_array_val1[] = "carray 1";
+ char char_array_val2[] = "carray 2";
+ 
+ struct struct1 {
+   char c;
+   short s;
+   int i;
+   long l;
+   float f;
+   double d;
+   char a[4];
+ } struct_val1 = { 'x', 87, 76, 51, 2.1234, 9.876, "foo" };
+ 
+ /* Some functions that can be passed as arguments to other test
+    functions, or called directly. */
+ #ifdef PROTOTYPES
+ int add (int a, int b)
+ #else
+ int add (a, b) int a, b;
+ #endif
+ {
+   return (a + b);
+ }
+ 
+ #ifdef PROTOTYPES
+ int doubleit (int a)
+ #else
+ int doubleit (a) int a;
+ #endif
+ {
+   return (a + a);
+ }
+ 
+ int (*func_val1) PARAMS((int,int)) = add;
+ int (*func_val2) PARAMS((int)) = doubleit;
+ 
+ /* An enumeration and functions that test for specific values. */
+ 
+ enum enumtype { enumval1, enumval2, enumval3 };
+ enum enumtype enum_val1 = enumval1;
+ enum enumtype enum_val2 = enumval2;
+ enum enumtype enum_val3 = enumval3;
+ 
+ #ifdef PROTOTYPES
+ int t_enum_value1 (enum enumtype enum_arg)
+ #else
+ int t_enum_value1 (enum_arg) enum enumtype enum_arg;
+ #endif
+ {
+   return (enum_arg == enum_val1);
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_enum_value2 (enum enumtype enum_arg)
+ #else
+ int t_enum_value2 (enum_arg) enum enumtype enum_arg;
+ #endif
+ {
+   return (enum_arg == enum_val2);
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_enum_value3 (enum enumtype enum_arg)
+ #else
+ int t_enum_value3 (enum_arg) enum enumtype enum_arg;
+ #endif
+ {
+   return (enum_arg == enum_val3);
+ }
+ 
+ /* A function that takes a vector of integers (along with an explicit
+    count) and returns their sum. */
+ 
+ #ifdef PROTOTYPES
+ int sum_args (int argc, int argv[])
+ #else
+ int sum_args (argc, argv) int argc; int argv[];
+ #endif
+ {
+   int sumval = 0;
+   int idx;
+ 
+   for (idx = 0; idx < argc; idx++)
+     {
+       sumval += argv[idx];
+     }
+   return (sumval);
+ }
+ 
+ /* Test that we can call functions that take structs and return
+    members from that struct */
+ 
+ #ifdef PROTOTYPES
+ char   t_structs_c (struct struct1 tstruct) { return (tstruct.c); }
+ short  t_structs_s (struct struct1 tstruct) { return (tstruct.s); }
+ int    t_structs_i (struct struct1 tstruct) { return (tstruct.i); }
+ long   t_structs_l (struct struct1 tstruct) { return (tstruct.l); }
+ float  t_structs_f (struct struct1 tstruct) { return (tstruct.f); }
+ double t_structs_d (struct struct1 tstruct) { return (tstruct.d); }
+ char  *t_structs_a (struct struct1 tstruct) { return (tstruct.a); }
+ #else
+ char   t_structs_c (tstruct) struct struct1 tstruct; { return (tstruct.c); }
+ short  t_structs_s (tstruct) struct struct1 tstruct; { return (tstruct.s); }
+ int    t_structs_i (tstruct) struct struct1 tstruct; { return (tstruct.i); }
+ long   t_structs_l (tstruct) struct struct1 tstruct; { return (tstruct.l); }
+ float  t_structs_f (tstruct) struct struct1 tstruct; { return (tstruct.f); }
+ double t_structs_d (tstruct) struct struct1 tstruct; { return (tstruct.d); }
+ char  *t_structs_a (tstruct) struct struct1 tstruct; { return (tstruct.a); }
+ #endif
+ 
+ /* Test that calling functions works if there are a lot of arguments.  */
+ #ifdef PROTOTYPES
+ int
+ sum10 (int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9)
+ #else
+ int
+ sum10 (i0, i1, i2, i3, i4, i5, i6, i7, i8, i9)
+      int i0, i1, i2, i3, i4, i5, i6, i7, i8, i9;
+ #endif
+ {
+   return i0 + i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9;
+ }
+ 
+ /* Test that args are passed in the right order. */
+ #ifdef PROTOTYPES
+ int
+ cmp10 (int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9)
+ #else
+ int
+ cmp10 (i0, i1, i2, i3, i4, i5, i6, i7, i8, i9)
+   int i0, i1, i2, i3, i4, i5, i6, i7, i8, i9;
+ #endif
+ {
+   return
+     (i0 == 0) && (i1 == 1) && (i2 == 2) && (i3 == 3) && (i4 == 4) &&
+     (i5 == 5) && (i6 == 6) && (i7 == 7) && (i8 == 8) && (i9 == 9);
+ }
+ 
+ 
+ /* Gotta have a main to be able to generate a linked, runnable
+    executable, and also provide a useful place to set a breakpoint. */
+ extern void * malloc() ;
+ int main ()
+ {
+ #ifdef usestubs
+   set_debug_traps();
+   breakpoint();
+ #endif
+   malloc(1);
+   t_structs_c(struct_val1);
+   return 0 ;
+ }
+ 
+ /* Functions that expect specific values to be passed and return 
+    either 0 or 1, depending upon whether the values were
+    passed incorrectly or correctly, respectively. */
+ 
+ #ifdef PROTOTYPES
+ int t_char_values (char char_arg1, char char_arg2)
+ #else
+ int t_char_values (char_arg1, char_arg2)
+ char char_arg1, char_arg2;
+ #endif
+ {
+   return ((char_arg1 == char_val1) && (char_arg2 == char_val2));
+ }
+ 
+ int
+ #ifdef PROTOTYPES
+ t_small_values (char arg1, short arg2, int arg3, char arg4, short arg5,
+ 		char arg6, short arg7, int arg8, short arg9, short arg10)
+ #else
+ t_small_values (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10)
+      char arg1;
+      short arg2;
+      int arg3;
+      char arg4;
+      short arg5;
+      char arg6;
+      short arg7;
+      int arg8;
+      short arg9;
+      short arg10;
+ #endif
+ {
+   return arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10;
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_short_values (short short_arg1, short short_arg2)
+ #else
+ int t_short_values (short_arg1, short_arg2)
+      short short_arg1, short_arg2;
+ #endif
+ {
+   return ((short_arg1 == short_val1) && (short_arg2 == short_val2));
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_int_values (int int_arg1, int int_arg2)
+ #else
+ int t_int_values (int_arg1, int_arg2)
+ int int_arg1, int_arg2;
+ #endif
+ {
+   return ((int_arg1 == int_val1) && (int_arg2 == int_val2));
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_long_values (long long_arg1, long long_arg2)
+ #else
+ int t_long_values (long_arg1, long_arg2)
+ long long_arg1, long_arg2;
+ #endif
+ {
+   return ((long_arg1 == long_val1) && (long_arg2 == long_val2));
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_float_values (float float_arg1, float float_arg2)
+ #else
+ int t_float_values (float_arg1, float_arg2)
+ float float_arg1, float_arg2;
+ #endif
+ {
+   return ((float_arg1 - float_val1) < DELTA
+ 	  && (float_arg1 - float_val1) > -DELTA
+ 	  && (float_arg2 - float_val2) < DELTA
+ 	  && (float_arg2 - float_val2) > -DELTA);
+ }
+ 
+ int
+ #ifdef PROTOTYPES
+ t_float_values2 (float float_arg1, float float_arg2)
+ #else
+ /* In this case we are just duplicating t_float_values, but that is the
+    easiest way to deal with either ANSI or non-ANSI.  */
+ t_float_values2 (float_arg1, float_arg2)
+      float float_arg1, float_arg2;
+ #endif
+ {
+   return ((float_arg1 - float_val1) < DELTA
+ 	  && (float_arg1 - float_val1) > -DELTA
+ 	  && (float_arg2 - float_val2) < DELTA
+ 	  && (float_arg2 - float_val2) > -DELTA);
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_double_values (double double_arg1, double double_arg2)
+ #else
+ int t_double_values (double_arg1, double_arg2)
+ double double_arg1, double_arg2;
+ #endif
+ {
+   return ((double_arg1 - double_val1) < DELTA
+ 	  && (double_arg1 - double_val1) > -DELTA
+ 	  && (double_arg2 - double_val2) < DELTA
+ 	  && (double_arg2 - double_val2) > -DELTA);
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_string_values (char *string_arg1, char *string_arg2)
+ #else
+ int t_string_values (string_arg1, string_arg2)
+ char *string_arg1, *string_arg2;
+ #endif
+ {
+   return (!strcmp (string_arg1, string_val1) &&
+ 	  !strcmp (string_arg2, string_val2));
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_char_array_values (char char_array_arg1[], char char_array_arg2[])
+ #else
+ int t_char_array_values (char_array_arg1, char_array_arg2)
+ char char_array_arg1[], char_array_arg2[];
+ #endif
+ {
+   return (!strcmp (char_array_arg1, char_array_val1) &&
+ 	  !strcmp (char_array_arg2, char_array_val2));
+ }
+ 
+ 
+ /* This used to simply compare the function pointer arguments with
+    known values for func_val1 and func_val2.  Doing so is valid ANSI
+    code, but on some machines (RS6000, HPPA, others?) it may fail when
+    called directly by GDB.
+ 
+    In a nutshell, it's not possible for GDB to determine when the address
+    of a function or the address of the function's stub/trampoline should
+    be passed.
+ 
+    So, to avoid GDB lossage in the common case, we perform calls through the
+    various function pointers and compare the return values.  For the HPPA
+    at least, this allows the common case to work.
+ 
+    If one wants to try something more complicated, pass the address of
+    a function accepting a "double" as one of its first 4 arguments.  Call
+    that function indirectly through the function pointer.  This would fail
+    on the HPPA.  */
+ 
+ #ifdef PROTOTYPES
+ int t_func_values (int (*func_arg1)(int, int), int (*func_arg2)(int))
+ #else
+ int t_func_values (func_arg1, func_arg2)
+ int (*func_arg1) PARAMS ((int, int));
+ int (*func_arg2) PARAMS ((int));
+ #endif
+ {
+   return ((*func_arg1) (5,5)  == (*func_val1) (5,5)
+           && (*func_arg2) (6) == (*func_val2) (6));
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_call_add (int (*func_arg1)(int, int), int a, int b)
+ #else
+ int t_call_add (func_arg1, a, b)
+ int (*func_arg1) PARAMS ((int, int));
+ int a, b;
+ #endif
+ {
+   return ((*func_arg1)(a, b));
+ }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/callfns.exp gdb/testsuite/gdb.base/callfns.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/callfns.exp	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/callfns.exp	Thu Jun 24 20:28:36 1999
***************
*** 0 ****
--- 1,314 ----
+ # Copyright (C) 92, 96, 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)
+ # and modified by Bob Manson. (manson@cygnus.com)
+ 
+ if $tracelevel then {
+ 	strace $tracelevel
+ }
+ 
+ set prms_id 0
+ set bug_id 0
+ 
+ set testfile "callfns"
+ 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."
+ }
+ 
+ # Create and source the file that provides information about the compiler
+ # used to compile the test case.
+ 
+ if [get_compiler_info ${binfile}] {
+     return -1;
+ }
+ 
+ if {$hp_aCC_compiler} {
+     set prototypes 1
+ } else {
+     set prototypes 0
+ }
+ 
+ # The a29k can't call functions, so don't even bother with this test.
+ if [target_info exists gdb,cannot_call_functions] {
+     setup_xfail "*-*-*" 2416
+     fail "This target can not call functions"
+     continue
+ }
+ 
+ # Set the current language to C.  This counts as a test.  If it
+ # fails, then we skip the other tests.
+ 
+ proc set_lang_c {} {
+     global gdb_prompt
+ 
+     send_gdb "set language c\n"
+     gdb_expect {
+ 	-re ".*$gdb_prompt $" {}
+ 	timeout { fail "set language c (timeout)" ; return 0; }
+     }
+ 
+     send_gdb "show language\n"
+     gdb_expect {
+ 	-re ".* source language is \"c\".*$gdb_prompt $" {
+ 	    pass "set language to \"c\""
+ 	    return 1
+ 	}
+ 	-re ".*$gdb_prompt $" {
+ 	    fail "setting language to \"c\""
+ 	    return 0
+ 	}
+ 	timeout {
+ 	    fail "can't show language (timeout)"
+ 	    return 0
+ 	}
+     }
+ }
+ 
+ # FIXME:  Before calling this proc, we should probably verify that
+ # we can call inferior functions and get a valid integral value
+ # returned.
+ # Note that it is OK to check for 0 or 1 as the returned values, because C
+ # specifies that the numeric value of a relational or logical expression
+ # (computed in the inferior) is 1 for true and 0 for false.
+ 
+ proc do_function_calls {} {
+     global prototypes
+     global gcc_compiled
+     # We need to up this because this can be really slow on some boards.
+     set timeout 60;
+ 
+     gdb_test "p t_char_values(0,0)" " = 0"
+     gdb_test "p t_char_values('a','b')" " = 1"
+     gdb_test "p t_char_values(char_val1,char_val2)" " = 1"
+     gdb_test "p t_char_values('a',char_val2)" " = 1"
+     gdb_test "p t_char_values(char_val1,'b')" " = 1"
+ 
+     gdb_test "p t_short_values(0,0)" " = 0"
+     gdb_test "p t_short_values(10,-23)" " = 1"
+     gdb_test "p t_short_values(short_val1,short_val2)" " = 1"
+     gdb_test "p t_short_values(10,short_val2)" " = 1"
+     gdb_test "p t_short_values(short_val1,-23)" " = 1"
+ 
+     gdb_test "p t_int_values(0,0)" " = 0"
+     gdb_test "p t_int_values(87,-26)" " = 1"
+     gdb_test "p t_int_values(int_val1,int_val2)" " = 1"
+     gdb_test "p t_int_values(87,int_val2)" " = 1"
+     gdb_test "p t_int_values(int_val1,-26)" " = 1"
+ 
+     gdb_test "p t_long_values(0,0)" " = 0"
+     gdb_test "p t_long_values(789,-321)" " = 1"
+     gdb_test "p t_long_values(long_val1,long_val2)" " = 1"
+     gdb_test "p t_long_values(789,long_val2)" " = 1"
+     gdb_test "p t_long_values(long_val1,-321)" " = 1"
+ 
+     if ![target_info exists gdb,skip_float_tests] {
+ 	gdb_test "p t_float_values(0.0,0.0)" " = 0"
+ 
+ 	# These next four tests fail on the mn10300.
+ 	# The first value is passed in regs, the other in memory.
+ 	# Gcc emits different stabs for the two parameters; the first is
+ 	# claimed to be a float, the second a double.
+ 	# dbxout.c in gcc claims this is the desired behavior.
+ 	setup_xfail "mn10300-*-*" "hppa*-*-*11*"
+ 	gdb_test "p t_float_values(3.14159,-2.3765)" " = 1"
+ 	setup_xfail "mn10300-*-*" "hppa*-*-*11*"
+ 	gdb_test "p t_float_values(float_val1,float_val2)" " = 1"
+ 	setup_xfail "mn10300-*-*" "hppa*-*-*11*"
+ 	gdb_test "p t_float_values(3.14159,float_val2)" " = 1"
+ 	setup_xfail "mn10300-*-*" "hppa*-*-*11*"
+ 	gdb_test "p t_float_values(float_val1,-2.3765)" " = 1"
+ 
+ 	# Test passing of arguments which might not be widened.
+ 	gdb_test "p t_float_values2(0.0,0.0)" " = 0"
+ 
+ 	# Although PR 5318 mentions SunOS specifically, this seems
+ 	# to be a generic problem on quite a few platforms.
+ 	if $prototypes then {
+ 	    setup_xfail "sparc-*-*" "mips*-*-*" 5318
+ 	    if {!$gcc_compiled} then {
+ 		setup_xfail "alpha-dec-osf2*" "i*86-*-sysv4*" 5318
+ 	    }
+ 	}
+ 	gdb_test "p t_float_values2(3.14159,float_val2)" " = 1"
+ 	gdb_test "p t_small_values(1,2,3,4,5,6,7,8,9,10)" " = 55"
+ 
+ 	gdb_test "p t_double_values(0.0,0.0)" " = 0"
+ 	gdb_test "p t_double_values(45.654,-67.66)" " = 1"
+ 	gdb_test "p t_double_values(double_val1,double_val2)" " = 1"
+ 	gdb_test "p t_double_values(45.654,double_val2)" " = 1"
+ 	gdb_test "p t_double_values(double_val1,-67.66)" " = 1"
+     }
+ 
+     gdb_test "p t_string_values(string_val2,string_val1)" " = 0"
+     gdb_test "p t_string_values(string_val1,string_val2)" " = 1"
+     gdb_test "p t_string_values(\"string 1\",\"string 2\")" " = 1"
+     gdb_test "p t_string_values(\"string 1\",string_val2)" " = 1"
+     gdb_test "p t_string_values(string_val1,\"string 2\")" " = 1"
+ 
+     gdb_test "p t_char_array_values(char_array_val2,char_array_val1)" " = 0"
+     gdb_test "p t_char_array_values(char_array_val1,char_array_val2)" " = 1"
+     gdb_test "p t_char_array_values(\"carray 1\",\"carray 2\")" " = 1"
+     gdb_test "p t_char_array_values(\"carray 1\",char_array_val2)" " = 1"
+     gdb_test "p t_char_array_values(char_array_val1,\"carray 2\")" " = 1"
+ 
+     gdb_test "p doubleit(4)" " = 8"
+     gdb_test "p add(4,5)" " = 9"
+     gdb_test "p t_func_values(func_val2,func_val1)" " = 0"
+     gdb_test "p t_func_values(func_val1,func_val2)" " = 1"
+ 
+     # On the rs6000, we need to pass the address of the trampoline routine,
+     # not the address of add itself.  I don't know how to go from add to
+     # the address of the trampoline.  Similar problems exist on the HPPA,
+     # and in fact can present an unsolvable problem as the stubs may not
+     # even exist in the user's program.  We've slightly recoded t_func_values
+     # to avoid such problems in the common case.  This may or may not help
+     # the RS6000.
+     setup_xfail "rs6000*-*-*"
+     setup_xfail "powerpc*-*-*"
+     if {!$gcc_compiled && [istarget hppa*-*-hpux*]} then {
+ 	send_gdb "p t_func_values(add,func_val2)\n"
+ 	gdb_expect {
+ 	  -re "You cannot.*ignored.*" {pass "p t_func_values(add,func_val2)"}
+ 	  -re "Program received signal SIGBUS, Bus error.*" {
+ 	    if [istarget hppa*-*-hpux*] {
+ 		pass "p t_func_values(add,func_val2)"
+ 	    } else {
+ 		fail "p t_func_values(add,func_val2)"
+ 	    }
+ 	  }
+ 	}
+     } else {
+ 	gdb_test "p t_func_values(add,func_val2)" " = 1"
+     }
+ 
+     setup_xfail "rs6000*-*-*"
+     setup_xfail "powerpc*-*-*"
+     if {!$gcc_compiled && [istarget hppa*-*-hpux*]} then {
+ 	send_gdb "p t_func_values(func_val1,doubleit)\n"
+ 	gdb_expect {
+ 	  -re "You cannot.*ignored.*" {pass "p t_func_values(func_val1,doubleit)"}
+ 	  -re "Program received signal SIGBUS, Bus error.*" {
+ 	    if [istarget hppa*-*-hpux*] {
+ 		pass "p t_func_values(func_val1,doubleit)"
+ 	    } else {
+ 		fail "p t_func_values(func_val1,doubleit)"
+ 	    }
+ 	  }
+         }
+     } else {
+ 	gdb_test "p t_func_values(func_val1,doubleit)" " = 1"
+     }
+ 
+     gdb_test "p t_call_add(func_val1,3,4)" " = 7"
+ 
+     setup_xfail "rs6000*-*-*"
+     setup_xfail "powerpc*-*-*"
+     if {!$gcc_compiled && [istarget hppa*-*-hpux*]} then {
+ 	send_gdb "p t_call_add(add,3,4)\n"
+ 	gdb_expect {
+ 	  -re "You cannot.*ignored.*" {pass "p t_call_add(add,3,4)"}
+ 	  -re "Program received signal SIGBUS, Bus error.*" {
+ 	    if [istarget hppa*-*-hpux*] {
+ 		pass "p t_call_add(add,3,4)"
+ 	    } else {
+ 		fail "p t_call_add(add,3,4)"
+ 	    }
+ 	  }
+         }
+     } else {
+ 	gdb_test "p t_call_add(add,3,4)" " = 7"
+     }
+ 
+     gdb_test "p t_enum_value1(enumval1)" " = 1"
+     gdb_test "p t_enum_value1(enum_val1)" " = 1"
+     gdb_test "p t_enum_value1(enum_val2)" " = 0"
+ 
+     gdb_test "p t_enum_value2(enumval2)" " = 1"
+     gdb_test "p t_enum_value2(enum_val2)" " = 1"
+     gdb_test "p t_enum_value2(enum_val1)" " = 0"
+ 
+     gdb_test "p sum_args(1,{2})" " = 2"
+     gdb_test "p sum_args(2,{2,3})" " = 5"
+     gdb_test "p sum_args(3,{2,3,4})" " = 9"
+     gdb_test "p sum_args(4,{2,3,4,5})" " = 14"
+ 
+     gdb_test "p sum10 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)" " = 55"
+ 
+     gdb_test "p cmp10 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)" " = 1"
+ 
+     gdb_test "p t_structs_c(struct_val1)" "= 120 'x'" \
+ 	"call inferior func with struct - returns char"
+     gdb_test "p t_structs_s(struct_val1)" "= 87" \
+ 	"call inferior func with struct -  returns short"
+     gdb_test "p t_structs_i(struct_val1)" "= 76" \
+ 	"call inferior func with struct - returns int"
+     gdb_test "p t_structs_l(struct_val1)" "= 51" \
+ 	"call inferior func with struct - returns long"
+     setup_xfail "i*86-*-*"
+     gdb_test "p t_structs_f(struct_val1)" "= 2.12.*" \
+        	"call inferior func with struct - returns float"
+     setup_xfail "i*86-*-*"
+     gdb_test "p t_structs_d(struct_val1)" "= 9.87.*" \
+     	"call inferior func with struct - returns double"
+     gdb_test "p t_structs_a(struct_val1)" "= (.unsigned char .. )?\"foo\"" \
+     	"call inferior func with struct - returns char *"
+ }
+ 
+ # Start with a fresh gdb.
+ 
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+ 
+ gdb_test "set print sevenbit-strings" ""
+ gdb_test "set print address off" ""
+ gdb_test "set width 0" ""
+ 
+ if { $hp_aCC_compiler } {
+     # Do not set language explicitly to 'C'.  This will cause aCC
+     # tests to fail because promotion rules are different.  Just let
+     # the language be set to the default.
+ 
+     if { ![runto_main] } {
+ 	gdb_suppress_tests;
+     }
+ 
+     # However, turn off overload-resolution for aCC.  Having it on causes
+     # a lot of failures.
+ 
+     gdb_test "set overload-resolution 0" ".*"
+ } else {
+     if { ![set_lang_c] } {
+ 	gdb_suppress_tests;
+     } else {
+ 	if { ![runto_main] } {
+ 	    gdb_suppress_tests;
+ 	}
+     }
+ }
+ 
+ gdb_test "next" ".*"
+ do_function_calls
+ 
+ return 0
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/callfns2.c gdb/testsuite/gdb.base/callfns2.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/callfns2.c	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/callfns2.c	Thu Jun 24 20:28:36 1999
***************
*** 0 ****
--- 1,351 ----
+ /* Support program for testing gdb's ability to call functions
+    in an inferior which doesn't itself call malloc, pass appropriate
+    arguments to those functions, and get the returned result. */
+ 
+ #ifdef NO_PROTOTYPES
+ #define PARAMS(paramlist) ()
+ #else
+ #define PARAMS(paramlist) paramlist
+ #endif
+ 
+ # include <string.h>
+ 
+ char char_val1 = 'a';
+ char char_val2 = 'b';
+ 
+ short short_val1 = 10;
+ short short_val2 = -23;
+ 
+ int int_val1 = 87;
+ int int_val2 = -26;
+ 
+ long long_val1 = 789;
+ long long_val2 = -321;
+ 
+ float float_val1 = 3.14159;
+ float float_val2 = -2.3765;
+ 
+ double double_val1 = 45.654;
+ double double_val2 = -67.66;
+ 
+ #define DELTA (0.001)
+ 
+ char *string_val1 = (char *)"string 1";
+ char *string_val2 = (char *)"string 2";
+ 
+ char char_array_val1[] = "carray 1";
+ char char_array_val2[] = "carray 2";
+ 
+ struct struct1 {
+   char c;
+   short s;
+   int i;
+   long l;
+   float f;
+   double d;
+   char a[4];
+ } struct_val1 = { 'x', 87, 76, 51, 2.1234, 9.876, "foo" };
+ 
+ /* Some functions that can be passed as arguments to other test
+    functions, or called directly. */
+ #ifdef PROTOTYPES
+ int add (int a, int b)
+ #else
+ int add (a, b) int a, b;
+ #endif
+ {
+   return (a + b);
+ }
+ 
+ #ifdef PROTOTYPES
+ int doubleit (int a)
+ #else
+ int doubleit (a)
+ int a;
+ #endif
+ {
+   return (a + a);
+ }
+ 
+ int (*func_val1) PARAMS((int,int)) = add;
+ int (*func_val2) PARAMS((int)) = doubleit;
+ 
+ /* An enumeration and functions that test for specific values. */
+ 
+ enum enumtype { enumval1, enumval2, enumval3 };
+ enum enumtype enum_val1 = enumval1;
+ enum enumtype enum_val2 = enumval2;
+ enum enumtype enum_val3 = enumval3;
+ 
+ #ifdef PROTOTYPES
+ int t_enum_value1 (enum enumtype enum_arg)
+ #else
+ t_enum_value1 (enum_arg)
+ enum enumtype enum_arg;
+ #endif
+ {
+   return (enum_arg == enum_val1);
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_enum_value2 (enum enumtype enum_arg)
+ #else
+ t_enum_value2 (enum_arg)
+ enum enumtype enum_arg;
+ #endif
+ {
+   return (enum_arg == enum_val2);
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_enum_value3 (enum enumtype enum_arg)
+ #else
+ t_enum_value3 (enum_arg)
+ enum enumtype enum_arg;
+ #endif
+ {
+   return (enum_arg == enum_val3);
+ }
+ 
+ /* A function that takes a vector of integers (along with an explicit
+    count) and returns their sum. */
+ 
+ #ifdef PROTOTYPES
+ int sum_args (int argc, int argv[])
+ #else
+ int sum_args (argc, argv)
+ int argc;
+ int argv[];
+ #endif
+ {
+   int sumval = 0;
+   int idx;
+ 
+   for (idx = 0; idx < argc; idx++)
+     {
+       sumval += argv[idx];
+     }
+   return (sumval);
+ }
+ 
+ /* Test that we can call functions that take structs and return
+    members from that struct */
+ 
+ #ifdef PROTOTYPES
+ char   t_structs_c (struct struct1 tstruct) { return (tstruct.c); }
+ short  t_structs_s (struct struct1 tstruct) { return (tstruct.s); }
+ int    t_structs_i (struct struct1 tstruct) { return (tstruct.i); }
+ long   t_structs_l (struct struct1 tstruct) { return (tstruct.l); }
+ float  t_structs_f (struct struct1 tstruct) { return (tstruct.f); }
+ double t_structs_d (struct struct1 tstruct) { return (tstruct.d); }
+ char  *t_structs_a (struct struct1 tstruct) { return (tstruct.a); }
+ #else
+ char   t_structs_c (tstruct) struct struct1 tstruct; { return (tstruct.c); }
+ short  t_structs_s (tstruct) struct struct1 tstruct; { return (tstruct.s); }
+ int    t_structs_i (tstruct) struct struct1 tstruct; { return (tstruct.i); }
+ long   t_structs_l (tstruct) struct struct1 tstruct; { return (tstruct.l); }
+ float  t_structs_f (tstruct) struct struct1 tstruct; { return (tstruct.f); }
+ double t_structs_d (tstruct) struct struct1 tstruct; { return (tstruct.d); }
+ char  *t_structs_a (tstruct) struct struct1 tstruct; { return (tstruct.a); }
+ #endif
+ 
+ /* Test that calling functions works if there are a lot of arguments.  */
+ #ifdef PROTOTYPES
+ int sum10 (int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9)
+ #else
+ int
+ sum10 (i0, i1, i2, i3, i4, i5, i6, i7, i8, i9)
+      int i0, i1, i2, i3, i4, i5, i6, i7, i8, i9;
+ #endif
+ {
+   return i0 + i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9;
+ }
+ 
+ /* Gotta have a main to be able to generate a linked, runnable
+    executable, and also provide a useful place to set a breakpoint. */
+ 
+ #ifdef PROTOTYPES
+ int main()
+ #else
+ main ()
+ #endif
+ {
+ #ifdef usestubs
+   set_debug_traps();
+   breakpoint();
+ #endif
+   t_structs_c(struct_val1);
+   return 0;
+   
+ }
+ 
+ /* Functions that expect specific values to be passed and return 
+    either 0 or 1, depending upon whether the values were
+    passed incorrectly or correctly, respectively. */
+ 
+ #ifdef PROTOTYPES
+ int t_char_values (char char_arg1, char char_arg2)
+ #else
+ int t_char_values (char_arg1, char_arg2)
+ char char_arg1, char_arg2;
+ #endif
+ {
+   return ((char_arg1 == char_val1) && (char_arg2 == char_val2));
+ }
+ 
+ int
+ #ifdef PROTOTYPES
+ t_small_values (char arg1, short arg2, int arg3, char arg4, short arg5,
+ 		char arg6, short arg7, int arg8, short arg9, short arg10)
+ #else
+ t_small_values (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10)
+      char arg1;
+      short arg2;
+      int arg3;
+      char arg4;
+      short arg5;
+      char arg6;
+      short arg7;
+      int arg8;
+      short arg9;
+      short arg10;
+ #endif
+ {
+   return arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10;
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_short_values (short short_arg1, short short_arg2)
+ #else
+ int t_short_values (short_arg1, short_arg2)
+ short short_arg1, short_arg2;
+ #endif
+ {
+   return ((short_arg1 == short_val1) && (short_arg2 == short_val2));
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_int_values (int int_arg1, int int_arg2)
+ #else
+ int t_int_values (int_arg1, int_arg2)
+ int int_arg1, int_arg2;
+ #endif
+ {
+   return ((int_arg1 == int_val1) && (int_arg2 == int_val2));
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_long_values (long long_arg1, long long_arg2)
+ #else
+ int t_long_values (long_arg1, long_arg2)
+ long long_arg1, long_arg2;
+ #endif
+ {
+   return ((long_arg1 == long_val1) && (long_arg2 == long_val2));
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_float_values (float float_arg1, float float_arg2)
+ #else
+ int t_float_values (float_arg1, float_arg2)
+ float float_arg1, float_arg2;
+ #endif
+ {
+   return ((float_arg1 - float_val1) < DELTA
+ 	  && (float_arg1 - float_val1) > -DELTA
+ 	  && (float_arg2 - float_val2) < DELTA
+ 	  && (float_arg2 - float_val2) > -DELTA);
+ }
+ 
+ int
+ #ifdef PROTOTYPES
+ t_float_values2 (float float_arg1, float float_arg2)
+ #else
+ /* In this case we are just duplicating t_float_values, but that is the
+    easiest way to deal with either ANSI or non-ANSI.  */
+ t_float_values2 (float_arg1, float_arg2)
+      float float_arg1, float_arg2;
+ #endif
+ {
+   return ((float_arg1 - float_val1) < DELTA
+ 	  && (float_arg1 - float_val1) > -DELTA
+ 	  && (float_arg2 - float_val2) < DELTA
+ 	  && (float_arg2 - float_val2) > -DELTA);
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_double_values (double double_arg1, double double_arg2)
+ #else
+ int t_double_values (double_arg1, double_arg2)
+ double double_arg1, double_arg2;
+ #endif
+ {
+   return ((double_arg1 - double_val1) < DELTA
+ 	  && (double_arg1 - double_val1) > -DELTA
+ 	  && (double_arg2 - double_val2) < DELTA
+ 	  && (double_arg2 - double_val2) > -DELTA);
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_string_values (char *string_arg1, char *string_arg2)
+ #else
+ int t_string_values (string_arg1, string_arg2)
+ char *string_arg1, *string_arg2;
+ #endif
+ {
+   return (!strcmp (string_arg1, string_val1) &&
+ 	  !strcmp (string_arg2, string_val2));
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_char_array_values (char char_array_arg1[], char char_array_arg2[])
+ #else
+ int t_char_array_values (char_array_arg1, char_array_arg2)
+ char char_array_arg1[], char_array_arg2[];
+ #endif
+ {
+   return (!strcmp (char_array_arg1, char_array_val1) &&
+ 	  !strcmp (char_array_arg2, char_array_val2));
+ }
+ 
+ 
+ /* This used to simply compare the function pointer arguments with
+    known values for func_val1 and func_val2.  Doing so is valid ANSI
+    code, but on some machines (RS6000, HPPA, others?) it may fail when
+    called directly by GDB.
+ 
+    In a nutshell, it's not possible for GDB to determine when the address
+    of a function or the address of the function's stub/trampoline should
+    be passed.
+ 
+    So, to avoid GDB lossage in the common case, we perform calls through the
+    various function pointers and compare the return values.  For the HPPA
+    at least, this allows the common case to work.
+ 
+    If one wants to try something more complicated, pass the address of
+    a function accepting a "double" as one of its first 4 arguments.  Call
+    that function indirectly through the function pointer.  This would fail
+    on the HPPA.  */
+ 
+ #ifdef PROTOTYPES
+ int t_func_values (int (*func_arg1)(int, int), int (*func_arg2)(int))
+ #else
+ int t_func_values (func_arg1, func_arg2)
+ int (*func_arg1) PARAMS ((int, int));
+ int (*func_arg2) PARAMS ((int));
+ #endif
+ {
+   return ((*func_arg1) (5,5)  == (*func_val1) (5,5)
+           && (*func_arg2) (6) == (*func_val2) (6));
+ }
+ 
+ #ifdef PROTOTYPES
+ int t_call_add (int (*func_arg1)(int, int), int a, int b)
+ #else
+ int t_call_add (func_arg1, a, b)
+ int (*func_arg1) PARAMS ((int, int));
+ int a, b;
+ #endif
+ {
+   return ((*func_arg1)(a, b));
+ }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/callfns2.exp gdb/testsuite/gdb.base/callfns2.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/callfns2.exp	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/callfns2.exp	Thu Jun 24 20:28:36 1999
***************
*** 0 ****
--- 1,317 ----
+ # 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
+ 
+ # This file was written by Fred Fish. (fnf@cygnus.com)
+ 
+ # SAME tests as in callfns.exp but here the inferior program does not call malloc.
+ 
+ 
+ 
+ if $tracelevel then {
+ 	strace $tracelevel
+ }
+ 
+ set prms_id 0
+ set bug_id 0
+ 
+ set testfile "callfns2"
+ 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."
+ }
+ 
+ # Create and source the file that provides information about the compiler
+ # used to compile the test case.
+ 
+ if [get_compiler_info ${binfile}] {
+     return -1;
+ }
+ 
+ if {$hp_aCC_compiler} {
+     set prototypes 1
+ } else {
+     set prototypes 0
+ }
+ 
+ 
+ # The a29k can't call functions, so don't even bother with this test.
+ if [target_info exists gdb,cannot_call_functions] {
+     setup_xfail "*-*-*" 2416
+     fail "This target can not call functions"
+     continue
+ }
+ 
+ # Set the current language to C.  This counts as a test.  If it
+ # fails, then we skip the other tests.
+ 
+ proc set_lang_c {} {
+     global gdb_prompt
+ 
+     send_gdb "set language c\n"
+     gdb_expect {
+ 	-re ".*$gdb_prompt $" {}
+ 	timeout { fail "set language c (timeout)" ; return 0 }
+     }
+ 
+     send_gdb "show language\n"
+     gdb_expect {
+ 	-re ".* source language is \"c\".*$gdb_prompt $" {
+ 	    pass "set language to \"c\""
+ 	    return 1
+ 	}
+ 	-re ".*$gdb_prompt $" {
+ 	    fail "setting language to \"c\""
+ 	    return 0
+ 	}
+ 	timeout {
+ 	    fail "can't show language (timeout)"
+ 	    return 0
+ 	}
+     }
+ }
+ 
+ # FIXME:  Before calling this proc, we should probably verify that
+ # we can call inferior functions and get a valid integral value
+ # returned.
+ # Note that it is OK to check for 0 or 1 as the returned values, because C
+ # specifies that the numeric value of a relational or logical expression
+ # (computed in the inferior) is 1 for true and 0 for false.
+ 
+ proc do_function_calls {} {
+     global prototypes
+     global gcc_compiled
+     # We need to up this because this can be really slow on some boards.
+     set timeout 60;
+ 
+     gdb_test "p t_char_values(0,0)" " = 0"
+     gdb_test "p t_char_values('a','b')" " = 1"
+     gdb_test "p t_char_values(char_val1,char_val2)" " = 1"
+     gdb_test "p t_char_values('a',char_val2)" " = 1"
+     gdb_test "p t_char_values(char_val1,'b')" " = 1"
+ 
+     gdb_test "p t_short_values(0,0)" " = 0"
+     gdb_test "p t_short_values(10,-23)" " = 1"
+     gdb_test "p t_short_values(short_val1,short_val2)" " = 1"
+     gdb_test "p t_short_values(10,short_val2)" " = 1"
+     gdb_test "p t_short_values(short_val1,-23)" " = 1"
+ 
+     gdb_test "p t_int_values(0,0)" " = 0"
+     gdb_test "p t_int_values(87,-26)" " = 1"
+     gdb_test "p t_int_values(int_val1,int_val2)" " = 1"
+     gdb_test "p t_int_values(87,int_val2)" " = 1"
+     gdb_test "p t_int_values(int_val1,-26)" " = 1"
+ 
+     gdb_test "p t_long_values(0,0)" " = 0"
+     gdb_test "p t_long_values(789,-321)" " = 1"
+     gdb_test "p t_long_values(long_val1,long_val2)" " = 1"
+     gdb_test "p t_long_values(789,long_val2)" " = 1"
+     gdb_test "p t_long_values(long_val1,-321)" " = 1"
+ 
+     if ![target_info exists gdb,skip_float_tests] {
+ 	gdb_test "p t_float_values(0.0,0.0)" " = 0"
+ 
+ 	# These next four tests fail on the mn10300.
+ 	# The first value is passed in regs, the other in memory.
+ 	# Gcc emits different stabs for the two parameters; the first is
+ 	# claimed to be a float, the second a double.
+ 	# dbxout.c in gcc claims this is the desired behavior.
+ 	setup_xfail "mn10300-*-*" "hppa*-*-*11*"
+ 	gdb_test "p t_float_values(3.14159,-2.3765)" " = 1"
+ 	setup_xfail "mn10300-*-*" "hppa*-*-*11*"
+ 	gdb_test "p t_float_values(float_val1,float_val2)" " = 1"
+ 	setup_xfail "mn10300-*-*" "hppa*-*-*11*"
+ 	gdb_test "p t_float_values(3.14159,float_val2)" " = 1"
+ 	setup_xfail "mn10300-*-*" "hppa*-*-*11*"
+ 	gdb_test "p t_float_values(float_val1,-2.3765)" " = 1"
+ 
+ 	# Test passing of arguments which might not be widened.
+ 	gdb_test "p t_float_values2(0.0,0.0)" " = 0"
+ 
+ 	# Although PR 5318 mentions SunOS specifically, this seems
+ 	# to be a generic problem on quite a few platforms.
+ 	if $prototypes then {
+ 	    setup_xfail "sparc-*-*" "mips*-*-*" 5318
+ 	    if {!$gcc_compiled} then {
+ 		setup_xfail "alpha-dec-osf2*" "i*86-*-sysv4*" 5318
+ 	    }
+ 	}
+ 	gdb_test "p t_float_values2(3.14159,float_val2)" " = 1"
+ 	gdb_test "p t_small_values(1,2,3,4,5,6,7,8,9,10)" " = 55"
+ 
+ 	gdb_test "p t_double_values(0.0,0.0)" " = 0"
+ 	gdb_test "p t_double_values(45.654,-67.66)" " = 1"
+ 	gdb_test "p t_double_values(double_val1,double_val2)" " = 1"
+ 	gdb_test "p t_double_values(45.654,double_val2)" " = 1"
+ 	gdb_test "p t_double_values(double_val1,-67.66)" " = 1"
+    
+     }
+ 
+     gdb_test "p t_string_values(string_val2,string_val1)" " = 0"
+     gdb_test "p t_string_values(string_val1,string_val2)" " = 1"
+     gdb_test "p t_string_values(\"string 1\",\"string 2\")" " = 1"
+     gdb_test "p t_string_values(\"string 1\",string_val2)" " = 1"
+     gdb_test "p t_string_values(string_val1,\"string 2\")" " = 1"
+ 
+     gdb_test "p t_char_array_values(char_array_val2,char_array_val1)" " = 0"
+     gdb_test "p t_char_array_values(char_array_val1,char_array_val2)" " = 1"
+     gdb_test "p t_char_array_values(\"carray 1\",\"carray 2\")" " = 1"
+     gdb_test "p t_char_array_values(\"carray 1\",char_array_val2)" " = 1"
+     gdb_test "p t_char_array_values(char_array_val1,\"carray 2\")" " = 1"
+ 
+     gdb_test "p doubleit(4)" " = 8"
+     gdb_test "p add(4,5)" " = 9"
+     gdb_test "p t_func_values(func_val2,func_val1)" " = 0"
+     gdb_test "p t_func_values(func_val1,func_val2)" " = 1"
+ 
+     # On the rs6000, we need to pass the address of the trampoline routine,
+     # not the address of add itself.  I don't know how to go from add to
+     # the address of the trampoline.  Similar problems exist on the HPPA,
+     # and in fact can present an unsolvable problem as the stubs may not
+     # even exist in the user's program.  We've slightly recoded t_func_values
+     # to avoid such problems in the common case.  This may or may not help
+     # the RS6000.
+     setup_xfail "rs6000*-*-*"
+     setup_xfail "powerpc*-*-*"
+ 
+     if {!$gcc_compiled && [istarget hppa*-*-hpux*]} then {
+         send_gdb "p t_func_values(add,func_val2)\n"
+         gdb_expect {
+           -re "You cannot.*ignored.*" {pass "p t_func_values(add,func_val2)"}
+           -re "Program received signal SIGBUS, Bus error.*" {
+             if [istarget hppa*-*-hpux*] {
+                 pass "p t_func_values(add,func_val2)"
+             } else {
+                 fail "p t_func_values(add,func_val2)"
+             }
+           }
+         }
+     } else {
+ 	gdb_test "p t_func_values(add,func_val2)" " = 1"
+     }
+ 
+     setup_xfail "rs6000*-*-*"
+     setup_xfail "powerpc*-*-*"
+ 
+     if {!$gcc_compiled && [istarget hppa*-*-hpux*]} then {
+         send_gdb "p t_func_values(func_val1,doubleit)\n"
+         gdb_expect {
+           -re "You cannot.*ignored.*" {pass "p t_func_values(func_val1,doubleit)"}
+           -re "Program received signal SIGBUS, Bus error.*" {
+             if [istarget hppa*-*-hpux*] {
+                 pass "p t_func_values(func_val1,doubleit)"
+             } else {
+                 fail "p t_func_values(func_val1,doubleit)"
+             }
+           }
+         }
+     } else {
+ 	gdb_test "p t_func_values(func_val1,doubleit)" " = 1"
+     }
+ 
+     gdb_test "p t_call_add(func_val1,3,4)" " = 7"
+ 
+     setup_xfail "rs6000*-*-*"
+     setup_xfail "powerpc*-*-*"
+ 
+     if {!$gcc_compiled && [istarget hppa*-*-hpux*]} then {
+         send_gdb "p t_call_add(add,3,4)\n"
+         gdb_expect {
+           -re "You cannot.*ignored.*" {pass "p t_call_add(add,3,4)"}
+           -re "Program received signal SIGBUS, Bus error.*" {
+             if [istarget hppa*-*-hpux*] {
+                 pass "p t_call_add(add,3,4)"
+             } else {
+                 fail "p t_call_add(add,3,4)"
+             }
+           }
+         }
+     } else {
+ 	gdb_test "p t_call_add(add,3,4)" " = 7"
+     }
+     
+     gdb_test "p t_enum_value1(enumval1)" " = 1"
+     gdb_test "p t_enum_value1(enum_val1)" " = 1"
+     gdb_test "p t_enum_value1(enum_val2)" " = 0"
+ 
+     gdb_test "p t_enum_value2(enumval2)" " = 1"
+     gdb_test "p t_enum_value2(enum_val2)" " = 1"
+     gdb_test "p t_enum_value2(enum_val1)" " = 0"
+ 
+     gdb_test "p sum_args(1,{2})" " = 2"
+     gdb_test "p sum_args(2,{2,3})" " = 5"
+     gdb_test "p sum_args(3,{2,3,4})" " = 9"
+     gdb_test "p sum_args(4,{2,3,4,5})" " = 14"
+     gdb_test "p sum10 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)" " = 55"
+ 
+     gdb_test "p t_structs_c(struct_val1)" "= 120 'x'" \
+ 	"call inferior func with struct - returns char"
+     gdb_test "p t_structs_s(struct_val1)" "= 87" \
+ 	"call inferior func with struct -  returns short"
+     gdb_test "p t_structs_i(struct_val1)" "= 76" \
+ 	"call inferior func with struct - returns int"
+     gdb_test "p t_structs_l(struct_val1)" "= 51" \
+ 	"call inferior func with struct - returns long"
+     setup_xfail "i*86-*-*"
+     gdb_test "p t_structs_f(struct_val1)" "= 2.12.*" \
+ 	"call inferior func with struct - returns float"
+     setup_xfail "i*86-*-*"
+     gdb_test "p t_structs_d(struct_val1)" "= 9.87.*" \
+ 	"call inferior func with struct - returns double"
+     gdb_test "p t_structs_a(struct_val1)" "= (.unsigned char .. )?\"foo\"" \
+ 	"call inferior func with struct - returns char *"
+ 
+ }
+ 
+ # Start with a fresh gdb.
+ 
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+ 
+ gdb_test "set print sevenbit-strings" ""
+ gdb_test "set print address off" ""
+ gdb_test "set width 0" ""
+ 
+ if { $hp_aCC_compiler } {
+     # Do not set language explicitly to 'C'.  This will cause aCC
+     # tests to fail because promotion rules are different.  Just let
+     # the language be set to the default.
+ 
+     if { ![runto_main] } {
+ 	gdb_suppress_tests;
+     }
+ 
+     gdb_test "set overload-resolution 0" ".*"
+ } else {
+     if { ![set_lang_c] } {
+ 	gdb_suppress_tests;
+     } else {
+ 	if { ![runto_main] } {
+ 	    gdb_suppress_tests;
+ 	}
+     }
+ }
+ 
+ gdb_test "next" ".*"
+ do_function_calls
+ 
+ return 0
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/callfuncs.c gdb/testsuite/gdb.base/callfuncs.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/callfuncs.c	Mon Jul 13 06:42:47 1998
--- gdb/testsuite/gdb.base/callfuncs.c	Wed Dec 31 16:00:00 1969
***************
*** 1,280 ****
- /* Support program for testing gdb's ability to call functions
-    in the inferior, pass appropriate arguments to those functions,
-    and get the returned result. */
- 
- #ifdef NO_PROTOTYPES
- #define PARAMS(paramlist) ()
- #else
- #define PARAMS(paramlist) paramlist
- #endif
- 
- char char_val1 = 'a';
- char char_val2 = 'b';
- 
- short short_val1 = 10;
- short short_val2 = -23;
- 
- int int_val1 = 87;
- int int_val2 = -26;
- 
- long long_val1 = 789;
- long long_val2 = -321;
- 
- float float_val1 = 3.14159;
- float float_val2 = -2.3765;
- 
- double double_val1 = 45.654;
- double double_val2 = -67.66;
- 
- #define DELTA (0.001)
- 
- char *string_val1 = "string 1";
- char *string_val2 = "string 2";
- 
- char char_array_val1[] = "carray 1";
- char char_array_val2[] = "carray 2";
- 
- struct struct1 {
-   char c;
-   short s;
-   int i;
-   long l;
-   float f;
-   double d;
-   char a[4];
- } struct_val1 = { 'x', 87, 76, 51, 2.1234, 9.876, "foo" };
- 
- /* Some functions that can be passed as arguments to other test
-    functions, or called directly. */
- 
- int add (a, b)
- int a, b;
- {
-   return (a + b);
- }
- 
- int doubleit (a)
- int a;
- {
-   return (a + a);
- }
- 
- int (*func_val1) PARAMS((int,int)) = add;
- int (*func_val2) PARAMS((int)) = doubleit;
- 
- /* An enumeration and functions that test for specific values. */
- 
- enum enumtype { enumval1, enumval2, enumval3 };
- enum enumtype enum_val1 = enumval1;
- enum enumtype enum_val2 = enumval2;
- enum enumtype enum_val3 = enumval3;
- 
- int t_enum_value1 (enum_arg)
- enum enumtype enum_arg;
- {
-   return (enum_arg == enum_val1);
- }
- 
- int t_enum_value2 (enum_arg)
- enum enumtype enum_arg;
- {
-   return (enum_arg == enum_val2);
- }
- 
- int t_enum_value3 (enum_arg)
- enum enumtype enum_arg;
- {
-   return (enum_arg == enum_val3);
- }
- 
- /* A function that takes a vector of integers (along with an explicit
-    count) and returns their sum. */
- 
- int sum_args (argc, argv)
- int argc;
- int argv[];
- {
-   int sumval = 0;
-   int idx;
- 
-   for (idx = 0; idx < argc; idx++)
-     {
-       sumval += argv[idx];
-     }
-   return (sumval);
- }
- 
- /* Test that we can call functions that take structs and return
-    members from that struct */
- 
- char   t_structs_c (tstruct) struct struct1 tstruct; { return (tstruct.c); }
- short  t_structs_s (tstruct) struct struct1 tstruct; { return (tstruct.s); }
- int    t_structs_i (tstruct) struct struct1 tstruct; { return (tstruct.i); }
- long   t_structs_l (tstruct) struct struct1 tstruct; { return (tstruct.l); }
- float  t_structs_f (tstruct) struct struct1 tstruct; { return (tstruct.f); }
- double t_structs_d (tstruct) struct struct1 tstruct; { return (tstruct.d); }
- char  *t_structs_a (tstruct) struct struct1 tstruct; { return (tstruct.a); }
- 
- /* Test that calling functions works if there are a lot of arguments.  */
- int
- sum10 (i0, i1, i2, i3, i4, i5, i6, i7, i8, i9)
-      int i0, i1, i2, i3, i4, i5, i6, i7, i8, i9;
- {
-   return i0 + i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9;
- }
- 
- /* Test that args are passed in the right order. */
- int
- cmp10 (i0, i1, i2, i3, i4, i5, i6, i7, i8, i9)
-   int i0, i1, i2, i3, i4, i5, i6, i7, i8, i9;
- {
-   return
-     (i0 == 0) && (i1 == 1) && (i2 == 2) && (i3 == 3) && (i4 == 4) &&
-     (i5 == 5) && (i6 == 6) && (i7 == 7) && (i8 == 8) && (i9 == 9);
- }
- 
- 
- /* Gotta have a main to be able to generate a linked, runnable
-    executable, and also provide a useful place to set a breakpoint. */
- extern void * malloc() ;
- int main ()
- {
- #ifdef usestubs
-   set_debug_traps();
-   breakpoint();
- #endif
-   malloc(1);
-   t_structs_c(struct_val1);
-   return 0 ;
- }
- 
- /* Functions that expect specific values to be passed and return 
-    either 0 or 1, depending upon whether the values were
-    passed incorrectly or correctly, respectively. */
- 
- int t_char_values (char_arg1, char_arg2)
- char char_arg1, char_arg2;
- {
-   return ((char_arg1 == char_val1) && (char_arg2 == char_val2));
- }
- 
- int
- #ifdef NO_PROTOTYPES
- t_small_values (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10)
-      char arg1;
-      short arg2;
-      int arg3;
-      char arg4;
-      short arg5;
-      char arg6;
-      short arg7;
-      int arg8;
-      short arg9;
-      short arg10;
- #else
- t_small_values (char arg1, short arg2, int arg3, char arg4, short arg5,
- 		char arg6, short arg7, int arg8, short arg9, short arg10)
- #endif
- {
-   return arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10;
- }
- 
- int t_short_values (short_arg1, short_arg2)
- short short_arg1, short_arg2;
- {
-   return ((short_arg1 == short_val1) && (short_arg2 == short_val2));
- }
- 
- int t_int_values (int_arg1, int_arg2)
- int int_arg1, int_arg2;
- {
-   return ((int_arg1 == int_val1) && (int_arg2 == int_val2));
- }
- 
- int t_long_values (long_arg1, long_arg2)
- long long_arg1, long_arg2;
- {
-   return ((long_arg1 == long_val1) && (long_arg2 == long_val2));
- }
- 
- int t_float_values (float_arg1, float_arg2)
- float float_arg1, float_arg2;
- {
-   return ((float_arg1 - float_val1) < DELTA
- 	  && (float_arg1 - float_val1) > -DELTA
- 	  && (float_arg2 - float_val2) < DELTA
- 	  && (float_arg2 - float_val2) > -DELTA);
- }
- 
- int
- #ifdef NO_PROTOTYPES
- /* In this case we are just duplicating t_float_values, but that is the
-    easiest way to deal with either ANSI or non-ANSI.  */
- t_float_values2 (float_arg1, float_arg2)
-      float float_arg1, float_arg2;
- #else
- t_float_values2 (float float_arg1, float float_arg2)
- #endif
- {
-   return ((float_arg1 - float_val1) < DELTA
- 	  && (float_arg1 - float_val1) > -DELTA
- 	  && (float_arg2 - float_val2) < DELTA
- 	  && (float_arg2 - float_val2) > -DELTA);
- }
- 
- int t_double_values (double_arg1, double_arg2)
- double double_arg1, double_arg2;
- {
-   return ((double_arg1 - double_val1) < DELTA
- 	  && (double_arg1 - double_val1) > -DELTA
- 	  && (double_arg2 - double_val2) < DELTA
- 	  && (double_arg2 - double_val2) > -DELTA);
- }
- 
- int t_string_values (string_arg1, string_arg2)
- char *string_arg1, *string_arg2;
- {
-   return (!strcmp (string_arg1, string_val1) &&
- 	  !strcmp (string_arg2, string_val2));
- }
- 
- int t_char_array_values (char_array_arg1, char_array_arg2)
- char char_array_arg1[], char_array_arg2[];
- {
-   return (!strcmp (char_array_arg1, char_array_val1) &&
- 	  !strcmp (char_array_arg2, char_array_val2));
- }
- 
- 
- /* This used to simply compare the function pointer arguments with
-    known values for func_val1 and func_val2.  Doing so is valid ANSI
-    code, but on some machines (RS6000, HPPA, others?) it may fail when
-    called directly by GDB.
- 
-    In a nutshell, it's not possible for GDB to determine when the address
-    of a function or the address of the function's stub/trampoline should
-    be passed.
- 
-    So, to avoid GDB lossage in the common case, we perform calls through the
-    various function pointers and compare the return values.  For the HPPA
-    at least, this allows the common case to work.
- 
-    If one wants to try something more complicated, pass the address of
-    a function accepting a "double" as one of its first 4 arguments.  Call
-    that function indirectly through the function pointer.  This would fail
-    on the HPPA.  */
- 
- int t_func_values (func_arg1, func_arg2)
- int (*func_arg1) PARAMS ((int, int));
- int (*func_arg2) PARAMS ((int));
- {
-   return ((*func_arg1) (5,5)  == (*func_val1) (5,5)
-           && (*func_arg2) (6) == (*func_val2) (6));
- }
- 
- int t_call_add (func_arg1, a, b)
- int (*func_arg1) PARAMS ((int, int));
- int a, b;
- {
-   return ((*func_arg1)(a, b));
- }
--- 0 ----
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/callfuncs.exp gdb/testsuite/gdb.base/callfuncs.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/callfuncs.exp	Fri Jan  8 16:00:54 1999
--- gdb/testsuite/gdb.base/callfuncs.exp	Wed Dec 31 16:00:00 1969
***************
*** 1,269 ****
- # Copyright (C) 92, 96, 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)
- # and modified by Bob Manson. (manson@cygnus.com)
- 
- if $tracelevel then {
- 	strace $tracelevel
- }
- 
- set prms_id 0
- set bug_id 0
- 
- set testfile "callfuncs"
- set srcfile ${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
- 
- set prototypes 1
- if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
-     set prototypes 0;
-     # built the second test case since we can't use prototypes
-     warning "Prototypes not supported, rebuilding with -DNO_PROTOTYPES"
-     if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DNO_PROTOTYPES}] != "" } {
-      gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-     }
- }
- 
- # Create and source the file that provides information about the compiler
- # used to compile the test case.
- 
- if [get_compiler_info ${binfile}] {
-     return -1;
- }
- 
- # The a29k can't call functions, so don't even bother with this test.
- if [target_info exists gdb,cannot_call_functions] {
-     setup_xfail "*-*-*" 2416
-     fail "This target can not call functions"
-     continue
- }
- 
- # Set the current language to C.  This counts as a test.  If it
- # fails, then we skip the other tests.
- 
- proc set_lang_c {} {
-     global gdb_prompt
- 
-     send_gdb "set language c\n"
-     gdb_expect {
- 	-re ".*$gdb_prompt $" {}
- 	timeout { fail "set language c (timeout)" ; return 0; }
-     }
- 
-     send_gdb "show language\n"
-     gdb_expect {
- 	-re ".* source language is \"c\".*$gdb_prompt $" {
- 	    pass "set language to \"c\""
- 	    return 1
- 	}
- 	-re ".*$gdb_prompt $" {
- 	    fail "setting language to \"c\""
- 	    return 0
- 	}
- 	timeout {
- 	    fail "can't show language (timeout)"
- 	    return 0
- 	}
-     }
- }
- 
- # FIXME:  Before calling this proc, we should probably verify that
- # we can call inferior functions and get a valid integral value
- # returned.
- # Note that it is OK to check for 0 or 1 as the returned values, because C
- # specifies that the numeric value of a relational or logical expression
- # (computed in the inferior) is 1 for true and 0 for false.
- 
- proc do_function_calls {} {
-     global prototypes
-     global gcc_compiled
-     # We need to up this because this can be really slow on some boards.
-     set timeout 60;
- 
-     gdb_test "p t_char_values(0,0)" " = 0"
-     gdb_test "p t_char_values('a','b')" " = 1"
-     gdb_test "p t_char_values(char_val1,char_val2)" " = 1"
-     gdb_test "p t_char_values('a',char_val2)" " = 1"
-     gdb_test "p t_char_values(char_val1,'b')" " = 1"
- 
-     gdb_test "p t_short_values(0,0)" " = 0"
-     gdb_test "p t_short_values(10,-23)" " = 1"
-     gdb_test "p t_short_values(short_val1,short_val2)" " = 1"
-     gdb_test "p t_short_values(10,short_val2)" " = 1"
-     gdb_test "p t_short_values(short_val1,-23)" " = 1"
- 
-     gdb_test "p t_int_values(0,0)" " = 0"
-     gdb_test "p t_int_values(87,-26)" " = 1"
-     gdb_test "p t_int_values(int_val1,int_val2)" " = 1"
-     gdb_test "p t_int_values(87,int_val2)" " = 1"
-     gdb_test "p t_int_values(int_val1,-26)" " = 1"
- 
-     gdb_test "p t_long_values(0,0)" " = 0"
-     gdb_test "p t_long_values(789,-321)" " = 1"
-     gdb_test "p t_long_values(long_val1,long_val2)" " = 1"
-     gdb_test "p t_long_values(789,long_val2)" " = 1"
-     gdb_test "p t_long_values(long_val1,-321)" " = 1"
- 
-     if ![target_info exists gdb,skip_float_tests] {
- 	gdb_test "p t_float_values(0.0,0.0)" " = 0"
- 
- 	# These next four tests fail on the mn10300.
- 	# The first value is passed in regs, the other in memory.
- 	# Gcc emits different stabs for the two parameters; the first is
- 	# claimed to be a float, the second a double.
- 	# dbxout.c in gcc claims this is the desired behavior.
- 	setup_xfail "mn10300-*-*"
- 	gdb_test "p t_float_values(3.14159,-2.3765)" " = 1"
- 	setup_xfail "mn10300-*-*"
- 	gdb_test "p t_float_values(float_val1,float_val2)" " = 1"
- 	setup_xfail "mn10300-*-*"
- 	gdb_test "p t_float_values(3.14159,float_val2)" " = 1"
- 	setup_xfail "mn10300-*-*"
- 	gdb_test "p t_float_values(float_val1,-2.3765)" " = 1"
- 
- 	# Test passing of arguments which might not be widened.
- 	gdb_test "p t_float_values2(0.0,0.0)" " = 0"
- 
- 	# Although PR 5318 mentions SunOS specifically, this seems
- 	# to be a generic problem on quite a few platforms.
- 	if $prototypes then {
- 	    setup_xfail "hppa*-*-*" "sparc-*-*" "mips*-*-*" 5318
- 	    if {!$gcc_compiled} then {
- 		setup_xfail "alpha-dec-osf2*" "i*86-*-sysv4*" 5318
- 	    }
- 	}
- 	gdb_test "p t_float_values2(3.14159,float_val2)" " = 1"
- 	gdb_test "p t_small_values(1,2,3,4,5,6,7,8,9,10)" " = 55"
- 
- 	gdb_test "p t_double_values(0.0,0.0)" " = 0"
- 	gdb_test "p t_double_values(45.654,-67.66)" " = 1"
- 	gdb_test "p t_double_values(double_val1,double_val2)" " = 1"
- 	gdb_test "p t_double_values(45.654,double_val2)" " = 1"
- 	gdb_test "p t_double_values(double_val1,-67.66)" " = 1"
-     }
- 
-     gdb_test "p t_string_values(string_val2,string_val1)" " = 0"
-     gdb_test "p t_string_values(string_val1,string_val2)" " = 1"
-     gdb_test "p t_string_values(\"string 1\",\"string 2\")" " = 1"
-     gdb_test "p t_string_values(\"string 1\",string_val2)" " = 1"
-     gdb_test "p t_string_values(string_val1,\"string 2\")" " = 1"
- 
-     gdb_test "p t_char_array_values(char_array_val2,char_array_val1)" " = 0"
-     gdb_test "p t_char_array_values(char_array_val1,char_array_val2)" " = 1"
-     gdb_test "p t_char_array_values(\"carray 1\",\"carray 2\")" " = 1"
-     gdb_test "p t_char_array_values(\"carray 1\",char_array_val2)" " = 1"
-     gdb_test "p t_char_array_values(char_array_val1,\"carray 2\")" " = 1"
- 
-     gdb_test "p doubleit(4)" " = 8"
-     gdb_test "p add(4,5)" " = 9"
-     gdb_test "p t_func_values(func_val2,func_val1)" " = 0"
-     gdb_test "p t_func_values(func_val1,func_val2)" " = 1"
- 
-     # On the rs6000, we need to pass the address of the trampoline routine,
-     # not the address of add itself.  I don't know how to go from add to
-     # the address of the trampoline.  Similar problems exist on the HPPA,
-     # and in fact can present an unsolvable problem as the stubs may not
-     # even exist in the user's program.  We've slightly recoded t_func_values
-     # to avoid such problems in the common case.  This may or may not help
-     # the RS6000.
-     setup_xfail "rs6000*-*-*"
-     setup_xfail "powerpc*-*-*"
-     if {!$gcc_compiled && [istarget hppa*-*-hpux*]} then {
- 	gdb_test "p t_func_values(add,func_val2)" "You cannot.*ignored.*"
-     } else {
- 	gdb_test "p t_func_values(add,func_val2)" " = 1"
-     }
- 
-     setup_xfail "rs6000*-*-*"
-     setup_xfail "powerpc*-*-*"
-     if {!$gcc_compiled && [istarget hppa*-*-hpux*]} then {
- 	gdb_test "p t_func_values(func_val1,doubleit)" "You cannot.*ignored.*"
-     } else {
- 	gdb_test "p t_func_values(func_val1,doubleit)" " = 1"
-     }
- 
-     gdb_test "p t_call_add(func_val1,3,4)" " = 7"
- 
-     setup_xfail "rs6000*-*-*"
-     setup_xfail "powerpc*-*-*"
-     if {!$gcc_compiled && [istarget hppa*-*-hpux*]} then {
- 	gdb_test "p t_call_add(add,3,4)" "You cannot.*ignored.*"
-     } else {
- 	gdb_test "p t_call_add(add,3,4)" " = 7"
-     }
- 
-     gdb_test "p t_enum_value1(enumval1)" " = 1"
-     gdb_test "p t_enum_value1(enum_val1)" " = 1"
-     gdb_test "p t_enum_value1(enum_val2)" " = 0"
- 
-     gdb_test "p t_enum_value2(enumval2)" " = 1"
-     gdb_test "p t_enum_value2(enum_val2)" " = 1"
-     gdb_test "p t_enum_value2(enum_val1)" " = 0"
- 
-     gdb_test "p sum_args(1,{2})" " = 2"
-     gdb_test "p sum_args(2,{2,3})" " = 5"
-     gdb_test "p sum_args(3,{2,3,4})" " = 9"
-     gdb_test "p sum_args(4,{2,3,4,5})" " = 14"
- 
-     gdb_test "p sum10 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)" " = 55"
- 
-     gdb_test "p cmp10 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)" " = 1"
- 
-     gdb_test "p t_structs_c(struct_val1)" "= 120 'x'" \
- 	"call inferior func with struct - returns char"
-     gdb_test "p t_structs_s(struct_val1)" "= 87" \
- 	"call inferior func with struct -  returns short"
-     gdb_test "p t_structs_i(struct_val1)" "= 76" \
- 	"call inferior func with struct - returns int"
-     gdb_test "p t_structs_l(struct_val1)" "= 51" \
- 	"call inferior func with struct - returns long"
-     setup_xfail "i*86-*-*"
-     gdb_test "p t_structs_f(struct_val1)" "= 2.12.*" \
-        	"call inferior func with struct - returns float"
-     setup_xfail "i*86-*-*"
-     gdb_test "p t_structs_d(struct_val1)" "= 9.87.*" \
-     	"call inferior func with struct - returns double"
-     gdb_test "p t_structs_a(struct_val1)" "= (.unsigned char .. )?\"foo\"" \
-     	"call inferior func with struct - returns char *"
- }
- 
- # Start with a fresh gdb.
- 
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
- 
- gdb_test "set print sevenbit-strings" ""
- gdb_test "set print address off" ""
- gdb_test "set width 0" ""
- 
- if { ![set_lang_c] } {
-     gdb_suppress_tests;
- } else {
-     if { ![runto_main] } {
- 	gdb_suppress_tests;
-     }
- }
- 
- gdb_test "next" ".*"
- do_function_calls
- 
- return 0
--- 0 ----
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/callfuncs2.c gdb/testsuite/gdb.base/callfuncs2.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/callfuncs2.c	Mon Jan  4 07:34:31 1999
--- gdb/testsuite/gdb.base/callfuncs2.c	Wed Dec 31 16:00:00 1969
***************
*** 1,267 ****
- /* Support program for testing gdb's ability to call functions
-    in an inferior which doesn't itself call malloc, pass appropriate
-    arguments to those functions, and get the returned result. */
- 
- #ifdef NO_PROTOTYPES
- #define PARAMS(paramlist) ()
- #else
- #define PARAMS(paramlist) paramlist
- #endif
- 
- char char_val1 = 'a';
- char char_val2 = 'b';
- 
- short short_val1 = 10;
- short short_val2 = -23;
- 
- int int_val1 = 87;
- int int_val2 = -26;
- 
- long long_val1 = 789;
- long long_val2 = -321;
- 
- float float_val1 = 3.14159;
- float float_val2 = -2.3765;
- 
- double double_val1 = 45.654;
- double double_val2 = -67.66;
- 
- #define DELTA (0.001)
- 
- char *string_val1 = "string 1";
- char *string_val2 = "string 2";
- 
- char char_array_val1[] = "carray 1";
- char char_array_val2[] = "carray 2";
- 
- struct struct1 {
-   char c;
-   short s;
-   int i;
-   long l;
-   float f;
-   double d;
-   char a[4];
- } struct_val1 = { 'x', 87, 76, 51, 2.1234, 9.876, "foo" };
- 
- /* Some functions that can be passed as arguments to other test
-    functions, or called directly. */
- 
- int add (a, b)
- int a, b;
- {
-   return (a + b);
- }
- 
- int doubleit (a)
- int a;
- {
-   return (a + a);
- }
- 
- int (*func_val1) PARAMS((int,int)) = add;
- int (*func_val2) PARAMS((int)) = doubleit;
- 
- /* An enumeration and functions that test for specific values. */
- 
- enum enumtype { enumval1, enumval2, enumval3 };
- enum enumtype enum_val1 = enumval1;
- enum enumtype enum_val2 = enumval2;
- enum enumtype enum_val3 = enumval3;
- 
- t_enum_value1 (enum_arg)
- enum enumtype enum_arg;
- {
-   return (enum_arg == enum_val1);
- }
- 
- t_enum_value2 (enum_arg)
- enum enumtype enum_arg;
- {
-   return (enum_arg == enum_val2);
- }
- 
- t_enum_value3 (enum_arg)
- enum enumtype enum_arg;
- {
-   return (enum_arg == enum_val3);
- }
- 
- /* A function that takes a vector of integers (along with an explicit
-    count) and returns their sum. */
- 
- int sum_args (argc, argv)
- int argc;
- int argv[];
- {
-   int sumval = 0;
-   int idx;
- 
-   for (idx = 0; idx < argc; idx++)
-     {
-       sumval += argv[idx];
-     }
-   return (sumval);
- }
- 
- /* Test that we can call functions that take structs and return
-    members from that struct */
- 
- char   t_structs_c (tstruct) struct struct1 tstruct; { return (tstruct.c); }
- short  t_structs_s (tstruct) struct struct1 tstruct; { return (tstruct.s); }
- int    t_structs_i (tstruct) struct struct1 tstruct; { return (tstruct.i); }
- long   t_structs_l (tstruct) struct struct1 tstruct; { return (tstruct.l); }
- float  t_structs_f (tstruct) struct struct1 tstruct; { return (tstruct.f); }
- double t_structs_d (tstruct) struct struct1 tstruct; { return (tstruct.d); }
- char  *t_structs_a (tstruct) struct struct1 tstruct; { return (tstruct.a); }
- 
- /* Test that calling functions works if there are a lot of arguments.  */
- int
- sum10 (i0, i1, i2, i3, i4, i5, i6, i7, i8, i9)
-      int i0, i1, i2, i3, i4, i5, i6, i7, i8, i9;
- {
-   return i0 + i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9;
- }
- 
- /* Gotta have a main to be able to generate a linked, runnable
-    executable, and also provide a useful place to set a breakpoint. */
- 
- main ()
- {
- #ifdef usestubs
-   set_debug_traps();
-   breakpoint();
- #endif
-   t_structs_c(struct_val1);
- }
- 
- /* Functions that expect specific values to be passed and return 
-    either 0 or 1, depending upon whether the values were
-    passed incorrectly or correctly, respectively. */
- 
- int t_char_values (char_arg1, char_arg2)
- char char_arg1, char_arg2;
- {
-   return ((char_arg1 == char_val1) && (char_arg2 == char_val2));
- }
- 
- int
- #ifdef NO_PROTOTYPES
- t_small_values (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10)
-      char arg1;
-      short arg2;
-      int arg3;
-      char arg4;
-      short arg5;
-      char arg6;
-      short arg7;
-      int arg8;
-      short arg9;
-      short arg10;
- #else
- t_small_values (char arg1, short arg2, int arg3, char arg4, short arg5,
- 		char arg6, short arg7, int arg8, short arg9, short arg10)
- #endif
- {
-   return arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10;
- }
- 
- int t_short_values (short_arg1, short_arg2)
- short short_arg1, short_arg2;
- {
-   return ((short_arg1 == short_val1) && (short_arg2 == short_val2));
- }
- 
- int t_int_values (int_arg1, int_arg2)
- int int_arg1, int_arg2;
- {
-   return ((int_arg1 == int_val1) && (int_arg2 == int_val2));
- }
- 
- int t_long_values (long_arg1, long_arg2)
- long long_arg1, long_arg2;
- {
-   return ((long_arg1 == long_val1) && (long_arg2 == long_val2));
- }
- 
- int t_float_values (float_arg1, float_arg2)
- float float_arg1, float_arg2;
- {
-   return ((float_arg1 - float_val1) < DELTA
- 	  && (float_arg1 - float_val1) > -DELTA
- 	  && (float_arg2 - float_val2) < DELTA
- 	  && (float_arg2 - float_val2) > -DELTA);
- }
- 
- int
- #ifdef NO_PROTOTYPES
- /* In this case we are just duplicating t_float_values, but that is the
-    easiest way to deal with either ANSI or non-ANSI.  */
- t_float_values2 (float_arg1, float_arg2)
-      float float_arg1, float_arg2;
- #else
- t_float_values2 (float float_arg1, float float_arg2)
- #endif
- {
-   return ((float_arg1 - float_val1) < DELTA
- 	  && (float_arg1 - float_val1) > -DELTA
- 	  && (float_arg2 - float_val2) < DELTA
- 	  && (float_arg2 - float_val2) > -DELTA);
- }
- 
- int t_double_values (double_arg1, double_arg2)
- double double_arg1, double_arg2;
- {
-   return ((double_arg1 - double_val1) < DELTA
- 	  && (double_arg1 - double_val1) > -DELTA
- 	  && (double_arg2 - double_val2) < DELTA
- 	  && (double_arg2 - double_val2) > -DELTA);
- }
- 
- int t_string_values (string_arg1, string_arg2)
- char *string_arg1, *string_arg2;
- {
-   return (!strcmp (string_arg1, string_val1) &&
- 	  !strcmp (string_arg2, string_val2));
- }
- 
- int t_char_array_values (char_array_arg1, char_array_arg2)
- char char_array_arg1[], char_array_arg2[];
- {
-   return (!strcmp (char_array_arg1, char_array_val1) &&
- 	  !strcmp (char_array_arg2, char_array_val2));
- }
- 
- 
- /* This used to simply compare the function pointer arguments with
-    known values for func_val1 and func_val2.  Doing so is valid ANSI
-    code, but on some machines (RS6000, HPPA, others?) it may fail when
-    called directly by GDB.
- 
-    In a nutshell, it's not possible for GDB to determine when the address
-    of a function or the address of the function's stub/trampoline should
-    be passed.
- 
-    So, to avoid GDB lossage in the common case, we perform calls through the
-    various function pointers and compare the return values.  For the HPPA
-    at least, this allows the common case to work.
- 
-    If one wants to try something more complicated, pass the address of
-    a function accepting a "double" as one of its first 4 arguments.  Call
-    that function indirectly through the function pointer.  This would fail
-    on the HPPA.  */
- 
- int t_func_values (func_arg1, func_arg2)
- int (*func_arg1) PARAMS ((int, int));
- int (*func_arg2) PARAMS ((int));
- {
-   return ((*func_arg1) (5,5)  == (*func_val1) (5,5)
-           && (*func_arg2) (6) == (*func_val2) (6));
- }
- 
- int t_call_add (func_arg1, a, b)
- int (*func_arg1) PARAMS ((int, int));
- int a, b;
- {
-   return ((*func_arg1)(a, b));
- }
--- 0 ----
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/callfuncs2.exp gdb/testsuite/gdb.base/callfuncs2.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/callfuncs2.exp	Fri Jan  8 15:40:55 1999
--- gdb/testsuite/gdb.base/callfuncs2.exp	Wed Dec 31 16:00:00 1969
***************
*** 1,276 ****
- # 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
- 
- # This file was written by Fred Fish. (fnf@cygnus.com)
- 
- # SAME tests as in callfuncs.exp but here the inferior program does not call malloc.
- 
- 
- 
- if $tracelevel then {
- 	strace $tracelevel
- }
- 
- set prms_id 0
- set bug_id 0
- 
- set testfile "callfuncs2"
- set srcfile ${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
- 
- set prototypes 1
- if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
-     set prototypes 0;
-     # built the second test case since we can't use prototypes
-     warning "Prototypes not supported, rebuilding with -DNO_PROTOTYPES"
-     if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DNO_PROTOTYPES}] != "" } {
-      gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-     }
- }
- 
- # Create and source the file that provides information about the compiler
- # used to compile the test case.
- 
- if [get_compiler_info ${binfile}] {
-     return -1;
- }
- 
- 
- 
- # The a29k can't call functions, so don't even bother with this test.
- if [target_info exists gdb,cannot_call_functions] {
-     setup_xfail "*-*-*" 2416
-     fail "This target can not call functions"
-     continue
- }
- 
- # Set the current language to C.  This counts as a test.  If it
- # fails, then we skip the other tests.
- 
- proc set_lang_c {} {
-     global gdb_prompt
- 
-     send_gdb "set language c\n"
-     gdb_expect {
- 	-re ".*$gdb_prompt $" {}
- 	timeout { fail "set language c (timeout)" ; return 0 }
-     }
- 
-     send_gdb "show language\n"
-     gdb_expect {
- 	-re ".* source language is \"c\".*$gdb_prompt $" {
- 	    pass "set language to \"c\""
- 	    return 1
- 	}
- 	-re ".*$gdb_prompt $" {
- 	    fail "setting language to \"c\""
- 	    return 0
- 	}
- 	timeout {
- 	    fail "can't show language (timeout)"
- 	    return 0
- 	}
-     }
- }
- 
- # FIXME:  Before calling this proc, we should probably verify that
- # we can call inferior functions and get a valid integral value
- # returned.
- # Note that it is OK to check for 0 or 1 as the returned values, because C
- # specifies that the numeric value of a relational or logical expression
- # (computed in the inferior) is 1 for true and 0 for false.
- 
- proc do_function_calls {} {
-     global prototypes
-     global gcc_compiled
-     # We need to up this because this can be really slow on some boards.
-     set timeout 60;
- 
-     gdb_test "p t_char_values(0,0)" " = 0"
-     gdb_test "p t_char_values('a','b')" " = 1"
-     gdb_test "p t_char_values(char_val1,char_val2)" " = 1"
-     gdb_test "p t_char_values('a',char_val2)" " = 1"
-     gdb_test "p t_char_values(char_val1,'b')" " = 1"
- 
-     gdb_test "p t_short_values(0,0)" " = 0"
-     gdb_test "p t_short_values(10,-23)" " = 1"
-     gdb_test "p t_short_values(short_val1,short_val2)" " = 1"
-     gdb_test "p t_short_values(10,short_val2)" " = 1"
-     gdb_test "p t_short_values(short_val1,-23)" " = 1"
- 
-     gdb_test "p t_int_values(0,0)" " = 0"
-     gdb_test "p t_int_values(87,-26)" " = 1"
-     gdb_test "p t_int_values(int_val1,int_val2)" " = 1"
-     gdb_test "p t_int_values(87,int_val2)" " = 1"
-     gdb_test "p t_int_values(int_val1,-26)" " = 1"
- 
-     gdb_test "p t_long_values(0,0)" " = 0"
-     gdb_test "p t_long_values(789,-321)" " = 1"
-     gdb_test "p t_long_values(long_val1,long_val2)" " = 1"
-     gdb_test "p t_long_values(789,long_val2)" " = 1"
-     gdb_test "p t_long_values(long_val1,-321)" " = 1"
- 
-     if ![target_info exists gdb,skip_float_tests] {
- 	gdb_test "p t_float_values(0.0,0.0)" " = 0"
- 
- 	# These next four tests fail on the mn10300.
- 	# The first value is passed in regs, the other in memory.
- 	# Gcc emits different stabs for the two parameters; the first is
- 	# claimed to be a float, the second a double.
- 	# dbxout.c in gcc claims this is the desired behavior.
- 	setup_xfail "mn10300-*-*"
- 	gdb_test "p t_float_values(3.14159,-2.3765)" " = 1"
- 	setup_xfail "mn10300-*-*"
- 	gdb_test "p t_float_values(float_val1,float_val2)" " = 1"
- 	setup_xfail "mn10300-*-*"
- 	gdb_test "p t_float_values(3.14159,float_val2)" " = 1"
- 	setup_xfail "mn10300-*-*"
- 	gdb_test "p t_float_values(float_val1,-2.3765)" " = 1"
- 
- 	# Test passing of arguments which might not be widened.
- 	gdb_test "p t_float_values2(0.0,0.0)" " = 0"
- 
- 	# Although PR 5318 mentions SunOS specifically, this seems
- 	# to be a generic problem on quite a few platforms.
- 	if $prototypes then {
- 	    setup_xfail "hppa*-*-*" "sparc-*-*" "mips*-*-*" 5318
- 	    if {!$gcc_compiled} then {
- 		setup_xfail "alpha-dec-osf2*" "i*86-*-sysv4*" 5318
- 	    }
- 	}
- 	gdb_test "p t_float_values2(3.14159,float_val2)" " = 1"
- 	gdb_test "p t_small_values(1,2,3,4,5,6,7,8,9,10)" " = 55"
- 
- 	gdb_test "p t_double_values(0.0,0.0)" " = 0"
- 	gdb_test "p t_double_values(45.654,-67.66)" " = 1"
- 	gdb_test "p t_double_values(double_val1,double_val2)" " = 1"
- 	gdb_test "p t_double_values(45.654,double_val2)" " = 1"
- 	gdb_test "p t_double_values(double_val1,-67.66)" " = 1"
-    
-     }
- 
-     gdb_test "p t_string_values(string_val2,string_val1)" " = 0"
-     gdb_test "p t_string_values(string_val1,string_val2)" " = 1"
-     gdb_test "p t_string_values(\"string 1\",\"string 2\")" " = 1"
-     gdb_test "p t_string_values(\"string 1\",string_val2)" " = 1"
-     gdb_test "p t_string_values(string_val1,\"string 2\")" " = 1"
- 
-     gdb_test "p t_char_array_values(char_array_val2,char_array_val1)" " = 0"
-     gdb_test "p t_char_array_values(char_array_val1,char_array_val2)" " = 1"
-     gdb_test "p t_char_array_values(\"carray 1\",\"carray 2\")" " = 1"
-     gdb_test "p t_char_array_values(\"carray 1\",char_array_val2)" " = 1"
-     gdb_test "p t_char_array_values(char_array_val1,\"carray 2\")" " = 1"
- 
-     gdb_test "p doubleit(4)" " = 8"
-     gdb_test "p add(4,5)" " = 9"
-     gdb_test "p t_func_values(func_val2,func_val1)" " = 0"
-     gdb_test "p t_func_values(func_val1,func_val2)" " = 1"
- 
-     # On the rs6000, we need to pass the address of the trampoline routine,
-     # not the address of add itself.  I don't know how to go from add to
-     # the address of the trampoline.  Similar problems exist on the HPPA,
-     # and in fact can present an unsolvable problem as the stubs may not
-     # even exist in the user's program.  We've slightly recoded t_func_values
-     # to avoid such problems in the common case.  This may or may not help
-     # the RS6000.
-     setup_xfail "rs6000*-*-*"
-     setup_xfail "powerpc*-*-*"
- 
-     if {!$gcc_compiled && [istarget hppa*-*-hpux*]} then {
- 	gdb_test "p t_func_values(add,func_val2)" "You cannot.*ignored.*"
-     } else {
- 	gdb_test "p t_func_values(add,func_val2)" " = 1"
-     }
- 
-     setup_xfail "rs6000*-*-*"
-     setup_xfail "powerpc*-*-*"
- 
-     if {!$gcc_compiled && [istarget hppa*-*-hpux*]} then {
- 	gdb_test "p t_func_values(func_val1,doubleit)" "You cannot.*ignored.*"
-     } else {
- 	gdb_test "p t_func_values(func_val1,doubleit)" " = 1"
-     }
- 
-     gdb_test "p t_call_add(func_val1,3,4)" " = 7"
- 
-     setup_xfail "rs6000*-*-*"
-     setup_xfail "powerpc*-*-*"
- 
-     if {!$gcc_compiled && [istarget hppa*-*-hpux*]} then {
- 	gdb_test "p t_call_add(add,3,4)" "You cannot.*ignored.*"
-     } else {
- 	gdb_test "p t_call_add(add,3,4)" " = 7"
-     }
-     
-     gdb_test "p t_enum_value1(enumval1)" " = 1"
-     gdb_test "p t_enum_value1(enum_val1)" " = 1"
-     gdb_test "p t_enum_value1(enum_val2)" " = 0"
- 
-     gdb_test "p t_enum_value2(enumval2)" " = 1"
-     gdb_test "p t_enum_value2(enum_val2)" " = 1"
-     gdb_test "p t_enum_value2(enum_val1)" " = 0"
- 
-     gdb_test "p sum_args(1,{2})" " = 2"
-     gdb_test "p sum_args(2,{2,3})" " = 5"
-     gdb_test "p sum_args(3,{2,3,4})" " = 9"
-     gdb_test "p sum_args(4,{2,3,4,5})" " = 14"
-     gdb_test "p sum10 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)" " = 55"
- 
-     gdb_test "p t_structs_c(struct_val1)" "= 120 'x'" \
- 	"call inferior func with struct - returns char"
-     gdb_test "p t_structs_s(struct_val1)" "= 87" \
- 	"call inferior func with struct -  returns short"
-     gdb_test "p t_structs_i(struct_val1)" "= 76" \
- 	"call inferior func with struct - returns int"
-     gdb_test "p t_structs_l(struct_val1)" "= 51" \
- 	"call inferior func with struct - returns long"
-     setup_xfail "i*86-*-*"
-     gdb_test "p t_structs_f(struct_val1)" "= 2.12.*" \
- 	"call inferior func with struct - returns float"
-     setup_xfail "i*86-*-*"
-     gdb_test "p t_structs_d(struct_val1)" "= 9.87.*" \
- 	"call inferior func with struct - returns double"
-     gdb_test "p t_structs_a(struct_val1)" "= (.unsigned char .. )?\"foo\"" \
- 	"call inferior func with struct - returns char *"
- 
- }
- 
- # Start with a fresh gdb.
- 
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load ${binfile}
- 
- gdb_test "set print sevenbit-strings" ""
- gdb_test "set print address off" ""
- gdb_test "set width 0" ""
- 
- if { ![set_lang_c] } {
-     gdb_suppress_tests;
- } else {
-     if { ![runto_main] } {
- 	gdb_suppress_tests;
-     }
- }
- 
- gdb_test "next" ".*"
- do_function_calls
- 
- return 0
--- 0 ----
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/commands.exp gdb/testsuite/gdb.base/commands.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/commands.exp	Tue Mar 23 12:01:13 1999
--- gdb/testsuite/gdb.base/commands.exp	Thu Jun 24 20:28:02 1999
***************
*** 93,98 ****
--- 93,99 ----
          return
      }
  
+     gdb_test "set args 5" "" "set args in progvar_simple_while_test"
      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.
***************
*** 110,115 ****
--- 111,117 ----
          return
      }
  
+     gdb_test "set args 4" "" "set args in progvar_complex_if_while_test"
      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.
***************
*** 125,130 ****
--- 127,133 ----
          return
      }
  
+     gdb_test "set args 5" "" "set args in if_while_breakpoint_command_test"
      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.
***************
*** 155,160 ****
--- 158,164 ----
          return
      }
  
+     gdb_test "set args 6" "" "set args in progvar_simple_while_test"
      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.
***************
*** 177,184 ****
      }
      gdb_test "step\nstep\nstep\nstep\nbt\nend" "" \
  	"commands in infrun_breakpoint_command_test #2"
!     
!     gdb_test "continue" "Breakpoint \[0-9\]*, factorial \\(value=5\\).*at.*
  \[0-9\]*\[ 	\]*if \\(value > 1\\) \{.*
  \[0-9\]*\[ 	\]*value \\*= factorial \\(value - 1\\);.*
  factorial \\(value=4\\) at.*\[0-9\]*\[ 	\]*if \\(value > 1\\) \{.*
--- 181,194 ----
      }
      gdb_test "step\nstep\nstep\nstep\nbt\nend" "" \
  	"commands in infrun_breakpoint_command_test #2"
! 
!     if { [istarget "hppa*-hp-hpux*"] } {
! 	gdb_test "continue" \
! 	    "Continuing.*.*.*Breakpoint \[0-9\]*, factorial \\(value=5\\).*at.*\[0-9\]*\[      \]*if \\(value > 1\\) \{.*\[0-9\]*\[      \]*value \\*= factorial \\(value - 1\\);.*" \
! 	    "contiune in infrun_breakpoint_command_test"
!     } else {
! 	gdb_test "continue" \
! 	    "Breakpoint \[0-9\]*, factorial \\(value=5\\).*at.*
  \[0-9\]*\[ 	\]*if \\(value > 1\\) \{.*
  \[0-9\]*\[ 	\]*value \\*= factorial \\(value - 1\\);.*
  factorial \\(value=4\\) at.*\[0-9\]*\[ 	\]*if \\(value > 1\\) \{.*
***************
*** 190,196 ****
  #2  \[0-9a-fx\]* in factorial \\(value=5\\).*
  #3  \[0-9a-fx\]* in factorial \\(value=6\\).*
  #4  \[0-9a-fx\]* in main \\(.*\\).*" \
! 	"continue in infrun_breakpoint_command_test";
      gdb_stop_suppressing_tests;
  }
  
--- 200,208 ----
  #2  \[0-9a-fx\]* in factorial \\(value=5\\).*
  #3  \[0-9a-fx\]* in factorial \\(value=6\\).*
  #4  \[0-9a-fx\]* in main \\(.*\\).*" \
! 	    "continue in infrun_breakpoint_command_test";
!     }
! 
      gdb_stop_suppressing_tests;
  }
  
***************
*** 200,205 ****
--- 212,218 ----
          return
      }
  
+     gdb_test "set args 6" "" "set args in breakpoint_command_test"
      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.
***************
*** 207,213 ****
      delete_breakpoints
      gdb_test "break factorial" "Breakpoint.*at.*" "break factorial #2"
      gdb_test "commands\nprintf \"Now the value is %d\\n\", value\nend" \
! 	"Type commands.*\nEnd with.*" "commands in breakpoint_command_test"
      gdb_test "continue" "Breakpoint \[0-9\]*, factorial.*Now the value is 5" \
  	"continue in breakpoint_command_test"
      gdb_test "print value" " = 5" "print value in breakpoint_command_test"
--- 220,226 ----
      delete_breakpoints
      gdb_test "break factorial" "Breakpoint.*at.*" "break factorial #2"
      gdb_test "commands\nprintf \"Now the value is %d\\n\", value\nend" \
! 	"End with.*" "commands in breakpoint_command_test"
      gdb_test "continue" "Breakpoint \[0-9\]*, factorial.*Now the value is 5" \
  	"continue in breakpoint_command_test"
      gdb_test "print value" " = 5" "print value in breakpoint_command_test"
***************
*** 236,242 ****
--- 249,332 ----
     gdb_test "show user mycommand" "while.*set.*if.*p/x.*else.*p/x.*end.*" "display user command in user_defined_command_test"
  }
  
+ proc watchpoint_command_test {} {
+     global noargs
+     global gdb_prompt
+ 
+     if [target_info exists noargs] { 
+         verbose "Skipping watchpoint_command_test because of noargs."
+         return
+     }
+ 
+     gdb_test "set args 6" "" "set args in watchpoint_command_test"
+     if { ![runto factorial] } then { return }
+     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.
+     #
+     set wp_id -1
+ 
+     send_gdb "watch local_var\n"
+     gdb_expect {
+         -re ".*\[Ww\]atchpoint (\[0-9\]*): local_var.*$gdb_prompt $" {
+             set wp_id $expect_out(1,string)
+             pass "watch local_var"
+         }
+         -re "$gdb_prompt $"\
+             {fail "watch local_var"}
+         timeout {fail "(timeout) watch local_var"}
+     }
+ 
+     if {$wp_id == -1} {return}
  
+     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.*run.c:57.*"\
+               {pass "continue with watch"}
+       -re "$gdb_prompt $"\
+               {fail "continue with watch"}
+       timeout {fail "(timeout) continue with watch"}
+     }
+ }
  
  proc test_command_prompt_position {} {
      global gdb_prompt
***************
*** 295,300 ****
--- 385,391 ----
  infrun_breakpoint_command_test
  breakpoint_command_test
  user_defined_command_test
+ watchpoint_command_test
  test_command_prompt_position
  
  
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/completion.exp gdb/testsuite/gdb.base/completion.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/completion.exp	Mon Jan  4 13:35:26 1999
--- gdb/testsuite/gdb.base/completion.exp	Thu Jun 24 20:28:17 1999
***************
*** 52,60 ****
          }
  
  
! #skip all these tests for now (FIXME)
! 
! continue
  
  global usestubs
  
--- 52,61 ----
          }
  
  
! if { ![istarget "hppa*-hp-hpux*"] } {
!     #skip all these tests for now (FIXME)
!     continue
! }
  
  global usestubs
  
***************
*** 71,76 ****
--- 72,81 ----
      gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
  }
  
+ if [get_compiler_info ${binfile}] {
+     return -1;
+ }
+ 
  gdb_exit
  gdb_start
  gdb_reinitialize_dir $srcdir/$subdir
***************
*** 81,87 ****
  }
  
  set oldtimeout1 $timeout
! set timeout [expr $timeout + 500]
  
  
  send_gdb "hfgfh\t"
--- 86,92 ----
  }
  
  set oldtimeout1 $timeout
! set timeout 30
  
  
  send_gdb "hfgfh\t"
***************
*** 162,192 ****
  gdb_expect  {
          -re "^p\\\x07$"\
              { send_gdb "\n"
                gdb_expect {
                        -re "The history is empty\\..*$gdb_prompt $"\
                                          { pass "complete 'p'"}
                        -re ".*$gdb_prompt $" { fail "complete 'p'"}
!                       timeout           {fail "(timeout) complete 'p'"}
                       }
              }
          -re ".*$gdb_prompt $"       { fail "complete 'p'" }
!         timeout         { fail "(timeout) complete 'p'" }
          }
  
  send_gdb "p \t"
! sleep 1
  gdb_expect  {
          -re "^p \\\x07$"\
              { send_gdb "\n"
                gdb_expect {
                        -re "The history is empty\\..*$gdb_prompt $"\
                                          { pass "complete 'p '"}
                        -re ".*$gdb_prompt $" { fail "complete 'p '"}
!                       timeout           {fail "(timeout) complete 'p '"}
                       }
              }
          -re ".*$gdb_prompt $"       { fail "complete 'p '" }
!         timeout         { fail "(timeout) complete 'p '" }
          }
  
  
--- 167,199 ----
  gdb_expect  {
          -re "^p\\\x07$"\
              { send_gdb "\n"
+ 	      sleep 1
                gdb_expect {
                        -re "The history is empty\\..*$gdb_prompt $"\
                                          { pass "complete 'p'"}
                        -re ".*$gdb_prompt $" { fail "complete 'p'"}
!                       timeout           {fail "(timeout) complete 'p' 2"}
                       }
              }
          -re ".*$gdb_prompt $"       { fail "complete 'p'" }
!         timeout         { fail "(timeout) complete 'p' 1" }
          }
  
  send_gdb "p \t"
! sleep 3
  gdb_expect  {
          -re "^p \\\x07$"\
              { send_gdb "\n"
+ 	      sleep 1
                gdb_expect {
                        -re "The history is empty\\..*$gdb_prompt $"\
                                          { pass "complete 'p '"}
                        -re ".*$gdb_prompt $" { fail "complete 'p '"}
!                       timeout           {fail "(timeout) complete 'p ' 1"}
                       }
              }
          -re ".*$gdb_prompt $"       { fail "complete 'p '" }
!         timeout         { fail "(timeout) complete 'p ' 2" }
          }
  
  
***************
*** 283,289 ****
          -re "^info $"\
              { send_gdb "\n"
                gdb_expect {
!                       -re "\"info\" must be followed by the name of an info command\\.\r\nList of info subcommands:\r\n\r\ninfo address.*info watchpoints.*\r\n\r\nType \"help info\" followed by info subcommand name for full documentation.\r\nCommand name abbreviations are allowed if unambiguous\\..*$gdb_prompt $"\
                                          { pass "complete 'info'"}
                        -re ".*$gdb_prompt $" { fail "complete 'info'"}
                        timeout           {fail "(timeout) complete 'info'"}
--- 290,296 ----
          -re "^info $"\
              { send_gdb "\n"
                gdb_expect {
!                       -re "\"info\" must be followed by the name of an info command\\.\r\nList of info subcommands:\r\n\r\n.*info address.*info watchpoints.*\r\n\r\nType \"help info\" followed by info subcommand name for full documentation.\r\nCommand name abbreviations are allowed if unambiguous\\..*$gdb_prompt $"\
                                          { pass "complete 'info'"}
                        -re ".*$gdb_prompt $" { fail "complete 'info'"}
                        timeout           {fail "(timeout) complete 'info'"}
***************
*** 299,305 ****
          -re "^info \\\x07$"\
              { send_gdb "\n"
                gdb_expect {
!                       -re "\"info\" must be followed by the name of an info command\\.\r\nList of info subcommands:\r\n\r\ninfo address.*Type \"help info\" followed by info subcommand name for full documentation.\r\nCommand name abbreviations are allowed if unambiguous\\..*$gdb_prompt $"\
                                          { pass "complete 'info '"}
                        -re ".*$gdb_prompt $" { fail "complete 'info '"}
                        timeout           {fail "(timeout) complete 'info '"}
--- 306,312 ----
          -re "^info \\\x07$"\
              { send_gdb "\n"
                gdb_expect {
!                       -re "\"info\" must be followed by the name of an info command\\.\r\nList of info subcommands:\r\n\r\n.*info address.*Type \"help info\" followed by info subcommand name for full documentation.\r\nCommand name abbreviations are allowed if unambiguous\\..*$gdb_prompt $"\
                                          { pass "complete 'info '"}
                        -re ".*$gdb_prompt $" { fail "complete 'info '"}
                        timeout           {fail "(timeout) complete 'info '"}
***************
*** 313,319 ****
  send_gdb "info \t"
  sleep 1
  gdb_expect  {
!         -re "^info \0x7$"\
              { send_gdb "\t"
                gdb_expect {
                        -re "address.*types.*$gdb_prompt info $"\
--- 320,326 ----
  send_gdb "info \t"
  sleep 1
  gdb_expect  {
!         -re "^info \\\x07$"\
              { send_gdb "\t"
                gdb_expect {
                        -re "address.*types.*$gdb_prompt info $"\
***************
*** 368,393 ****
  
  send_gdb "p 'a\t"
  sleep 1
! gdb_expect  {
!         -re "^p 'a\\\x07$"\
!             { send_gdb "\t"
!               gdb_expect {
!                       -re "a64l.*atol.*$gdb_prompt p .a$"\
!                           { send_gdb "\n"
!                             gdb_expect {
!                                      -re "Invalid character constant\\..*$gdb_prompt $"\
!                                                        { pass "complete (2) 'p \'a'"}
!                                      -re ".*$gdb_prompt $" { fail "complete (2) 'p \'a'"}
!                                      timeout           {fail "(timeout) complete (2) 'p \'a'"}
!                                    }
!                           }
!                       -re ".*$gdb_prompt $" { fail "complete (2) 'p \'a'"}
!                       timeout           {fail "(timeout) complete (2) 'p \'a'"}
!                      }
!             }
!         -re ".*$gdb_prompt $"       { fail "complete (2) 'p \'a'" }
!         timeout         { fail "(timeout) complete (2) 'p \'a'" }
!         }
  
  
  send_gdb "p b-a\t"
--- 375,420 ----
  
  send_gdb "p 'a\t"
  sleep 1
! gdb_expect {
!     -re "^p 'a\\\x07$" {
! 	send_gdb "\t"
! 	gdb_expect {
! 	    -re "a64l.*atol.*$gdb_prompt p .a$" {
! 		send_gdb "\n"
! 		gdb_expect {
! 		    -re "Invalid character constant\\..*$gdb_prompt $" {
! 			pass "complete (2) 'p \'a'"
! 		    }
! 		    -re ".*$gdb_prompt $" { fail "complete (2) 'p \'a'" }
! 		    timeout { fail "(timeout) complete (2) 'p \'a'" }
! 		}
! 	    }
! 	    -re "(There are $decimal possibilities\\.  Do you really\r\nwish to see them all.|Display all $decimal possibilities.) \\(y or n\\)$" {
! 		send_gdb "n"
! 		gdb_expect {
! 		    -re "\\(gdb\\) p 'a$" {
! 			send_gdb "\n"
! 			gdb_expect {
! 			    -re "Invalid character constant\\..*$gdb_prompt $" {
! 				pass "complete (2) 'p \'a'"
! 			    }
! 			    -re ".*$gdb_prompt $" { 
! 				fail "complete (2) 'p \'a'"
! 			    }
! 			    timeout { fail "(timeout) complete (2) 'p \'a'" }
! 			}
! 		    }
! 		    -re ".*$gdb_prompt $" { fail "complete (2) 'p \'a'" }
! 		    timeout { fail "(timeout) complete (2) 'p \'a'" }
! 		}
! 	    }
! 	    -re ".*$gdb_prompt $" { fail "complete (2) 'p \'a'" }
! 	    timeout { fail "(timeout) complete (2) 'p \'a'" }
! 	}
!     }
!     -re ".*$gdb_prompt $" { fail "complete (2) 'p \'a'" }
!     timeout { fail "(timeout) complete (2) 'p \'a'" }
! }
  
  
  send_gdb "p b-a\t"
***************
*** 408,464 ****
  
  send_gdb "p b-a\t"
  sleep 1
! gdb_expect  {
!         -re "^p b-a\\\x07$"\
!             { send_gdb "\t"
!               gdb_expect {
!                       -re "a64l.*atol.*$gdb_prompt p b-a$"\
!                           { send_gdb "\n"
!                             gdb_expect {
!                                      -re "No symbol \"b\" in current context\\..*$gdb_prompt $"\
!                                                        { pass "complete (2) 'p b-a'"}
!                                      -re ".*$gdb_prompt $" { fail "complete (2) 'p b-a'"}
!                                      timeout           {fail "(timeout) complete (2) 'p b-a'"}
!                                    }
!                           }
!                       -re ".*$gdb_prompt $" { fail "complete (2) 'p b-a'"}
!                       timeout           {fail "(timeout) complete (2) 'p b-a'"}
!                      }
!             }
!         -re ".*$gdb_prompt $"       { fail "complete (2) 'p b-a'" }
!         timeout         { fail "(timeout) complete (2) 'p b-a'" }
!         }
! 
  
  send_gdb "p b-\t"
  sleep 1
  gdb_expect  {
!         -re "^p b-\\\x07$"\
!             { send_gdb "\t"
!               gdb_expect {
!                       -re "There are $decimal possibilities\\.  Do you really\r\nwish to see them all. \\(y or n\\)$"\
!                           { send_gdb "n"
!                             gdb_expect {
!                                      -re "\\(gdb\\) p b-$"\
!                                          { send_gdb "\n"
!                                            gdb_expect {
!                                                    -re "No symbol \"b\" in current context\\..*$gdb_prompt $"\
!                                                        { pass "complete (2) 'p b-'"}
!                                                    -re ".*$gdb_prompt $" { fail "complete (2) 'p b-'"}
!                                                    timeout           {fail "(timeout) complete (2) 'p b-'"}
!                                                   }
!                                           }
!                                      -re ".*$gdb_prompt $" { fail "complete (2) 'p b-'"}
!                                      timeout           {fail "(timeout) complete (2) 'p b-'"}
!                                    }
!                           }
!                       -re ".*$gdb_prompt $" { fail "complete (2) 'p b-'"}
!                       timeout           {fail "(timeout) complete (2) 'p b-'"}
!                      }
!             }
!         -re ".*$gdb_prompt $"       { fail "complete (2) 'p b-'" }
!         timeout         { fail "(timeout) complete (2) 'p b-'" }
!         }
  
  send_gdb "file ${objdir}/Make\t"
  sleep 1
--- 435,513 ----
  
  send_gdb "p b-a\t"
  sleep 1
! gdb_expect {
!     -re "^p b-a\\\x07$" {
! 	send_gdb "\t"
! 	gdb_expect {
! 	    -re "a64l.*atol.*$gdb_prompt p b-a$" {
! 		send_gdb "\n"
! 		gdb_expect {
! 		    -re "No symbol \"b\" in current context\\..*$gdb_prompt $" {
! 			pass "complete (2) 'p b-a'"
! 		    }
! 		    -re ".*$gdb_prompt $" { fail "complete (2) 'p b-a'" }
! 		    timeout { fail "(timeout) complete (2) 'p b-a'" }
! 		}
! 	    }
! 	    -re "(There are $decimal possibilities\\.  Do you really\r\nwish to see them all.|Display all $decimal possibilities.) \\(y or n\\)$" {
! 		send_gdb "n"
! 		gdb_expect {
! 		    -re "\\(gdb\\) p b-a$" {
! 			send_gdb "\n"
! 			gdb_expect {
! 			    -re "No symbol \"b\" in current context\\..*$gdb_prompt $" {
! 				pass "complete (2) 'p b-a'"
! 			    }
! 			    -re ".*$gdb_prompt $" {
! 				fail "complete (2) 'p b-a'"
! 			    }
! 			    timeout { fail "(timeout) complete (2) 'p b-a'" }
! 			}
! 		    }
! 		    -re ".*$gdb_prompt $" { fail "complete (2) 'p b-a'" }
! 		    timeout { fail "(timeout) complete (2) 'p b-a'" }
! 		}
! 	    }
! 	    -re ".*$gdb_prompt $" { fail "complete (2) 'p b-a'" }
! 	    timeout { fail "(timeout) complete (2) 'p b-a'" }
!         }
!     }
!     -re ".*$gdb_prompt $" { fail "complete (2) 'p b-a'" }
!     timeout { fail "(timeout) complete (2) 'p b-a'" }
! }
  
  send_gdb "p b-\t"
  sleep 1
  gdb_expect  {
!     -re "^p b-\\\x07$" {
! 	send_gdb "\t"
! 	gdb_expect {
! 	    -re "(There are $decimal possibilities\\.  Do you really\r\nwish to see them all.|Display all $decimal possibilities.) \\(y or n\\)$" {
! 		send_gdb "n"
! 		gdb_expect {
! 		    -re "\\(gdb\\) p b-$" {
! 			send_gdb "\n"
! 			gdb_expect {
! 			    -re "No symbol \"b\" in current context\\..*$gdb_prompt $" {
! 				pass "complete (2) 'p b-'"
! 			    }
! 			    -re ".*$gdb_prompt $" {
! 				fail "complete (2) 'p b-'"
! 			    }
! 			    timeout { fail "(timeout) complete (2) 'p b-'" }
! 			}
! 		    }
! 		    -re ".*$gdb_prompt $" { fail "complete (2) 'p b-'" }
! 		    timeout { fail "(timeout) complete (2) 'p b-'" }
! 		}
! 	    }
! 	    -re ".*$gdb_prompt $" { fail "complete (2) 'p b-'" }
! 	    timeout { fail "(timeout) complete (2) 'p b-'" }
! 	}
!     }
!     -re ".*$gdb_prompt $" { fail "complete (2) 'p b-'" }
!     timeout { fail "(timeout) complete (2) 'p b-'" }
! }
  
  send_gdb "file ${objdir}/Make\t"
  sleep 1
***************
*** 487,493 ****
  send_gdb "file ${srcdir}/gdb.base/a1\t"
  sleep 1
  gdb_expect  {
!         -re "^file ${srcdir}/gdb.base/.*'a1.*-selftest\\.exp' $"\
              { send_gdb "\n"
                gdb_expect {
                        -re "\r\nA program is being debugged already\\.  Kill it\\? \\(y or n\\) $"
--- 536,542 ----
  send_gdb "file ${srcdir}/gdb.base/a1\t"
  sleep 1
  gdb_expect  {
!         -re "^file ${srcdir}/gdb.base/.*'a1.*-self\\.exp' $"\
              { send_gdb "\n"
                gdb_expect {
                        -re "\r\nA program is being debugged already\\.  Kill it\\? \\(y or n\\) $"
***************
*** 513,525 ****
  sleep 1
  gdb_expect  {
          -re "^info func mark.*er$"\
!             { send_gdb "\t\t"
                sleep 3
                gdb_expect {
!                       -re "marker1  marker2  marker3  marker4.*$gdb_prompt info func marker$"\
                        { send_gdb "\n"
                          gdb_expect {
!                                 -re "All functions matching regular expression \"marker\":\r\n\r\nFile.*break.c:\r\nint marker1\\(\\);\r\nint marker2\\(int\\).*marker3\\(char.*char.*\\);\r\n$gdb_prompt $"\
                                                    { pass "complete 'info func mar'"}
                                  -re ".*$gdb_prompt $" { fail "complete 'info func mar'"}
                                  timeout           {fail "(timeout) complete 'info func mar'"}
--- 562,575 ----
  sleep 1
  gdb_expect  {
          -re "^info func mark.*er$"\
!             {
! 	      send_gdb "\t\t"
                sleep 3
                gdb_expect {
!                       -re "marker1.*$gdb_prompt info func marker$"\
                        { send_gdb "\n"
                          gdb_expect {
!                                 -re "All functions matching regular expression \"marker\":\r\n\r\nFile.*break.c:\r\nint marker1\\(.*\\);\r\nint marker2\\(int\\).*marker3\\(char.*char.*\\).*marker4\\(long\\);\r\n$gdb_prompt $"\
                                                    { pass "complete 'info func mar'"}
                                  -re ".*$gdb_prompt $" { fail "complete 'info func mar'"}
                                  timeout           {fail "(timeout) complete 'info func mar'"}
***************
*** 540,545 ****
--- 590,597 ----
          -re "ask.*child.*parent.*$gdb_prompt set follow-fork-mode $"\
              { send_gdb "\n"
                gdb_expect {
+                       -re "Requires an argument.*parent.*child.*ask.*$gdb_prompt $"\
+                                         { pass "complete 'set follow-fork-mode'"}
                        -re "Ambiguous item \"\"\\..*$gdb_prompt $"\
                                          { pass "complete 'set follow-fork-mode'"}
                        -re ".*$gdb_prompt $" { fail "complete 'set follow-fork-mode'"}
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/condbreak.c gdb/testsuite/gdb.base/condbreak.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/condbreak.c	Mon Jan  4 07:34:31 1999
--- gdb/testsuite/gdb.base/condbreak.c	Thu Jun 24 20:28:15 1999
***************
*** 29,34 ****
--- 29,35 ----
  
  #else /* ! vxworks */
  #  include <stdio.h>
+ #  include <stdlib.h>
  #endif /* ! vxworks */
  
  /*
***************
*** 38,57 ****
--- 39,72 ----
   * of gcc have or have had problems with this).
   */
  
+ #ifdef PROTOTYPES
+ int marker1 (void) { return (0); }
+ int marker2 (int a) { return (1); }
+ void marker3 (char *a, char *b) {}
+ void marker4 (long d) {}
+ #else
  int marker1 () { return (0); }
  int marker2 (a) int a; { return (1); }
  void marker3 (a, b) char *a, *b; {}
  void marker4 (d) long d; {}
+ #endif
  
  /*
   *	This simple classical example of recursion is useful for
   *	testing stack backtraces and such.
   */
  
+ #ifdef PROTOTYPES
+ int factorial(int);
+ 
+ int
+ main (int argc, char **argv, char **envp)
+ #else
  int
  main (argc, argv, envp)
  int argc;
  char *argv[], **envp;
+ #endif
  {
  #ifdef usestubs
      set_debug_traps();
***************
*** 70,77 ****
--- 85,96 ----
      return 0;
  }
  
+ #ifdef PROTOTYPES
+ int factorial (int value)
+ #else
  int factorial (value)
  int value;
+ #endif
  {
      if (value > 1) {
  	value *= factorial (value - 1);
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/condbreak.exp gdb/testsuite/gdb.base/condbreak.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/condbreak.exp	Wed Jun  2 01:10:58 1999
--- gdb/testsuite/gdb.base/condbreak.exp	Thu Jun 24 20:28:14 1999
***************
*** 43,48 ****
--- 43,52 ----
      gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
  }
  
+ if [get_compiler_info ${binfile}] {
+     return -1;
+ }
+ 
  gdb_exit
  gdb_start
  gdb_reinitialize_dir $srcdir/$subdir
***************
*** 74,81 ****
  #
  # test conditional break at line number
  #
! gdb_test "break 64 if 1==1" \
!     "Breakpoint.*at.* file .*$srcfile, line 64\\." \
      "break line if condition"
  
  gdb_test "delete 3" \
--- 78,85 ----
  #
  # test conditional break at line number
  #
! gdb_test "break 79 if 1==1" \
!     "Breakpoint.*at.* file .*$srcfile, line 79\\." \
      "break line if condition"
  
  gdb_test "delete 3" \
***************
*** 92,99 ****
  #
  # test conditional break at line number
  #
! gdb_test "break 64 if (1==1)" \
!     "Breakpoint.*at.* file .*$srcfile, line 64\\." \
      "break line if (condition)"
  
  gdb_test "break marker2 if (a==43)" \
--- 96,103 ----
  #
  # test conditional break at line number
  #
! gdb_test "break 79 if (1==1)" \
!     "Breakpoint.*at.* file .*$srcfile, line 79\\." \
      "break line if (condition)"
  
  gdb_test "break marker2 if (a==43)" \
***************
*** 104,118 ****
  # check to see what breakpoints are set
  #
  
! set main_line 60
  gdb_test "info break" \
      "Num Type\[ \]+Disp Enb Address\[ \]+What.*
  \[0-9\]+\[\t \]+breakpoint     keep y.* in main at .*$srcfile:$main_line.*
! \[0-9\]+\[\t \]+breakpoint     keep y.* in marker1 at .*$srcfile:41.*
  \[\t \]+stop only if 1 == 1.*
! \[0-9\]+\[\t \]+breakpoint     keep y.* in main at .*$srcfile:64.*
  \[\t \]+stop only if 1 == 1.*
! \[0-9\]+\[\t \]+breakpoint     keep y.* in marker2 at .*$srcfile:42.*
  \[\t \]+stop only if a == 43.*" \
      "breakpoint info"
  
--- 108,130 ----
  # check to see what breakpoints are set
  #
  
! if {$hp_aCC_compiler} {
!     set marker1_proto "\\(void\\)"
!     set marker2_proto "\\(int\\)"
! } else {
!     set marker1_proto ""
!     set marker2_proto ""
! }
! 
! set main_line 75
  gdb_test "info break" \
      "Num Type\[ \]+Disp Enb Address\[ \]+What.*
  \[0-9\]+\[\t \]+breakpoint     keep y.* in main at .*$srcfile:$main_line.*
! \[0-9\]+\[\t \]+breakpoint     keep y.* in marker1$marker1_proto at .*$srcfile:4\[38\].*
  \[\t \]+stop only if 1 == 1.*
! \[0-9\]+\[\t \]+breakpoint     keep y.* in main at .*$srcfile:79.*
  \[\t \]+stop only if 1 == 1.*
! \[0-9\]+\[\t \]+breakpoint     keep y.* in marker2$marker2_proto at .*$srcfile:4\[49\].*
  \[\t \]+stop only if a == 43.*" \
      "breakpoint info"
  
***************
*** 127,145 ****
  #
  # run until the breakpoint at a line number
  #
! gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, main \\(argc=.*, argv=.*, envp=.*\\) at .*$srcfile:64.*64\[\t \]+printf.*factorial.*" \
  			"run until breakpoint set at a line number"
  
  #
  # run until the breakpoint at marker1
  #
! gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, marker1 \\(\\) at .*$srcfile:41.*41\[\t \]+.*" \
  			"run until breakpoint at marker1"
  
  #
  # run until the breakpoint at marker2
  #
! gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, marker2 \\(a=43\\) at .*$srcfile:42.*42\[\t \]+.*" \
  			"run until breakpoint at marker2"
  
  
--- 139,159 ----
  #
  # run until the breakpoint at a line number
  #
! gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, main \\(argc=.*, argv=.*, envp=.*\\) at .*$srcfile:79.*79\[\t \]+printf.*factorial.*" \
  			"run until breakpoint set at a line number"
  
  #
  # run until the breakpoint at marker1
  #
! gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, marker1 \\(\\) at .*$srcfile:4\[38\].*4\[38\]\[\t \]+.*" \
  			"run until breakpoint at marker1"
  
  #
  # run until the breakpoint at marker2
  #
! #See 11512CLLbs
! setup_xfail hppa2.0w-*-*
! gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, marker2 \\(a=43\\) at .*$srcfile:4\[49\].*4\[49\]\[\t \]+.*" \
  			"run until breakpoint at marker2"
  
  
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/configure gdb/testsuite/gdb.base/configure
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/configure	Tue Mar 24 08:44:04 1998
--- gdb/testsuite/gdb.base/configure	Thu Jun 24 20:28:02 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=a1-selftest.exp
  
  # 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=a1-self.exp
  
  # Find the source files, if location was not specified.
  if test -z "$srcdir"; then
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/configure.in gdb/testsuite/gdb.base/configure.in
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/configure.in	Tue Jun 25 05:54:26 1996
--- gdb/testsuite/gdb.base/configure.in	Thu Jun 24 20:28:02 1999
***************
*** 5,11 ****
  dnl any existing configure script.
  
  AC_PREREQ(2.5)
! AC_INIT(a1-selftest.exp)
  
  CC=${CC-cc}
  AC_SUBST(CC)
--- 5,11 ----
  dnl any existing configure script.
  
  AC_PREREQ(2.5)
! AC_INIT(a1-self.exp)
  
  CC=${CC-cc}
  AC_SUBST(CC)
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/constvars.exp gdb/testsuite/gdb.base/constvars.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/constvars.exp	Thu Jan 14 18:41:20 1999
--- gdb/testsuite/gdb.base/constvars.exp	Thu Jun 24 20:28:22 1999
***************
*** 41,48 ****
  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."
  }
  
  # Create and source the file that provides information about the compiler
--- 41,54 ----
  set srcfile ${testfile}.c
  set binfile ${objdir}/${subdir}/${testfile}
  
! if [istarget "hppa*-*-*"] {
!     set lang "c++"
! } else {
!     set lang ""
! }
! 
! if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [concat debug $lang]] != "" } {
!     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
  }
  
  # Create and source the file that provides information about the compiler
***************
*** 94,100 ****
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
  send_gdb "ptype qux1\n"
  gdb_expect {
!     -re "type = int \\(const char, const char &, const char *, char * const\\).*$gdb_prompt $" {
          pass "ptype qux1"
      }
      -re ".*$gdb_prompt $" { fail "ptype qux1" }
--- 100,106 ----
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
  send_gdb "ptype qux1\n"
  gdb_expect {
!     -re "type = int \\(const char, const char, const char \\*, char \\* const\\).*$gdb_prompt $" {
          pass "ptype qux1"
      }
      -re ".*$gdb_prompt $" { fail "ptype qux1" }
***************
*** 150,251 ****
      gdb_test "ptype languid" "type = const double"
      gdb_test "print *legend" " = 66 'B'"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype legend" "type = const char *"
      gdb_test "print *legerdemain" " = 10 '\\\\n'"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype legerdemain" "type = const unsigned char *"
      gdb_test "print *leniency" " = 20"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype leniency" "type = const short *"
      gdb_test "print *leonine" " = 30"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype leonine" "type = const unsigned short *"
      gdb_test "print *lesion" " = 40"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lesion" "type = const long *"
      gdb_test "print *lethal" " = 50"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lethal" "type = const unsigned long *"
      gdb_test "print *lethargic" " = 60"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lethargic" "type = const float *"
      gdb_test "print *levity" " = 70"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype levity" "type = const double *"
      gdb_test "print *lewd" " = 65 'A'"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lewd" "type = const char * const"
      gdb_test "print *lexicographer" " = 1 '.001'"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lexicographer" "type = const unsigned char * const"
      gdb_test "print *lexicon" " = 2"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lexicon" "type = const short * const"
      gdb_test "print *liaison" " = 3"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype liaison" "type = const unsigned short * const"
      gdb_test "print *libation" " = 4"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype libation" "type = const long * const"
      gdb_test "print *libelous" " = 5"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype libelous" "type = const unsigned long * const"
      gdb_test "print *libertine" " = 6"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype libertine" "type = const float * const"
      gdb_test "print *libidinous" " = 7"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype libidinous" "type = const double * const"
      gdb_test "print *languish" " = 65 'A'"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype languish" "type = const char *"
      gdb_test "print *languor" " = 1 '.001'"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype languor" "type = const unsigned char *"
      gdb_test "print *lank" " = 2"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lank" "type = const short *"
      gdb_test "print *lapidary" " = 3"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lapidary" "type = const unsigned short *"
      gdb_test "print *larceny" " = 4"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype larceny" "type = const long *"
      gdb_test "print *largess" " = 5"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype largess" "type = const unsigned long *"
      gdb_test "print *lascivious" " = 6"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lascivious" "type = const float *"
      gdb_test "print *lassitude" " = 7"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lassitude" "type = const double *"
      gdb_test "print *lamprey" " = 66 'B'"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lamprey" "type = char * const"
      gdb_test "print *lariat" " = 10 '\\\\n'"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lariat" "type = unsigned char * const"
      gdb_test "print *laudanum" " = 20"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype laudanum" "type = short * const"
      gdb_test "print *lecithin" " = 30"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lecithin" "type = unsigned short * const"
      gdb_test "print *leviathan" " = 40"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype leviathan" "type = long * const"
      gdb_test "print *libretto" " = 50"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype libretto" "type = unsigned long * const"
      gdb_test "print *lissome" " = 60"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lissome" "type = float * const"
      gdb_test "print *locust" " = 70"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype locust" "type = double * const"
!     if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype radiation" "type = const char &"
  }
  
  do_constvar_tests
--- 156,255 ----
      gdb_test "ptype languid" "type = const double"
      gdb_test "print *legend" " = 66 'B'"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype legend" "type = const char \\*"
      gdb_test "print *legerdemain" " = 10 '\\\\n'"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype legerdemain" "type = const unsigned char \\*"
      gdb_test "print *leniency" " = 20"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype leniency" "type = const short \\*"
      gdb_test "print *leonine" " = 30"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype leonine" "type = const unsigned short \\*"
      gdb_test "print *lesion" " = 40"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lesion" "type = const long \\*"
      gdb_test "print *lethal" " = 50"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lethal" "type = const unsigned long \\*"
      gdb_test "print *lethargic" " = 60"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lethargic" "type = const float \\*"
      gdb_test "print *levity" " = 70"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype levity" "type = const double \\*"
      gdb_test "print *lewd" " = 65 'A'"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lewd" "type = const char \\* const"
      gdb_test "print *lexicographer" " = 1 '.001'"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lexicographer" "type = const unsigned char \\* const"
      gdb_test "print *lexicon" " = 2"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lexicon" "type = const short \\* const"
      gdb_test "print *liaison" " = 3"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype liaison" "type = const unsigned short \\* const"
      gdb_test "print *libation" " = 4"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype libation" "type = const long \\* const"
      gdb_test "print *libelous" " = 5"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype libelous" "type = const unsigned long \\* const"
      gdb_test "print *libertine" " = 6"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype libertine" "type = const float \\* const"
      gdb_test "print *libidinous" " = 7"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype libidinous" "type = const double \\* const"
      gdb_test "print *languish" " = 65 'A'"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype languish" "type = const char \\*"
      gdb_test "print *languor" " = 1 '.001'"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype languor" "type = const unsigned char \\*"
      gdb_test "print *lank" " = 2"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lank" "type = const short \\*"
      gdb_test "print *lapidary" " = 3"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lapidary" "type = const unsigned short \\*"
      gdb_test "print *larceny" " = 4"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype larceny" "type = const long \\*"
      gdb_test "print *largess" " = 5"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype largess" "type = const unsigned long \\*"
      gdb_test "print *lascivious" " = 6"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lascivious" "type = const float \\*"
      gdb_test "print *lassitude" " = 7"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lassitude" "type = const double \\*"
      gdb_test "print *lamprey" " = 66 'B'"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lamprey" "type = char \\* const"
      gdb_test "print *lariat" " = 10 '\\\\n'"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lariat" "type = unsigned char \\* const"
      gdb_test "print *laudanum" " = 20"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype laudanum" "type = short \\* const"
      gdb_test "print *lecithin" " = 30"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lecithin" "type = unsigned short \\* const"
      gdb_test "print *leviathan" " = 40"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype leviathan" "type = long \\* const"
      gdb_test "print *libretto" " = 50"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype libretto" "type = unsigned long \\* const"
      gdb_test "print *lissome" " = 60"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype lissome" "type = float \\* const"
      gdb_test "print *locust" " = 70"
      if {$gcc_compiled} then { setup_xfail "*-*-*" }
!     gdb_test "ptype locust" "type = double \\* const"
  }
  
  do_constvar_tests
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/corefile.exp gdb/testsuite/gdb.base/corefile.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/corefile.exp	Sun Oct 18 18:43:38 1998
--- gdb/testsuite/gdb.base/corefile.exp	Thu Jun 24 20:28:03 1999
***************
*** 183,195 ****
  gdb_test "print coremaker_bss" "\\\$$decimal = 10"
  gdb_test "print coremaker_ro" "\\\$$decimal = 201"
  
- if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" }
  gdb_test "print func2::coremaker_local" "\\\$$decimal = {0, 1, 2, 3, 4}"
  
  # Somehow we better test the ability to read the registers out of the core
  # file correctly.  I don't think the other tests do this.
  
  gdb_test "bt" "abort.*func2.*func1.*main.*" "backtrace in corefile.exp"
  
  # Test ability to read mmap'd data
  
--- 183,195 ----
  gdb_test "print coremaker_bss" "\\\$$decimal = 10"
  gdb_test "print coremaker_ro" "\\\$$decimal = 201"
  
  gdb_test "print func2::coremaker_local" "\\\$$decimal = {0, 1, 2, 3, 4}"
  
  # Somehow we better test the ability to read the registers out of the core
  # file correctly.  I don't think the other tests do this.
  
  gdb_test "bt" "abort.*func2.*func1.*main.*" "backtrace in corefile.exp"
+ gdb_test "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(\\).*" "up in corefile.exp"
  
  # Test ability to read mmap'd data
  
***************
*** 217,223 ****
  # test reinit_frame_cache
  
  gdb_load ${binfile}
  setup_xfail "*-*-*"
! gdb_test "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(\\)" "up in corefile.exp"
  
  gdb_test "core" "No core file now."
--- 217,224 ----
  # test reinit_frame_cache
  
  gdb_load ${binfile}
+ # HP defect CLLbs17002
  setup_xfail "*-*-*"
! gdb_test "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(\\)" "up in corefile.exp (reinit)"
  
  gdb_test "core" "No core file now."
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/coremaker.c gdb/testsuite/gdb.base/coremaker.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/coremaker.c	Fri Nov  1 12:00:28 1996
--- gdb/testsuite/gdb.base/coremaker.c	Thu Jun 24 20:28:03 1999
***************
*** 6,11 ****
--- 6,13 ----
  #include <fcntl.h>
  #include <sys/mman.h>
  #include <signal.h>
+ #include <stdlib.h>
+ #include <unistd.h>
  
  #ifndef __STDC__
  #define	const	/**/
***************
*** 33,39 ****
  mmapdata ()
  {
    int j, fd;
-   extern void *malloc ();
  
    /* Allocate and initialize a buffer that will be used to write
       the file that is later mapped in. */
--- 35,40 ----
***************
*** 112,120 ****
    func2 ();
  }
  
! main ()
  {
    mmapdata ();
    func1 ();
  }
  
--- 113,122 ----
    func2 ();
  }
  
! int main ()
  {
    mmapdata ();
    func1 ();
+   return 0;
  }
  
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/dbx.exp gdb/testsuite/gdb.base/dbx.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/dbx.exp	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/dbx.exp	Thu Jun 24 20:28:33 1999
***************
*** 0 ****
--- 1,319 ----
+ # 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
+ }
+ 
+ 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."
+ }
+ 
+ #
+ # start gdb -- start gdb running, default procedure
+ #
+ proc dbx_gdb_start { } {
+     global verbose
+     global GDB
+     global GDBFLAGS
+     global prompt
+     global spawn_id
+     global timeout
+     verbose "Spawning $GDB -nw $GDBFLAGS"
+ 
+     if { [which $GDB] == 0 } then {
+         perror "$GDB does not exist."
+         exit 1
+     }
+ 
+     set oldtimeout $timeout
+     set timeout [expr "$timeout + 60"]
+     eval "spawn $GDB -nw -dbx $GDBFLAGS"
+     gdb_expect {
+         -re ".*\r\n$gdb_prompt $" {
+             verbose "GDB initialized."
+         }
+         -re "$prompt $" {
+             perror "GDB never initialized."
+             return -1
+         }
+         timeout         {
+             perror "(timeout) GDB never initialized."
+             return -1
+         }
+     }
+     set timeout $oldtimeout
+     # force the height to "unlimited", so no pagers get used
+     send_gdb "set height 0\n"
+     gdb_expect {
+         -re ".*$prompt $" {
+             verbose "Setting height to 0." 2
+         }
+         timeout {
+             warning "Couldn't set the height to 0."
+         }
+     }
+     # force the width to "unlimited", so no wraparound occurs
+     send_gdb "set width 0\n"
+     gdb_expect {
+         -re ".*$prompt $" {
+             verbose "Setting width to 0." 2
+         }
+         timeout {
+             warning "Couldn't set the width to 0."
+         }
+     }
+ }
+ 
+ 
+ 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").
+ #
+ # CM: Renamed the procedure so it does not override the orginal file name.
+ #     Having the test suite change behavior depending on the tests run makes
+ #     it extremely difficult to reproduce errors. I've also added a
+ #     "dbx_gdb_load" procedure.  This and only this test will call these
+ #     procedures now. I also added an "expect" to the "send exec-file" line.
+ #     The "expect" waits for a prompt to appear. Otherwise, if the tests run
+ #     too quickly, the caller could send another command before the prompt
+ #     of this command returns, causing the test to get out of sync and fail
+ #     seemingly randomly or only on a loaded system.
+ #
+ proc dbx_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 "Detected 64-bit symbol file.\r\nInvoking.*gdb64.*$gdb_prompt $" {
+             verbose "\t\tLoaded $arg into the $GDB"
+             send_gdb "exec-file $arg\n" 
+             gdb_expect {
+                 -re ".*$gdb_prompt $" {
+                     verbose "\t\tLoaded $arg with new symbol table into $GDB"
+                     return 0
+                 }
+                 timeout {
+                     perror "(timeout) Couldn't load $arg"
+                     return -1
+                 }
+             }
+             return 0
+         }
+         -re "Reading symbols from.*done.*$gdb_prompt $" {
+             verbose "\t\tLoaded $arg into the $GDB"
+             send_gdb "exec-file $arg\n" 
+             gdb_expect {
+                 -re ".*$gdb_prompt $" {
+                     verbose "\t\tLoaded $arg with new symbol table into $GDB"
+                     return 0
+                 }
+                 timeout {
+                     perror "(timeout) Couldn't load $arg"
+                     return -1
+                 }
+             }
+             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
+         }
+     }
+ }
+ 
+ proc dbx_gdb_load { arg } {
+     global verbose
+     global loadpath
+     global loadfile
+     global GDB
+     global prompt
+     upvar timeout timeout
+ 
+     return [dbx_gdb_file_cmd $arg]
+ }
+ 
+ #
+ #test_breakpoints
+ #
+ proc test_breakpoints { } {
+     gdb_test "stop in main" "Breakpoint.*at.*: file.*average\.c, line 38\."
+     gdb_test "status" "Num.*Type.*Disp.*Enb.*Address.*What\r\n1\[ \r\]+breakpoint\[ \r\]+keep y.*in main at.*average\.c:38.*"
+     gdb_test "stop at 43" "Breakpoint.*at.*: file.*average\.c, line 43.*"
+     gdb_test "stop in 43" "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:24\r\n24\[ \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
+ dbx_gdb_load ${binfile}
+ 
+ test_breakpoints
+ test_assign
+ test_whereis
+ gdb_test "file average.c:1" "1\[ \t\]+/. This is a sample program.*"
+ test_func
+ 
+ #exit and cleanup
+ gdb_exit
+ 
+ set GDBFLAGS $saved_gdbflags
+ return 0
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/default.exp gdb/testsuite/gdb.base/default.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/default.exp	Thu Mar 18 23:35:16 1999
--- gdb/testsuite/gdb.base/default.exp	Thu Jun 24 20:28:03 1999
***************
*** 67,72 ****
--- 67,77 ----
      
      setup_xfail "mips-idt-*" "a29k-*-udi"
      gdb_test "backtrace" "No stack."
+ 
+     # ba and bac are no longer unique command prefixes. So these tests
+     # elict an error from GDB.
+     # GDB needs to be fixed to map unique alias here for ba bac.
+     #
      foreach i "bt ba bac" {
  	setup_xfail "mips-idt-*" "a29k-*-udi"
  	gdb_test $i "No stack." "backtrace \"$i\" abbreviation"
***************
*** 335,340 ****
--- 340,346 ----
  #test info variables
  gdb_test "info variables" "All defined variables:" "info variables"
  #test info warranty
+ setup_xfail "hppa*-hp-hpux*"
  gdb_test "info warranty" "NO WARRANTY.*\[\r\n\]+  *11.  *BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY.*\[\r\n\]+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN.*\[\r\n\]+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES.*\[\r\n\]+PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED.*\[\r\n\]+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF.*\[\r\n\]+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS.*\[\r\n\]+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE.*\[\r\n\]+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,.*\[\r\n\]+REPAIR OR CORRECTION..*\[\r\n\]+  *12.  *IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING.*\[\r\n\]+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR.*\[\r\n\]+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,.*\[\r\n\]+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING.*\[\r\n\]+OUT OF THE USE OR INABILITY TO USE THE PROGRAM .INCLUDING BUT NOT LIMITED.*\[\r\n\]+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY.*\[\r\n\]+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER.*\[\r\n\]+PROGRAMS., EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE.*\[\r\n\]+POSSIBILITY OF SUCH DAMAGES.*" "info warranty"
  #test info watchpoints
  gdb_test "info watchpoints" "No breakpoints or watchpoints." "info watchpoints"
***************
*** 646,652 ****
  #test show verbose
  gdb_test "show verbose" "Verbose printing of informational messages is o.*|Verbosity is off.*" "show verbose"
  #test show version
! 
  gdb_test "show version" "GNU gdb \[0-9\.\]*.*\[\r\n\]+Copyright \[0-9\]* Free Software Foundation, Inc.*\[\r\n\]+GDB is free software, covered by the GNU General Public License, and you are.*\[\r\n\]+welcome to change it and/or distribute copies of it under certain conditions.*\[\r\n\]+Type \"show copying\" to see the conditions.*\[\r\n\]+There is absolutely no warranty for GDB.  Type \"show warranty\" for details.*\[\r\n\]+This GDB was configured as .*|GDB is free software and you are welcome to distribute copies of it.*\[\r\n\]+ under certain conditions; type \"show copying\" to see the conditions..*\[\r\n\]+There is absolutely no warranty for GDB; type \"show warranty\" for details..*\[\r\n\]+GDB.*Copyright \[0-9\]* Free Software Foundation, Inc.*" "show version"
  #test show width
  gdb_test "show width" "Number of characters gdb thinks are in a line is.*" "show width"
--- 652,658 ----
  #test show verbose
  gdb_test "show verbose" "Verbose printing of informational messages is o.*|Verbosity is off.*" "show verbose"
  #test show version
! setup_xfail "hppa*-hp-hpux*"
  gdb_test "show version" "GNU gdb \[0-9\.\]*.*\[\r\n\]+Copyright \[0-9\]* Free Software Foundation, Inc.*\[\r\n\]+GDB is free software, covered by the GNU General Public License, and you are.*\[\r\n\]+welcome to change it and/or distribute copies of it under certain conditions.*\[\r\n\]+Type \"show copying\" to see the conditions.*\[\r\n\]+There is absolutely no warranty for GDB.  Type \"show warranty\" for details.*\[\r\n\]+This GDB was configured as .*|GDB is free software and you are welcome to distribute copies of it.*\[\r\n\]+ under certain conditions; type \"show copying\" to see the conditions..*\[\r\n\]+There is absolutely no warranty for GDB; type \"show warranty\" for details..*\[\r\n\]+GDB.*Copyright \[0-9\]* Free Software Foundation, Inc.*" "show version"
  #test show width
  gdb_test "show width" "Number of characters gdb thinks are in a line is.*" "show width"
***************
*** 719,726 ****
  if ![istarget "*-*-udi*"] then {
      send_gdb "target remote\n"
      gdb_expect {
! 	-re "To open a remote debug connection, you need to specify what.*
! serial device is attached to the remote system .e.g. /dev/ttya.*$gdb_prompt $"\
  			{ pass "target remote" }
  	-re ".*A program is being debugged already.  Kill it. .y or n.*$" {
  	    send_gdb "n\n"
--- 725,731 ----
  if ![istarget "*-*-udi*"] then {
      send_gdb "target remote\n"
      gdb_expect {
! 	-re "To open a remote debug connection, you need to specify what.*serial.*device is attached to the remote system .e.g. /dev/ttya.*$gdb_prompt $"\
  			{ pass "target remote" }
  	-re ".*A program is being debugged already.  Kill it. .y or n.*$" {
  	    send_gdb "n\n"
***************
*** 792,797 ****
  gdb_test "where" "No stack." "where"
  #test x
  #The case in which it prints a number is for vxgdb.
! gdb_test "x" "0x0:.*0x\[0-9\]*|0x0:.*Cannot access memory at address 0x0." "x"
  
  gdb_exit
--- 797,812 ----
  gdb_test "where" "No stack." "where"
  #test x
  #The case in which it prints a number is for vxgdb.
! send_gdb "x\n"
! gdb_expect {
!     -re "0x0:.*Cannot access memory at address 0x0..*$gdb_prompt $" {
!         pass "x"
!     }
!     -re "0x0:.*Error accessing memory address 0x0:.*$gdb_prompt $" {
!         pass "x"
!     }
!     -re ".*$gdb_prompt $" { fail "x" }
!     timeout { fail "(timeout) x" }
! }
  
  gdb_exit
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/define.exp gdb/testsuite/gdb.base/define.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/define.exp	Mon Jan  4 13:35:26 1999
--- gdb/testsuite/gdb.base/define.exp	Thu Jun 24 20:28:19 1999
***************
*** 68,74 ****
  #
  send_gdb "nextwhere\n"
  gdb_expect {
!   -re ".*64\[ \t\]*printf.*#0\[ \t\]*main.*:64.*$gdb_prompt $"\
            {pass "use user command: nextwhere"}
    -re "$gdb_prompt $"\
            {fail "use user command: nextwhere"}
--- 68,74 ----
  #
  send_gdb "nextwhere\n"
  gdb_expect {
!   -re ".*79\[ \t\]*printf.*#0\[ \t\]*main.*:79.*$gdb_prompt $"\
            {pass "use user command: nextwhere"}
    -re "$gdb_prompt $"\
            {fail "use user command: nextwhere"}
***************
*** 224,230 ****
  
  send_gdb "next\n"
  gdb_expect {
!   -re "#0\[ \t\]*main.*:66.*$gdb_prompt $"\
            {pass "use hook-stop command"}
    -re "$gdb_prompt $"\
            {fail "use hook-stop command"}
--- 224,230 ----
  
  send_gdb "next\n"
  gdb_expect {
!   -re "#0\[ \t\]*main.*:81.*$gdb_prompt $"\
            {pass "use hook-stop command"}
    -re "$gdb_prompt $"\
            {fail "use hook-stop command"}
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/display.exp gdb/testsuite/gdb.base/display.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/display.exp	Thu Mar 18 23:35:17 1999
--- gdb/testsuite/gdb.base/display.exp	Thu Jun 24 20:28:19 1999
***************
*** 46,51 ****
--- 46,60 ----
  gdb_start
  gdb_reinitialize_dir $srcdir/$subdir
  gdb_load ${binfile}
+ # Some coverage stuff
+ #
+ gdb_test "kill" ".*The program is not being run.*" ""
+ gdb_test "detach" ".*" ""
+ gdb_test "run" ".*" ""
+ 
+ gdb_load ${binfile}
+ gdb_test "kill" ".*" ""
+ gdb_test "detach" ".*" ""
  
  # Ok, on to real life
  #
***************
*** 132,139 ****
  # play with "p", too
  #
  gdb_test "p/r j" ".*Undefined output format.*" ""
  #gdb_test "x/rx j" ".*Cannot access memory.*" "no error!"
! gdb_test "x/0 j" ".*" "x/0 j"
  gdb_test "p/0 j" ".*Item count other than 1 is meaningless.*" "p/0 j"
  gdb_test "p/s sum" ".*Format letter.*is meaningless.*" " no s"
  gdb_test "p/i sum" ".*Format letter.*is meaningless.*.*" "no i"
--- 141,154 ----
  # play with "p", too
  #
  gdb_test "p/r j" ".*Undefined output format.*" ""
+ gdb_test "p j" ".*" "debug test output"
  #gdb_test "x/rx j" ".*Cannot access memory.*" "no error!"
! # x/0 j doesn't produce any output and terminates PA64 process when testing
! if [istarget "hppa*-hp-hpux11*"] {
!     xfail "'x/0 j' terminate PA64 process - skipped test point"
! } else {
!     gdb_test "x/0 j" ".*" "x/0 j"
! }
  gdb_test "p/0 j" ".*Item count other than 1 is meaningless.*" "p/0 j"
  gdb_test "p/s sum" ".*Format letter.*is meaningless.*" " no s"
  gdb_test "p/i sum" ".*Format letter.*is meaningless.*.*" "no i"
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/dollar.exp gdb/testsuite/gdb.base/dollar.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/dollar.exp	Mon Jan  4 13:35:26 1999
--- gdb/testsuite/gdb.base/dollar.exp	Wed Dec 31 16:00:00 1969
***************
*** 1,128 ****
- #   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 ![ istarget "*-*-hpux*" ] then {
-  return
- }
- 
- if $tracelevel then {
- 	strace $tracelevel
- 	}
- 
- #
- # test running programs
- #
- set prms_id 0
- set bug_id 0
- 
- set testfile "exprs"
- 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
- send_gdb "print \$\$dyncall\n"   
- gdb_expect {   
-    -re "\\$\[0-9\]* = \\{<text variable, no debug info>\\} $hex <>.*$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\]* = 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
- 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" }
- }
- 
--- 0 ----
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ena-dis-br.exp gdb/testsuite/gdb.base/ena-dis-br.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ena-dis-br.exp	Thu Mar 18 23:35:17 1999
--- gdb/testsuite/gdb.base/ena-dis-br.exp	Thu Jun 24 20:28:27 1999
***************
*** 74,80 ****
  #
  send_gdb "break marker1\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line 41.*$gdb_prompt $"\
            {pass "break marker1"}
    -re "$gdb_prompt $"\
            {fail "break marker1"}
--- 74,80 ----
  #
  send_gdb "break marker1\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line 4\[38\].*$gdb_prompt $"\
            {pass "break marker1"}
    -re "$gdb_prompt $"\
            {fail "break marker1"}
***************
*** 118,124 ****
  #
  send_gdb "break marker2\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line 42.*$gdb_prompt $"\
            {pass "break marker2"}
    -re "$gdb_prompt $"\
            {fail "break marker2"}
--- 118,124 ----
  #
  send_gdb "break marker2\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line 4\[49\].*$gdb_prompt $"\
            {pass "break marker2"}
    -re "$gdb_prompt $"\
            {fail "break marker2"}
***************
*** 172,178 ****
  
  send_gdb "break marker3\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line 43.*$gdb_prompt $"\
            {pass "break marker3"}
    -re "$gdb_prompt $"\
            {fail "break marker3"}
--- 172,178 ----
  
  send_gdb "break marker3\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line (45|50).*$gdb_prompt $"\
            {pass "break marker3"}
    -re "$gdb_prompt $"\
            {fail "break marker3"}
***************
*** 197,203 ****
  
  send_gdb "continue\n"
  gdb_expect {
!   -re ".*marker3 .*:43.*$gdb_prompt $"\
            {pass "continue to auto-deleted break marker3"}
    -re "Breakpoint \[0-9\]*, marker3.*$gdb_prompt $"\
            {fail "continue to auto-deleted break marker3"}
--- 197,203 ----
  
  send_gdb "continue\n"
  gdb_expect {
!   -re ".*marker3 .*:(45|50).*$gdb_prompt $"\
            {pass "continue to auto-deleted break marker3"}
    -re "Breakpoint \[0-9\]*, marker3.*$gdb_prompt $"\
            {fail "continue to auto-deleted break marker3"}
***************
*** 222,228 ****
  #
  send_gdb "break marker4\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line 44.*$gdb_prompt $"\
            {pass "break marker4"}
    -re "$gdb_prompt $"\
            {fail "break marker4"}
--- 222,228 ----
  #
  send_gdb "break marker4\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line (46|51).*$gdb_prompt $"\
            {pass "break marker4"}
    -re "$gdb_prompt $"\
            {fail "break marker4"}
***************
*** 253,259 ****
  
  send_gdb "break marker1\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line 41.*$gdb_prompt $"\
            {pass "break marker1"}
    -re "$gdb_prompt $"\
            {fail "break marker1"}
--- 253,259 ----
  
  send_gdb "break marker1\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line 4\[38\].*$gdb_prompt $"\
            {pass "break marker1"}
    -re "$gdb_prompt $"\
            {fail "break marker1"}
***************
*** 340,346 ****
  
  send_gdb "break marker1\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line 41.*$gdb_prompt $"\
            {pass "break marker1"}
    -re "$gdb_prompt $"\
            {fail "break marker1"}
--- 340,346 ----
  
  send_gdb "break marker1\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line 4\[38\].*$gdb_prompt $"\
            {pass "break marker1"}
    -re "$gdb_prompt $"\
            {fail "break marker1"}
***************
*** 377,383 ****
  
  send_gdb "continue\n"
  gdb_expect {
!   -re ".*marker1 .*:41.*$gdb_prompt $"\
            {pass "continue to ignored & auto-deleted break marker1"}
    -re "Breakpoint \[0-9\]*, marker1.*$gdb_prompt $"\
            {fail "continue to ignored & auto-deleted break marker1"}
--- 377,383 ----
  
  send_gdb "continue\n"
  gdb_expect {
!   -re ".*marker1 .*:4\[38\].*$gdb_prompt $"\
            {pass "continue to ignored & auto-deleted break marker1"}
    -re "Breakpoint \[0-9\]*, marker1.*$gdb_prompt $"\
            {fail "continue to ignored & auto-deleted break marker1"}
***************
*** 393,399 ****
  
  send_gdb "break marker1\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line 41.*$gdb_prompt $"\
            {pass "break marker1"}
    -re "$gdb_prompt $"\
            {fail "break marker1"}
--- 393,399 ----
  
  send_gdb "break marker1\n"
  gdb_expect {
!   -re "Breakpoint (\[0-9\]*) at .*, line 4\[38\].*$gdb_prompt $"\
            {pass "break marker1"}
    -re "$gdb_prompt $"\
            {fail "break marker1"}
***************
*** 435,443 ****
  #
  if ![runto_main] then { fail "enable/disable break tests suppressed" }
  
! send_gdb "break 64\n"
  gdb_expect {
!   -re "Breakpoint \[0-9\]*.*, line 64.*$gdb_prompt $"\
            {pass "prepare to continue with ignore count"}
    -re "$gdb_prompt $"\
            {fail "prepare to continue with ignore count"}
--- 435,443 ----
  #
  if ![runto_main] then { fail "enable/disable break tests suppressed" }
  
! send_gdb "break 79\n"
  gdb_expect {
!   -re "Breakpoint \[0-9\]*.*, line 79.*$gdb_prompt $"\
            {pass "prepare to continue with ignore count"}
    -re "$gdb_prompt $"\
            {fail "prepare to continue with ignore count"}
***************
*** 454,460 ****
  
  send_gdb "next\n"
  gdb_expect {
!   -re ".*66\[ \t\]*marker1.*$gdb_prompt $"\
            {pass "step after continue with ignore count"}
    -re "$gdb_prompt $"\
            {fail "step after continue with ignore count"}
--- 454,460 ----
  
  send_gdb "next\n"
  gdb_expect {
!   -re ".*81\[ \t\]*marker1.*$gdb_prompt $"\
            {pass "step after continue with ignore count"}
    -re "$gdb_prompt $"\
            {fail "step after continue with ignore count"}
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ending-run.c gdb/testsuite/gdb.base/ending-run.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ending-run.c	Tue Jan  5 13:58:18 1999
--- gdb/testsuite/gdb.base/ending-run.c	Thu Jun 24 20:28:27 1999
***************
*** 2,16 ****
   * <leaves-core-file-on-quit> bugs.
   */
  #include <stdio.h>
  
  int callee( x )
  int x;
  {
      int y = x * x;
      return (y - 2);
  }
  
! main()
  {
  
      int *p;
--- 2,21 ----
   * <leaves-core-file-on-quit> bugs.
   */
  #include <stdio.h>
+ #include <stdlib.h>
  
+ #ifdef PROTOTYPES
+ int callee (int x)
+ #else
  int callee( x )
  int x;
+ #endif
  {
      int y = x * x;
      return (y - 2);
  }
  
! int main()
  {
  
      int *p;
***************
*** 24,27 ****
--- 29,33 ----
              
          }
      printf( " Goodbye!\n" );
+     return 0;
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ending-run.exp gdb/testsuite/gdb.base/ending-run.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ending-run.exp	Tue Jun  8 18:33:05 1999
--- gdb/testsuite/gdb.base/ending-run.exp	Thu Jun 24 20:28:27 1999
***************
*** 52,90 ****
  # to the prolog--that's another bug...)
  #
  gdb_test "b 1" ".*Breakpoint.*line 1.*" "bpt at line before routine"
! gdb_test "b 8" ".*Note.*also.*Breakpoint.*2.*" ""
  
  # Set up to go to the next-to-last line of the program
  #
! gdb_test "b 26" ".*Breakpoint.*3.*" ""
  
  # Expect to hit the bp at line "1", but symbolize this
! # as line "8".  Then try to clear it--this should work.
  #
  if [target_info exists use_gdb_stub] {
!   gdb_test "continue" ".*Breakpoint.*1.*callee.*8.*" ""
  } else {
!   gdb_test "r" ".*Breakpoint.*1.*callee.*8.*" ""
  }
  gdb_test "cle" ".*Deleted breakpoints 2 1.*" "clear worked"
  send_gdb "i b\n"
  gdb_expect {
      -re ".*breakpoint.*breakpoint.*$gdb_prompt $" { fail "clear bp" }
!     -re ".*3.*main.*26.*$gdb_prompt $" { pass "cleared bp at line before routine" }
      -re ".*$gdb_prompt $" { fail "info b" }
  }
  
  # Test some other "clear" combinations
  #
  gdb_test "b 1" ".*Breakpoint.*4.*" ""
! gdb_test "b 8" ".*Note.*also.*Breakpoint.*5.*" ""
! gdb_test "cle 8" ".*Deleted breakpoint 5.*" "Only cleared 1 by line"
  
! send_gdb "inf line 8\n"
  gdb_expect {
      -re ".*address (0x\[0-9a-fA-F]*).*$gdb_prompt $" {
          set line_eight $expect_out(1,string)
!         gdb_test "b 8" ".*Breakpoint.*6.*" ""
          gdb_test "cle *$line_eight" ".*Deleted breakpoints 6 4.*" "Clear 2 by address"
      }
      -re ".*$gdb_prompt $" {
--- 52,90 ----
  # to the prolog--that's another bug...)
  #
  gdb_test "b 1" ".*Breakpoint.*line 1.*" "bpt at line before routine"
! gdb_test "b 13" ".*Note.*also.*Breakpoint.*2.*" ""
  
  # Set up to go to the next-to-last line of the program
  #
! gdb_test "b 31" ".*Breakpoint.*3.*" ""
  
  # Expect to hit the bp at line "1", but symbolize this
! # as line "13".  Then try to clear it--this should work.
  #
  if [target_info exists use_gdb_stub] {
!   gdb_test "continue" ".*Breakpoint.*1.*callee.*13.*" ""
  } else {
!   gdb_test "r" ".*Breakpoint.*1.*callee.*13.*" ""
  }
  gdb_test "cle" ".*Deleted breakpoints 2 1.*" "clear worked"
  send_gdb "i b\n"
  gdb_expect {
      -re ".*breakpoint.*breakpoint.*$gdb_prompt $" { fail "clear bp" }
!     -re ".*3.*main.*31.*$gdb_prompt $" { pass "cleared bp at line before routine" }
      -re ".*$gdb_prompt $" { fail "info b" }
  }
  
  # Test some other "clear" combinations
  #
  gdb_test "b 1" ".*Breakpoint.*4.*" ""
! gdb_test "b 13" ".*Note.*also.*Breakpoint.*5.*" ""
! gdb_test "cle 13" ".*Deleted breakpoint 5.*" "Only cleared 1 by line"
  
! send_gdb "inf line 13\n"
  gdb_expect {
      -re ".*address (0x\[0-9a-fA-F]*).*$gdb_prompt $" {
          set line_eight $expect_out(1,string)
!         gdb_test "b 13" ".*Breakpoint.*6.*" ""
          gdb_test "cle *$line_eight" ".*Deleted breakpoints 6 4.*" "Clear 2 by address"
      }
      -re ".*$gdb_prompt $" {
***************
*** 92,104 ****
      }
  }
  
! send_gdb "inf line 9\n"
  gdb_expect {
      -re ".*address (0x\[0-9a-fA-F]*).*$gdb_prompt $" {
          set line_nine $expect_out(1,string)
!         gdb_test "b 9"       ".*Breakpoint.*7.*" ""
          gdb_test "b *$line_nine" ".*Note.*also.*Breakpoint.*8.*" ""
!         gdb_test "c" ".*Breakpoint.*7.*callee.*9.*" ""
          gdb_test "cle" ".*Deleted breakpoints 8 7.*" "Clear 2 by default"
      }
      -re ".*$gdb_prompt $" {
--- 92,104 ----
      }
  }
  
! send_gdb "inf line 14\n"
  gdb_expect {
      -re ".*address (0x\[0-9a-fA-F]*).*$gdb_prompt $" {
          set line_nine $expect_out(1,string)
!         gdb_test "b 14"       ".*Breakpoint.*7.*" ""
          gdb_test "b *$line_nine" ".*Note.*also.*Breakpoint.*8.*" ""
!         gdb_test "c" ".*Breakpoint.*7.*callee.*14.*" ""
          gdb_test "cle" ".*Deleted breakpoints 8 7.*" "Clear 2 by default"
      }
      -re ".*$gdb_prompt $" {
***************
*** 111,117 ****
      -re ".*breakpoint.*breakpoint.*$gdb_prompt $" {
          fail "didn't clear bps" 
      }
!     -re ".*3.*main.*26.*$gdb_prompt $" {
          pass "all set to continue"
      }
      -re ".*$gdb_prompt $" {
--- 111,117 ----
      -re ".*breakpoint.*breakpoint.*$gdb_prompt $" {
          fail "didn't clear bps" 
      }
!     -re ".*3.*main.*31.*$gdb_prompt $" {
          pass "all set to continue"
      }
      -re ".*$gdb_prompt $" {
***************
*** 123,136 ****
  # See if we can step out with control.  The "1 2 3" stuff
  # is output from the program.
  #
! gdb_test "cont" ".*Breakpoint.*26.*" ""
! gdb_test "next" ".*1 2 7 14 23 34 47 62 79  Goodbye!.*27.*" "Step to return"
  
  set old_timeout $timeout
  set timeout 50
  send_gdb "next\n"
  gdb_expect {
!     -re "27.*$gdb_prompt $" {
  	# sometimes we stop at the closing brace, if so, do another next
  	send_gdb "next\n"
  	gdb_expect {
--- 123,136 ----
  # See if we can step out with control.  The "1 2 3" stuff
  # is output from the program.
  #
! gdb_test "cont" ".*Breakpoint.*32.*" ""
! gdb_test "next" ".*1 2 7 14 23 34 47 62 79  Goodbye!.*32.*" "Step to return"
  
  set old_timeout $timeout
  set timeout 50
  send_gdb "next\n"
  gdb_expect {
!     -re "33.*$gdb_prompt $" {
  	# sometimes we stop at the closing brace, if so, do another next
  	send_gdb "next\n"
  	gdb_expect {
***************
*** 141,146 ****
--- 141,149 ----
  	    -re ".*in.*start.*$gdb_prompt $" { 
  		pass "step out of main"
  	    }
+ 	    -re ".*in.*\\\$START\\\$.*from.*dld.sl.*$gdb_prompt $" { 
+ 		pass "step out of main"
+ 	    }
              -re ".*$gdb_prompt $" { fail "step at end 2" }
  	    timeout { fail "hang or timeout on step at end 2" }
  	}
***************
*** 152,157 ****
--- 155,163 ----
      -re ".*in.*start.*$gdb_prompt $" { 
          pass "step out of main"
      }
+     -re ".*in.*\\\$START\\\$.*from.*dld.sl.*$gdb_prompt $"  {
+         pass "step out of main 2"
+     }
      -re ".*in.*currently asm.*$gdb_prompt $" { 
          pass "step out of main into assembler"
      }
***************
*** 163,169 ****
  }
  
  if {![target_info exists use_cygmon] || ![target_info use_cygmon]} {
!   gdb_test "n" ".*Single.*Program exited.*" "step to end of run"
    set timeout $old_timeout
    
    gdb_test "n" ".*The program is not being run.*" "don't step after run"
--- 169,186 ----
  }
  
  if {![target_info exists use_cygmon] || ![target_info use_cygmon]} {
!     send_gdb "n\n"
!     gdb_expect {
! 	-re ".*Single.*Program exited.*$gdb_prompt $" {
! 	    pass "step to end of run 1"
! 	}
! 	-re ".*Single.*in exit.*from.*dld.sl.*$gdb_prompt $" {
! 	    pass "step to end of run 2" 
! 	    gdb_test "c" ".*" "continue after exit"
! 	}
! 	timeout { fail "(timeout) step to end of run" }
!     }
! 
    set timeout $old_timeout
    
    gdb_test "n" ".*The program is not being run.*" "don't step after run"
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/eval-skip.exp gdb/testsuite/gdb.base/eval-skip.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/eval-skip.exp	Mon Jan  4 13:35:26 1999
--- gdb/testsuite/gdb.base/eval-skip.exp	Thu Jun 24 20:28:22 1999
***************
*** 48,55 ****
       gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
      }
  
! 
! 
  
  gdb_exit
  gdb_start
--- 48,56 ----
       gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
      }
  
! if [get_compiler_info $binfile] {
!     return -1
! }
  
  gdb_exit
  gdb_start
***************
*** 67,76 ****
  gdb_test "set variable z=2" "" "set variable z=2"
  gdb_test "set variable w=3" "" "set variable w=3"
  
  
  send_gdb "print (0 && (x+y))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x+y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x+y))" }
--- 68,84 ----
  gdb_test "set variable z=2" "" "set variable z=2"
  gdb_test "set variable w=3" "" "set variable w=3"
  
+ if {$hp_aCC_compiler} {
+     set true true
+     set false false
+ } else {
+     set true 1
+     set false 0
+ }
  
  send_gdb "print (0 && (x+y))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x+y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x+y))" }
***************
*** 80,86 ****
  
  send_gdb "print (0 && (x-y))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x-y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x-y))" }
--- 88,94 ----
  
  send_gdb "print (0 && (x-y))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x-y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x-y))" }
***************
*** 90,96 ****
  
  send_gdb "print (0 && (x*y))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x*y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x*y))" }
--- 98,104 ----
  
  send_gdb "print (0 && (x*y))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x*y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x*y))" }
***************
*** 101,107 ****
  
  send_gdb "print (0 && (x/y))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x/y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x/y))" }
--- 109,115 ----
  
  send_gdb "print (0 && (x/y))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x/y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x/y))" }
***************
*** 111,117 ****
  
  send_gdb "print (0 && (x%y))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x%y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x%y))" }
--- 119,125 ----
  
  send_gdb "print (0 && (x%y))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x%y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x%y))" }
***************
*** 121,127 ****
  
  send_gdb "print (0 && (x&&y))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x&&y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x&&y))" }
--- 129,135 ----
  
  send_gdb "print (0 && (x&&y))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x&&y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x&&y))" }
***************
*** 132,138 ****
  
  send_gdb "print (0 && (x||y))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x||y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x||y))" }
--- 140,146 ----
  
  send_gdb "print (0 && (x||y))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x||y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x||y))" }
***************
*** 143,149 ****
  
  send_gdb "print (0 && (x&y))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x&y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x&y))" }
--- 151,157 ----
  
  send_gdb "print (0 && (x&y))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x&y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x&y))" }
***************
*** 153,159 ****
  
  send_gdb "print (0 && (x|y))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x|y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x|y))" }
--- 161,167 ----
  
  send_gdb "print (0 && (x|y))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x|y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x|y))" }
***************
*** 163,169 ****
  
  send_gdb "print (0 && (x^y))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x^y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x^y))" }
--- 171,177 ----
  
  send_gdb "print (0 && (x^y))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x^y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x^y))" }
***************
*** 174,180 ****
  
  send_gdb "print (0 && (x < y))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x < y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x < y))" }
--- 182,188 ----
  
  send_gdb "print (0 && (x < y))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x < y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x < y))" }
***************
*** 184,190 ****
  
  send_gdb "print (0 && (x <= y))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x <= y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x <= y))" }
--- 192,198 ----
  
  send_gdb "print (0 && (x <= y))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x <= y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x <= y))" }
***************
*** 195,201 ****
  
  send_gdb "print (0 && (x>y))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x>y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x>y))" }
--- 203,209 ----
  
  send_gdb "print (0 && (x>y))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x>y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x>y))" }
***************
*** 205,211 ****
  
  send_gdb "print (0 && (x>=y))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x>=y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x>=y))" }
--- 213,219 ----
  
  send_gdb "print (0 && (x>=y))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x>=y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x>=y))" }
***************
*** 216,222 ****
  
  send_gdb "print (0 && (x==y))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x==y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x==y))" }
--- 224,230 ----
  
  send_gdb "print (0 && (x==y))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x==y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x==y))" }
***************
*** 226,232 ****
  
  send_gdb "print (0 && (x!=y))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x!=y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x!=y))" }
--- 234,240 ----
  
  send_gdb "print (0 && (x!=y))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x!=y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x!=y))" }
***************
*** 236,242 ****
  
  send_gdb "print (0 && (x<<31))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x<<31))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x<<31))" }
--- 244,250 ----
  
  send_gdb "print (0 && (x<<31))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x<<31))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x<<31))" }
***************
*** 246,252 ****
  
  send_gdb "print (0 && (x>>31))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x>>31))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x>>31))" }
--- 254,260 ----
  
  send_gdb "print (0 && (x>>31))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x>>31))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x>>31))" }
***************
*** 257,263 ****
  
  send_gdb "print (0 && (!x))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (!x))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (!x))" }
--- 265,271 ----
  
  send_gdb "print (0 && (!x))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (!x))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (!x))" }
***************
*** 267,273 ****
  
  send_gdb "print (0 && (~x))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (~x))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (~x))" }
--- 275,281 ----
  
  send_gdb "print (0 && (~x))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (~x))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (~x))" }
***************
*** 276,282 ****
  
  send_gdb "print (0 && (-x))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (-x))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (-x))" }
--- 284,290 ----
  
  send_gdb "print (0 && (-x))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (-x))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (-x))" }
***************
*** 286,292 ****
  
  send_gdb "print (0 && (x++))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x++))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x++))" }
--- 294,300 ----
  
  send_gdb "print (0 && (x++))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x++))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x++))" }
***************
*** 296,302 ****
  
  send_gdb "print (0 && (++x))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (++x))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (++x))" }
--- 304,310 ----
  
  send_gdb "print (0 && (++x))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (++x))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (++x))" }
***************
*** 306,312 ****
  
  send_gdb "print (0 && (x--))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x--))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x--))" }
--- 314,320 ----
  
  send_gdb "print (0 && (x--))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x--))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x--))" }
***************
*** 316,322 ****
  
  send_gdb "print (0 && (--x))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (--x))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (--x))" }
--- 324,330 ----
  
  send_gdb "print (0 && (--x))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (--x))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (--x))" }
***************
*** 325,331 ****
  
  send_gdb "print (0 && (x+=7))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x+=7))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x+=7))" }
--- 333,339 ----
  
  send_gdb "print (0 && (x+=7))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x+=7))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x+=7))" }
***************
*** 334,340 ****
  
  send_gdb "print (0 && (x=y))\n"
  gdb_expect {
!     -re ".$decimal = 0\r\n$gdb_prompt $" {
          pass "print value of (0 && (x=y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x=y))" }
--- 342,348 ----
  
  send_gdb "print (0 && (x=y))\n"
  gdb_expect {
!     -re ".$decimal = $false\r\n$gdb_prompt $" {
          pass "print value of (0 && (x=y))"
        }
      -re ".*$gdb_prompt $" { fail "print value of (0 && (x=y))" }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/execd-prog.c gdb/testsuite/gdb.base/execd-prog.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/execd-prog.c	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/execd-prog.c	Thu Jun 24 20:28:35 1999
***************
*** 0 ****
--- 1,34 ----
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+ 
+ /* There is a global_i in foll-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;
+ 
+ #ifdef PROTOTYPES
+ int main (int argc, char **argv)
+ #else
+ main (argc, argv)
+   int  argc;
+   char *  argv[];
+ #endif
+ {
+   /* There is a local_j in foll-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-prog...\n");
+   if (argc != 2)
+     {
+       printf ("expected one string argument\n");
+       exit (-1);
+     }
+   s = argv[1];
+   printf ("argument received: %s\n", s);
+ }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/exprs.c gdb/testsuite/gdb.base/exprs.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/exprs.c	Fri Mar 24 14:06:07 1995
--- gdb/testsuite/gdb.base/exprs.c	Thu Jun 24 20:28:04 1999
***************
*** 1,7 ****
--- 1,11 ----
+ #ifdef PROTOTYPES
+ int main (int argc, char **argv, char **envp)
+ #else
  main (argc, argv, envp)
       int argc;
       char **argv;
       char **envp;
+ #endif
  {
      extern void dummy();
  #ifdef usestubs
***************
*** 9,14 ****
--- 13,20 ----
      breakpoint();
  #endif
      dummy();
+     return 0;
+     
  }
  
  /* We put main() right up front so its line number doesn't keep changing.  */
***************
*** 44,50 ****
  
  float		v_float;
  double		v_double;
- 
  /*
   *	Now some derived types, which are arrays, functions-returning,
   *	pointers, structures, unions, and enumerations.
--- 50,55 ----
***************
*** 70,76 ****
  
  float		v_float_array[2];
  double		v_double_array[2];
- 
  /**** pointers *******/
  
  char		*v_char_pointer;
--- 75,80 ----
***************
*** 203,210 ****
    
    v_float = 100.0;
    v_double = 200.0;
- 
- 
    v_char_array[0] = v_char;
    v_signed_char_array[0] = v_signed_char;
    v_unsigned_char_array[0] = v_unsigned_char;
--- 207,212 ----
***************
*** 223,229 ****
  
    v_float_array[0] = v_float;
    v_double_array[0] = v_double;
- 
    v_char_pointer = &v_char;
    v_signed_char_pointer = &v_signed_char;
    v_unsigned_char_pointer = &v_unsigned_char;
--- 225,230 ----
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/exprs.exp gdb/testsuite/gdb.base/exprs.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/exprs.exp	Thu Jun  4 21:53:30 1998
--- gdb/testsuite/gdb.base/exprs.exp	Thu Jun 24 20:28:04 1999
***************
*** 54,59 ****
--- 54,67 ----
      continue
  }
  
+ if {$hp_aCC_compiler} {
+     set true true
+     set false false
+ } else {
+     set true 1
+     set false 0
+ }
+ 
  proc test_expr { args } {
      if { [llength $args] % 2 } {
  	warning "an even # of arguments should be passed to test_expr"
***************
*** 73,222 ****
  #
  # test expressions with "char" types
  #
! test_expr "set variable v_char=127" "print v_char == 0" "\\$\[0-9\]* = 0"  "print v_char == 127" "\\$\[0-9\]* = 1"  "print char =="
! test_expr "set variable v_char=127" "print v_char != 0" "\\$\[0-9\]* = 1"  "print v_char != 127" "\\$\[0-9\]* = 0"  "print char !="
! test_expr "set variable v_char=127" "print v_char < 0" "\\$\[0-9\]* = 0"  "print v_char < 127" "\\$\[0-9\]* = 0"  "print char <"
! test_expr "set variable v_char=127" "print v_char > 0" "\\$\[0-9\]* = 1"  "print v_char > 127" "\\$\[0-9\]* = 0"  "print char >"
  #
  # test expressions with "signed char" types
  #
! test_expr "set variable v_signed_char=127" "print v_signed_char == 0" "\\$\[0-9\]* = 0"  "print v_signed_char == 127" "\\$\[0-9\]* = 1"  "print signed char =="
! test_expr "set variable v_signed_char=127" "print v_signed_char != 0" "\\$\[0-9\]* = 1"  "print v_signed_char != 127" "\\$\[0-9\]* = 0"  "print signed char !="
! test_expr "set variable v_signed_char=127" "print v_signed_char < 0" "\\$\[0-9\]* = 0"  "print v_signed_char < 127" "\\$\[0-9\]* = 0"  "print signed char <"
! test_expr "set variable v_signed_char=127" "print v_signed_char > 0" "\\$\[0-9\]* = 1"  "print v_signed_char > 127" "\\$\[0-9\]* = 0"  "print signed char >"
  # make char a minus
! test_expr "set variable v_signed_char=-1" "print v_signed_char == 0" "\\$\[0-9\]* = 0"  "print v_signed_char == -1" "\\$\[0-9\]* = 1"  "print signed char == (minus)"
! test_expr "set variable v_signed_char=-1" "print v_signed_char != 0" "\\$\[0-9\]* = 1"  "print v_signed_char != -1" "\\$\[0-9\]* = 0"  "print signed char != (minus)"
! test_expr "set variable v_signed_char=-1" "print v_signed_char < 0" "\\$\[0-9\]* = 1"  "print v_signed_char < 127" "\\$\[0-9\]* = 1"  "print signed char < (minus)"
! test_expr "set variable v_signed_char=-1" "print v_signed_char > 0" "\\$\[0-9\]* = 0"  "print v_signed_char > 127" "\\$\[0-9\]* = 0"  "print signed char > (minus)"
  #
  # test expressions with "unsigned char" types
  #
! test_expr "set variable v_unsigned_char=127" "print v_unsigned_char == 0" "\\$\[0-9\]* = 0"  "print v_unsigned_char == 127" "\\$\[0-9\]* = 1"  "print unsigned char =="
! test_expr "set variable v_unsigned_char=127" "print v_unsigned_char != 0" "\\$\[0-9\]* = 1"  "print v_unsigned_char != 127" "\\$\[0-9\]* = 0"  "print unsigned char !="
! test_expr "set variable v_unsigned_char=127" "print v_unsigned_char < 0" "\\$\[0-9\]* = 0"  "print v_unsigned_char < 127" "\\$\[0-9\]* = 0"  "print unsigned char <"
! test_expr "set variable v_unsigned_char=127" "print v_unsigned_char > 0" "\\$\[0-9\]* = 1"  "print v_unsigned_char > 127" "\\$\[0-9\]* = 0"  "print unsigned char >"
  # make char a minus
  # FIXME:  gdb mishandles the cast (unsigned char) on the i960, so I've
  # set up an expected failure for this case.
  setup_xfail "i960-*-*" 1821
! test_expr "set variable v_unsigned_char=~0" "print v_unsigned_char == 0" "\\$\[0-9\]* = 0"  "print v_unsigned_char == ~0" "\\$\[0-9\]* = 0"  "print v_unsigned_char == (unsigned char)~0" "\\$\[0-9\]* = 1"  "print unsigned char == (~0)"
  # FIXME:  gdb mishandles the cast (unsigned char) on the i960, so I've
  # set up an expected failure for this case.
  setup_xfail "i960-*-*" 1821
! test_expr "set variable v_unsigned_char=~0" "print v_unsigned_char != 0" "\\$\[0-9\]* = 1"  "print v_unsigned_char != (unsigned char)~0" "\\$\[0-9\]* = 0"  "print unsigned char != (~0)"
! test_expr "set variable v_unsigned_char=~0" "print v_unsigned_char < 0" "\\$\[0-9\]* = 0"  "print v_unsigned_char < 127" "\\$\[0-9\]* = 0"  "print unsigned char < (~0)"
! test_expr "set variable v_unsigned_char=~0" "print v_unsigned_char > 0" "\\$\[0-9\]* = 1"  "print v_unsigned_char > 127" "\\$\[0-9\]* = 1"  "print unsigned char > (~0)"
  #
  # test expressions with "short" types
  #
! test_expr "set variable v_short=0x7FFF" "print v_short == 0" "\\$\[0-9\]* = 0"  "print v_short == 0x7FFF" "\\$\[0-9\]* = 1"  "print signed short =="
! test_expr "set variable v_short=0x7FFF" "print v_short != 0" "\\$\[0-9\]* = 1"  "print v_short != 0x7FFF" "\\$\[0-9\]* = 0"  "print signed short !="
! test_expr "set variable v_short=0x7FFF" "print v_short < 0" "\\$\[0-9\]* = 0"  "print v_short < 0x7FFF" "\\$\[0-9\]* = 0"  "print signed short <"
! test_expr "set variable v_short=0x7FFF" "print v_short > 0" "\\$\[0-9\]* = 1"  "print v_short > 0x7FFF" "\\$\[0-9\]* = 0"  "print signed short >"
  # make short a minus
! test_expr "set variable v_short=-1" "print v_short == 0" "\\$\[0-9\]* = 0"  "print v_short == -1" "\\$\[0-9\]* = 1"  "print signed short == (minus)"
! test_expr "set variable v_short=-1" "print v_short != 0" "\\$\[0-9\]* = 1"  "print v_short != -1" "\\$\[0-9\]* = 0"  "print signed short != (minus)"
! test_expr "set variable v_short=-1" "print v_short < 0" "\\$\[0-9\]* = 1"  "print v_short < 0x7FFF" "\\$\[0-9\]* = 1"  "print signed short < (minus)"
! test_expr "set variable v_short=-1" "print v_short > 0" "\\$\[0-9\]* = 0"  "print v_short > 0x7FFF" "\\$\[0-9\]* = 0"  "print signed short > (minus)"
  #
  # test expressions with "signed short" types
  #
! test_expr "set variable v_signed_short=0x7FFF" "print v_signed_short == 0" "\\$\[0-9\]* = 0"  "print v_signed_short == 0x7FFF" "\\$\[0-9\]* = 1"  "print signed signed short =="
! test_expr "set variable v_signed_short=0x7FFF" "print v_signed_short != 0" "\\$\[0-9\]* = 1"  "print v_signed_short != 0x7FFF" "\\$\[0-9\]* = 0"  "print signed signed short !="
! test_expr "set variable v_signed_short=0x7FFF" "print v_signed_short < 0" "\\$\[0-9\]* = 0"  "print v_signed_short < 0x7FFF" "\\$\[0-9\]* = 0"  "print signed signed short <"
! test_expr "set variable v_signed_short=0x7FFF" "print v_signed_short > 0" "\\$\[0-9\]* = 1"  "print v_signed_short > 0x7FFF" "\\$\[0-9\]* = 0"  "print signed signed short >"
  # make short a minus
! test_expr "set variable v_signed_short=-1" "print v_signed_short == 0" "\\$\[0-9\]* = 0"  "print v_signed_short == -1" "\\$\[0-9\]* = 1"  "print signed signed short == (minus)"
! test_expr "set variable v_signed_short=-1" "print v_signed_short != 0" "\\$\[0-9\]* = 1"  "print v_signed_short != -1" "\\$\[0-9\]* = 0"  "print signed signed short != (minus)"
! test_expr "set variable v_signed_short=-1" "print v_signed_short < 0" "\\$\[0-9\]* = 1"  "print v_signed_short < 0x7FFF" "\\$\[0-9\]* = 1"  "print signed signed short < (minus)"
! test_expr "set variable v_signed_short=-1" "print v_signed_short > 0" "\\$\[0-9\]* = 0"  "print v_signed_short > 0x7FFF" "\\$\[0-9\]* = 0"  "print signed signed short > (minus)"
  #
  # test expressions with "unsigned short" types
  #
! test_expr "set variable v_unsigned_short=0x7FFF" "print v_unsigned_short == 0" "\\$\[0-9\]* = 0"  "print v_unsigned_short == 0x7FFF" "\\$\[0-9\]* = 1"  "print unsigned short =="
! test_expr "set variable v_unsigned_short=0x7FFF" "print v_unsigned_short != 0" "\\$\[0-9\]* = 1"  "print v_unsigned_short != 0x7FFF" "\\$\[0-9\]* = 0"  "print unsigned short !="
! test_expr "set variable v_unsigned_short=0x7FFF" "print v_unsigned_short < 0" "\\$\[0-9\]* = 0"  "print v_unsigned_short < 0x7FFF" "\\$\[0-9\]* = 0"  "print unsigned short <"
! test_expr "set variable v_unsigned_short=0x7FFF" "print v_unsigned_short > 0" "\\$\[0-9\]* = 1"  "print v_unsigned_short > 0x7FFF" "\\$\[0-9\]* = 0"  "print unsigned short >"
  # make short a minus
! # note that (unsigned short) ~0 == ~0 iff sizeof(short) == sizeof(int),
! # so we can't test v_unsigned_short != ~0
! test_expr "set variable v_unsigned_short=~0" \
! 	"print v_unsigned_short == 0" "\\$\[0-9\]* = 0" \
! 	"print v_unsigned_short == (unsigned short)~0" "\\$\[0-9\]* = 1" \
! 	"print unsigned short == (~0)"
! test_expr "set variable v_unsigned_short=~0" "print v_unsigned_short != 0" "\\$\[0-9\]* = 1"  "print v_unsigned_short != (unsigned short)~0" "\\$\[0-9\]* = 0"  "print unsigned short != (~0)"
! test_expr "set variable v_unsigned_short=~0" "print v_unsigned_short < 0" "\\$\[0-9\]* = 0"  "print v_unsigned_short < 0x7FFF" "\\$\[0-9\]* = 0"  "print unsigned short < (~0)"
! test_expr "set variable v_unsigned_short=~0" "print v_unsigned_short > 0" "\\$\[0-9\]* = 1"  "print v_unsigned_short > 0x7FFF" "\\$\[0-9\]* = 1"  "print unsigned short > (~0)"
  #
  # test expressions with "int" types
  #
! test_expr "set variable v_int=0x7FFF" "print v_int == 0" "\\$\[0-9\]* = 0"  "print v_int == 0x7FFF" "\\$\[0-9\]* = 1"  "print signed int =="
! test_expr "set variable v_int=0x7FFF" "print v_int != 0" "\\$\[0-9\]* = 1"  "print v_int != 0x7FFF" "\\$\[0-9\]* = 0"  "print signed int !="
! test_expr "set variable v_int=0x7FFF" "print v_int < 0" "\\$\[0-9\]* = 0"  "print v_int < 0x7FFF" "\\$\[0-9\]* = 0"  "print signed int <"
! test_expr "set variable v_int=0x7FFF" "print v_int > 0" "\\$\[0-9\]* = 1"  "print v_int > 0x7FFF" "\\$\[0-9\]* = 0"  "print signed int >"
  # make int a minus
! test_expr "set variable v_int=-1" "print v_int == 0" "\\$\[0-9\]* = 0"  "print v_int == -1" "\\$\[0-9\]* = 1"  "print signed int == (minus)"
! test_expr "set variable v_int=-1" "print v_int != 0" "\\$\[0-9\]* = 1"  "print v_int != -1" "\\$\[0-9\]* = 0"  "print signed int != (minus)"
! test_expr "set variable v_int=-1" "print v_int < 0" "\\$\[0-9\]* = 1"  "print v_int < 0x7FFF" "\\$\[0-9\]* = 1"  "print signed int < (minus)"
! test_expr "set variable v_int=-1" "print v_int > 0" "\\$\[0-9\]* = 0"  "print v_int > 0x7FFF" "\\$\[0-9\]* = 0"  "print signed int > (minus)"
  #
  # test expressions with "signed int" types
  #
! test_expr "set variable v_signed_int=0x7FFF" "print v_signed_int == 0" "\\$\[0-9\]* = 0"  "print v_signed_int == 0x7FFF" "\\$\[0-9\]* = 1"  "print signed signed int =="
! test_expr "set variable v_signed_int=0x7FFF" "print v_signed_int != 0" "\\$\[0-9\]* = 1"  "print v_signed_int != 0x7FFF" "\\$\[0-9\]* = 0"  "print signed signed int !="
! test_expr "set variable v_signed_int=0x7FFF" "print v_signed_int < 0" "\\$\[0-9\]* = 0"  "print v_signed_int < 0x7FFF" "\\$\[0-9\]* = 0"  "print signed signed int <"
! test_expr "set variable v_signed_int=0x7FFF" "print v_signed_int > 0" "\\$\[0-9\]* = 1"  "print v_signed_int > 0x7FFF" "\\$\[0-9\]* = 0"  "print signed signed int >"
  # make int a minus
! test_expr "set variable v_signed_int=-1" "print v_signed_int == 0" "\\$\[0-9\]* = 0"  "print v_signed_int == -1" "\\$\[0-9\]* = 1"  "print signed signed int == (minus)"
! test_expr "set variable v_signed_int=-1" "print v_signed_int != 0" "\\$\[0-9\]* = 1"  "print v_signed_int != -1" "\\$\[0-9\]* = 0"  "print signed signed int != (minus)"
! test_expr "set variable v_signed_int=-1" "print v_signed_int < 0" "\\$\[0-9\]* = 1"  "print v_signed_int < 0x7FFF" "\\$\[0-9\]* = 1"  "print signed signed int < (minus)"
! test_expr "set variable v_signed_int=-1" "print v_signed_int > 0" "\\$\[0-9\]* = 0"  "print v_signed_int > 0x7FFF" "\\$\[0-9\]* = 0"  "print signed signed int > (minus)"
  #
  # test expressions with "unsigned int" types
  #
! test_expr "set variable v_unsigned_int=0x7FFF" "print v_unsigned_int == 0" "\\$\[0-9\]* = 0"  "print v_unsigned_int == 0x7FFF" "\\$\[0-9\]* = 1"  "print unsigned int =="
! test_expr "set variable v_unsigned_int=0x7FFF" "print v_unsigned_int != 0" "\\$\[0-9\]* = 1"  "print v_unsigned_int != 0x7FFF" "\\$\[0-9\]* = 0"  "print unsigned int !="
! test_expr "set variable v_unsigned_int=0x7FFF" "print v_unsigned_int < 0" "\\$\[0-9\]* = 0"  "print v_unsigned_int < 0x7FFF" "\\$\[0-9\]* = 0"  "print unsigned int <"
! test_expr "set variable v_unsigned_int=0x7FFF" "print v_unsigned_int > 0" "\\$\[0-9\]* = 1"  "print v_unsigned_int > 0x7FFF" "\\$\[0-9\]* = 0"  "print unsigned int >"
  # make int a minus
! test_expr "set variable v_unsigned_int=~0" "print v_unsigned_int == 0" "\\$\[0-9\]* = 0"  "print v_unsigned_int == ~0" "\\$\[0-9\]* = 1"  "print v_unsigned_int == (unsigned int)~0" "\\$\[0-9\]* = 1"  "print unsigned int == (~0)"
! test_expr "set variable v_unsigned_int=~0" "print v_unsigned_int != 0" "\\$\[0-9\]* = 1"  "print v_unsigned_int != (unsigned int)~0" "\\$\[0-9\]* = 0"  "print unsigned int != (~0)"
! test_expr "set variable v_unsigned_int=~0" "print v_unsigned_int < 0" "\\$\[0-9\]* = 0"  "print v_unsigned_int < 0x7FFF" "\\$\[0-9\]* = 0"  "print unsigned int < (~0)"
! test_expr "set variable v_unsigned_int=~0" "print v_unsigned_int > 0" "\\$\[0-9\]* = 1"  "print v_unsigned_int > 0x7FFF" "\\$\[0-9\]* = 1"  "print unsigned int > (~0)"
  #
  # test expressions with "long" types
  #
! test_expr "set variable v_long=0x7FFF" "print v_long == 0" "\\$\[0-9\]* = 0"  "print v_long == 0x7FFF" "\\$\[0-9\]* = 1"  "print signed long =="
! test_expr "set variable v_long=0x7FFF" "print v_long != 0" "\\$\[0-9\]* = 1"  "print v_long != 0x7FFF" "\\$\[0-9\]* = 0"  "print signed long !="
! test_expr "set variable v_long=0x7FFF" "print v_long < 0" "\\$\[0-9\]* = 0"  "print v_long < 0x7FFF" "\\$\[0-9\]* = 0"  "print signed long <"
! test_expr "set variable v_long=0x7FFF" "print v_long > 0" "\\$\[0-9\]* = 1"  "print v_long > 0x7FFF" "\\$\[0-9\]* = 0"  "print signed long >"
  # make long a minus
! test_expr "set variable v_long=-1" "print v_long == 0" "\\$\[0-9\]* = 0"  "print v_long == -1" "\\$\[0-9\]* = 1"  "print signed long == (minus)"
! test_expr "set variable v_long=-1" "print v_long != 0" "\\$\[0-9\]* = 1"  "print v_long != -1" "\\$\[0-9\]* = 0"  "print signed long != (minus)"
! test_expr "set variable v_long=-1" "print v_long < 0" "\\$\[0-9\]* = 1"  "print v_long < 0x7FFF" "\\$\[0-9\]* = 1"  "print signed long < (minus)"
! test_expr "set variable v_long=-1" "print v_long > 0" "\\$\[0-9\]* = 0"  "print v_long > 0x7FFF" "\\$\[0-9\]* = 0"  "print signed long > (minus)"
  #
  # test expressions with "signed long" types
  #
! test_expr "set variable v_signed_long=0x7FFF" "print v_signed_long == 0" "\\$\[0-9\]* = 0"  "print v_signed_long == 0x7FFF" "\\$\[0-9\]* = 1"  "print signed signed long =="
! test_expr "set variable v_signed_long=0x7FFF" "print v_signed_long != 0" "\\$\[0-9\]* = 1"  "print v_signed_long != 0x7FFF" "\\$\[0-9\]* = 0"  "print signed signed long !="
! test_expr "set variable v_signed_long=0x7FFF" "print v_signed_long < 0" "\\$\[0-9\]* = 0"  "print v_signed_long < 0x7FFF" "\\$\[0-9\]* = 0"  "print signed signed long <"
! test_expr "set variable v_signed_long=0x7FFF" "print v_signed_long > 0" "\\$\[0-9\]* = 1"  "print v_signed_long > 0x7FFF" "\\$\[0-9\]* = 0"  "print signed signed long >"
  # make long a minus
! test_expr "set variable v_signed_long=-1" "print v_signed_long == 0" "\\$\[0-9\]* = 0"  "print v_signed_long == -1" "\\$\[0-9\]* = 1"  "print signed signed long == (minus)"
! test_expr "set variable v_signed_long=-1" "print v_signed_long != 0" "\\$\[0-9\]* = 1"  "print v_signed_long != -1" "\\$\[0-9\]* = 0"  "print signed signed long != (minus)"
! test_expr "set variable v_signed_long=-1" "print v_signed_long < 0" "\\$\[0-9\]* = 1"  "print v_signed_long < 0x7FFF" "\\$\[0-9\]* = 1"  "print signed signed long < (minus)"
! test_expr "set variable v_signed_long=-1" "print v_signed_long > 0" "\\$\[0-9\]* = 0"  "print v_signed_long > 0x7FFF" "\\$\[0-9\]* = 0"  "print signed signed long > (minus)"
  #
  # test expressions with "unsigned long" types
  #
! test_expr "set variable v_unsigned_long=0x7FFF" "print v_unsigned_long == 0" "\\$\[0-9\]* = 0"  "print v_unsigned_long == 0x7FFF" "\\$\[0-9\]* = 1"  "print unsigned long =="
! test_expr "set variable v_unsigned_long=0x7FFF" "print v_unsigned_long != 0" "\\$\[0-9\]* = 1"  "print v_unsigned_long != 0x7FFF" "\\$\[0-9\]* = 0"  "print unsigned long !="
! test_expr "set variable v_unsigned_long=0x7FFF" "print v_unsigned_long < 0" "\\$\[0-9\]* = 0"  "print v_unsigned_long < 0x7FFF" "\\$\[0-9\]* = 0"  "print unsigned long <"
! test_expr "set variable v_unsigned_long=0x7FFF" "print v_unsigned_long > 0" "\\$\[0-9\]* = 1"  "print v_unsigned_long > 0x7FFF" "\\$\[0-9\]* = 0"  "print unsigned long >"
  # make long a minus
! test_expr "set variable v_unsigned_long=~0" "print v_unsigned_long == 0" "\\$\[0-9\]* = 0"  "print v_unsigned_long == ~0" "\\$\[0-9\]* = 1"  "print v_unsigned_long == (unsigned long)~0" "\\$\[0-9\]* = 1"  "print unsigned long == (~0)"
! test_expr "set variable v_unsigned_long=~0" "print v_unsigned_long != 0" "\\$\[0-9\]* = 1"  "print v_unsigned_long != (unsigned long)~0" "\\$\[0-9\]* = 0"  "print unsigned long != (~0)"
! test_expr "set variable v_unsigned_long=~0" "print v_unsigned_long < 0" "\\$\[0-9\]* = 0"  "print v_unsigned_long < 0x7FFF" "\\$\[0-9\]* = 0"  "print unsigned long < (~0)"
! test_expr "set variable v_unsigned_long=~0" "print v_unsigned_long > 0" "\\$\[0-9\]* = 1"  "print v_unsigned_long > 0x7FFF" "\\$\[0-9\]* = 1"  "print unsigned long > (~0)"
--- 81,225 ----
  #
  # test expressions with "char" types
  #
! test_expr "set variable v_char=127" "print v_char == 0" "\\$\[0-9\]* = $false"  "print v_char == 127" "\\$\[0-9\]* = $true"  "print char =="
! test_expr "set variable v_char=127" "print v_char != 0" "\\$\[0-9\]* = $true"  "print v_char != 127" "\\$\[0-9\]* = $false"  "print char !="
! test_expr "set variable v_char=127" "print v_char < 0" "\\$\[0-9\]* = $false"  "print v_char < 127" "\\$\[0-9\]* = $false"  "print char <"
! test_expr "set variable v_char=127" "print v_char > 0" "\\$\[0-9\]* = $true"  "print v_char > 127" "\\$\[0-9\]* = $false"  "print char >"
  #
  # test expressions with "signed char" types
  #
! test_expr "set variable v_signed_char=127" "print v_signed_char == 0" "\\$\[0-9\]* = $false"  "print v_signed_char == 127" "\\$\[0-9\]* = $true"  "print signed char =="
! test_expr "set variable v_signed_char=127" "print v_signed_char != 0" "\\$\[0-9\]* = $true"  "print v_signed_char != 127" "\\$\[0-9\]* = $false"  "print signed char !="
! test_expr "set variable v_signed_char=127" "print v_signed_char < 0" "\\$\[0-9\]* = $false"  "print v_signed_char < 127" "\\$\[0-9\]* = $false"  "print signed char <"
! test_expr "set variable v_signed_char=127" "print v_signed_char > 0" "\\$\[0-9\]* = $true"  "print v_signed_char > 127" "\\$\[0-9\]* = $false"  "print signed char >"
  # make char a minus
! test_expr "set variable v_signed_char=-1" "print v_signed_char == 0" "\\$\[0-9\]* = $false"  "print v_signed_char == -1" "\\$\[0-9\]* = $true"  "print signed char == (minus)"
! test_expr "set variable v_signed_char=-1" "print v_signed_char != 0" "\\$\[0-9\]* = $true"  "print v_signed_char != -1" "\\$\[0-9\]* = $false"  "print signed char != (minus)"
! test_expr "set variable v_signed_char=-1" "print v_signed_char < 0" "\\$\[0-9\]* = $true"  "print v_signed_char < 127" "\\$\[0-9\]* = $true"  "print signed char < (minus)"
! test_expr "set variable v_signed_char=-1" "print v_signed_char > 0" "\\$\[0-9\]* = $false"  "print v_signed_char > 127" "\\$\[0-9\]* = $false"  "print signed char > (minus)"
  #
  # test expressions with "unsigned char" types
  #
! test_expr "set variable v_unsigned_char=127" "print v_unsigned_char == 0" "\\$\[0-9\]* = $false"  "print v_unsigned_char == 127" "\\$\[0-9\]* = $true"  "print unsigned char =="
! test_expr "set variable v_unsigned_char=127" "print v_unsigned_char != 0" "\\$\[0-9\]* = $true"  "print v_unsigned_char != 127" "\\$\[0-9\]* = $false"  "print unsigned char !="
! test_expr "set variable v_unsigned_char=127" "print v_unsigned_char < 0" "\\$\[0-9\]* = $false"  "print v_unsigned_char < 127" "\\$\[0-9\]* = $false"  "print unsigned char <"
! test_expr "set variable v_unsigned_char=127" "print v_unsigned_char > 0" "\\$\[0-9\]* = $true"  "print v_unsigned_char > 127" "\\$\[0-9\]* = $false"  "print unsigned char >"
  # make char a minus
  # FIXME:  gdb mishandles the cast (unsigned char) on the i960, so I've
  # set up an expected failure for this case.
  setup_xfail "i960-*-*" 1821
! test_expr "set variable v_unsigned_char=~0" "print v_unsigned_char == 0" "\\$\[0-9\]* = $false"  "print v_unsigned_char == ~0" "\\$\[0-9\]* = $false"  "print v_unsigned_char == (unsigned char)~0" "\\$\[0-9\]* = $true"  "print unsigned char == (~0)"
  # FIXME:  gdb mishandles the cast (unsigned char) on the i960, so I've
  # set up an expected failure for this case.
  setup_xfail "i960-*-*" 1821
! test_expr "set variable v_unsigned_char=~0" "print v_unsigned_char != 0" "\\$\[0-9\]* = $true"  "print v_unsigned_char != (unsigned char)~0" "\\$\[0-9\]* = $false"  "print unsigned char != (~0)"
! test_expr "set variable v_unsigned_char=~0" "print v_unsigned_char < 0" "\\$\[0-9\]* = $false"  "print v_unsigned_char < 127" "\\$\[0-9\]* = $false"  "print unsigned char < (~0)"
! test_expr "set variable v_unsigned_char=~0" "print v_unsigned_char > 0" "\\$\[0-9\]* = $true"  "print v_unsigned_char > 127" "\\$\[0-9\]* = $true"  "print unsigned char > (~0)"
  #
  # test expressions with "short" types
  #
! test_expr "set variable v_short=0x7FFF" "print v_short == 0" "\\$\[0-9\]* = $false"  "print v_short == 0x7FFF" "\\$\[0-9\]* = $true"  "print signed short =="
! test_expr "set variable v_short=0x7FFF" "print v_short != 0" "\\$\[0-9\]* = $true"  "print v_short != 0x7FFF" "\\$\[0-9\]* = $false"  "print signed short !="
! test_expr "set variable v_short=0x7FFF" "print v_short < 0" "\\$\[0-9\]* = $false"  "print v_short < 0x7FFF" "\\$\[0-9\]* = $false"  "print signed short <"
! test_expr "set variable v_short=0x7FFF" "print v_short > 0" "\\$\[0-9\]* = $true"  "print v_short > 0x7FFF" "\\$\[0-9\]* = $false"  "print signed short >"
  # make short a minus
! test_expr "set variable v_short=-1" "print v_short == 0" "\\$\[0-9\]* = $false"  "print v_short == -1" "\\$\[0-9\]* = $true"  "print signed short == (minus)"
! test_expr "set variable v_short=-1" "print v_short != 0" "\\$\[0-9\]* = $true"  "print v_short != -1" "\\$\[0-9\]* = $false"  "print signed short != (minus)"
! test_expr "set variable v_short=-1" "print v_short < 0" "\\$\[0-9\]* = $true"  "print v_short < 0x7FFF" "\\$\[0-9\]* = $true"  "print signed short < (minus)"
! test_expr "set variable v_short=-1" "print v_short > 0" "\\$\[0-9\]* = $false"  "print v_short > 0x7FFF" "\\$\[0-9\]* = $false"  "print signed short > (minus)"
  #
  # test expressions with "signed short" types
  #
! test_expr "set variable v_signed_short=0x7FFF" "print v_signed_short == 0" "\\$\[0-9\]* = $false"  "print v_signed_short == 0x7FFF" "\\$\[0-9\]* = $true"  "print signed signed short =="
! test_expr "set variable v_signed_short=0x7FFF" "print v_signed_short != 0" "\\$\[0-9\]* = $true"  "print v_signed_short != 0x7FFF" "\\$\[0-9\]* = $false"  "print signed signed short !="
! test_expr "set variable v_signed_short=0x7FFF" "print v_signed_short < 0" "\\$\[0-9\]* = $false"  "print v_signed_short < 0x7FFF" "\\$\[0-9\]* = $false"  "print signed signed short <"
! test_expr "set variable v_signed_short=0x7FFF" "print v_signed_short > 0" "\\$\[0-9\]* = $true"  "print v_signed_short > 0x7FFF" "\\$\[0-9\]* = $false"  "print signed signed short >"
  # make short a minus
! test_expr "set variable v_signed_short=-1" "print v_signed_short == 0" "\\$\[0-9\]* = $false"  "print v_signed_short == -1" "\\$\[0-9\]* = $true"  "print signed signed short == (minus)"
! test_expr "set variable v_signed_short=-1" "print v_signed_short != 0" "\\$\[0-9\]* = $true"  "print v_signed_short != -1" "\\$\[0-9\]* = $false"  "print signed signed short != (minus)"
! test_expr "set variable v_signed_short=-1" "print v_signed_short < 0" "\\$\[0-9\]* = $true"  "print v_signed_short < 0x7FFF" "\\$\[0-9\]* = $true"  "print signed signed short < (minus)"
! test_expr "set variable v_signed_short=-1" "print v_signed_short > 0" "\\$\[0-9\]* = $false"  "print v_signed_short > 0x7FFF" "\\$\[0-9\]* = $false"  "print signed signed short > (minus)"
  #
  # test expressions with "unsigned short" types
  #
! test_expr "set variable v_unsigned_short=0x7FFF" "print v_unsigned_short == 0" "\\$\[0-9\]* = $false"  "print v_unsigned_short == 0x7FFF" "\\$\[0-9\]* = $true"  "print unsigned short =="
! test_expr "set variable v_unsigned_short=0x7FFF" "print v_unsigned_short != 0" "\\$\[0-9\]* = $true"  "print v_unsigned_short != 0x7FFF" "\\$\[0-9\]* = $false"  "print unsigned short !="
! test_expr "set variable v_unsigned_short=0x7FFF" "print v_unsigned_short < 0" "\\$\[0-9\]* = $false"  "print v_unsigned_short < 0x7FFF" "\\$\[0-9\]* = $false"  "print unsigned short <"
! test_expr "set variable v_unsigned_short=0x7FFF" "print v_unsigned_short > 0" "\\$\[0-9\]* = $true"  "print v_unsigned_short > 0x7FFF" "\\$\[0-9\]* = $false"  "print unsigned short >"
  # make short a minus
! test_expr "set variable v_unsigned_short=~0" "print v_unsigned_short == 0" "\\$\[0-9\]* = $false"  "print v_unsigned_short == ~0" "\\$\[0-9\]* = $false"  "print v_unsigned_short == (unsigned short)~0" "\\$\[0-9\]* = $true"  "print unsigned short == (~0)"
! test_expr "set variable v_unsigned_short=~0" "print v_unsigned_short != 0" "\\$\[0-9\]* = $true"  "print v_unsigned_short != (unsigned short)~0" "\\$\[0-9\]* = $false"  "print unsigned short != (~0)"
! test_expr "set variable v_unsigned_short=~0" "print v_unsigned_short < 0" "\\$\[0-9\]* = $false"  "print v_unsigned_short < 0x7FFF" "\\$\[0-9\]* = $false"  "print unsigned short < (~0)"
! test_expr "set variable v_unsigned_short=~0" "print v_unsigned_short > 0" "\\$\[0-9\]* = $true"  "print v_unsigned_short > 0x7FFF" "\\$\[0-9\]* = $true"  "print unsigned short > (~0)"
  #
  # test expressions with "int" types
  #
! test_expr "set variable v_int=0x7FFF" "print v_int == 0" "\\$\[0-9\]* = $false"  "print v_int == 0x7FFF" "\\$\[0-9\]* = $true"  "print signed int =="
! test_expr "set variable v_int=0x7FFF" "print v_int != 0" "\\$\[0-9\]* = $true"  "print v_int != 0x7FFF" "\\$\[0-9\]* = $false"  "print signed int !="
! test_expr "set variable v_int=0x7FFF" "print v_int < 0" "\\$\[0-9\]* = $false"  "print v_int < 0x7FFF" "\\$\[0-9\]* = $false"  "print signed int <"
! test_expr "set variable v_int=0x7FFF" "print v_int > 0" "\\$\[0-9\]* = $true"  "print v_int > 0x7FFF" "\\$\[0-9\]* = $false"  "print signed int >"
  # make int a minus
! test_expr "set variable v_int=-1" "print v_int == 0" "\\$\[0-9\]* = $false"  "print v_int == -1" "\\$\[0-9\]* = $true"  "print signed int == (minus)"
! test_expr "set variable v_int=-1" "print v_int != 0" "\\$\[0-9\]* = $true"  "print v_int != -1" "\\$\[0-9\]* = $false"  "print signed int != (minus)"
! test_expr "set variable v_int=-1" "print v_int < 0" "\\$\[0-9\]* = $true"  "print v_int < 0x7FFF" "\\$\[0-9\]* = $true"  "print signed int < (minus)"
! test_expr "set variable v_int=-1" "print v_int > 0" "\\$\[0-9\]* = $false"  "print v_int > 0x7FFF" "\\$\[0-9\]* = $false"  "print signed int > (minus)"
  #
  # test expressions with "signed int" types
  #
! test_expr "set variable v_signed_int=0x7FFF" "print v_signed_int == 0" "\\$\[0-9\]* = $false"  "print v_signed_int == 0x7FFF" "\\$\[0-9\]* = $true"  "print signed signed int =="
! test_expr "set variable v_signed_int=0x7FFF" "print v_signed_int != 0" "\\$\[0-9\]* = $true"  "print v_signed_int != 0x7FFF" "\\$\[0-9\]* = $false"  "print signed signed int !="
! test_expr "set variable v_signed_int=0x7FFF" "print v_signed_int < 0" "\\$\[0-9\]* = $false"  "print v_signed_int < 0x7FFF" "\\$\[0-9\]* = $false"  "print signed signed int <"
! test_expr "set variable v_signed_int=0x7FFF" "print v_signed_int > 0" "\\$\[0-9\]* = $true"  "print v_signed_int > 0x7FFF" "\\$\[0-9\]* = $false"  "print signed signed int >"
  # make int a minus
! test_expr "set variable v_signed_int=-1" "print v_signed_int == 0" "\\$\[0-9\]* = $false"  "print v_signed_int == -1" "\\$\[0-9\]* = $true"  "print signed signed int == (minus)"
! test_expr "set variable v_signed_int=-1" "print v_signed_int != 0" "\\$\[0-9\]* = $true"  "print v_signed_int != -1" "\\$\[0-9\]* = $false"  "print signed signed int != (minus)"
! test_expr "set variable v_signed_int=-1" "print v_signed_int < 0" "\\$\[0-9\]* = $true"  "print v_signed_int < 0x7FFF" "\\$\[0-9\]* = $true"  "print signed signed int < (minus)"
! test_expr "set variable v_signed_int=-1" "print v_signed_int > 0" "\\$\[0-9\]* = $false"  "print v_signed_int > 0x7FFF" "\\$\[0-9\]* = $false"  "print signed signed int > (minus)"
  #
  # test expressions with "unsigned int" types
  #
! test_expr "set variable v_unsigned_int=0x7FFF" "print v_unsigned_int == 0" "\\$\[0-9\]* = $false"  "print v_unsigned_int == 0x7FFF" "\\$\[0-9\]* = $true"  "print unsigned int =="
! test_expr "set variable v_unsigned_int=0x7FFF" "print v_unsigned_int != 0" "\\$\[0-9\]* = $true"  "print v_unsigned_int != 0x7FFF" "\\$\[0-9\]* = $false"  "print unsigned int !="
! test_expr "set variable v_unsigned_int=0x7FFF" "print v_unsigned_int < 0" "\\$\[0-9\]* = $false"  "print v_unsigned_int < 0x7FFF" "\\$\[0-9\]* = $false"  "print unsigned int <"
! test_expr "set variable v_unsigned_int=0x7FFF" "print v_unsigned_int > 0" "\\$\[0-9\]* = $true"  "print v_unsigned_int > 0x7FFF" "\\$\[0-9\]* = $false"  "print unsigned int >"
  # make int a minus
! test_expr "set variable v_unsigned_int=~0" "print v_unsigned_int == 0" "\\$\[0-9\]* = $false"  "print v_unsigned_int == ~0" "\\$\[0-9\]* = $true"  "print v_unsigned_int == (unsigned int)~0" "\\$\[0-9\]* = $true"  "print unsigned int == (~0)"
! test_expr "set variable v_unsigned_int=~0" "print v_unsigned_int != 0" "\\$\[0-9\]* = $true"  "print v_unsigned_int != (unsigned int)~0" "\\$\[0-9\]* = $false"  "print unsigned int != (~0)"
! test_expr "set variable v_unsigned_int=~0" "print v_unsigned_int < 0" "\\$\[0-9\]* = $false"  "print v_unsigned_int < 0x7FFF" "\\$\[0-9\]* = $false"  "print unsigned int < (~0)"
! test_expr "set variable v_unsigned_int=~0" "print v_unsigned_int > 0" "\\$\[0-9\]* = $true"  "print v_unsigned_int > 0x7FFF" "\\$\[0-9\]* = $true"  "print unsigned int > (~0)"
  #
  # test expressions with "long" types
  #
! test_expr "set variable v_long=0x7FFF" "print v_long == 0" "\\$\[0-9\]* = $false"  "print v_long == 0x7FFF" "\\$\[0-9\]* = $true"  "print signed long =="
! test_expr "set variable v_long=0x7FFF" "print v_long != 0" "\\$\[0-9\]* = $true"  "print v_long != 0x7FFF" "\\$\[0-9\]* = $false"  "print signed long !="
! test_expr "set variable v_long=0x7FFF" "print v_long < 0" "\\$\[0-9\]* = $false"  "print v_long < 0x7FFF" "\\$\[0-9\]* = $false"  "print signed long <"
! test_expr "set variable v_long=0x7FFF" "print v_long > 0" "\\$\[0-9\]* = $true"  "print v_long > 0x7FFF" "\\$\[0-9\]* = $false"  "print signed long >"
  # make long a minus
! test_expr "set variable v_long=-1" "print v_long == 0" "\\$\[0-9\]* = $false"  "print v_long == -1" "\\$\[0-9\]* = $true"  "print signed long == (minus)"
! test_expr "set variable v_long=-1" "print v_long != 0" "\\$\[0-9\]* = $true"  "print v_long != -1" "\\$\[0-9\]* = $false"  "print signed long != (minus)"
! test_expr "set variable v_long=-1" "print v_long < 0" "\\$\[0-9\]* = $true"  "print v_long < 0x7FFF" "\\$\[0-9\]* = $true"  "print signed long < (minus)"
! test_expr "set variable v_long=-1" "print v_long > 0" "\\$\[0-9\]* = $false"  "print v_long > 0x7FFF" "\\$\[0-9\]* = $false"  "print signed long > (minus)"
  #
  # test expressions with "signed long" types
  #
! test_expr "set variable v_signed_long=0x7FFF" "print v_signed_long == 0" "\\$\[0-9\]* = $false"  "print v_signed_long == 0x7FFF" "\\$\[0-9\]* = $true"  "print signed signed long =="
! test_expr "set variable v_signed_long=0x7FFF" "print v_signed_long != 0" "\\$\[0-9\]* = $true"  "print v_signed_long != 0x7FFF" "\\$\[0-9\]* = $false"  "print signed signed long !="
! test_expr "set variable v_signed_long=0x7FFF" "print v_signed_long < 0" "\\$\[0-9\]* = $false"  "print v_signed_long < 0x7FFF" "\\$\[0-9\]* = $false"  "print signed signed long <"
! test_expr "set variable v_signed_long=0x7FFF" "print v_signed_long > 0" "\\$\[0-9\]* = $true"  "print v_signed_long > 0x7FFF" "\\$\[0-9\]* = $false"  "print signed signed long >"
  # make long a minus
! test_expr "set variable v_signed_long=-1" "print v_signed_long == 0" "\\$\[0-9\]* = $false"  "print v_signed_long == -1" "\\$\[0-9\]* = $true"  "print signed signed long == (minus)"
! test_expr "set variable v_signed_long=-1" "print v_signed_long != 0" "\\$\[0-9\]* = $true"  "print v_signed_long != -1" "\\$\[0-9\]* = $false"  "print signed signed long != (minus)"
! test_expr "set variable v_signed_long=-1" "print v_signed_long < 0" "\\$\[0-9\]* = $true"  "print v_signed_long < 0x7FFF" "\\$\[0-9\]* = $true"  "print signed signed long < (minus)"
! test_expr "set variable v_signed_long=-1" "print v_signed_long > 0" "\\$\[0-9\]* = $false"  "print v_signed_long > 0x7FFF" "\\$\[0-9\]* = $false"  "print signed signed long > (minus)"
  #
  # test expressions with "unsigned long" types
  #
! test_expr "set variable v_unsigned_long=0x7FFF" "print v_unsigned_long == 0" "\\$\[0-9\]* = $false"  "print v_unsigned_long == 0x7FFF" "\\$\[0-9\]* = $true"  "print unsigned long =="
! test_expr "set variable v_unsigned_long=0x7FFF" "print v_unsigned_long != 0" "\\$\[0-9\]* = $true"  "print v_unsigned_long != 0x7FFF" "\\$\[0-9\]* = $false"  "print unsigned long !="
! test_expr "set variable v_unsigned_long=0x7FFF" "print v_unsigned_long < 0" "\\$\[0-9\]* = $false"  "print v_unsigned_long < 0x7FFF" "\\$\[0-9\]* = $false"  "print unsigned long <"
! test_expr "set variable v_unsigned_long=0x7FFF" "print v_unsigned_long > 0" "\\$\[0-9\]* = $true"  "print v_unsigned_long > 0x7FFF" "\\$\[0-9\]* = $false"  "print unsigned long >"
  # make long a minus
! test_expr "set variable v_unsigned_long=~0" "print v_unsigned_long == 0" "\\$\[0-9\]* = $false"  "print v_unsigned_long == ~0" "\\$\[0-9\]* = $true"  "print v_unsigned_long == (unsigned long)~0" "\\$\[0-9\]* = $true"  "print unsigned long == (~0)"
! test_expr "set variable v_unsigned_long=~0" "print v_unsigned_long != 0" "\\$\[0-9\]* = $true"  "print v_unsigned_long != (unsigned long)~0" "\\$\[0-9\]* = $false"  "print unsigned long != (~0)"
! test_expr "set variable v_unsigned_long=~0" "print v_unsigned_long < 0" "\\$\[0-9\]* = $false"  "print v_unsigned_long < 0x7FFF" "\\$\[0-9\]* = $false"  "print unsigned long < (~0)"
! test_expr "set variable v_unsigned_long=~0" "print v_unsigned_long > 0" "\\$\[0-9\]* = $true"  "print v_unsigned_long > 0x7FFF" "\\$\[0-9\]* = $true"  "print unsigned long > (~0)"
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/foll-exec.c gdb/testsuite/gdb.base/foll-exec.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/foll-exec.c	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/foll-exec.c	Thu Jun 24 20:28:34 1999
***************
*** 0 ****
--- 1,43 ----
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <string.h>
+ 
+ 
+ int  global_i = 100;
+ 
+ #ifdef PROTOTYPES
+ int main (void)
+ #else
+ main ()
+ #endif
+ {
+   int  local_j = global_i+1;
+   int  local_k = local_j+1;
+ 
+   printf ("foll-exec is about to execlp(execd-prog)...\n");
+ 
+   execlp ("gdb.base/execd-prog",
+           "gdb.base/execd-prog",
+           "execlp arg1 from foll-exec",
+           (char *)0);
+ 
+   printf ("foll-exec is about to execl(execd-prog)...\n");
+ 
+   execl ("gdb.base/execd-prog",
+          "gdb.base/execd-prog",
+          "execl arg1 from foll-exec",
+          "execl arg2 from foll-exec",
+          (char *)0);
+ 
+   {
+     static char * argv[] = {
+       (char *)"gdb.base/execd-prog",
+       (char *)"execv arg1 from foll-exec",
+       (char *)0};
+ 
+     printf ("foll-exec is about to execv(execd-prog)...\n");
+ 
+     execv ("gdb.base/execd-prog", argv);
+   }
+ }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/foll-exec.exp gdb/testsuite/gdb.base/foll-exec.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/foll-exec.exp	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/foll-exec.exp	Thu Jun 24 20:28:34 1999
***************
*** 0 ****
--- 1,396 ----
+ #   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
+ 
+ set testfile "foll-exec"
+ set testfile2 "execd-prog"
+ set srcfile ${testfile}.c
+ set srcfile2 ${testfile2}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+ set binfile2 ${objdir}/${subdir}/${testfile2}
+ 
+ # build the first test case
+ 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  { [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 "20.*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}:23.*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 "26.*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"}
+    }
+ 
+    # DTS CLLbs16760
+    # PA64 doesn't know about $START$ in dld.sl at this point.  It should.
+    # - Michael Coulter
+    setup_xfail hppa2.0w-hp-hpux*
+    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"}
+    }
+ 
+    # DTS CLLbs16760
+    # test gets out of sync if previous test fails.
+    gdb_test "bt" ".*" "sync up after possible failure 1"
+    gdb_test "bt" "#0.*" "sync up after possible failure 2"
+ 
+    # 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}:23.*$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 27\n"
+    gdb_expect {
+      -re "Breakpoint .*file .*${srcfile}, line 27.*$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 27\n"
+    gdb_expect {
+      -re "main.* at .*${srcfile}:27.*$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}:23.*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 "26.*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 41\n"
+    gdb_expect {
+      -re "Breakpoint .*file .*${srcfile}, line 41.*$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 41\n"
+    gdb_expect {
+      -re "main.* at .*${srcfile}:41.*$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}:23.*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 "26.*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} (5th 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}:23.*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
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/foll-fork.c gdb/testsuite/gdb.base/foll-fork.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/foll-fork.c	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/foll-fork.c	Thu Jun 24 20:28:35 1999
***************
*** 0 ****
--- 1,34 ----
+ #include <stdio.h>
+ #include <unistd.h>
+ 
+ #ifdef PROTOTYPES
+ void callee (int i)
+ #else
+ void callee (i)
+   int  i;
+ #endif
+ {
+   printf("callee: %d\n", i);
+ }
+ 
+ #ifdef PROTOTYPES
+ int main (void)
+ #else
+ main ()
+ #endif
+ {
+   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); */
+     }
+ }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/foll-fork.exp gdb/testsuite/gdb.base/foll-fork.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/foll-fork.exp	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/foll-fork.exp	Thu Jun 24 20:28:35 1999
***************
*** 0 ****
--- 1,363 ----
+ #   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
+ 
+ set testfile "foll-fork"
+ 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."
+ }
+ 
+ 
+ 
+ # 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 24\n"
+    gdb_expect {
+       -re "Breakpoint.*, line 24.*$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 .*24.*$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 24\n"
+    gdb_expect {
+       -re "Breakpoint.*, line 24.*$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 .*24.*$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
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/foll-vfork.c gdb/testsuite/gdb.base/foll-vfork.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/foll-vfork.c	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/foll-vfork.c	Thu Jun 24 20:28:35 1999
***************
*** 0 ****
--- 1,20 ----
+ #include <stdio.h>
+ #include <unistd.h>
+ 
+ #ifdef PROTOTYPES
+ int main (void)
+ #else
+ main ()
+ #endif
+ {
+   int  pid;
+ 
+   pid = vfork ();
+   if (pid == 0) {
+     printf ("I'm the child!\n");
+     execlp ("gdb.base/vforked-prog", "gdb.base/vforked-prog", (char *)0);
+   }
+   else {
+     printf ("I'm the proud parent of child #%d!\n", pid);
+   }
+ }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/foll-vfork.exp gdb/testsuite/gdb.base/foll-vfork.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/foll-vfork.exp	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/foll-vfork.exp	Thu Jun 24 20:28:36 1999
***************
*** 0 ****
--- 1,365 ----
+ #   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
+ 	}
+ 
+ if [istarget "hppa2.0w-hp-hpux*"] {
+   warning "Don't run gdb.base/foll-vfork.exp until JAGaa43495 kernel problem is fixed."
+   return 0
+ }
+ 
+ set prms_id 0
+ set bug_id 0
+ 
+ set testfile "foll-vfork"
+ set testfile2 "vforked-prog"
+ set srcfile ${testfile}.c
+ set srcfile2 ${testfile2}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+ set binfile2 ${objdir}/${subdir}/${testfile2}
+ 
+ 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  { [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 "*-*-*"
+ }
+ 
+ # Test to see if we are on an HP-UX 10.20 and if so,
+ # do not run these tests as catching vfork is disabled for
+ # 10.20.
+ 
+ if [istarget "hppa*-hp-hpux10.20"] then {
+     return 0
+ }
+ 
+ # 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.*13.*$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 18\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.*18.*$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-prog.c:9.*$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-prog.c:9.*$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}:12.*$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}:9.*$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
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/funcargs.c gdb/testsuite/gdb.base/funcargs.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/funcargs.c	Mon Nov 11 13:12:31 1996
--- gdb/testsuite/gdb.base/funcargs.c	Thu Jun 24 20:28:04 1999
***************
*** 71,78 ****
--- 71,82 ----
  /* Test various permutations and interleaving of integral arguments */
  
  
+ #ifdef PROTOTYPES
+ void call0a (char c, short s, int i, long l)
+ #else
  call0a (c, s, i, l)
  char c; short s; int i; long l;
+ #endif
  {
    c = 'a';
    s = 5;
***************
*** 80,105 ****
--- 84,125 ----
    l = 7;
  }
  
+ #ifdef PROTOTYPES
+ void call0b (short s, int i, long l, char c)
+ #else
  call0b (s, i, l, c)
  short s; int i; long l; char c;
+ #endif
  {
    s = 6; i = 7; l = 8; c = 'j';
  }
  
+ #ifdef PROTOTYPES
+ void call0c (int i, long l, char c, short s)
+ #else
  call0c (i, l, c, s)
  int i; long l; char c; short s;
+ #endif
  {
    i = 3; l = 4; c = 'k'; s = 5;
  }
  
+ #ifdef PROTOTYPES
+ void call0d (long l, char c, short s, int i)
+ #else
  call0d (l, c, s, i)
  long l; char c; short s; int i;
+ #endif
  {
    l = 7; c = 'z'; s = 8; i = 9;
  }
  
+ #ifdef PROTOTYPES
+ void call0e (char c1, long l, char c2, int i, char c3, short s, char c4, char c5)
+ #else
  call0e (c1, l, c2, i, c3, s, c4, c5)
  char c1; long l; char c2; int i; char c3; short s; char c4; char c5;
+ #endif
  {
    c1 = 'a'; l = 5; c2 = 'b'; i = 7; c3 = 'c'; s = 7; c4 = 'f'; c5 = 'g';
  }
***************
*** 108,140 ****
--- 128,180 ----
  /* Test various permutations and interleaving of unsigned integral arguments */
  
  
+ #ifdef PROTOTYPES
+ void call1a (unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
+ #else
  call1a (uc, us, ui, ul)
  unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
+ #endif
  {
    uc = 5; us = 6; ui = 7; ul = 8;
  }
  
+ #ifdef PROTOTYPES
+ void call1b (unsigned short us, unsigned int ui, unsigned long ul, unsigned char uc)
+ #else
  call1b (us, ui, ul, uc)
  unsigned short us; unsigned int ui; unsigned long ul; unsigned char uc;
+ #endif
  {
    uc = 5; us = 6; ui = 7; ul = 8;
  }
  
+ #ifdef PROTOTYPES
+ void call1c (unsigned int ui, unsigned long ul, unsigned char uc, unsigned short us)
+ #else
  call1c (ui, ul, uc, us)
  unsigned int ui; unsigned long ul; unsigned char uc; unsigned short us;
+ #endif
  {
    uc = 5; us = 6; ui = 7; ul = 8;
  }
  
+ #ifdef PROTOTYPES
+ void call1d (unsigned long ul, unsigned char uc, unsigned short us, unsigned int ui)
+ #else
  call1d (ul, uc, us, ui)
  unsigned long ul; unsigned char uc; unsigned short us; unsigned int ui;
+ #endif
  {
    uc = 5; us = 6; ui = 7; ul = 8;
  }
  
+ #ifdef PROTOTYPES
+ void call1e (unsigned char uc1, unsigned long ul, unsigned char uc2, unsigned int ui, unsigned char uc3, unsigned short us, unsigned char uc4, unsigned char uc5)
+ #else
  call1e (uc1, ul, uc2, ui, uc3, us, uc4, uc5)
  unsigned char uc1; unsigned long ul; unsigned char uc2; unsigned int ui;
  unsigned char uc3; unsigned short us; unsigned char uc4; unsigned char uc5;
+ #endif
  {
    uc1 = 5; ul = 7; uc2 = 8; ui = 9; uc3 = 10; us = 11; uc4 = 12; uc5 = 55;
  }
***************
*** 143,199 ****
--- 183,275 ----
     floating point arguments. */
  
  
+ #ifdef PROTOTYPES
+ void call2a (char c, float f1, short s, double d1, int i, float f2, long l, double d2)
+ #else
  call2a (c, f1, s, d1, i, f2, l, d2)
  char c; float f1; short s; double d1; int i; float f2; long l; double d2;
+ #endif
  {
    c = 'a'; f1 = 0.0; s = 5; d1 = 0.0; i = 6; f2 = 0.1; l = 7; d2 = 0.2;
  }
  
+ #ifdef PROTOTYPES
+ void call2b (float f1, short s, double d1, int i, float f2, long l, double d2, char c)
+ #else
  call2b (f1, s, d1, i, f2, l, d2, c)
  float f1; short s; double d1; int i; float f2; long l; double d2; char c;
+ #endif
  {
    c = 'a'; f1 = 0.0; s = 5; d1 = 0.0; i = 6; f2 = 0.1; l = 7; d2 = 0.2;
  }
  
+ #ifdef PROTOTYPES
+ void call2c (short s, double d1, int i, float f2, long l, double d2, char c, float f1)
+ #else
  call2c (s, d1, i, f2, l, d2, c, f1)
  short s; double d1; int i; float f2; long l; double d2; char c; float f1;
+ #endif
  {
    c = 'a'; f1 = 0.0; s = 5; d1 = 0.0; i = 6; f2 = 0.1; l = 7; d2 = 0.2;
  }
  
+ #ifdef PROTOTYPES
+ void call2d (double d1, int i, float f2, long l, double d2, char c, float f1, short s)
+ #else
  call2d (d1, i, f2, l, d2, c, f1, s)
  double d1; int i; float f2; long l; double d2; char c; float f1; short s;
+ #endif
  {
    c = 'a'; f1 = 0.0; s = 5; d1 = 0.0; i = 6; f2 = 0.1; l = 7; d2 = 0.2;
  }
  
+ #ifdef PROTOTYPES
+ void call2e (int i, float f2, long l, double d2, char c, float f1, short s, double d1)
+ #else
  call2e (i, f2, l, d2, c, f1, s, d1)
  int i; float f2; long l; double d2; char c; float f1; short s; double d1;
+ #endif
  {
    c = 'a'; f1 = 0.0; s = 5; d1 = 0.0; i = 6; f2 = 0.1; l = 7; d2 = 0.2;
  }
  
+ #ifdef PROTOTYPES
+ void call2f (float f2, long l, double d2, char c, float f1, short s, double d1, int i)
+ #else
  call2f (f2, l, d2, c, f1, s, d1, i)
  float f2; long l; double d2; char c; float f1; short s; double d1; int i;
+ #endif
  {
    c = 'a'; f1 = 0.0; s = 5; d1 = 0.0; i = 6; f2 = 0.1; l = 7; d2 = 0.2;
  }
  
+ #ifdef PROTOTYPES
+ void call2g (long l, double d2, char c, float f1, short s, double d1, int i, float f2)
+ #else
  call2g (l, d2, c, f1, s, d1, i, f2)
  long l; double d2; char c; float f1; short s; double d1; int i; float f2;
+ #endif
  {
    c = 'a'; f1 = 0.0; s = 5; d1 = 0.0; i = 6; f2 = 0.1; l = 7; d2 = 0.2;
  }
  
+ #ifdef PROTOTYPES
+ void call2h (double d2, char c, float f1, short s, double d1, int i, float f2, long l)
+ #else
  call2h (d2, c, f1, s, d1, i, f2, l)
  double d2; char c; float f1; short s; double d1; int i; float f2; long l;
+ #endif
  {
    c = 'a'; f1 = 0.0; s = 5; d1 = 0.0; i = 6; f2 = 0.1; l = 7; d2 = 0.2;
  }
  
+ #ifdef PROTOTYPES
+ void call2i (char c1, float f1, char c2, char c3, double d1, char c4, char c5, char c6, float f2, short s, char c7, double d2)
+ #else
  call2i (c1, f1, c2, c3, d1, c4, c5, c6, f2, s, c7, d2)
  char c1; float f1; char c2; char c3; double d1; char c4; char c5; char c6;
  float f2; short s; char c7; double d2;
+ #endif
  {
    c1 = 'a'; f1 = 0.0; c2 = 5; d1 = 0.0; c3 = 6; f2 = 0.1; c4 = 7; d2 = 0.2;
    c5 = 's'; c6 = 'f'; c7 = 'z'; s = 77;
***************
*** 203,223 ****
--- 279,311 ----
  /* Test pointers to various integral and floating types. */
  
  
+ #ifdef PROTOTYPES
+ void call3a (char *cp, short *sp, int *ip, long *lp)
+ #else
  call3a (cp, sp, ip, lp)
  char *cp; short *sp; int *ip; long *lp;
+ #endif
  {
    cp = 0; sp = 0; ip = 0; lp = 0;
  }
  
+ #ifdef PROTOTYPES
+ void call3b (unsigned char *ucp, unsigned short *usp, unsigned int *uip, unsigned long *ulp)
+ #else
  call3b (ucp, usp, uip, ulp)
  unsigned char *ucp; unsigned short *usp; unsigned int *uip;
  unsigned long *ulp;
+ #endif
  {
    ucp = 0; usp = 0; uip = 0; ulp = 0;
  }
  
+ #ifdef PROTOTYPES
+ void call3c (float *fp, double *dp)
+ #else
  call3c (fp, dp)
  float *fp; double *dp;
+ #endif
  {
    fp = 0; dp = 0;
  }
***************
*** 226,237 ****
  /* Test passing structures and unions by reference. */
  
  
  call4a (stp)
! struct stag *stp; {
! stp = 0;}
  
  call4b (unp)
  union utag *unp;
  {
    unp = 0;
  }
--- 314,333 ----
  /* Test passing structures and unions by reference. */
  
  
+ #ifdef PROTOTYPES
+ void call4a (struct stag *stp)
+ #else
  call4a (stp)
! struct stag *stp;
! #endif
! {stp = 0;}
  
+ #ifdef PROTOTYPES
+ void call4b (union utag *unp)
+ #else
  call4b (unp)
  union utag *unp;
+ #endif
  {
    unp = 0;
  }
***************
*** 240,404 ****
  /* Test passing structures and unions by value. */
  
  
  call5a (st)
! struct stag st; {st.s1 = 5;}
  
  call5b (un)
! union utag un; {un.u1 = 7;}
  
  
  /* Test shuffling of args */
  
  
! call6a (c, s, i, l, f, d, uc, us, ui, ul)
! char c; short s; int i; long l; float f; double d;
! unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
  {
-   c = c;
-     call6b (s, i, l, f, d, uc, us, ui, ul);
  }
  
! call6b (s, i, l, f, d, uc, us, ui, ul)
! short s; int i; long l; float f; double d;
! unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
  {
!   s = s;
!     call6c (i, l, f, d, uc, us, ui, ul);
  }
  
! call6c (i, l, f, d, uc, us, ui, ul)
! int i; long l; float f; double d;
! unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
  {
!   i = i;
!     call6d (l, f, d, uc, us, ui, ul);
  }
  
! call6d (l, f, d, uc, us, ui, ul)
! long l; float f; double d;
! unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
  {
!   l = l;
!     call6e (f, d, uc, us, ui, ul);
  }
  
! call6e (f, d, uc, us, ui, ul)
! float f; double d;
  unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
  {
!   f = f;
!     call6f (d, uc, us, ui, ul);
  }
  
  call6f (d, uc, us, ui, ul)
  double d;
  unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
  {
    d = d;
      call6g (uc, us, ui, ul);
  }
  
! call6g (uc, us, ui, ul)
  unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
  {
!   uc = uc;
!     call6h (us, ui, ul);
  }
  
! call6h (us, ui, ul)
! unsigned short us; unsigned int ui; unsigned long ul;
  {
!   us = us;
!     call6i (ui, ul);
  }
  
! call6i (ui, ul)
! unsigned int ui; unsigned long ul;
  {
!   ui = ui;
!     call6j (ul);
  }
  
! call6j (ul)
! unsigned long ul;
  {
!   ul = ul;
!     call6k ();
  }
  
! call6k ()
  {
  }
  
- 
  /*  Test shuffling of args, round robin */
  
  
! call7a (c, i, s, l, f, uc, d, us, ul, ui)
  char c; int i; short s; long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui;
  {
!     call7b (i, s, l, f, uc, d, us, ul, ui, c);
  }
  
! call7b (i, s, l, f, uc, d, us, ul, ui, c)
! int i; short s; long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui; char c;
  {
!     call7c (s, l, f, uc, d, us, ul, ui, c, i);
  }
  
! call7c (s, l, f, uc, d, us, ul, ui, c, i)
! short s; long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui; char c; int i;
  {
!     call7d (l, f, uc, d, us, ul, ui, c, i, s);
  }
  
! call7d (l, f, uc, d, us, ul, ui, c, i, s)
! long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui; char c; int i; short s;
  {
!     call7e (f, uc, d, us, ul, ui, c, i, s, l);
  }
  
! call7e (f, uc, d, us, ul, ui, c, i, s, l)
! float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui; char c; int i; short s; long l;
  {
!     call7f (uc, d, us, ul, ui, c, i, s, l, f);
  }
  
  call7f (uc, d, us, ul, ui, c, i, s, l, f)
  unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui; char c; int i; short s; long l; float f;
  {
      call7g (d, us, ul, ui, c, i, s, l, f, uc);
  }
  
! call7g (d, us, ul, ui, c, i, s, l, f, uc)
! double d; unsigned short us; unsigned long ul; unsigned int ui; char c; int i; short s; long l; float f; unsigned char uc;
  {
!     call7h (us, ul, ui, c, i, s, l, f, uc, d);
  }
  
! call7h (us, ul, ui, c, i, s, l, f, uc, d)
! unsigned short us; unsigned long ul; unsigned int ui; char c; int i; short s; long l; float f; unsigned char uc; double d;
  {
!     call7i (ul, ui, c, i, s, l, f, uc, d, us);
  }
  
! call7i (ul, ui, c, i, s, l, f, uc, d, us)
! unsigned long ul; unsigned int ui; char c; int i; short s; long l; float f; unsigned char uc; double d; unsigned short us;
  {
!     call7j (ui, c, i, s, l, f, uc, d, us, ul);
  }
  
! call7j (ui, c, i, s, l, f, uc, d, us, ul)
! unsigned int ui; char c; int i; short s; long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul;
  {
!     call7k (c, i, s, l, f, uc, d, us, ul, ui);
  }
  
! call7k (c, i, s, l, f, uc, d, us, ul, ui)
  char c; int i; short s; long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui;
  {
!   c = 'a'; i = 7; s = 8; l = 7; f = 0.3; uc = 44; d = 0.44; us = 77;
!   ul = 43; ui = 33;
  }
  
  
--- 336,593 ----
  /* Test passing structures and unions by value. */
  
  
+ #ifdef PROTOTYPES
+ void call5a (struct stag st)
+ #else
  call5a (st)
! struct stag st;
! #endif
! {st.s1 = 5;}
  
+ #ifdef PROTOTYPES
+ void call5b (union utag un)
+ #else
  call5b (un)
! union utag un;
! #endif
! {un.u1 = 7;}
  
  
  /* Test shuffling of args */
  
  
! void call6k ()
  {
  }
  
! #ifdef PROTOTYPES
! void call6j (unsigned long ul)
! #else
! call6j (ul)
! unsigned long ul;
! #endif
  {
!   ul = ul;
!     call6k ();
  }
  
! #ifdef PROTOTYPES
! void call6i (unsigned int ui, unsigned long ul)
! #else
! call6i (ui, ul)
! unsigned int ui; unsigned long ul;
! #endif
  {
!   ui = ui;
!     call6j (ul);
  }
  
! #ifdef PROTOTYPES
! void call6h (unsigned short us, unsigned int ui, unsigned long ul)
! #else
! call6h (us, ui, ul)
! unsigned short us; unsigned int ui; unsigned long ul;
! #endif
  {
!   us = us;
!     call6i (ui, ul);
  }
  
! #ifdef PROTOTYPES
! void call6g (unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
! #else
! call6g (uc, us, ui, ul)
  unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
+ #endif
  {
!   uc = uc;
!     call6h (us, ui, ul);
  }
  
+ #ifdef PROTOTYPES
+ void call6f (double d, unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
+ #else
  call6f (d, uc, us, ui, ul)
  double d;
  unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
+ #endif
  {
    d = d;
      call6g (uc, us, ui, ul);
  }
  
! #ifdef PROTOTYPES
! void call6e (float f, double d, unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
! #else
! call6e (f, d, uc, us, ui, ul)
! float f; double d;
  unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
+ #endif
  {
!   f = f;
!     call6f (d, uc, us, ui, ul);
  }
  
! #ifdef PROTOTYPES
! void call6d (long l, float f, double d, unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
! #else
! call6d (l, f, d, uc, us, ui, ul)
! long l; float f; double d;
! unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
! #endif
  {
!   l = l;
!     call6e (f, d, uc, us, ui, ul);
  }
  
! #ifdef PROTOTYPES
! void call6c (int i, long l, float f, double d, unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
! #else
! call6c (i, l, f, d, uc, us, ui, ul)
! int i; long l; float f; double d;
! unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
! #endif
  {
!   i = i;
!     call6d (l, f, d, uc, us, ui, ul);
  }
  
! #ifdef PROTOTYPES
! void call6b (short s, int i, long l, float f, double d, unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
! #else
! call6b (s, i, l, f, d, uc, us, ui, ul)
! short s; int i; long l; float f; double d;
! unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
! #endif
  {
!   s = s;
!     call6c (i, l, f, d, uc, us, ui, ul);
  }
  
! #ifdef PROTOTYPES
! void call6a (char c, short s, int i, long l, float f, double d, unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
! #else
! call6a (c, s, i, l, f, d, uc, us, ui, ul)
! char c; short s; int i; long l; float f; double d;
! unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
! #endif
  {
+   c = c;
+     call6b (s, i, l, f, d, uc, us, ui, ul);
  }
  
  /*  Test shuffling of args, round robin */
  
  
! #ifdef PROTOTYPES
! void call7k (char c, int i, short s, long l, float f, unsigned char uc, double d, unsigned short us, unsigned long ul, unsigned int ui)
! #else
! call7k (c, i, s, l, f, uc, d, us, ul, ui)
  char c; int i; short s; long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui;
+ #endif
  {
!   c = 'a'; i = 7; s = 8; l = 7; f = 0.3; uc = 44; d = 0.44; us = 77;
!   ul = 43; ui = 33;
  }
  
! #ifdef PROTOTYPES
! void call7j (unsigned int ui, char c, int i, short s, long l, float f, unsigned char uc, double d, unsigned short us, unsigned long ul)
! #else
! call7j (ui, c, i, s, l, f, uc, d, us, ul)
! unsigned int ui; char c; int i; short s; long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul;
! #endif
  {
!     call7k (c, i, s, l, f, uc, d, us, ul, ui);
  }
  
! #ifdef PROTOTYPES
! void call7i (unsigned long ul, unsigned int ui, char c, int i, short s, long l, float f, unsigned char uc, double d, unsigned short us)
! #else
! call7i (ul, ui, c, i, s, l, f, uc, d, us)
! unsigned long ul; unsigned int ui; char c; int i; short s; long l; float f; unsigned char uc; double d; unsigned short us;
! #endif
  {
!     call7j (ui, c, i, s, l, f, uc, d, us, ul);
  }
  
! #ifdef PROTOTYPES
! void call7h (unsigned short us, unsigned long ul, unsigned int ui, char c, int i, short s, long l, float f, unsigned char uc, double d)
! #else
! call7h (us, ul, ui, c, i, s, l, f, uc, d)
! unsigned short us; unsigned long ul; unsigned int ui; char c; int i; short s; long l; float f; unsigned char uc; double d;
! #endif
  {
!     call7i (ul, ui, c, i, s, l, f, uc, d, us);
  }
  
! #ifdef PROTOTYPES
! void call7g (double d, unsigned short us, unsigned long ul, unsigned int ui, char c, int i, short s, long l, float f, unsigned char uc)
! #else
! call7g (d, us, ul, ui, c, i, s, l, f, uc)
! double d; unsigned short us; unsigned long ul; unsigned int ui; char c; int i; short s; long l; float f; unsigned char uc;
! #endif
  {
!     call7h (us, ul, ui, c, i, s, l, f, uc, d);
  }
  
+ #ifdef PROTOTYPES
+ void call7f (unsigned char uc, double d, unsigned short us, unsigned long ul, unsigned int ui, char c, int i, short s, long l, float f)
+ #else
  call7f (uc, d, us, ul, ui, c, i, s, l, f)
  unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui; char c; int i; short s; long l; float f;
+ #endif
  {
      call7g (d, us, ul, ui, c, i, s, l, f, uc);
  }
  
! #ifdef PROTOTYPES
! void call7e (float f, unsigned char uc, double d, unsigned short us, unsigned long ul, unsigned int ui, char c, int i, short s, long l)
! #else
! call7e (f, uc, d, us, ul, ui, c, i, s, l)
! float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui; char c; int i; short s; long l;
! #endif
  {
!     call7f (uc, d, us, ul, ui, c, i, s, l, f);
  }
  
! #ifdef PROTOTYPES
! void call7d (long l, float f, unsigned char uc, double d, unsigned short us, unsigned long ul, unsigned int ui, char c, int i, short s)
! #else
! call7d (l, f, uc, d, us, ul, ui, c, i, s)
! long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui; char c; int i; short s;
! #endif
  {
!     call7e (f, uc, d, us, ul, ui, c, i, s, l);
  }
  
! #ifdef PROTOTYPES
! void call7c (short s, long l, float f, unsigned char uc, double d, unsigned short us, unsigned long ul, unsigned int ui, char c, int i)
! #else
! call7c (s, l, f, uc, d, us, ul, ui, c, i)
! short s; long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui; char c; int i;
! #endif
  {
!     call7d (l, f, uc, d, us, ul, ui, c, i, s);
  }
  
! #ifdef PROTOTYPES
! void call7b (int i, short s, long l, float f, unsigned char uc, double d, unsigned short us, unsigned long ul, unsigned int ui, char c)
! #else
! call7b (i, s, l, f, uc, d, us, ul, ui, c)
! int i; short s; long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui; char c;
! #endif
  {
!     call7c (s, l, f, uc, d, us, ul, ui, c, i);
  }
  
! #ifdef PROTOTYPES
! void call7a (char c, int i, short s, long l, float f, unsigned char uc, double d, unsigned short us, unsigned long ul, unsigned int ui)
! #else
! call7a (c, i, s, l, f, uc, d, us, ul, ui)
  char c; int i; short s; long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui;
+ #endif
  {
!     call7b (i, s, l, f, uc, d, us, ul, ui, c);
  }
  
  
***************
*** 412,424 ****
    long l;
  } SVAL;	
  
! hitbottom ()
  {
  }
  
  void recurse (a, depth)
  SVAL a;
  int depth;
  {
    a.s = a.i = a.l = --depth;
    if (depth == 0)
--- 601,617 ----
    long l;
  } SVAL;	
  
! void hitbottom ()
  {
  }
  
+ #ifdef PROTOTYPES
+ void recurse (SVAL a, int depth)
+ #else
  void recurse (a, depth)
  SVAL a;
  int depth;
+ #endif
  {
    a.s = a.i = a.l = --depth;
    if (depth == 0)
***************
*** 427,433 ****
      recurse (a, depth);
  }
  
! test_struct_args ()
  {
    SVAL s; s.s = 5; s.i = 5; s.l = 5;
  
--- 620,626 ----
      recurse (a, depth);
  }
  
! void test_struct_args ()
  {
    SVAL s; s.s = 5; s.i = 5; s.l = 5;
  
***************
*** 438,449 ****
--- 631,646 ----
     calls alloca may do things differently with respect to frames.  So give
     it a try.  */
  
+ #ifdef PROTOTYPES
+ void localvars_after_alloca (char c, short s, int i, long l)
+ #else
  int
  localvars_after_alloca (c, s, i, l)
       char c;
       short s;
       int i;
       long l;
+ #endif
  {
  #ifdef HAVE_STACK_ALLOCA
    /* No need to use the alloca.c alloca-on-top-of-malloc; it doesn't
***************
*** 458,478 ****
--- 655,683 ----
    l = 7;
  }
  
+ #ifdef PROTOTYPES
+ void call_after_alloca_subr (char c, short s, int i, long l, unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
+ #else
  void
  call_after_alloca_subr (c, s, i, l, uc, us, ui, ul)
  char c; int i; short s; long l; unsigned char uc; unsigned short us; unsigned long ul; unsigned int ui;
+ #endif
  {
    c = 'a';
    i = 7; s = 8; l = 7; uc = 44; us = 77;
    ul = 43; ui = 33;
  }
  
+ #ifdef PROTOTYPES
+ void call_after_alloca (char c, short s, int i, long l)
+ #else
  int
  call_after_alloca (c, s, i, l)
       char c;
       short s;
       int i;
       long l;
+ #endif
  {
  #ifdef HAVE_STACK_ALLOCA
    /* No need to use the alloca.c alloca-on-top-of-malloc; it doesn't
***************
*** 491,499 ****
--- 696,708 ----
     will require a trampoline between dyncall and this function on the
     call path, then another trampoline on between this function and main
     on the return path.  */
+ #ifdef PROTOTYPES
+ double call_with_trampolines (double d1)
+ #else
  double
  call_with_trampolines (d1)
  double d1;
+ #endif
  {
    return d1;
  } /* End of call_with_trampolines, this comment is needed by funcargs.exp */
***************
*** 506,515 ****
  void
  marker_call_with_trampolines () {}
  
! main ()
  {
!   int (*pointer_to_call0a) () = call0a;
!   double (*pointer_to_call_with_trampolines) () = call_with_trampolines;
  
  #ifdef usestubs
    set_debug_traps();
--- 715,724 ----
  void
  marker_call_with_trampolines () {}
  
! int main ()
  {
!   void (*pointer_to_call0a) (char, short, int, long) = (void (*)(char, short, int, long))call0a;
!   double (*pointer_to_call_with_trampolines) (double) = call_with_trampolines;
  
  #ifdef usestubs
    set_debug_traps();
***************
*** 579,582 ****
--- 788,792 ----
    (*pointer_to_call0a) (c, s, i, l);	/* Second step into call0a.  */
    marker_call_with_trampolines ();
    (*pointer_to_call_with_trampolines) (d); /* Test multiple trampolines.  */
+   return 0;
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/funcargs.exp gdb/testsuite/gdb.base/funcargs.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/funcargs.exp	Mon May 17 11:18:23 1999
--- gdb/testsuite/gdb.base/funcargs.exp	Thu Jun 24 20:28:04 1999
***************
*** 167,172 ****
--- 167,173 ----
      global gdb_prompt
      global det_file
      global gcc_compiled
+     global hp_cc_compiler
  
      delete_breakpoints
  
***************
*** 186,240 ****
--- 187,253 ----
      # code is broken.
      setup_xfail "a29k-*-udi"
      if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" "mips-sgi-irix5*" }
+     # The debug info. for "f" is not correct. It's a known bug.
+     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
      gdb_run_cmd
      gdb_expect {
  	 -re ".* call2a \\(c=97 'a', f1=4, s=1, d1=5, i=2, f2=4, l=3, d2=5\\) .*$gdb_prompt $" { pass "run to call2a" }
+ 	 -re ".* call2a \\(c=97 'a', f1=.*, s=1, d1=5, i=2, f2=4, l=3, d2=5\\) .*$gdb_prompt $" { xfail "run to call2a" }
  	 -re "$gdb_prompt $" { fail "run to call2a" ; gdb_suppress_tests; }
  	 timeout { fail "(timeout) run to call2a" ; gdb_suppress_tests; }
      }
  
      # Print each arg as a double check to see if we can print
      gdb_test "print c" ".* = 97 'a'" "print c after run to call2a"
+     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
      gdb_test "print f1" ".* = 4" "print f1 after run to call2a"
      gdb_test "print s" ".* = 1" "print s after run to call2a"
      gdb_test "print d1" ".* = 5" "print d1 after run to call2a"
      gdb_test "print i" ".* = 2" "print i after run to call2a"
+     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
      gdb_test "print f2" ".* = 4" "print f2 after run to call2a"
      gdb_test "print l" ".* = 3" "print l after run to call2a"
      gdb_test "print d2" ".* = 5" "print d2 after run to call2a"
  
      setup_xfail "rs6000-*-*"
+     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
      if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix*" }
      # Continue; should stop at call2b and print actual arguments.
      if [gdb_test "cont" ".* call2b \\(f1=4, s=1, d1=5, i=2, f2=4, l=3, d2=5, c=97 'a'\\) .*" "continue to call2b"] {
  	gdb_suppress_tests;
      }
  
+     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
      # Continue; should stop at call2c and print actual arguments.
      if [gdb_test "cont" ".* call2c \\(s=1, d1=5, i=2, f2=4, l=3, d2=5, c=97 'a', f1=4\\) .*" "continue to call2c"] {
  	gdb_suppress_tests;
      }
  
+     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
      # Continue; should stop at call2d and print actual arguments.
      if [gdb_test "cont" ".* call2d \\(d1=5, i=2, f2=4, l=3, d2=5, c=97 'a', f1=4, s=1\\) .*" "continue to call2d"] {
  	gdb_suppress_tests;
      }
  
+     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
      # Continue; should stop at call2e and print actual arguments.
      if [gdb_test "cont" ".* call2e \\(i=2, f2=4, l=3, d2=5, c=97 'a', f1=4, s=1, d1=5\\) .*" "continue to call2e"] {
  	gdb_suppress_tests;
      }
  
+     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
      # Continue; should stop at call2f and print actual arguments.
      if [gdb_test "cont" ".* call2f \\(f2=4, l=3, d2=5, c=97 'a', f1=4, s=1, d1=5, i=2\\) .*" "continue to call2f"] {
  	gdb_suppress_tests;
      }
  
+     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
      # Continue; should stop at call2g and print actual arguments.
      if [gdb_test "cont" ".* call2g \\(l=3, d2=5, c=97 'a', f1=4, s=1, d1=5, i=2, f2=4\\) .*" "continue to call2g"] {
  	gdb_suppress_tests;
      }
  
+     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
      # Continue; should stop at call2h and print actual arguments.
      if [gdb_test "cont" ".* call2h \\(d2=5, c=97 'a', f1=4, s=1, d1=5, i=2, f2=4, l=3\\) .*" "continue to call2h"] {
  	gdb_suppress_tests;
***************
*** 245,250 ****
--- 258,264 ----
      delete_breakpoints
      gdb_breakpoint call2i
  
+     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
      # Continue; should stop at call2i and print actual arguments.
      if [gdb_test "cont" ".* call2i \\(c1=97 'a', f1=4, c2=97 'a', c3=97 'a', d1=5, c4=97 'a', c5=97 'a', c6=97 'a', f2=4, s=1, c7=97 'a', d2=5\\) .*" "continue to call2i"] {
  	gdb_suppress_tests;
***************
*** 449,454 ****
--- 463,469 ----
      global decimal
      global det_file
      global gcc_compiled
+     global hp_cc_compiler
  
      delete_breakpoints
  
***************
*** 480,487 ****
  	setup_xfail "mips-sgi-irix5*"
      }
  
!     if [gdb_test "backtrace 100" " call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* main \\(.*\\).*" "backtrace from call6a"] {
! 	gdb_suppress_tests;
      }
  
      # Continue; should stop at call6b and print actual arguments.
--- 495,524 ----
  	setup_xfail "mips-sgi-irix5*"
      }
  
!     # The debug info. for "f" is not correct. It's a known bug.
!     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
!     send_gdb "backtrace 100\n"
!     gdb_expect {
! 	-re "backtrace 100\[\r\n\]+
! .* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\r
! .* main \\(.*\\) .*\r
! $gdb_prompt $" {
! 	    pass "backtrace from call6a"
! 	}
! 	-re "backtrace 100\[\r\n\]+
! .* call6a \\(c=97 'a', s=1, i=2, l=3, f=.*, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\r
! .* main \\(.*\\) .*\r
! $gdb_prompt $" {
! 	    xfail "backtrace from call6a"
! 	}
! 	-re "$gdb_prompt $" {
! 	    fail "backtrace from call6a"
! 	    gdb_suppress_tests
! 	}
! 	timeout {
! 	    fail "(timeout) backtrace from call6a"
! 	    gdb_suppress_tests
! 	}
      }
  
      # Continue; should stop at call6b and print actual arguments.
***************
*** 489,495 ****
  
      gdb_continue call6b
  
!     if [gdb_test "backtrace 100" " call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* main \\(.*\\).*" "backtrace from call6b"] {
  	gdb_suppress_tests;
      }
  
--- 526,533 ----
  
      gdb_continue call6b
  
!     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
!     if [gdb_test "backtrace 100" ".* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\]*.* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* main \\(.*\\) .*\[\r\n\]" "backtrace from call6b"] {
  	gdb_suppress_tests;
      }
  
***************
*** 498,504 ****
  
      gdb_continue call6c
  
!     if [gdb_test "backtrace 100" " call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* main \\(.*\\).*" "backtrace from call6c"] {
  	gdb_suppress_tests;
      }
      # Continue; should stop at call6d and print actual arguments.
--- 536,543 ----
  
      gdb_continue call6c
  
!     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
!     if [gdb_test "backtrace 100" ".* call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n].* main \\(.*\\) .*" "backtrace from call6c"] {
  	gdb_suppress_tests;
      }
      # Continue; should stop at call6d and print actual arguments.
***************
*** 506,512 ****
  
      gdb_continue call6d
  
!     if [gdb_test "backtrace 100" " call6d \\(l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* main \\(.*\\).*" "backtrace from call6d"] {
  	gdb_suppress_tests;
      }
  
--- 545,552 ----
  
      gdb_continue call6d
  
!     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
!     if [gdb_test "backtrace 100" ".* call6d \\(l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n].* main \\(.*\\) .*" "backtrace from call6d"] {
  	gdb_suppress_tests;
      }
  
***************
*** 515,521 ****
  
      gdb_continue call6e
  
!     if [gdb_test "backtrace 100" " call6e \\(f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6d \\(l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* main \\(.*\\).*" "backtrace from call6e"] {
  	gdb_suppress_tests;
      }
  
--- 555,562 ----
  
      gdb_continue call6e
  
!     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
!     if [gdb_test "backtrace 100" ".* call6e \\(f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6d \\(l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n].* main \\(.*\\) .*" "backtrace from call6e"] {
  	gdb_suppress_tests;
      }
  
***************
*** 524,530 ****
  
      gdb_continue call6f
  
!     if [gdb_test "backtrace 100" " call6f \\(d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6e \\(f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6d \\(l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* main \\(.*\\).*" "backtrace from call6f"] {
  	gdb_suppress_tests;
      }
  
--- 565,572 ----
  
      gdb_continue call6f
  
!     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
!     if [gdb_test "backtrace 100" ".* call6f \\(d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6e \\(f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6d \\(l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n].* main \\(.*\\) .*" "backtrace from call6f"] {
  	gdb_suppress_tests;
      }
  
***************
*** 533,539 ****
  
      gdb_continue call6g
  
!     if [gdb_test "backtrace 100" " call6g \\(uc=98 'b', us=6, ui=7, ul=8\\).* call6f \\(d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6e \\(f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6d \\(l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* main \\(.*\\).*" "backtrace from call6g"] {
  	gdb_suppress_tests;
      }
  
--- 575,582 ----
  
      gdb_continue call6g
  
!     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
!     if [gdb_test "backtrace 100" ".* call6g \\(uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6f \\(d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6e \\(f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6d \\(l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n].* main \\(.*\\) .*" "backtrace from call6g"] {
  	gdb_suppress_tests;
      }
  
***************
*** 542,548 ****
  
      gdb_continue call6h
  
!     if [gdb_test "backtrace 100" " call6h \\(us=6, ui=7, ul=8\\).* call6g \\(uc=98 'b', us=6, ui=7, ul=8\\).* call6f \\(d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6e \\(f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6d \\(l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* main \\(.*\\).*" "backtrace from call6h"] {
  	gdb_suppress_tests;
      }
  
--- 585,592 ----
  
      gdb_continue call6h
  
!     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
!     if [gdb_test "backtrace 100" ".* call6h \\(us=6, ui=7, ul=8\\) .*\[\r\n\].* call6g \\(uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6f \\(d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6e \\(f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6d \\(l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n].* main \\(.*\\) .*" "backtrace from call6h"] {
  	gdb_suppress_tests;
      }
  
***************
*** 558,564 ****
  
      gdb_continue call6i
  
!     if [gdb_test "backtrace 100" " call6i \\(ui=7, ul=8\\).* call6h \\(us=6, ui=7, ul=8\\).* call6g \\(uc=98 'b', us=6, ui=7, ul=8\\).* call6f \\(d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6e \\(f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6d \\(l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* main \\(.*\\).*" "backtrace from call6i"] {
  	gdb_suppress_tests;
      }
  
--- 602,609 ----
  
      gdb_continue call6i
  
!     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
!     if [gdb_test "backtrace 100" ".* call6i \\(ui=7, ul=8\\) .*\[\r\n\].* call6h \\(us=6, ui=7, ul=8\\) .*\[\r\n\].* call6g \\(uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6f \\(d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6e \\(f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6d \\(l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n].* main \\(.*\\) .*" "backtrace from call6i"] {
  	gdb_suppress_tests;
      }
  
***************
*** 567,573 ****
  
      gdb_continue call6j
  
!     if [gdb_test "backtrace 100" " call6j \\(ul=8\\).* call6i \\(ui=7, ul=8\\).* call6h \\(us=6, ui=7, ul=8\\).* call6g \\(uc=98 'b', us=6, ui=7, ul=8\\).* call6f \\(d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6e \\(f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6d \\(l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* main \\(.*\\).*" "backtrace from call6j"] {
  	gdb_suppress_tests;
      }
  
--- 612,619 ----
  
      gdb_continue call6j
  
!     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
!     if [gdb_test "backtrace 100" ".* call6j \\(ul=8\\) .*\[\r\n\].* call6i \\(ui=7, ul=8\\) .*\[\r\n\].* call6h \\(us=6, ui=7, ul=8\\) .*\[\r\n\].* call6g \\(uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6f \\(d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6e \\(f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6d \\(l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n].* main \\(.*\\) .*" "backtrace from call6j"] {
  	gdb_suppress_tests;
      }
  
***************
*** 578,584 ****
      setup_xfail "i960-*-vxworks" 1786
      gdb_continue call6k
  
!     if [gdb_test "backtrace 100" " call6k \\(\\).* call6j \\(ul=8\\).* call6i \\(ui=7, ul=8\\).* call6h \\(us=6, ui=7, ul=8\\).* call6g \\(uc=98 'b', us=6, ui=7, ul=8\\).* call6f \\(d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6e \\(f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6d \\(l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\).* main \\(.*\\).*" "backtrace from call6k"] {
  	gdb_suppress_tests;
      }
      gdb_stop_suppressing_tests;
--- 624,631 ----
      setup_xfail "i960-*-vxworks" 1786
      gdb_continue call6k
  
!     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
!     if [gdb_test "backtrace 100" ".* call6k \\(\\) .*\[\r\n\].* call6j \\(ul=8\\) .*\[\r\n\].* call6i \\(ui=7, ul=8\\) .*\[\r\n\].* call6h \\(us=6, ui=7, ul=8\\) .*\[\r\n\].* call6g \\(uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6f \\(d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6e \\(f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6d \\(l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6c \\(i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6b \\(s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n\].* call6a \\(c=97 'a', s=1, i=2, l=3, f=4, d=5, uc=98 'b', us=6, ui=7, ul=8\\) .*\[\r\n].* main \\(.*\\) .*" "backtrace from call6k"] {
  	gdb_suppress_tests;
      }
      gdb_stop_suppressing_tests;
***************
*** 595,600 ****
--- 642,648 ----
      global decimal
      global det_file
      global gcc_compiled
+     global hp_cc_compiler
  
      delete_breakpoints
  
***************
*** 624,630 ****
  
      setup_xfail "i960-*-*" 1813
      if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" "mips-sgi-irix5*" }
!     gdb_test "backtrace 100" " call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\).* main \\(.*\\).*" "backtrace from call7a"
  
      # Continue; should stop at call7b and print actual arguments.
      # Print backtrace.
--- 672,696 ----
  
      setup_xfail "i960-*-*" 1813
      if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" "mips-sgi-irix5*" }
!     # The debug info. for "f" is not correct. It's a known bug.
!     if {$hp_cc_compiler} {setup_xfail hppa2.0w-*-*}
!     send_gdb "backtrace 100\n"
!     gdb_expect {
! 	-re "backtrace 100\[\r\n\]+
! .* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\) .*\r
! .* main \\(.*\\) .*\r
! $gdb_prompt $" {
! 	    pass "backtrace from call7a"
! 	}
! 	-re "backtrace 100\[\r\n\]+
! .* call7a \\(c=97 'a', i=2, s=1, l=3, f=.*, uc=98 'b', d=5, us=6, ul=8, ui=7\\) .*\r
! .* main \\(.*\\) .*\r
! $gdb_prompt $" {
! 	    xfail "backtrace from call7a"
! 	}
! 	-re "$gdb_prompt $" { fail "backtrace from call7a" ; return }
! 	timeout { fail "(timeout) backtrace from call7a" ; return }
!     }
  
      # Continue; should stop at call7b and print actual arguments.
      # Print backtrace.
***************
*** 633,675 ****
  
      if {$gcc_compiled} then { setup_xfail "rs6000-*-*" }
  
!     gdb_test "backtrace 100" " call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\).* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\).* main \\(.*\\).*" "backtrace from call7b"
  
      # Continue; should stop at call7c and print actual arguments.
      # Print backtrace.
  
      gdb_continue call7c
  
!     gdb_test "backtrace 100" " call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\).* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\).* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\).* main \\(.*\\).*" "backtrace from call7c"
  
      # Continue; should stop at call7d and print actual arguments.
      # Print backtrace.
  
      gdb_continue call7d
  
!     gdb_test "backtrace 100" " call7d \\(l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1\\).* call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\).* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\).* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\).* main \\(.*\\).*" "backtrace from call7d"
  
      gdb_continue call7e
  
!     gdb_test "backtrace 100" " call7e \\(f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3\\).* call7d \\(l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1\\).* call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\).* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\).* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\).* main \\(.*\\).*" "backtrace from call7e"
  
      # Continue; should stop at call7f and print actual arguments.
      # Print backtrace.
  
      gdb_continue call7f
  
!     gdb_test "backtrace 100" " call7f \\(uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4\\).* call7e \\(f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3\\).* call7d \\(l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1\\).* call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\).* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\).* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\).* main \\(.*\\).*" "backtrace from call7f"
  
      # Continue; should stop at call7g and print actual arguments.
      # Print backtrace.
  
      gdb_continue call7g
  
!     gdb_test "backtrace 100" " call7g \\(d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b'\\).* call7f \\(uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4\\).* call7e \\(f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3\\).* call7d \\(l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1\\).* call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\).* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\).* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\).* main \\(.*\\).*" "backtrace from call7g"
  
      gdb_continue call7h
  
!     gdb_test "backtrace 100" " call7h \\(us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5\\).* call7g \\(d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b'\\).* call7f \\(uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4\\).* call7e \\(f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3\\).* call7d \\(l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1\\).* call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\).* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\).* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\).* main \\(.*\\).*" "backtrace from call7h"
  
      # monitor only allows 8 breakpoints; w89k board allows 10, so
      # break them up into two groups.
--- 699,741 ----
  
      if {$gcc_compiled} then { setup_xfail "rs6000-*-*" }
  
!     gdb_test "backtrace 100" ".* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\) .*\[\r\n\].* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\) .*\[\r\n\].* main \\(.*\\) .*\[\r\n\].*" "backtrace from call7b"
  
      # Continue; should stop at call7c and print actual arguments.
      # Print backtrace.
  
      gdb_continue call7c
  
!     gdb_test "backtrace 100" ".* call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\) .*\[\r\n\].* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\) .*\[\r\n\].* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\) .*\[\r\n\].* main \\(.*\\) .*\[\r\n\].*" "backtrace from call7c"
  
      # Continue; should stop at call7d and print actual arguments.
      # Print backtrace.
  
      gdb_continue call7d
  
!     gdb_test "backtrace 100" ".* call7d \\(l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1\\) .*\[\r\n\].* call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\) .*\[\r\n\].* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\) .*\[\r\n\].* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\) .*\[\r\n\].* main \\(.*\\) .*\[\r\n\].*" "backtrace from call7d"
  
      gdb_continue call7e
  
!     gdb_test "backtrace 100" ".* call7e \\(f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3\\) .*\[\r\n\].* call7d \\(l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1\\) .*\[\r\n\].* call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\) .*\[\r\n\].* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\) .*\[\r\n\].* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\) .*\[\r\n\].* main \\(.*\\) .*\[\r\n\].*" "backtrace from call7e"
  
      # Continue; should stop at call7f and print actual arguments.
      # Print backtrace.
  
      gdb_continue call7f
  
!     gdb_test "backtrace 100" ".* call7f \\(uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4\\) .*\[\r\n\].* call7e \\(f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3\\) .*\[\r\n\].* call7d \\(l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1\\) .*\[\r\n\].* call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\) .*\[\r\n\].* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\) .*\[\r\n\].* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\) .*\[\r\n\].* main \\(.*\\) .*\[\r\n\].*" "backtrace from call7f"
  
      # Continue; should stop at call7g and print actual arguments.
      # Print backtrace.
  
      gdb_continue call7g
  
!     gdb_test "backtrace 100" ".* call7g \\(d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b'\\) .*\[\r\n\].* call7f \\(uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4\\) .*\[\r\n\].* call7e \\(f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3\\) .*\[\r\n\].* call7d \\(l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1\\) .*\[\r\n\].* call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\) .*\[\r\n\].* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\) .*\[\r\n\].* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\) .*\[\r\n\].* main \\(.*\\) .*\[\r\n\].*" "backtrace from call7g"
  
      gdb_continue call7h
  
!     gdb_test "backtrace 100" ".* call7h \\(us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5\\) .*\[\r\n\].* call7g \\(d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b'\\) .*\[\r\n\].* call7f \\(uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4\\) .*\[\r\n\].* call7e \\(f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3\\) .*\[\r\n\].* call7d \\(l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1\\) .*\[\r\n\].* call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\) .*\[\r\n\].* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\) .*\[\r\n\].* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\) .*\[\r\n\].* main \\(.*\\) .*\[\r\n\].*" "backtrace from call7h"
  
      # monitor only allows 8 breakpoints; w89k board allows 10, so
      # break them up into two groups.
***************
*** 683,696 ****
  
      gdb_continue call7i
  
!     gdb_test "backtrace 100" " call7i \\(ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6\\).* call7h \\(us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5\\).* call7g \\(d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b'\\).* call7f \\(uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4\\).* call7e \\(f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3\\).* call7d \\(l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1\\).* call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\).* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\).* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\).* main \\(.*\\).*" "backtrace from call7i"
  
      # Continue; should stop at call7j and print actual arguments.
      # Print backtrace.
  
      gdb_continue call7j
  
!     gdb_test "backtrace 100" " call7j \\(ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8\\).* call7i \\(ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6\\).* call7h \\(us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5\\).* call7g \\(d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b'\\).* call7f \\(uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4\\).* call7e \\(f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3\\).* call7d \\(l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1\\).* call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\).* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\).* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\).* main \\(.*\\).*" "backtrace from call7j"
  
      # Continue; should stop at call7k and print actual arguments.
      # Print backtrace.
--- 749,762 ----
  
      gdb_continue call7i
  
!     gdb_test "backtrace 100" ".* call7i \\(ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6\\) .*\[\r\n\].* call7h \\(us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5\\) .*\[\r\n\].* call7g \\(d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b'\\) .*\[\r\n\].* call7f \\(uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4\\) .*\[\r\n\].* call7e \\(f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3\\) .*\[\r\n\].* call7d \\(l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1\\) .*\[\r\n\].* call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\) .*\[\r\n\].* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\) .*\[\r\n\].* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\) .*\[\r\n\].* main \\(.*\\) .*\[\r\n\].*" "backtrace from call7i"
  
      # Continue; should stop at call7j and print actual arguments.
      # Print backtrace.
  
      gdb_continue call7j
  
!     gdb_test "backtrace 100" ".* call7j \\(ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8\\) .*\[\r\n\].* call7i \\(ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6\\) .*\[\r\n\].* call7h \\(us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5\\) .*\[\r\n\].* call7g \\(d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b'\\) .*\[\r\n\].* call7f \\(uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4\\) .*\[\r\n\].* call7e \\(f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3\\) .*\[\r\n\].* call7d \\(l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1\\) .*\[\r\n\].* call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\) .*\[\r\n\].* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\) .*\[\r\n\].* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\) .*\[\r\n\].* main \\(.*\\) .*\[\r\n\].*" "backtrace from call7j"
  
      # Continue; should stop at call7k and print actual arguments.
      # Print backtrace.
***************
*** 698,704 ****
      gdb_continue call7k
  
      if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix*" }
!     gdb_test "backtrace 100" " call7k \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\).* call7j \\(ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8\\).* call7i \\(ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6\\).* call7h \\(us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5\\).* call7g \\(d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b'\\).* call7f \\(uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4\\).* call7e \\(f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3\\).* call7d \\(l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1\\).* call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\).* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\).* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\).* main \\(.*\\).*" "backtrace from call7k"
      gdb_stop_suppressing_tests;
  }
  
--- 764,770 ----
      gdb_continue call7k
  
      if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix*" }
!     gdb_test "backtrace 100" ".* call7k \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\) .*\[\r\n\].* call7j \\(ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8\\) .*\[\r\n\].* call7i \\(ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6\\) .*\[\r\n\].* call7h \\(us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5\\) .*\[\r\n\].* call7g \\(d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b'\\) .*\[\r\n\].* call7f \\(uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3, f=4\\) .*\[\r\n\].* call7e \\(f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1, l=3\\) .*\[\r\n\].* call7d \\(l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2, s=1\\) .*\[\r\n\].* call7c \\(s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a', i=2\\) .*\[\r\n\].* call7b \\(i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7, c=97 'a'\\) .*\[\r\n\].* call7a \\(c=97 'a', i=2, s=1, l=3, f=4, uc=98 'b', d=5, us=6, ul=8, ui=7\\) .*\[\r\n\].* main \\(.*\\) .*\[\r\n\].*" "backtrace from call7k"
      gdb_stop_suppressing_tests;
  }
  
***************
*** 729,735 ****
      # The a29k fails all of these tests, perhaps because the prologue
      # code is broken.
  	setup_xfail "a29k-*-udi"
! 	gdb_test "backtrace 100" " hitbottom \\(\\).* recurse \\(a=\{s = 0, i = 0, l = 0\}, depth=0\\).* recurse \\(a=\{s = 1, i = 1, l = 1\}, depth=1\\).* recurse \\(a=\{s = 2, i = 2, l = 2\}, depth=2\\).* recurse \\(a=\{s = 3, i = 3, l = 3\}, depth=3\\).* recurse \\(a=\{s = 4, i = 4, l = 4\}, depth=4\\).* test_struct_args \\(\\).* main \\(.*\\).*" "recursive passing of structs by value"
      } else {
  	fail "recursive passing of structs by value (sparclet)"
      }
--- 795,801 ----
      # The a29k fails all of these tests, perhaps because the prologue
      # code is broken.
  	setup_xfail "a29k-*-udi"
! 	gdb_test "backtrace 100" ".* hitbottom \\(\\) .*\[\r\n\].* recurse \\(a=\{s = 0, i = 0, l = 0\}, depth=0\\) .*\[\r\n\].* recurse \\(a=\{s = 1, i = 1, l = 1\}, depth=1\\) .*\[\r\n\].* recurse \\(a=\{s = 2, i = 2, l = 2\}, depth=2\\) .*\[\r\n\].* recurse \\(a=\{s = 3, i = 3, l = 3\}, depth=3\\) .*\[\r\n\].* recurse \\(a=\{s = 4, i = 4, l = 4\}, depth=4\\) .*\[\r\n\].* test_struct_args \\(\\) .*\[\r\n\].* main \\(.*\\) .*\[\r\n\]" "recursive passing of structs by value"
      } else {
  	fail "recursive passing of structs by value (sparclet)"
      }
***************
*** 859,868 ****
      send_gdb "finish\n"
      gdb_expect {
  	 -re "\\(\\*pointer_to_call0a\\) \\(c, s, i, l\\);.*First.*$gdb_prompt $" {
  	    send_gdb "step\n"
  	    exp_continue
  	}
! 	 -re "\\(\\*pointer_to_call0a\\) \\(c, s, i, l\\);.*Second.*$gdb_prompt $" {
  	    pass "finish from indirectly called function"
  	}
  	 -re ".*$gdb_prompt $" {
--- 925,936 ----
      send_gdb "finish\n"
      gdb_expect {
  	 -re "\\(\\*pointer_to_call0a\\) \\(c, s, i, l\\);.*First.*$gdb_prompt $" {
+ #On hppa2.0w-hp-hpux11.00, gdb finishes at one line earlier than 
+ #hppa1.1-hp-hpux11.00. Therefore, an extra "step" is necessary to continue the test.
  	    send_gdb "step\n"
  	    exp_continue
  	}
! 	 -re ".*\\(\\*pointer_to_call0a\\) \\(c, s, i, l\\);.*Second.*$gdb_prompt $" {
  	    pass "finish from indirectly called function"
  	}
  	 -re ".*$gdb_prompt $" {
***************
*** 922,928 ****
      send_gdb "step\n"
      gdb_expect {
  	 -re "main .* at.*$gdb_prompt $" {
! 	    pass "stepping back to main from function called with trampolines" ;
  	}
  	 -re "\}.*End of call_with_trampolines.*$gdb_prompt $" {
  	    send_gdb "step\n"
--- 990,997 ----
      send_gdb "step\n"
      gdb_expect {
  	 -re "main .* at.*$gdb_prompt $" {
! 	     pass "stepping back to main from function called with trampolines" ;
! 	     gdb_suppress_tests
  	}
  	 -re "\}.*End of call_with_trampolines.*$gdb_prompt $" {
  	    send_gdb "step\n"
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/interrupt.c gdb/testsuite/gdb.base/interrupt.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/interrupt.c	Fri Mar 24 14:06:09 1995
--- gdb/testsuite/gdb.base/interrupt.c	Thu Jun 24 20:28:05 1999
***************
*** 1,5 ****
--- 1,7 ----
  #include <errno.h>
  #include <stdio.h>
+ #include <unistd.h>
+ #include <stdlib.h>
  int
  main ()
  {
***************
*** 28,33 ****
--- 30,36 ----
        else
  	write (1, &x, 1);
      }
+   return 0;
  }
  
  int
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/interrupt.exp gdb/testsuite/gdb.base/interrupt.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/interrupt.exp	Fri Apr 10 22:42:32 1998
--- gdb/testsuite/gdb.base/interrupt.exp	Thu Jun 24 20:28:05 1999
***************
*** 105,111 ****
  		fail "child died when we called func1, skipped rest of tests"
  		return
  	    }
! 	    -re "$gdb_prompt $" { fail "call function when asleep (wrong output)" }
  	    default {
  
  		# This fail probably happens whenever we use /proc (we
--- 105,118 ----
  		fail "child died when we called func1, skipped rest of tests"
  		return
  	    }
! 	    -re "$gdb_prompt $" {
! 		# On HPUX-11.0 'send "p func1 ()"' above
! 		# terminates the program. A defect is pending on this
! 		# issue [defect #DTS CHFts24203]. Hence calling setup_xfail
! 		# below.
! 	        setup_xfail "hppa*-*-*11*"
! 		fail "call function when asleep (wrong output)"
! 	    }
  	    default {
  
  		# This fail probably happens whenever we use /proc (we
***************
*** 114,120 ****
  
  		setup_xfail "sparc*-*-solaris2*"
  		setup_xfail "mips-*-ultrix*"
- 		setup_xfail "hppa*-*-*"
  		setup_xfail "i386*-*-bsd*"
  		setup_xfail "i*86-*-solaris2*"
  		setup_xfail "*-*-sysv4*"
--- 121,126 ----
***************
*** 154,159 ****
--- 160,168 ----
  	# The optional leading \r\n is in case we sent a newline above
  	# to wake the program, in which case the program now sends it
  	# back.
+         # FIXME: The pattern below leads to an expected success on HPUX-11.0
+         # but the success is spurious. Need to provide the right reg.expr.
+         # here.
  	gdb_expect {
  	    -re "^(\r\n|)data\r\n(|data\r\n)$" { pass "echo data" }
  	    timeout { fail "echo data (timeout)" }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/jump.c gdb/testsuite/gdb.base/jump.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/jump.c	Mon Jan  4 07:34:31 1999
--- gdb/testsuite/gdb.base/jump.c	Thu Jun 24 20:28:18 1999
***************
*** 2,19 ****
     particularly deep about the functionality nor names in here.
     */
  
  static int square (x)
    int  x;
  {
    return x*x;
  }
  
  
! main ()
  {
    int i = 99;
  
    i++;
    i = square (i);
    i--;
  }
--- 2,24 ----
     particularly deep about the functionality nor names in here.
     */
  
+ #ifdef PROTOTYPES
+ static int square (int x)
+ #else
  static int square (x)
    int  x;
+ #endif
  {
    return x*x;
  }
  
  
! int main ()
  {
    int i = 99;
  
    i++;
    i = square (i);
    i--;
+   return 0;
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/jump.exp gdb/testsuite/gdb.base/jump.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/jump.exp	Mon Jan  4 13:35:26 1999
--- gdb/testsuite/gdb.base/jump.exp	Thu Jun 24 20:28:18 1999
***************
*** 56,65 ****
  # Set a breakpoint on the statement that we're about to jump to.
  # The statement doesn't contain a function call.
  #
! send_gdb "break 18\n"
  set bp_on_non_call 0
  gdb_expect {
!   -re "\[Bb\]reakpoint (\[0-9\]*) at 0x\[0-9a-fA-F\]*: file .*${srcfile}, line 18.*$gdb_prompt $"\
            {set bp_on_non_call $expect_out(1,string)
             pass "break before jump to non-call"}
    -re "$gdb_prompt $"\
--- 56,65 ----
  # Set a breakpoint on the statement that we're about to jump to.
  # The statement doesn't contain a function call.
  #
! send_gdb "break 22\n"
  set bp_on_non_call 0
  gdb_expect {
!   -re "\[Bb\]reakpoint (\[0-9\]*) at 0x\[0-9a-fA-F\]*: file .*${srcfile}, line 22.*$gdb_prompt $"\
            {set bp_on_non_call $expect_out(1,string)
             pass "break before jump to non-call"}
    -re "$gdb_prompt $"\
***************
*** 69,77 ****
  
  # Can we jump to the statement?  Do we stop there?
  #
! send_gdb "jump 18\n"
  gdb_expect {
!   -re "Breakpoint \[0-9\]*, .*${srcfile}:18.*$gdb_prompt $"\
            {pass "jump to non-call"}
    -re "$gdb_prompt $"\
            {fail "jump to non-call"}
--- 69,77 ----
  
  # Can we jump to the statement?  Do we stop there?
  #
! send_gdb "jump 22\n"
  gdb_expect {
!   -re "Breakpoint \[0-9\]*, .*${srcfile}:22.*$gdb_prompt $"\
            {pass "jump to non-call"}
    -re "$gdb_prompt $"\
            {fail "jump to non-call"}
***************
*** 81,90 ****
  # Set a breakpoint on the statement that we're about to jump to.
  # The statement does contain a function call.
  #
! send_gdb "break 17\n"
  set bp_on_call 0
  gdb_expect {
!   -re "\[Bb\]reakpoint (\[0-9\]*) at 0x\[0-9a-fA-F\]*: file .*${srcfile}, line 17.*$gdb_prompt $"\
            {set bp_on_call $expect_out(1,string)
             pass "break before jump to call"}
    -re "$gdb_prompt $"\
--- 81,90 ----
  # Set a breakpoint on the statement that we're about to jump to.
  # The statement does contain a function call.
  #
! send_gdb "break 21\n"
  set bp_on_call 0
  gdb_expect {
!   -re "\[Bb\]reakpoint (\[0-9\]*) at 0x\[0-9a-fA-F\]*: file .*${srcfile}, line 21.*$gdb_prompt $"\
            {set bp_on_call $expect_out(1,string)
             pass "break before jump to call"}
    -re "$gdb_prompt $"\
***************
*** 94,102 ****
  
  # Can we jump to the statement?  Do we stop there?
  #
! send_gdb "jump 17\n"
  gdb_expect {
!   -re "Breakpoint \[0-9\]*, .*${srcfile}:17.*$gdb_prompt $"\
            {pass "jump to call"}
    -re "$gdb_prompt $"\
            {fail "jump to call"}
--- 94,102 ----
  
  # Can we jump to the statement?  Do we stop there?
  #
! send_gdb "jump 21\n"
  gdb_expect {
!   -re "Breakpoint \[0-9\]*, .*${srcfile}:21.*$gdb_prompt $"\
            {pass "jump to call"}
    -re "$gdb_prompt $"\
            {fail "jump to call"}
***************
*** 114,122 ****
    timeout {fail "(timeout) disable breakpoint on call"}
  }
  
! send_gdb "jump 17\n"
  gdb_expect {
!   -re "Breakpoint \[0-9\]*, .*${srcfile}:18.*$gdb_prompt $"\
            {pass "jump to call with disabled breakpoint"}
    -re "$gdb_prompt $"\
            {fail "jump to call with disabled breakpoint"}
--- 114,122 ----
    timeout {fail "(timeout) disable breakpoint on call"}
  }
  
! send_gdb "jump 21\n"
  gdb_expect {
!   -re "Breakpoint \[0-9\]*, .*${srcfile}:22.*$gdb_prompt $"\
            {pass "jump to call with disabled breakpoint"}
    -re "$gdb_prompt $"\
            {fail "jump to call with disabled breakpoint"}
***************
*** 138,144 ****
  # Verify that GDB responds gracefully to the "jump" command with
  # trailing junk.
  #
! send_gdb "jump 17 100\n"
  gdb_expect {
    -re "Junk at end of line specification: 100.*$gdb_prompt $"\
            {pass "jump with trailing argument junk"}
--- 138,144 ----
  # Verify that GDB responds gracefully to the "jump" command with
  # trailing junk.
  #
! send_gdb "jump 21 100\n"
  gdb_expect {
    -re "Junk at end of line specification: 100.*$gdb_prompt $"\
            {pass "jump with trailing argument junk"}
***************
*** 154,162 ****
  #
  # Try it both ways: confirming and not confirming the jump.
  #
! send_gdb "jump 8\n"
  gdb_expect {
!   -re "Line 8 is not in `main'.  Jump anyway.*y or n. $"\
            {send_gdb "n\n"
             gdb_expect {
               -re "Not confirmed.*$gdb_prompt $"\
--- 154,162 ----
  #
  # Try it both ways: confirming and not confirming the jump.
  #
! send_gdb "jump 12\n"
  gdb_expect {
!   -re "Line 12 is not in `main'.  Jump anyway.*y or n. $"\
            {send_gdb "n\n"
             gdb_expect {
               -re "Not confirmed.*$gdb_prompt $"\
***************
*** 171,179 ****
    timeout {fail "(timeout) aborted jump out of current function"}
  }
  
! send_gdb "jump 8\n"
  gdb_expect {
!   -re "Line 8 is not in `main'.  Jump anyway.*y or n. $"\
            {send_gdb "y\n"
             gdb_expect {
               -re "Continuing at.*$gdb_prompt $"\
--- 171,179 ----
    timeout {fail "(timeout) aborted jump out of current function"}
  }
  
! send_gdb "jump 12\n"
  gdb_expect {
!   -re "Line 12 is not in `main'.  Jump anyway.*y or n. $"\
            {send_gdb "y\n"
             gdb_expect {
               -re "Continuing at.*$gdb_prompt $"\
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/langs.exp gdb/testsuite/gdb.base/langs.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/langs.exp	Tue Jan  5 13:58:18 1999
--- gdb/testsuite/gdb.base/langs.exp	Thu Jun 24 20:28:05 1999
***************
*** 49,54 ****
--- 49,56 ----
       gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
  }
  
+ set oldtimeout $timeout
+ set timeout 10
  
  
  
***************
*** 63,74 ****
  gdb_reinitialize_dir $srcdir/$subdir
  gdb_load $binfile
  
! gdb_test "b langs0" {Function "langs0" not defined\.} \
      "break on nonexistent function in langs.exp"
  
  if [runto csub] then {
  
!     gdb_test "show language" "currently c\".*" \
  	"show language at csub in langs.exp"
      # On some machines, foo doesn't get demangled because the N_SOL for
      # langs2.cxx is seen only after the function stab for foo.  So
--- 65,95 ----
  gdb_reinitialize_dir $srcdir/$subdir
  gdb_load $binfile
  
! gdb_test "b langs0" "Function \"langs0\" not defined\.|Breakpoint .* (deferred).*" \
      "break on nonexistent function in langs.exp"
  
+ if {$hp_aCC_compiler} {
+     set isfixed 1
+     set lang c\\+\\+
+     set ext cxx
+     set foo_func foo__Fi__Fi
+     set do_func do::langs0
+ } else {
+     if {$hp_cc_compiler} {
+         set isfixed 1
+         set lang c
+         set ext c
+     } else {
+         set isfixed 0
+     }
+     set foo_func foo__Fi
+     set do_func langs0__2do
+ }
+ 
  if [runto csub] then {
  
!     if { !$isfixed } { set lang c }
!     gdb_test "show language" "currently $lang\".*" \
  	"show language at csub in langs.exp"
      # On some machines, foo doesn't get demangled because the N_SOL for
      # langs2.cxx is seen only after the function stab for foo.  So
***************
*** 76,111 ****
      # even though only the latter is correct.  I haven't tried to xfail it
      # because it depends on details of the compiler.
      
!     if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" }
!     gdb_test "bt" "#0.*csub.*#1.*(foo|foo__Fi) \\(.*#2.*cppsub_ .*#3.*fsub.*#4.*langs0__2do \\(.*#5  \[0-9a-fx\]* in main.*" "backtrace in langs.exp"
  
      if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" }
!     gdb_test "up" ".* in (foo|foo__Fi) .* at langs2\\.cxx.*return csub \\(.*" \
  	"up to foo in langs.exp"
!     gdb_test "show language" "currently c\\+\\+.*" \
  	"show language at foo in langs.exp"
  
      if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" }
!     gdb_test "up" ".* in cppsub_ .* at langs2\\.cxx.*return foo \\(.*" \
  	"up to cppsub_ in langs.exp"
!     gdb_test "show language" "currently c\\+\\+.*" \
  	"show language at cppsub_ in langs.exp"
  
      if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" }
!     gdb_test "up" ".* in fsub.* at langs1\\.f.*return \\(cppsub .*" \
  	"up to fsub in langs.exp"
!     gdb_test "show language" "currently fortran.*" \
  	"show language at fsub in langs.exp"
  
!     if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" }
!     gdb_test "up" ".* in langs0__2do .* at .*langs0\\.c.*return fsub.*" \
  	"up to langs0__2do in langs.exp"
!     gdb_test "show language" "currently c\".*" \
  	"show language at langs0__2do in langs.exp"
  
      gdb_test "up" ".* in main .* at .*langs0\\.c.*if \\(langs0__2do \\(.*" \
  	"up to main in langs.exp"
!     gdb_test "show language" "currently c\".*" \
  	"show language at main in langs.exp"
  
      if [target_info exists gdb,noresults] { return }
--- 97,137 ----
      # even though only the latter is correct.  I haven't tried to xfail it
      # because it depends on details of the compiler.
      
!     # Take out xfail. This test has been passing for some time now.
!     #if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" }
!     gdb_test "bt" "#0.*csub.*#1.*(foo|$foo_func) \\(.*#2.*cppsub_ .*#3.*fsub.*#4.*$do_func \\(.*#5  \[0-9a-fx\]* in main.*" "backtrace in langs.exp"
  
+     if { !$isfixed } { set lang c\\+\\+; set ext cxx }
      if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" }
!     gdb_test "up" ".* in (foo|$foo_func).* at langs2\\.$ext.*return csub \\(.*" \
  	"up to foo in langs.exp"
!     gdb_test "show language" "currently $lang.*" \
  	"show language at foo in langs.exp"
  
      if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" }
!     gdb_test "up" ".* in cppsub_ .* at langs2\\.$ext.*return foo \\(.*" \
  	"up to cppsub_ in langs.exp"
!     gdb_test "show language" "currently $lang.*" \
  	"show language at cppsub_ in langs.exp"
  
+     if { !$isfixed } { set lang fortran }
      if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" }
!     gdb_test "up" ".* in fsub.* at langs1\\.f.*" \
  	"up to fsub in langs.exp"
!     gdb_test "show language" "currently $lang.*" \
  	"show language at fsub in langs.exp"
  
!     # Take out xfail. This test has been passing for sometime now.
!     #if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" }
!     if { !$isfixed } { set lang c }
!     gdb_test "up" ".* in $do_func .* at .*langs0\\.c.*return fsub.*" \
  	"up to langs0__2do in langs.exp"
!     gdb_test "show language" "currently $lang\".*" \
  	"show language at langs0__2do in langs.exp"
  
      gdb_test "up" ".* in main .* at .*langs0\\.c.*if \\(langs0__2do \\(.*" \
  	"up to main in langs.exp"
!     gdb_test "show language" "currently $lang\".*" \
  	"show language at main in langs.exp"
  
      if [target_info exists gdb,noresults] { return }
***************
*** 119,122 ****
--- 145,149 ----
      }
  }
  
+ set timeout $oldtimeout
  return 0
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/langs0.c gdb/testsuite/gdb.base/langs0.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/langs0.c	Fri Mar 31 16:17:14 1995
--- gdb/testsuite/gdb.base/langs0.c	Thu Jun 24 20:28:05 1999
***************
*** 1,8 ****
--- 1,14 ----
  /* This file is actually in C, it is not supposed to simulate something
     translated from another language or anything like that.  */
+ #ifdef PROTOTYPES
+ extern  int fsub_();
+ 
+ int csub (int x)
+ #else
  int
  csub (x)
       int x;
+ #endif
  {
    return x + 1;
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/langs1.c gdb/testsuite/gdb.base/langs1.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/langs1.c	Sun Feb 12 09:55:05 1995
--- gdb/testsuite/gdb.base/langs1.c	Thu Jun 24 20:28:06 1999
***************
*** 16,29 ****
--- 16,37 ----
  
  /* I am not sure whether there is a way to have a fortran program without */
  /* a MAIN, but it does not really harm us to have one. */
+ #ifdef PROTOTYPES
+ /* Main program */ void MAIN__()
+ #else
  /* Main program */ MAIN__()
+ #endif
  {
  } /* MAIN__ */
  
  #line 4 "langs1.f"
  /* Subroutine */ int fsub_()
  {
+ #ifdef PROTOTYPES
+     extern integer cppsub_(int*);
+ #else
      extern integer cppsub_();
+ #endif
  
  #line 5 "langs1.f"
  #line 6 "langs1.f"
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/langs2.c gdb/testsuite/gdb.base/langs2.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/langs2.c	Thu Mar  9 11:46:25 1995
--- gdb/testsuite/gdb.base/langs2.c	Thu Jun 24 20:28:06 1999
***************
*** 1,4 ****
--- 1,20 ----
  /* This is intended to be a vague simulation of cfront output.  */
+ #ifdef PROTOTYPES
+ #line 1 "langs2.cxx"
+ extern int csub (int);
+ int
+ foo__Fi (int x)
+ {
+   return csub (x / 2);
+ }
+ 
+ extern int cppsub_ (int *y);
+ int
+ cppsub_ (int * y)
+ {
+   return foo__Fi (*y);
+ }
+ #else 
  #line 1 "langs2.cxx"
  extern int csub ();
  int
***************
*** 13,15 ****
--- 29,32 ----
  {
    return foo__Fi (*y);
  }
+ #endif
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/list.exp gdb/testsuite/gdb.base/list.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/list.exp	Tue Jan  5 13:58:18 1999
--- gdb/testsuite/gdb.base/list.exp	Thu Jun 24 20:28:07 1999
***************
*** 84,89 ****
--- 84,91 ----
  
  proc test_listsize {} {
      global gdb_prompt
+     global hp_cc_compiler
+     global hp_aCC_compiler
  
      # Show default size
  
***************
*** 101,110 ****
  
      # Ensure we can limit printouts to one line
  
!     if [ set_listsize 1 ] then {
! 	setup_xfail "*-*-*"
  	gdb_test "list 1" "1\[ \t\]+#include \"list0.h\"" "list line 1 with listsize 1"
! 	setup_xfail "*-*-*"
  	gdb_test "list 2" "2\[ \t\]+" "list line 2 with listsize 1"
      }    
  
--- 103,112 ----
  
      # Ensure we can limit printouts to one line
  
!     if [set_listsize 1] {
!         if {!$hp_cc_compiler && !$hp_aCC_compiler} { setup_xfail "*-*-*" }
  	gdb_test "list 1" "1\[ \t\]+#include \"list0.h\"" "list line 1 with listsize 1"
!         if {!$hp_cc_compiler && !$hp_aCC_compiler} { setup_xfail "*-*-*" }
  	gdb_test "list 2" "2\[ \t\]+" "list line 2 with listsize 1"
      }    
  
***************
*** 113,119 ****
      if [ set_listsize 2 ] {
  	gdb_test "list 1" "1\[ \t\]+#include \"list0.h\"" "list line 1 with listsize 2"
  	gdb_test "list 2" "1\[ \t\]+#include \"list0.h\"\r\n2\[ \t\]+" "list line 2 with listsize 2"
! 	gdb_test "list 3" "2\[ \t\]+\r\n3\[ \t\]+main \[)(\]+" "list line 3 with listsize 2"
      }
  
      # Try small listsize > 1 that is an odd number
--- 115,121 ----
      if [ set_listsize 2 ] {
  	gdb_test "list 1" "1\[ \t\]+#include \"list0.h\"" "list line 1 with listsize 2"
  	gdb_test "list 2" "1\[ \t\]+#include \"list0.h\"\r\n2\[ \t\]+" "list line 2 with listsize 2"
! 	gdb_test "list 3" "2\[ \t\]+\r\n3\[ \t\]+int main \[)(\]+" "list line 3 with listsize 2"
      }
  
      # Try small listsize > 1 that is an odd number
***************
*** 121,138 ****
      if [ set_listsize 3 ] {
  	setup_xfail "*-*-*"
  	gdb_test "list 1" "1\[ \t\]+#include \"list0.h\"2\[ \t\]+" "list line 1 with listsize 3"
! 	setup_xfail "*-*-*"
! 	gdb_test "list 2" "1\[ \t\]+#include \"list0.h\".*3\[ \t\]+main \[)(\]+" "list line 2 with listsize 3"
  	
! 	setup_xfail "*-*-*"
! 	gdb_test "list 3" "2\[ \t\]+\r\n3\[ \t\]+main \[(\]+\[)\]+\r\n4\[ \t\]+\{" "list line 3 with listsize 3"
      }
  
      # Try small listsize > 2 that is an even number.
  
      if [ set_listsize 4 ] then {
  	gdb_test "list 1" "1\[ \t\]+#include \"list0.h\"\r\n2\[ \t\]+" "list line 1 with listsize 4"
! 	gdb_test "list 2" "1\[ \t\]+#include \"list0.h\".*3\[ \t\]+main \[)(\]+" "list line 2 with listsize 4"
  	
  	gdb_test "list 3" "1\[ \t\]+#include \"list0.h\".*4\[ \t\]+\{" "list line 3 with listsize 4"
  	gdb_test "list 4" "2\[ \t\]+\r\n.*5\[ \t\]+int x;.*" "list line 4 with listsize 4"
--- 123,140 ----
      if [ set_listsize 3 ] {
  	setup_xfail "*-*-*"
  	gdb_test "list 1" "1\[ \t\]+#include \"list0.h\"2\[ \t\]+" "list line 1 with listsize 3"
!         if {!$hp_cc_compiler && !$hp_aCC_compiler} { setup_xfail "*-*-*" }
! 	gdb_test "list 2" "1\[ \t\]+#include \"list0.h\".*3\[ \t\]+int main \[)(\]+" "list line 2 with listsize 3"
  	
!         if {!$hp_cc_compiler && !$hp_aCC_compiler} { setup_xfail "*-*-*" }
! 	gdb_test "list 3" "2\[ \t\]+\r\n3\[ \t\]+int main \[(\]+\[)\]+\r\n4\[ \t\]+\{" "list line 3 with listsize 3"
      }
  
      # Try small listsize > 2 that is an even number.
  
      if [ set_listsize 4 ] then {
  	gdb_test "list 1" "1\[ \t\]+#include \"list0.h\"\r\n2\[ \t\]+" "list line 1 with listsize 4"
! 	gdb_test "list 2" "1\[ \t\]+#include \"list0.h\".*3\[ \t\]+int main \[)(\]+" "list line 2 with listsize 4"
  	
  	gdb_test "list 3" "1\[ \t\]+#include \"list0.h\".*4\[ \t\]+\{" "list line 3 with listsize 4"
  	gdb_test "list 4" "2\[ \t\]+\r\n.*5\[ \t\]+int x;.*" "list line 4 with listsize 4"
***************
*** 141,149 ****
      # Try a size larger than the entire file.
  
      if [ set_listsize 100 ] then {
! 	gdb_test "list 1" "1\[ \t\]+#include \"list0.h\".*\r\n42\[ \t\]+\}" "list line 1 with listsize 100"
  	
! 	gdb_test "list 10" "1\[ \t\]+#include \"list0.h\".*\r\n42\[ \t\]+\}" "list line 10 with listsize 100"
      }
  
      # Try listsize of 0 which suppresses printing.
--- 143,151 ----
      # Try a size larger than the entire file.
  
      if [ set_listsize 100 ] then {
! 	gdb_test "list 1" "1\[ \t\]+#include \"list0.h\".*\r\n4\[23\]\[ \t\]+\}" "list line 1 with listsize 100"
  	
! 	gdb_test "list 10" "1\[ \t\]+#include \"list0.h\".*\r\n4\[23\]\[ \t\]+\}" "list line 10 with listsize 100"
      }
  
      # Try listsize of 0 which suppresses printing.
***************
*** 168,179 ****
      setup_xfail "a29k-*-udi"
      setup_xfail_format "DWARF 1"
      setup_xfail_format "COFF"
!     gdb_test "list list0.h:1" "1\[ \t\]+/\[*\]+ An include file .*5\[ \t\]+foo \[(\]+x\[)\]+" "list line 1 in include file"
  
      setup_xfail "a29k-*-udi"
      setup_xfail_format "DWARF 1"
      setup_xfail_format "COFF"
!     gdb_test "list list0.h:100" "Line number 95 out of range; .*list0.h has 36 lines." "list message for lines past EOF"
  }
  
  #
--- 170,181 ----
      setup_xfail "a29k-*-udi"
      setup_xfail_format "DWARF 1"
      setup_xfail_format "COFF"
!     gdb_test "list list0.h:1" "1\[ \t\]+/\[*\]+ An include file .*4\[ \t\]+.*foo \(.*x.*\).*" "list line 1 in include file"
  
      setup_xfail "a29k-*-udi"
      setup_xfail_format "DWARF 1"
      setup_xfail_format "COFF"
!     gdb_test "list list0.h:100" "Line number 95 out of range; .*list0.h has 3\[67\] lines." "list message for lines past EOF"
  }
  
  #
***************
*** 203,209 ****
      }
      send_gdb "list list1.c:1\n"
      gdb_expect {
! 	-re "1\[ \t\]+void.*5\[ \t\]+printf \[(\]+.*\[)\]+;\r\n$gdb_prompt $" {
  	    incr testcnt 
  	}
  	-re ".*$gdb_prompt $" { fail "list list1.c:1" ; gdb_suppress_tests }
--- 205,211 ----
      }
      send_gdb "list list1.c:1\n"
      gdb_expect {
! 	-re "1\[ \t\]+\#include.*4\[ \t\]+.*int oof\[ \t\]*\(.*\);\r\n.*$gdb_prompt $" {
  	    incr testcnt 
  	}
  	-re ".*$gdb_prompt $" { fail "list list1.c:1" ; gdb_suppress_tests }
***************
*** 211,217 ****
      }
      send_gdb "list list1.c:12\n"
      gdb_expect {
! 	-re "7\[ \t\]+long_line \[(\]+.*\[)\]+;.*14\[ \t\]+\}\r\n.*$gdb_prompt $" {
  	    incr testcnt 
  	}
  	-re ".*$gdb_prompt $" { fail "list list1.c:12" ; gdb_suppress_tests }
--- 213,219 ----
      }
      send_gdb "list list1.c:12\n"
      gdb_expect {
! 	-re "12\[ \t\]+long_line \[(\]+.*\[)\]+;.*13\[ \t\]+\}\r\n.*$gdb_prompt $" {
  	    incr testcnt 
  	}
  	-re ".*$gdb_prompt $" { fail "list list1.c:12" ; gdb_suppress_tests }
***************
*** 237,243 ****
  
      # Ultrix gdb takes the second case below; it's also correct.
      # SunPRO cc is the third case.
!     gdb_test "list bar" "(1\[ \t\]+void.*7\[ \t\]*long_line ..;.*9\[ \t\]*|1\[ \t\]+void.*8\[ \t\]+\}|1\[ \t\]+void.*7\[ \t\]*long_line ..;)" "list function in source file 2"
  
      # Test "list function" for C include file
      # Ultrix gdb is the second case, still correct.
--- 239,245 ----
  
      # Ultrix gdb takes the second case below; it's also correct.
      # SunPRO cc is the third case.
!     gdb_test "list bar" "(4\[ \t\]+void.*\[ \t\]*long_line.*;.*bar.*9\[ \t\]*.*|1\[ \t\]+void.*8\[ \t\]+\}|1\[ \t\]+void.*7\[ \t\]*long_line ..;|7\[ \t\]+void.*14\[ \t\]+\})" "list function in source file 2"
  
      # Test "list function" for C include file
      # Ultrix gdb is the second case, still correct.
***************
*** 275,281 ****
  
      send_gdb "list\n"
      gdb_expect {
! 	-re "35\[ \t\]+foo \[(\]+.*\[)\]+;.*42\[ \t\]+\}\r\n$gdb_prompt $" { incr testcnt }
  	-re ".*$gdb_prompt $" { fail "list 35-42" ; gdb_suppress_tests }
  	timeout { fail "list 35-42 (timeout)" ; gdb_suppress_tests }
      }
--- 277,283 ----
  
      send_gdb "list\n"
      gdb_expect {
! 	-re "35\[ \t\]+foo \\(.*\\);.*42\[ \t\]+.*\}\r\n$gdb_prompt $" { incr testcnt }
  	-re ".*$gdb_prompt $" { fail "list 35-42" ; gdb_suppress_tests }
  	timeout { fail "list 35-42 (timeout)" ; gdb_suppress_tests }
      }
***************
*** 291,297 ****
  
      send_gdb "list list0.c:33\n"
      gdb_expect {
! 	-re "28\[ \t\]+foo \[(\]+.*\[)\]+;.*37\[ \t\]+\r\n$gdb_prompt $" { incr testcnt }
  	-re ".*$gdb_prompt $" { fail "list list0.c:33" ; gdb_suppress_tests }
  	timeout { fail "list list0.c:33 (timeout)" ; gdb_suppress_tests }
      }
--- 293,299 ----
  
      send_gdb "list list0.c:33\n"
      gdb_expect {
! 	-re "28\[ \t\]+foo \\(.*\\);.*37\[ \t\]+\}\r\n$gdb_prompt $" { incr testcnt }
  	-re ".*$gdb_prompt $" { fail "list list0.c:33" ; gdb_suppress_tests }
  	timeout { fail "list list0.c:33 (timeout)" ; gdb_suppress_tests }
      }
***************
*** 328,344 ****
  proc test_list_range {} {
      global gdb_prompt
  
!     gdb_test "list list0.c:2,list0.c:5" "2\[ \t\]+\r\n3\[ \t\]+main \[)(\]+.*5\[ \t\]+int x;" "list range; filename:line1,filename:line2"
  
!     gdb_test "list 2,5" "2\[ \t\]+\r\n3\[ \t\]+main \[)(\]+.*5\[ \t\]+int x;" "list range; line1,line2"
  
  #    gdb_test     "list -1,6" 	"Line number 0 out of range; .*list0.c has 39 lines." "list range; lower bound negative"
  
  #    gdb_test     "list -100,-40" 	"Line number -60 out of range; .*list0.c has 39 lines." "list range; both bounds negative"
  
!     gdb_test "list 30,43" "30\[ \t\]+foo \[(\]+.*\[)\]+;.*42\[ \t\]+\}" "list range; upper bound past EOF"
  
!     gdb_test "list 43,100" "Line number 43 out of range; .*list0.c has 42 lines." "list range; both bounds past EOF"
  
      gdb_test "list list0.c:2,list1.c:17" "Specified start and end are in different files." "list range, must be same files"
  }
--- 330,346 ----
  proc test_list_range {} {
      global gdb_prompt
  
!     gdb_test "list list0.c:2,list0.c:5" "2\[ \t\]+\r\n3\[ \t\]+int main \[)(\]+.*5\[ \t\]+int x;" "list range; filename:line1,filename:line2"
  
!     gdb_test "list 2,5" "2\[ \t\]+\r\n3\[ \t\]+int main \[)(\]+.*5\[ \t\]+int x;" "list range; line1,line2"
  
  #    gdb_test     "list -1,6" 	"Line number 0 out of range; .*list0.c has 39 lines." "list range; lower bound negative"
  
  #    gdb_test     "list -100,-40" 	"Line number -60 out of range; .*list0.c has 39 lines." "list range; both bounds negative"
  
!     gdb_test "list 30,45" "30\[ \t\]+foo \(.*\);.*43\[ \t\]+\}" "list range; upper bound past EOF"
  
!     gdb_test "list 45,100" "Line number 45 out of range; .*list0.c has 43 lines." "list range; both bounds past EOF"
  
      gdb_test "list list0.c:2,list1.c:17" "Specified start and end are in different files." "list range, must be same files"
  }
***************
*** 375,381 ****
      setup_xfail "rs6000-*-aix*"
      send_gdb "list list0.c:unused\n"
      gdb_expect {
! 	-re "36\[ \t\]+\}.*42\[ \t\]+\}\r\n$gdb_prompt $" {
  	    incr testcnt
  	}
  	-re "37.*42\[ \t\]+\}\r\n$gdb_prompt $" {
--- 377,383 ----
      setup_xfail "rs6000-*-aix*"
      send_gdb "list list0.c:unused\n"
      gdb_expect {
! 	-re "40\[ \t\]+unused.*43\[ \t\]+\}\r\n$gdb_prompt $" {
  	    incr testcnt
  	}
  	-re "37.*42\[ \t\]+\}\r\n$gdb_prompt $" {
***************
*** 417,429 ****
      # a29k-amd-udi is the third case.
      send_gdb "list list1.c:bar\n"
      gdb_expect {
! 	-re "1\[ \t\]+void.*8\[ \t\]+\}\r\n$gdb_prompt $" {
  	    incr testcnt
  	}
! 	-re "1\[ \t\]+void.*7\[ \t\]*long_line ..;\r\n$gdb_prompt $" {
  	    incr testcnt
  	}
! 	-re "1\[ \t\]+void.*9\[ \t\]*\r\n$gdb_prompt $" {
  	    incr testcnt
  	}
  	-re ".*$gdb_prompt $" { fail "list list1.c:bar" }
--- 419,431 ----
      # a29k-amd-udi is the third case.
      send_gdb "list list1.c:bar\n"
      gdb_expect {
! 	-re "4\[ \t\]+void.*13\[ \t\]+\}\r\n$gdb_prompt $" {
  	    incr testcnt
  	}
! 	-re "4\[ \t\]+void.*12\[ \t\]*long_line ..;\r\n$gdb_prompt $" {
  	    incr testcnt
  	}
! 	-re "4\[ \t\]+void.*11\[ \t\]*\r\n$gdb_prompt $" {
  	    incr testcnt
  	}
  	-re ".*$gdb_prompt $" { fail "list list1.c:bar" }
***************
*** 437,446 ****
      setup_xfail "rs6000-*-aix*"
      send_gdb "list list1.c:unused\n"
      gdb_expect {
! 	-re "7\[ \t\]+long_line \[(\]\[)\];.*14\[ \t\]+\}\r\n.*$gdb_prompt $" {
  	    incr testcnt
  	}
! 	-re "9.*14\[ \t\]+\}\r\n.*$gdb_prompt $" {
  	    incr testcnt
  	}
  	-re ".*$gdb_prompt $" { fail "list list1.c:unused" }
--- 439,448 ----
      setup_xfail "rs6000-*-aix*"
      send_gdb "list list1.c:unused\n"
      gdb_expect {
! 	-re "12\[ \t\]+long_line \[(\]\[)\];.*13\[ \t\]+\}\r\n.*$gdb_prompt $" {
  	    incr testcnt
  	}
! 	-re "14.*19\[ \t\]+\}\r\n.*$gdb_prompt $" {
  	    incr testcnt
  	}
  	-re ".*$gdb_prompt $" { fail "list list1.c:unused" }
***************
*** 463,472 ****
  
      gdb_test "list list0.c:foo" "Function \"foo\" not defined in .*list0.c" "list filename:function; wrong filename rejected"
  
!     gdb_test "list foobar.c:main" "No source file named foobar.c." "list filename:function; nonexistant file"
  
      setup_xfail_format "DWARF 1"
!     gdb_test "list list0.h:foobar" "Function \"foobar\" not defined." "list filename:function; nonexistant function"
  
  }
  
--- 465,474 ----
  
      gdb_test "list list0.c:foo" "Function \"foo\" not defined in .*list0.c" "list filename:function; wrong filename rejected"
  
!     gdb_test "list foobar.c:main" "No source file named foobar.c.|Location not found" "list filename:function; nonexistant file"
  
      setup_xfail_format "DWARF 1"
!     gdb_test "list list0.h:foobar" "Function \"foobar\" not defined.|Location not found" "list filename:function; nonexistant function"
  
  }
  
***************
*** 478,488 ****
  	# lines 20-23.  This depends on whether the line number of a function
  	# is considered to be the openbrace or the first statement--either one
  	# is acceptable.
! 	gdb_test "list long_line" "20\[ \t\]+long_line .*"
  
  	gdb_test "search 4321" " not found"
  
! 	gdb_test "search 6789" "24\[ \t\]+oof .6789.;"
  
  	# Test that GDB won't crash if the line being searched is extremely long.
  
--- 480,490 ----
  	# lines 20-23.  This depends on whether the line number of a function
  	# is considered to be the openbrace or the first statement--either one
  	# is acceptable.
! 	gdb_test "list long_line" "24\[ \t\]+long_line .*"
  
  	gdb_test "search 4321" " not found"
  
! 	gdb_test "search 6789" "28\[ \t\]+oof .6789.;"
  
  	# Test that GDB won't crash if the line being searched is extremely long.
  
***************
*** 519,521 ****
--- 521,525 ----
      test_list_filename_and_function
      test_forward_search
  }
+ 
+ remote_exec build "rm -f list0.h"
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/list0.c gdb/testsuite/gdb.base/list0.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/list0.c	Thu Mar 30 16:42:41 1995
--- gdb/testsuite/gdb.base/list0.c	Thu Jun 24 20:28:07 1999
***************
*** 1,6 ****
  #include "list0.h"
  
! main ()
  {
      int x;
  #ifdef usestubs
--- 1,6 ----
  #include "list0.h"
  
! int main ()
  {
      int x;
  #ifdef usestubs
***************
*** 33,38 ****
--- 33,39 ----
      foo (x++);
      foo (x++);
      foo (x++);
+     return 0;
  }
  
  static void
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/list0.h gdb/testsuite/gdb.base/list0.h
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/list0.h	Mon Jun  6 18:56:51 1994
--- gdb/testsuite/gdb.base/list0.h	Thu Jun 24 20:28:07 1999
***************
*** 1,9 ****
! /* 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++);
--- 1,10 ----
! /* An include file that actually causes code to be generated in the including file.  This is known to cause problems on some systems. */
! #ifdef PROTOTYPES
! extern void bar(int);
! static void foo (int x)
! #else
! static void foo (x) int x;
! #endif
  {
      bar (x++);
      bar (x++);
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/list1.c gdb/testsuite/gdb.base/list1.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/list1.c	Mon Jan 30 11:53:47 1995
--- gdb/testsuite/gdb.base/list1.c	Thu Jun 24 20:28:07 1999
***************
*** 1,6 ****
! void
! bar (x)
! int x;
  {
      printf ("%d\n", x);
  
--- 1,11 ----
! #include <stdio.h>
! 
! #ifdef PROTOTYPES
! void long_line (); int oof (int);
! void bar (int x)
! #else
! void bar (x) int x;
! #endif
  {
      printf ("%d\n", x);
  
***************
*** 12,22 ****
  {
      /* Not used for anything */
  }
! 
! 
! /* This routine has a very long line that will break searching in older
!    versions of GDB.  */
! 
  long_line ()
  {
    oof (67);
--- 17,26 ----
  {
      /* Not used for anything */
  }
! /* This routine has a very long line that will break searching in older versions of GDB.  */
! #ifdef PROTOTYPES
! void
! #endif
  long_line ()
  {
    oof (67);
***************
*** 25,33 ****
  
    oof (12);  oof (12);  oof (12);  oof (12);  oof (12);  oof (12); /*    */      oof (12);  oof (12);  oof (12);  oof (12);  oof (12);  oof (12); /*    */      oof (12);  oof (12);  oof (12);  oof (12);  oof (12);  oof (12); /*    */      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;
  }
--- 29,39 ----
  
    oof (12);  oof (12);  oof (12);  oof (12);  oof (12);  oof (12); /*    */      oof (12);  oof (12);  oof (12);  oof (12);  oof (12);  oof (12); /*    */      oof (12);  oof (12);  oof (12);  oof (12);  oof (12);  oof (12); /*    */      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 */
  }
! #ifdef PROTOTYPES
! int oof (int n)
! #else
! oof (n) int n;
! #endif
  {
    return n + 1;
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/logical.exp gdb/testsuite/gdb.base/logical.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/logical.exp	Mon Jan  4 13:35:26 1999
--- gdb/testsuite/gdb.base/logical.exp	Thu Jun 24 20:28:23 1999
***************
*** 44,50 ****
--- 44,60 ----
       gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
      }
  
+ if [get_compiler_info ${binfile}] {
+     return -1;
+ }
  
+ if {$hp_aCC_compiler} {
+     set true true
+     set false false
+ } else {
+     set true 1
+     set false 0
+ }
  
  gdb_exit
  gdb_start
***************
*** 102,108 ****
  
  send_gdb "print x && y\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x<y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y" }
--- 112,118 ----
  
  send_gdb "print x && y\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x<y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y" }
***************
*** 113,119 ****
  
  send_gdb "print x || y\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x<=y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<=y" }
--- 123,129 ----
  
  send_gdb "print x || y\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x<=y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<=y" }
***************
*** 122,128 ****
  
  send_gdb "print !x\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x>y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>y" }
--- 132,138 ----
  
  send_gdb "print !x\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x>y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>y" }
***************
*** 133,139 ****
  
  send_gdb "print x && y\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x<y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y" }
--- 143,149 ----
  
  send_gdb "print x && y\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x<y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y" }
***************
*** 144,150 ****
  
  send_gdb "print x || y\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x<=y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<=y" }
--- 154,160 ----
  
  send_gdb "print x || y\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x<=y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<=y" }
***************
*** 155,161 ****
  
  send_gdb "print x && y\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x<y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y" }
--- 165,171 ----
  
  send_gdb "print x && y\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x<y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y" }
***************
*** 166,172 ****
  
  send_gdb "print x || y\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x<=y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<=y" }
--- 176,182 ----
  
  send_gdb "print x || y\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x<=y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<=y" }
***************
*** 175,181 ****
  
  send_gdb "print !x\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x>y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>y" }
--- 185,191 ----
  
  send_gdb "print !x\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x>y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>y" }
***************
*** 186,192 ****
  
  send_gdb "print x && y\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x<y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y" }
--- 196,202 ----
  
  send_gdb "print x && y\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x<y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y" }
***************
*** 197,203 ****
  
  send_gdb "print x || y\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x<=y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<=y" }
--- 207,213 ----
  
  send_gdb "print x || y\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x<=y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<=y" }
***************
*** 216,222 ****
  
  send_gdb "print x && y && z\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x &&  y && z (000)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x && y && z (000) " }
--- 226,232 ----
  
  send_gdb "print x && y && z\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x &&  y && z (000)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x && y && z (000) " }
***************
*** 225,231 ****
  
  send_gdb "print x || y || z\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x || y || z (000)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x || y || z (000)" }
--- 235,241 ----
  
  send_gdb "print x || y || z\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x || y || z (000)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x || y || z (000)" }
***************
*** 234,240 ****
  
  send_gdb "print !!x\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of !!x (0)"
        }
      -re ".*$gdb_prompt $" { fail "print value of !!x (0)" }
--- 244,250 ----
  
  send_gdb "print !!x\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of !!x (0)"
        }
      -re ".*$gdb_prompt $" { fail "print value of !!x (0)" }
***************
*** 246,252 ****
  
  send_gdb "print x && y && z\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x &&  y && z (010)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x && y && z (010) " }
--- 256,262 ----
  
  send_gdb "print x && y && z\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x &&  y && z (010)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x && y && z (010) " }
***************
*** 255,261 ****
  
  send_gdb "print x || y || z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x || y || z (010)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x || y || z (010)" }
--- 265,271 ----
  
  send_gdb "print x || y || z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x || y || z (010)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x || y || z (010)" }
***************
*** 267,273 ****
  
  send_gdb "print x && y && z\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x &&  y && z (011)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x && y && z (011) " }
--- 277,283 ----
  
  send_gdb "print x && y && z\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x &&  y && z (011)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x && y && z (011) " }
***************
*** 276,282 ****
  
  send_gdb "print x || y || z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x || y || z (011)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x || y || z (011)" }
--- 286,292 ----
  
  send_gdb "print x || y || z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x || y || z (011)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x || y || z (011)" }
***************
*** 288,294 ****
  
  send_gdb "print x && y && z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x &&  y && z (111)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x && y && z (111) " }
--- 298,304 ----
  
  send_gdb "print x && y && z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x &&  y && z (111)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x && y && z (111) " }
***************
*** 297,303 ****
  
  send_gdb "print x || y || z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x || y || z (111)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x || y || z (111)" }
--- 307,313 ----
  
  send_gdb "print x || y || z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x || y || z (111)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x || y || z (111)" }
***************
*** 306,312 ****
  
  send_gdb "print !!x\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of !!x (1)"
        }
      -re ".*$gdb_prompt $" { fail "print value of !!x (1)" }
--- 316,322 ----
  
  send_gdb "print !!x\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of !!x (1)"
        }
      -re ".*$gdb_prompt $" { fail "print value of !!x (1)" }
***************
*** 318,324 ****
  
  send_gdb "print x && y && z\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x &&  y && z (110)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x && y && z (110) " }
--- 328,334 ----
  
  send_gdb "print x && y && z\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x &&  y && z (110)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x && y && z (110) " }
***************
*** 327,333 ****
  
  send_gdb "print x || y || z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x || y || z (110)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x || y || z (110)" }
--- 337,343 ----
  
  send_gdb "print x || y || z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x || y || z (110)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x || y || z (110)" }
***************
*** 341,347 ****
  
  send_gdb "print x && y && z\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x &&  y && z (100)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x && y && z (100) " }
--- 351,357 ----
  
  send_gdb "print x && y && z\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x &&  y && z (100)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x && y && z (100) " }
***************
*** 350,356 ****
  
  send_gdb "print x || y || z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x || y || z (100)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x || y || z (100)" }
--- 360,366 ----
  
  send_gdb "print x || y || z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x || y || z (100)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x || y || z (100)" }
***************
*** 364,370 ****
  
  send_gdb "print x && y && z\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x &&  y && z (101)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x && y && z (101) " }
--- 374,380 ----
  
  send_gdb "print x && y && z\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x &&  y && z (101)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x && y && z (101) " }
***************
*** 373,379 ****
  
  send_gdb "print x || y || z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x || y || z (101)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x || y || z (101)" }
--- 383,389 ----
  
  send_gdb "print x || y || z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x || y || z (101)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x || y || z (101)" }
***************
*** 385,391 ****
  
  send_gdb "print x && y && z\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x &&  y && z (001)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x && y && z (001) " }
--- 395,401 ----
  
  send_gdb "print x && y && z\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x &&  y && z (001)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x && y && z (001) " }
***************
*** 394,400 ****
  
  send_gdb "print x || y || z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x || y || z (001)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x || y || z (001)" }
--- 404,410 ----
  
  send_gdb "print x || y || z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x || y || z (001)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x || y || z (001)" }
***************
*** 409,415 ****
  
  send_gdb "print !x && y\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of !x && y  (00)"
        }
      -re ".*$gdb_prompt $" { fail "print value of  !x && y (00)" }
--- 419,425 ----
  
  send_gdb "print !x && y\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of !x && y  (00)"
        }
      -re ".*$gdb_prompt $" { fail "print value of  !x && y (00)" }
***************
*** 422,428 ****
  
  send_gdb "print !x && y\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of !x && y  (10)"
        }
      -re ".*$gdb_prompt $" { fail "print value of  !x && y (10)" }
--- 432,438 ----
  
  send_gdb "print !x && y\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of !x && y  (10)"
        }
      -re ".*$gdb_prompt $" { fail "print value of  !x && y (10)" }
***************
*** 436,442 ****
  
  send_gdb "print !x || y\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of !x || y  (11)"
        }
      -re ".*$gdb_prompt $" { fail "print value of  !x || y (11)" }
--- 446,452 ----
  
  send_gdb "print !x || y\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of !x || y  (11)"
        }
      -re ".*$gdb_prompt $" { fail "print value of  !x || y (11)" }
***************
*** 449,455 ****
  
  send_gdb "print !x || y\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of !x || y  (01)"
        }
      -re ".*$gdb_prompt $" { fail "print value of  !x || y (01)" }
--- 459,465 ----
  
  send_gdb "print !x || y\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of !x || y  (01)"
        }
      -re ".*$gdb_prompt $" { fail "print value of  !x || y (01)" }
***************
*** 463,469 ****
  
  send_gdb "print x || y && z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x || y && z  (110)"
        }
      -re ".*$gdb_prompt $" { fail "print value of  x || y && z (110)" }
--- 473,479 ----
  
  send_gdb "print x || y && z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x || y && z  (110)"
        }
      -re ".*$gdb_prompt $" { fail "print value of  x || y && z (110)" }
***************
*** 476,482 ****
  
  send_gdb "print x || y && z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x || y && z (100)"
        }
      -re ".*$gdb_prompt $" { fail "print value of  x || y && z (100)" }
--- 486,492 ----
  
  send_gdb "print x || y && z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x || y && z (100)"
        }
      -re ".*$gdb_prompt $" { fail "print value of  x || y && z (100)" }
***************
*** 489,500 ****
  
  send_gdb "print x || !y && z\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          
           gdb_test "set variable x=1" "" "set variable x=1"
           send_gdb "print x || !y && z\n"
           gdb_expect {
!              -re ".*1.*$gdb_prompt $" {
                    pass "print value of x || !y && z "
               }
               -re ".*$gdb_prompt $" { fail "print value of  x || !y && z" }
--- 499,510 ----
  
  send_gdb "print x || !y && z\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          
           gdb_test "set variable x=1" "" "set variable x=1"
           send_gdb "print x || !y && z\n"
           gdb_expect {
!              -re ".*$true.*$gdb_prompt $" {
                    pass "print value of x || !y && z "
               }
               -re ".*$gdb_prompt $" { fail "print value of  x || !y && z" }
***************
*** 517,523 ****
  
  send_gdb "print x > y || w == z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x > y || w == z"
        }
      -re ".*$gdb_prompt $" { fail "print value of  x > y || w == z" }
--- 527,533 ----
  
  send_gdb "print x > y || w == z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x > y || w == z"
        }
      -re ".*$gdb_prompt $" { fail "print value of  x > y || w == z" }
***************
*** 533,539 ****
  
  send_gdb "print x >= y && w != z\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x >= y || w != z"
        }
      -re ".*$gdb_prompt $" { fail "print value of  x >= y || w != z" }
--- 543,549 ----
  
  send_gdb "print x >= y && w != z\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x >= y || w != z"
        }
      -re ".*$gdb_prompt $" { fail "print value of  x >= y || w != z" }
***************
*** 550,556 ****
  
  send_gdb "print ! x > y || w + z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x > y || w != z"
        }
      -re ".*$gdb_prompt $" { fail "print value of  x > y || w != z" }
--- 560,566 ----
  
  send_gdb "print ! x > y || w + z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x > y || w != z"
        }
      -re ".*$gdb_prompt $" { fail "print value of  x > y || w != z" }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/long_long.c gdb/testsuite/gdb.base/long_long.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/long_long.c	Thu Feb  4 16:59:27 1999
--- gdb/testsuite/gdb.base/long_long.c	Thu Jun 24 20:28:18 1999
***************
*** 7,14 ****
--- 7,18 ----
   * cc +e +DA2.0 -g -o long_long long_long.c
   */
  
+ #ifdef PROTOTYPES
+ long long callee(long long i)
+ #else
  long long callee( i )
  long long i;
+ #endif
  {
     register long long result;
  
***************
*** 32,37 ****
--- 36,43 ----
     /* Stop here and look!
      */
     hex = bin - dec | oct;
+ 
+    return 0;
  }
  
  int main() {
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/long_long.exp gdb/testsuite/gdb.base/long_long.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/long_long.exp	Thu Feb  4 16:59:27 1999
--- gdb/testsuite/gdb.base/long_long.exp	Thu Jun 24 20:28:18 1999
***************
*** 35,54 ****
      return -1
  }
  
! if {$gcc_compiled == 0} {
!     if [istarget "hppa*-hp-hpux*"] then {
! 	### FIXME +e only works with HP's compiler
! 	set additional_flags "additional_flags=+e -w"
!     } else {
! 	# don't know what the compiler is, hope it supports long long!
! 	set additional_flags "additional_flags=-w"
!     }
  } else {
!     set additional_flags "additional_flags=-w"
  }
  
! if  { [gdb_compile "${srcfile}" "${binfile}" executable [list debug $additional_flags]] != "" } {
!     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
  }
  
  # use this to debug:
--- 35,48 ----
      return -1
  }
  
! if {$hp_cc_compiler} {
!     set flag "+e"
  } else {
!     set flag ""
  }
  
! if  { [gdb_compile "${srcfile}" "${binfile}" executable [concat debug "additional_flags=$flag -w"]] != "" } {
!      gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
  }
  
  # use this to debug:
***************
*** 64,98 ****
     return 
  }
  
! gdb_test "n 4"   ".*34.*" "get to known place"
  
  # Check the hack for long long prints.
  #
! gdb_test "p/x hex" ".*0x0.*" "default print hex"
! gdb_test "p/x dec" ".*0xab54a98ceb1f0ad2.*" "default print dec"
! gdb_test "p/x bin" ".*0x123456789abcdef.*" "default print bin"
! gdb_test "p/x oct" ".*0xa72ee53977053977.*" "default print oct"
! 
! gdb_test "p/x hex" ".*0x0.*" "hex print"
! gdb_test "p/u dec" ".*12345678901234567890.*" "decimal print"
! gdb_test "p/t bin" ".*100100011010001010110011110001001101010111100110111101111.*" "binary print"
  gdb_test "p/o oct" ".*01234567123456701234567.*" "octal print"
  
  # Try all the combinations to bump up coverage.
  #
  gdb_test "p/d oct" ".*12046818088235383159.*" ""
! gdb_test "p/u oct" ".*0xa72ee53977053977.*" ""
  gdb_test "p/o oct" ".*.*" ""
  gdb_test "p/t oct" ".*1010011100101110111001010011100101110111000001010011100101110111.*" ""
! gdb_test "p/a oct" ".*That operation is not available.*" ""
! gdb_test "p/c oct" ".*0xa72ee53977053977.*" ""
  gdb_test "p/f oct" ".*-5.9822653797615723e-120.*" ""
  
  gdb_test "p/d *(int *)&oct" ".*-1490098887.*" ""
  gdb_test "p/u *(int *)&oct" ".*2804868409.*" ""
  gdb_test "p/o *(int *)&oct" ".*024713562471.*" ""
  gdb_test "p/t *(int *)&oct" ".*10100111001011101110010100111001.*" ""
! gdb_test "p/a *(int *)&oct" ".*0xa72ee539.*" ""
  gdb_test "p/c *(int *)&oct" ".*57 '9'.*" ""
  gdb_test "p/f *(int *)&oct" ".*-2.42716126e-15.*" ""
  
--- 58,97 ----
     return 
  }
  
! gdb_test "n 4"   ".*38.*" "get to known place"
  
  # Check the hack for long long prints.
  #
! gdb_test "p/x hex" ".*0x0*0.*" "hex print p/x"
! gdb_test "p/x dec" ".*0xab54a98ceb1f0ad2.*" "decimal print p/x"
! # see if 'p/<code>' is handled same as 'p /<code>'
! #
! gdb_test "p /x dec" ".*0xab54a98ceb1f0ad2.*" "default print dec"
! gdb_test "p /x bin" ".*0x0*123456789abcdef.*" "default print bin"
! gdb_test "p /x oct" ".*0xa72ee53977053977.*" "default print oct"
! gdb_test "p hex" ".*= 0*x*0*0.*" "default print hex"
! 
! gdb_test "p/u dec" ".*12345678901234567890.*" "decimal print p/u"
! gdb_test "p/t bin" ".*0*100100011010001010110011110001001101010111100110111101111.*" "binary print"
  gdb_test "p/o oct" ".*01234567123456701234567.*" "octal print"
+ gdb_test "p /d bin" ".*81985529216486895.*" "print +ve long long"
+ gdb_test "p/d dec" ".*-6101065172474983726.*" "decimal print p/d"
  
  # Try all the combinations to bump up coverage.
  #
  gdb_test "p/d oct" ".*12046818088235383159.*" ""
! gdb_test "p/u oct" ".*12046818088235383159.*" ""
  gdb_test "p/o oct" ".*.*" ""
  gdb_test "p/t oct" ".*1010011100101110111001010011100101110111000001010011100101110111.*" ""
! gdb_test "p/a oct" ".*0x.*77053977.*" ""
! gdb_test "p/c oct" ".*'w'.*" ""
  gdb_test "p/f oct" ".*-5.9822653797615723e-120.*" ""
  
  gdb_test "p/d *(int *)&oct" ".*-1490098887.*" ""
  gdb_test "p/u *(int *)&oct" ".*2804868409.*" ""
  gdb_test "p/o *(int *)&oct" ".*024713562471.*" ""
  gdb_test "p/t *(int *)&oct" ".*10100111001011101110010100111001.*" ""
! gdb_test "p/a *(int *)&oct" ".*0xf*a72ee539.*" ""
  gdb_test "p/c *(int *)&oct" ".*57 '9'.*" ""
  gdb_test "p/f *(int *)&oct" ".*-2.42716126e-15.*" ""
  
***************
*** 100,108 ****
  gdb_test "p/u *(short *)&oct" ".*42798.*" ""
  gdb_test "p/o *(short *)&oct" ".*0123456.*" ""
  gdb_test "p/t *(short *)&oct" ".*1010011100101110.*" ""
! gdb_test "p/a *(short *)&oct" ".*0xffffa72e.*" ""
  gdb_test "p/c *(short *)&oct" ".* 46 '.'.*" ""
! gdb_test "p/a **short *)&oct" ".*0xffffa72e <.*" ""
  gdb_test "p/f *(short *)&oct" ".*-22738.*" ""
  
  gdb_test "x/x &oct" ".*0xa72ee539.*" ""
--- 99,107 ----
  gdb_test "p/u *(short *)&oct" ".*42798.*" ""
  gdb_test "p/o *(short *)&oct" ".*0123456.*" ""
  gdb_test "p/t *(short *)&oct" ".*1010011100101110.*" ""
! gdb_test "p/a *(short *)&oct" ".*0xf*ffffa72e.*" ""
  gdb_test "p/c *(short *)&oct" ".* 46 '.'.*" ""
! gdb_test "p/a *(short *)&oct" ".*0xf*ffffa72e.*" ""
  gdb_test "p/f *(short *)&oct" ".*-22738.*" ""
  
  gdb_test "x/x &oct" ".*0xa72ee539.*" ""
***************
*** 110,117 ****
  gdb_test "x/u &oct" ".*2804868409.*" ""
  gdb_test "x/o &oct" ".*024713562471.*" ""
  gdb_test "x/t &oct" ".*10100111001011101110010100111001.*" ""
! gdb_test "x/a &oct" ".*0xa72ee539 <.*" ""
! gdb_test "x/c &oct" ".*-89 'M-''.*" ""
  gdb_test "x/f &oct" ".*-5.9822653797615723e-120.*" ""
  
  gdb_test "x/2x &oct" ".*.*" ""
--- 109,116 ----
  gdb_test "x/u &oct" ".*2804868409.*" ""
  gdb_test "x/o &oct" ".*024713562471.*" ""
  gdb_test "x/t &oct" ".*10100111001011101110010100111001.*" ""
! gdb_test "x/a &oct" ".*0xa72ee539.*" ""
! gdb_test "x/c &oct" ".*-89 '\\\\247'.*" ""
  gdb_test "x/f &oct" ".*-5.9822653797615723e-120.*" ""
  
  gdb_test "x/2x &oct" ".*.*" ""
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/maint.exp gdb/testsuite/gdb.base/maint.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/maint.exp	Sat Jan 30 11:28:52 1999
--- gdb/testsuite/gdb.base/maint.exp	Thu Jun 24 20:28:17 1999
***************
*** 92,101 ****
  # so that branch will really never be covered in this tests here!!
  #
  
  send_gdb "maint check-symtabs\n"
  gdb_expect  {
!         -re "^maint check-symtabs.*$gdb_prompt $"\
                            { pass "maint check-symtabs" }
          -re ".*$gdb_prompt $"       { fail "maint check-symtabs" }
          timeout         { fail "(timeout) maint check-symtabs" }
          }
--- 92,109 ----
  # so that branch will really never be covered in this tests here!!
  #
  
+ # guo: on linux this command output is huge.  for some reason splitting up
+ # the regexp checks works.
+ #
  send_gdb "maint check-symtabs\n"
  gdb_expect  {
!         -re "^maint check-symtabs" {
! 	    gdb_expect {
! 		-re "$gdb_prompt $" \
                            { pass "maint check-symtabs" }
+ 		timeout { fail "(timeout) maint check-symtabs" }
+ 	    }
+ 	}
          -re ".*$gdb_prompt $"       { fail "maint check-symtabs" }
          timeout         { fail "(timeout) maint check-symtabs" }
          }
***************
*** 223,229 ****
                    send_gdb "shell grep 'main.*function' psymbols_output\n"
                    gdb_expect {
                          -re ".main., function, $hex.*$gdb_prompt $"\
!                                                { pass "maint print psymbols" }
                          -re ".*$gdb_prompt $"       { fail "maint print psymbols" }
                           timeout         { fail "(timeout) maint print psymbols" }
                           }
--- 231,239 ----
                    send_gdb "shell grep 'main.*function' psymbols_output\n"
                    gdb_expect {
                          -re ".main., function, $hex.*$gdb_prompt $"\
!                                                { pass "maint print psymbols 1" }
!                         -re ".*main.  .., function, $hex.*$gdb_prompt $"\
!                                                { pass "maint print psymbols 2" }
                          -re ".*$gdb_prompt $"       { fail "maint print psymbols" }
                           timeout         { fail "(timeout) maint print psymbols" }
                           }
***************
*** 318,330 ****
          timeout         { fail "(timeout) maint print type" }
          }
  
! #send_gdb "maint print unwind &main\n"
! #gdb_expect  {
! #        -re ".*unwind_table_entry \\($hex\\):\r\n\tregion_start = $hex <main>\r\n\tregion_end = $hex <main\\+220>\r\n\tflags = Args_stored Save_RP\r\n\tRegion_description = $hex\r\n\tEntry_FR = $hex\r\n\tEntry_GR = $hex\r\n\tTotal_frame_size = $hex\r\n$gdb_prompt $"\
! #                        { pass "maint print unwind" }
! #        -re ".*$gdb_prompt $"       { fail "maint print unwind" }
! #        timeout         { fail "(timeout) maint print unwind" }
! #        }
  
  set oldtimeout $timeout
  set timeout [expr $timeout + 300]
--- 328,346 ----
          timeout         { fail "(timeout) maint print type" }
          }
  
! #DTS CLLbs14860
! if [istarget "hppa*-*-11*"] {
!     setup_xfail hppa*-*-*11*
!     send "maint print unwind &main\n"
!     expect  {
!         -re ".*unwind_table_entry \\($hex\\):\r\n\tregion_start = $hex <main>\r\n\tregion_end = $hex <main\\+\[0-9\]*>\r\n\tflags = Args_stored Save_RP\r\n\tRegion_description = $hex\r\n\tEntry_FR = $hex\r\n\tEntry_GR = $hex\r\n\tTotal_frame_size = $hex\r\n$gdb_prompt $"\
! 	    { pass "maint print unwind" }
!         -re ".*unwind_table_entry \\($hex\\):\r\n\tregion_start = $hex <main>\r\n\tregion_end = $hex <main\\+\[0-9\]*>\r\n\tflags = Args_stored Save_RP\r\n\tFLD = $hex\r\n\tFLD = $hex\r\n\tFLD = $hex\r\n\tFLD = $hex\r\n$gdb_prompt $"\
! 	    { xfail "maint print unwind" }
!         -re ".*$gdb_prompt $"       { xfail "maint info unwind" }
!         timeout         { fail "(timeout) maint print unwind" }
!     }
! }
  
  set oldtimeout $timeout
  set timeout [expr $timeout + 300]
***************
*** 349,355 ****
  
  send_gdb "maint info breakpoints\n"
  gdb_expect {
!     -re "Num\[ \t\]+Type\[ \t\]+Disp\[ \t\]+Enb\[ \t\]+Address\[ \t\]+What\r\n1\[ \t\]+breakpoint\[ \t\]+keep\[ \t\]+y\[ \t\]+$hex in main at.*break.c:60\r\n\[ \t\]+breakpoint already hit 1 time\r\n.*$gdb_prompt $"\
  				{ pass "maint info breakpoints" }
      -re ".*$gdb_prompt $"       { fail "maint info breakpoints" }
      timeout			{ fail "(timeout) maint info breakpoints" }
--- 365,371 ----
  
  send_gdb "maint info breakpoints\n"
  gdb_expect {
!     -re "Num\[ \t\]+Type\[ \t\]+Disp\[ \t\]+Enb\[ \t\]+Address\[ \t\]+What\r\n1\[ \t\]+breakpoint\[ \t\]+keep\[ \t\]+y\[ \t\]+$hex in main at.*break.c:75\r\n\[ \t\]+breakpoint already hit 1 time\r\n.*$gdb_prompt $"\
  				{ pass "maint info breakpoints" }
      -re ".*$gdb_prompt $"       { fail "maint info breakpoints" }
      timeout			{ fail "(timeout) maint info breakpoints" }
***************
*** 361,367 ****
  }
  send_gdb "maint info breakpoints\n"
  gdb_expect  {
!     -re "Num\[ \t\]+Type\[ \t\]+Disp\[ \t\]+Enb\[ \t\]+Address\[ \t\]+What\r\n1\[ \t\]+breakpoint\[ \t\]+keep\[ \t\]+y\[ \t\]+$hex in main at.*break.c:60\r\n\[ \t\]+breakpoint already hit 1 time\r\n-1\[ \t\]+shlib events\[ \t\]+keep\[ \t\]+y\[ \t\]+$hex.*breakpoint already hit.*$gdb_prompt $"\
  	    { pass "maint info breakpoints: shlib events" }
      -re ".*$gdb_prompt $" {
  	fail "maint info breakpoints: shlib events"
--- 377,385 ----
  }
  send_gdb "maint info breakpoints\n"
  gdb_expect  {
!         -re "Num\[ \t\]+Type\[ \t\]+Disp\[ \t\]+Enb\[ \t\]+Address\[ \t\]+What\r\n1\[ \t\]+breakpoint\[ \t\]+keep\[ \t\]+y\[ \t\]+$hex in main at.*break.c:75\r\n\[ \t\]+breakpoint already hit 1 time\r\n.*$gdb_prompt $"\
!                         { pass "maint info breakpoints" }
!     -re "Num\[ \t\]+Type\[ \t\]+Disp\[ \t\]+Enb\[ \t\]+Address\[ \t\]+What\r\n1\[ \t\]+breakpoint\[ \t\]+keep\[ \t\]+y\[ \t\]+$hex in main at.*break.c:75\r\n\[ \t\]+breakpoint already hit 1 time\r\n-1\[ \t\]+shlib events\[ \t\]+keep\[ \t\]+y\[ \t\]+$hex.*breakpoint already hit.*$gdb_prompt $"\
  	    { pass "maint info breakpoints: shlib events" }
      -re ".*$gdb_prompt $" {
  	fail "maint info breakpoints: shlib events"
***************
*** 499,511 ****
          timeout         { fail "(timeout) help maint print type" }
          }
  
! #send_gdb "help maint print unwind\n"
! #gdb_expect  {
! #        -re "Print unwind table entry at given address\\..*$gdb_prompt $"\
! #                        { pass "help maint print unwind" }
! #        -re ".*$gdb_prompt $"       { fail "help maint print unwind" }
! #        timeout         { fail "(timeout) help maint print unwind" }
! #        }
  
  send_gdb "help maint info sections\n"
  gdb_expect  {
--- 517,531 ----
          timeout         { fail "(timeout) help maint print type" }
          }
  
! if [istarget "hppa*-*-*"] {
!     send_gdb "help maint print unwind\n"
!     gdb_expect  {
!         -re "Print unwind table entry at given address\\..*$gdb_prompt $"\
! 	    { pass "help maint print unwind" }
!         -re ".*$gdb_prompt $"       { fail "help maint print unwind" }
!         timeout         { fail "(timeout) help maint print unwind" }
!     }
! }
  
  send_gdb "help maint info sections\n"
  gdb_expect  {
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/mips_pro.c gdb/testsuite/gdb.base/mips_pro.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/mips_pro.c	Fri Jan 31 13:21:26 1997
--- gdb/testsuite/gdb.base/mips_pro.c	Thu Jun 24 20:28:07 1999
***************
*** 1,15 ****
--- 1,25 ----
  /* Tests regarding examination of prologues.  */
  
+ #ifdef PROTOTYPES
+ int
+ inner (int z)
+ #else
  int
  inner (z)
       int z;
+ #endif
  {
    return 2 * z;
  }
  
+ #ifdef PROTOTYPES
+ int
+ middle (int x)
+ #else
  int
  middle (x)
       int x;
+ #endif
  {
    if (x == 0)
      return inner (5);
***************
*** 17,31 ****
--- 27,53 ----
      return inner (6);
  }
  
+ #ifdef PROTOTYPES
+ int
+ top (int y)
+ #else
  int
  top (y)
       int y;
+ #endif
  {
    return middle (y + 1);
  }
  
+ #ifdef PROTOTYPES
+ int
+ main (int argc, char **argv)
+ #else
  int
  main (argc, argv)
+      int argc;
+      char **argv;
+ #endif
  {
  #ifdef usestubs
    set_debug_traps();
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/mips_pro.exp gdb/testsuite/gdb.base/mips_pro.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/mips_pro.exp	Fri Jun  4 09:53:44 1999
--- gdb/testsuite/gdb.base/mips_pro.exp	Thu Jun 24 20:28:08 1999
***************
*** 55,61 ****
  if [runto middle] then {
      # PR 3016
      if {$gcc_compiled} then { 
! 	setup_xfail "mips*-sgi-irix4*" "mips64*-*-elf"
      }
      gdb_test "backtrace" "#0.*middle.*#1.*top.*#2.*main.*"
  }
--- 55,61 ----
  if [runto middle] then {
      # PR 3016
      if {$gcc_compiled} then { 
! 	setup_xfail "hppa*-*-*" "mips*-sgi-irix4*" "mips64*-*-elf"
      }
      gdb_test "backtrace" "#0.*middle.*#1.*top.*#2.*main.*"
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/miscexprs.exp gdb/testsuite/gdb.base/miscexprs.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/miscexprs.exp	Thu Mar 25 19:23:50 1999
--- gdb/testsuite/gdb.base/miscexprs.exp	Thu Jun 24 20:28:24 1999
***************
*** 44,49 ****
--- 44,60 ----
      gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
  }
  
+ if [get_compiler_info ${binfile}] {
+     return -1;
+ }
+ 
+ if {$hp_aCC_compiler} {
+     set true true
+     set false false
+ } else {
+     set true 1
+     set false 0
+ }
  
  gdb_exit
  gdb_start
***************
*** 90,95 ****
--- 101,109 ----
      -re ".\[0-9\]* = $hex \"\".*$gdb_prompt $" {
          pass "print value of &cbig.c\[0\]"
        }
+     -re ".\[0-9\]* = $hex \"*\".*$gdb_prompt $" {
+         pass "print value of &cbig.c\[0\]"
+       }
      -re ".*$gdb_prompt $" { fail "print value of &cbig.c\[0\]" }
      timeout           { fail "(timeout) print value of &cbig.c\[0\]" }
    }
***************
*** 158,164 ****
  
  send_gdb "print !ibig.i\[100\]\n"
  gdb_expect {
!     -re ".\[0-9\]* = 0.*$gdb_prompt $" {
          pass "print value of !ibig.i\[100\]"
        }
      -re ".*$gdb_prompt $" { fail "print value of !ibig.i\[100\]" }
--- 172,178 ----
  
  send_gdb "print !ibig.i\[100\]\n"
  gdb_expect {
!     -re ".\[0-9\]* = $false.*$gdb_prompt $" {
          pass "print value of !ibig.i\[100\]"
        }
      -re ".*$gdb_prompt $" { fail "print value of !ibig.i\[100\]" }
***************
*** 167,173 ****
  
  send_gdb "print !sbig.s\[90\]\n"
  gdb_expect {
!     -re ".\[0-9\]* = 0.*$gdb_prompt $" {
          pass "print value of !sbig.s\[90\]"
        }
      -re ".*$gdb_prompt $" { fail "print value of !sbig.s\[90\]" }
--- 181,187 ----
  
  send_gdb "print !sbig.s\[90\]\n"
  gdb_expect {
!     -re ".\[0-9\]* = $false.*$gdb_prompt $" {
          pass "print value of !sbig.s\[90\]"
        }
      -re ".*$gdb_prompt $" { fail "print value of !sbig.s\[90\]" }
***************
*** 177,183 ****
  
  send_gdb "print !fbig.f\[100\]\n"
  gdb_expect {
!     -re ".\[0-9\]* = 0.*$gdb_prompt $" {
          pass "print value of !ibig.i\[100\]"
        }
      -re ".*$gdb_prompt $" { fail "print value of !ibig.i\[100\]" }
--- 191,197 ----
  
  send_gdb "print !fbig.f\[100\]\n"
  gdb_expect {
!     -re ".\[0-9\]* = $false.*$gdb_prompt $" {
          pass "print value of !ibig.i\[100\]"
        }
      -re ".*$gdb_prompt $" { fail "print value of !ibig.i\[100\]" }
***************
*** 186,192 ****
  
  send_gdb "print !dbig.d\[202\]\n"
  gdb_expect {
!     -re ".\[0-9\]* = 0.*$gdb_prompt $" {
          pass "print value of !ibig.i\[100\]"
        }
      -re ".*$gdb_prompt $" { fail "print value of !ibig.i\[100\]" }
--- 200,206 ----
  
  send_gdb "print !dbig.d\[202\]\n"
  gdb_expect {
!     -re ".\[0-9\]* = $false.*$gdb_prompt $" {
          pass "print value of !ibig.i\[100\]"
        }
      -re ".*$gdb_prompt $" { fail "print value of !ibig.i\[100\]" }
***************
*** 224,230 ****
  
  send_gdb "print !(sbig.s\[90\] * 2)\n"
  gdb_expect {
!     -re ".\[0-9\]* = 0.*$gdb_prompt $" {
          pass "print value of !(sbig.s\[90\] * 2)"
        }
      -re ".*$gdb_prompt $" { fail "print value of !(sbig.s\[90\] * 2)" }
--- 238,244 ----
  
  send_gdb "print !(sbig.s\[90\] * 2)\n"
  gdb_expect {
!     -re ".\[0-9\]* = $false.*$gdb_prompt $" {
          pass "print value of !(sbig.s\[90\] * 2)"
        }
      -re ".*$gdb_prompt $" { fail "print value of !(sbig.s\[90\] * 2)" }
***************
*** 252,257 ****
--- 266,283 ----
    }
  
  
+ if [istarget "hppa2.0w*-*-*"] then {
+ send_gdb "print sizeof(lbig)\n"
+ gdb_expect {
+     -re ".\[0-9\]* = 7200.*$gdb_prompt $" {
+         pass "print value of sizeof(lbig)"
+       }
+     -re ".*$gdb_prompt $" { fail "print value of sizeof(lbig)" }
+     timeout           { fail "(timeout) print value of sizeof(lbig)" }
+   }
+ }
+ 
+ if ![istarget "hppa2.0w*-*-*"] then {
  send_gdb "print sizeof(lbig)\n"
  gdb_expect {
      -re ".\[0-9\]* = 3600.*$gdb_prompt $" {
***************
*** 260,265 ****
--- 286,292 ----
      -re ".*$gdb_prompt $" { fail "print value of sizeof(lbig)" }
      timeout           { fail "(timeout) print value of sizeof(lbig)" }
    }
+ }
  
  send_gdb "print ibig.i\[100\] << 2\n"
  gdb_expect {
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/nodebug.c gdb/testsuite/gdb.base/nodebug.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/nodebug.c	Fri Jan 31 13:21:27 1997
--- gdb/testsuite/gdb.base/nodebug.c	Thu Jun 24 20:28:08 1999
***************
*** 1,3 ****
--- 1,4 ----
+ #include <stdlib.h>
  /* Test that things still (sort of) work when compiled without -g.  */
  
  int dataglobal = 3;			/* Should go in global data */
***************
*** 5,35 ****
--- 6,56 ----
  int bssglobal;				/* Should go in global bss */
  static int bsslocal;			/* Should go in local bss */
  
+ #ifdef PROTOTYPES
+ int
+ inner (int x)
+ #else
  int
  inner (x)
       int x;
+ #endif
  {
    return x + dataglobal + datalocal + bssglobal + bsslocal;
  }
  
+ #ifdef PROTOTYPES
+ static short
+ middle (int x)
+ #else
  static short
  middle (x)
       int x;
+ #endif
  {
    return 2 * inner (x);
  }
  
+ #ifdef PROTOTYPES
+ short
+ top (int x)
+ #else
  short
  top (x)
       int x;
+ #endif
  {
    return 2 * middle (x);
  }
  
+ #ifdef PROTOTYPES
+ int
+ main (int argc, char **argv)
+ #else
  int 
  main (argc, argv)
       int argc;
       char **argv;
+ #endif
  {
  #ifdef usestubs
    set_debug_traps();
***************
*** 38,51 ****
    return top (argc);
  }
  
- char *malloc ();
- 
  int *x;
  
  int
  array_index (arr, i)
       char *arr;
       int i;
  {
    /* The basic concept is just "return arr[i];".  But call malloc so that gdb
       will be able to call functions.  */
--- 59,74 ----
    return top (argc);
  }
  
  int *x;
  
+ #ifdef PROTOTYPES
+ int array_index (char *arr, int i)
+ #else
  int
  array_index (arr, i)
       char *arr;
       int i;
+ #endif
  {
    /* The basic concept is just "return arr[i];".  But call malloc so that gdb
       will be able to call functions.  */
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/nodebug.exp gdb/testsuite/gdb.base/nodebug.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/nodebug.exp	Sun Jun 29 21:23:53 1997
--- gdb/testsuite/gdb.base/nodebug.exp	Thu Jun 24 20:28:08 1999
***************
*** 72,99 ****
      
      if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" "mips-sgi-irix6*" }
      gdb_test "p top" \
! 	"{(<(text variable|function), no debug info>|short \\(\\))} \[0-9a-fx]* <top>"
      if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" "mips-sgi-irix6*" }
      gdb_test "whatis top" \
! 	"(<(text variable|function), no debug info>|short \\(\\))"
      if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix6*" }
!     gdb_test "ptype top" "(short|int) \\((|<non-float parameter>|<non-float parameter>, <non-float parameter>)\\)"
      
      if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" }
      setup_xfail "mips-sgi-irix6*"
      gdb_test "p middle" \
! 	"{(<(text variable|function), no debug info>|short \\(\\))} \[0-9a-fx]* <middle>"
      if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" }
      setup_xfail "mips-sgi-irix6*"
      gdb_test "whatis middle" \
! 	"(<(text variable|function), no debug info>|short \\(\\))"
      setup_xfail "mips-sgi-irix6*"
!     gdb_test "ptype middle" "(short|int) \\((|<non-float parameter>|<non-float parameter>, <non-float parameter>)\\)"
      
      gdb_test "p dataglobal" "= 3"
      gdb_test "whatis dataglobal" \
! 	"<(data variable|variable), no debug info>"
!     gdb_test "ptype dataglobal" "<(data variable|variable), no debug info>"
      
      # The only symbol xcoff puts out for statics is for the TOC entry.
      # Possible, but hairy, for gdb to deal.  Right now it doesn't, it
--- 72,99 ----
      
      if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" "mips-sgi-irix6*" }
      gdb_test "p top" \
! 	"\{(<(text variable|function), no debug info>|short \\(int\\)|short \\(\\))\} \[0-9a-fx]* <top(\\(int\\)|)>"
      if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" "mips-sgi-irix6*" }
      gdb_test "whatis top" \
! 	"(<(text variable|function), no debug info>|short \\(int\\)|short \\(\\))"
      if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix6*" }
!     gdb_test "ptype top" "(short|int) \\((|void|int|<non-float parameter>|<non-float parameter>, <non-float parameter>)\\)"
      
      if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" }
      setup_xfail "mips-sgi-irix6*"
      gdb_test "p middle" \
! 	"\{(<(text variable|function), no debug info>|short \\(int\\)|short \\(\\))\} \[0-9a-fx]* <middle(\\(int\\)|)>"
      if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" }
      setup_xfail "mips-sgi-irix6*"
      gdb_test "whatis middle" \
! 	"(<(text variable|function), no debug info>|short \\(int\\)|short \\(\\))"
      setup_xfail "mips-sgi-irix6*"
!     gdb_test "ptype middle" "(short|int) \\((|void|int|<non-float parameter>|<non-float parameter>, <non-float parameter>)\\)"
      
      gdb_test "p dataglobal" "= 3"
      gdb_test "whatis dataglobal" \
! 	"<(data variable|variable), no debug info>|int"
!     gdb_test "ptype dataglobal" "<(data variable|variable), no debug info>|int"
      
      # The only symbol xcoff puts out for statics is for the TOC entry.
      # Possible, but hairy, for gdb to deal.  Right now it doesn't, it
***************
*** 115,122 ****
      gdb_test "ptype datalocal" "<(data variable|variable), no debug info>"
      
      gdb_test "p bssglobal" "= 0"
!     gdb_test "whatis bssglobal" "<(data variable|variable), no debug info>"
!     gdb_test "ptype bssglobal" "<(data variable|variable), no debug info>"
      
      setup_xfail "rs6000*-*-aix*"
      setup_xfail "powerpc*-*-aix*"
--- 115,122 ----
      gdb_test "ptype datalocal" "<(data variable|variable), no debug info>"
      
      gdb_test "p bssglobal" "= 0"
!     gdb_test "whatis bssglobal" "<(data variable|variable), no debug info>|int"
!     gdb_test "ptype bssglobal" "<(data variable|variable), no debug info>|int"
      
      setup_xfail "rs6000*-*-aix*"
      setup_xfail "powerpc*-*-aix*"
***************
*** 145,156 ****
      
      # This test is not as obscure as it might look.  `p getenv ("TERM")'
      # is a real-world example, at least on many systems.
!     if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" "mips-sgi-irix6*" }
      if [target_info exists gdb,cannot_call_functions] {
  	setup_xfail "*-*-*" 2416
  	fail "p/c array_index(\"abcdef\",2)"
      } else {
! 	gdb_test {p/c array_index("abcdef",2)} " = 99 'c'"
      }
      
      # Now, try that we can give names of file-local symbols which happen
--- 145,171 ----
      
      # This test is not as obscure as it might look.  `p getenv ("TERM")'
      # is a real-world example, at least on many systems.
!     if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix6*" }
      if [target_info exists gdb,cannot_call_functions] {
  	setup_xfail "*-*-*" 2416
  	fail "p/c array_index(\"abcdef\",2)"
      } else {
! 	#
! 	# On HP-UX, a support function (__d_plt_call) necessary to
! 	# implement an inferior call is normally only available when
! 	# the inferior was compiled with -g.  Thus, we expect this
! 	# testpoint to fail on HP-UX.
! 	if { [istarget "hppa*-hpux*"] } {
! 	    send_gdb "p/c array_index(\"abcdef\",2)\n"
! 	    gdb_expect {
! 		-re ".*Suggest linking executable with -g.*$gdb_prompt $" { pass "p/c array_index(\"abcdef\",2)" }
! 		-re ".*Cannot find __wdb_call_dummy in.*end.o.*" { pass "p/c array_index(\"abcdef\",2)" }
! 		-re ".*99 'c'.*" { pass "p/c array_index(\"abcdef\",2)" }
! 		timeout { fail "(timeout) p/c array_index" }
! 	    }
! 	} else {
! 	    gdb_test {p/c array_index("abcdef",2)} " = 99 'c'"
! 	}
      }
      
      # Now, try that we can give names of file-local symbols which happen
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/opaque.exp gdb/testsuite/gdb.base/opaque.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/opaque.exp	Mon Jan 11 07:20:53 1999
--- gdb/testsuite/gdb.base/opaque.exp	Thu Jun 24 20:28:08 1999
***************
*** 106,112 ****
  # Ensure that we know the form of the structure that foop points to.
  
  setup_xfail_on_opaque_pointer
! if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" "hppa*-*-hpux*" }
  gdb_test "ptype foop" \
      "type = struct foo \{\[\r\n\]+    int a;\[\r\n\]+    int b;\[\r\n\]+\} \[*\]+" \
      "ptype on opaque struct pointer (statically)"
--- 106,112 ----
  # Ensure that we know the form of the structure that foop points to.
  
  setup_xfail_on_opaque_pointer
! if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" }
  gdb_test "ptype foop" \
      "type = struct foo \{\[\r\n\]+    int a;\[\r\n\]+    int b;\[\r\n\]+\} \[*\]+" \
      "ptype on opaque struct pointer (statically)"
***************
*** 167,173 ****
  # Ensure that we know the form of the thing foop points to.
  
  setup_xfail_on_opaque_pointer
! if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" "hppa*-*-hpux*" }
  gdb_test "ptype foop" \
      "type = struct foo \{\[\r\n\]+    int a;\[\r\n\]+    int b;\[\r\n\]+\} \[*\]+" \
      "ptype on opaque struct pointer (dynamically) 1"
--- 167,173 ----
  # Ensure that we know the form of the thing foop points to.
  
  setup_xfail_on_opaque_pointer
! if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" }
  gdb_test "ptype foop" \
      "type = struct foo \{\[\r\n\]+    int a;\[\r\n\]+    int b;\[\r\n\]+\} \[*\]+" \
      "ptype on opaque struct pointer (dynamically) 1"
***************
*** 181,187 ****
  
  gdb_test "ptype afoo" \
      "type = struct foo \{\[\r\n\]+    int a;\[\r\n\]+    int b;\[\r\n\]+\}" \
!     "ptype on opaque struct instance (dynamically) 1"
  
  
  # Ensure that we know the form of an explicit struct foo.
--- 181,187 ----
  
  gdb_test "ptype afoo" \
      "type = struct foo \{\[\r\n\]+    int a;\[\r\n\]+    int b;\[\r\n\]+\}" \
!     "ptype on opaque struct instance (dynamically) xyz 1"
  
  
  # Ensure that we know the form of an explicit struct foo.
***************
*** 220,226 ****
  # Ensure that we know the form of the thing foop points to.
  
  setup_xfail_on_opaque_pointer
! if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" "hppa*-*-hpux*" }
  gdb_test "ptype foop" \
      "type = struct foo \{\[\r\n\]+    int a;\[\r\n\]+    int b;\[\r\n\]+\} \[*\]+" \
      "ptype on opaque struct pointer (dynamically) 2"
--- 220,248 ----
  # Ensure that we know the form of the thing foop points to.
  
  setup_xfail_on_opaque_pointer
! if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" }
! gdb_test "ptype foop" \
!     "type = struct foo \{\[\r\n\]+    int a;\[\r\n\]+    int b;\[\r\n\]+\} \[*\]+" \
!     "ptype on opaque struct pointer (dynamically) 2"
! 
! gdb_test "whatis afoo" \
!     "type = struct foo" \
!     "whatis on opaque struct instance (dynamically) 1"
! 
! 
! # Ensure that we know the form of afoo, an instance of a struct foo.
! 
! gdb_test "ptype afoo" \
!     "type = struct foo \{\r\n    int a;\r\n    int b;\r\n\}" \
!     "ptype on opaque struct instance (dynamically) 1"
! 
! gdb_test "ptype afoo" \
!     "type = struct foo \{\[\r\n\]*.*int a;\[\r\n\]*.*int b;\[\r\n\]*}\[\r\n\]*" \
!     "ptype on opaque struct instance (dynamically) pqr 1"
! 
! 
! # Ensure that we know the form of an explicit struct foo.
! 
  gdb_test "ptype foop" \
      "type = struct foo \{\[\r\n\]+    int a;\[\r\n\]+    int b;\[\r\n\]+\} \[*\]+" \
      "ptype on opaque struct pointer (dynamically) 2"
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/opaque0.c gdb/testsuite/gdb.base/opaque0.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/opaque0.c	Fri Mar 24 14:06:11 1995
--- gdb/testsuite/gdb.base/opaque0.c	Thu Jun 24 20:28:08 1999
***************
*** 7,12 ****
--- 7,15 ----
  
  struct foo *foop;
  extern struct foo *getfoo ();
+ #ifdef PROTOTYPES
+ extern void putfoo (struct foo *foop);
+ #endif
  
  int main ()
  {
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/opaque1.c gdb/testsuite/gdb.base/opaque1.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/opaque1.c	Mon Jun  6 18:56:25 1994
--- gdb/testsuite/gdb.base/opaque1.c	Thu Jun 24 20:28:09 1999
***************
*** 8,14 ****
      return (&afoo);
  }
  
! #ifdef __STDC__
  void putfoo (struct foo *foop)
  #else
  void putfoo (foop)
--- 8,14 ----
      return (&afoo);
  }
  
! #ifdef PROTOTYPES
  void putfoo (struct foo *foop)
  #else
  void putfoo (foop)
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/page.exp gdb/testsuite/gdb.base/page.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/page.exp	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/page.exp	Thu Jun 24 20:28:19 1999
***************
*** 0 ****
--- 1,40 ----
+ # 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 {
+     strace $tracelevel
+ }
+ 
+ global message
+ global timeout
+ 
+ set timeout 200
+ 
+ gdb_exit
+ gdb_start
+ gdb_test "set pagination off" ""
+ gdb_test "info set" ".*pagination:  State of pagination is off.*"
+ gdb_test "set pagination on" ""
+ gdb_test "info set" ".*pagination:  State of pagination is on.*"
+ 
+ gdb_exit
+ return 0
+ 
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/pointers.c gdb/testsuite/gdb.base/pointers.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/pointers.c	Mon Jan  4 07:34:31 1999
--- gdb/testsuite/gdb.base/pointers.c	Wed Dec 31 16:00:00 1969
***************
*** 1,176 ****
- 
- #if !defined (__STDC__) && !defined (_AIX)
- #define signed  /**/
- #endif
- 
- char		v_char;
- signed char	v_signed_char;
- unsigned char	v_unsigned_char;
- 
- short		v_short;
- signed short	v_signed_short;
- unsigned short	v_unsigned_short;
- 
- int		v_int;
- signed int	v_signed_int;
- unsigned int	v_unsigned_int;
- 
- long		v_long;
- signed long	v_signed_long;
- unsigned long	v_unsigned_long;
- 
- float		v_float;
- double		v_double;
- 
- 
- 
- char		*v_char_pointer;
- signed char	*v_signed_char_pointer;
- unsigned char	*v_unsigned_char_pointer;
- 
- short		*v_short_pointer;
- signed short	*v_signed_short_pointer;
- unsigned short	*v_unsigned_short_pointer;
- 
- int		*v_int_pointer;
- int             *v_int_pointer2;
- signed int	*v_signed_int_pointer;
- unsigned int	*v_unsigned_int_pointer;
- 
- long		*v_long_pointer;
- signed long	*v_signed_long_pointer;
- unsigned long	*v_unsigned_long_pointer;
- 
- float		*v_float_pointer;
- double		*v_double_pointer;
- 
- 
- char		v_char_array[2];
- signed char	v_signed_char_array[2];
- unsigned char	v_unsigned_char_array[2];
- 
- short		v_short_array[2];
- signed short	v_signed_short_array[2];
- unsigned short	v_unsigned_short_array[2];
- 
- int		v_int_array[2];
- signed int	v_signed_int_array[2];
- unsigned int	v_unsigned_int_array[2];
- 
- long		v_long_array[2];
- signed long	v_signed_long_array[2];
- unsigned long	v_unsigned_long_array[2];
- 
- float		v_float_array[2];
- double		v_double_array[2];
- 
- int matrix[2][3] = { { 0, 1, 2}, {3, 4, 5}};
- int (*rptr)[3] = matrix;
- 
- float ** ptr_to_ptr_to_float;
- 
- int y;
- 
- int main ()
- {
-     void dummy();
-     
-     /* Ensure that malloc is a pointer type; avoid use of "void" and any include files. */
-     /* extern char *malloc();*/
- 
-     /*  void *malloc(size_t);*/
-     
- 
-     
- #ifdef usestubs
-   set_debug_traps();
-   breakpoint();
- #endif
-   dummy();
- /*  v_int_pointer2 = &v_int_pointer;
-   v_unsigned_int_pointer = &v_int;
-   
-   y = (v_unsigned_int_pointer == v_double_pointer);
-   
-   x = v_unsigned_int_pointer * v_double_pointer;
-   
-   v_unsigned_int_pointer = v_double_pointer;
-   
-   v_unsigned_int_pointer = v_unsigned_int;*/
-   
-   return 0;
-   
- }
- 
- void dummy()
- {
-     
-   
-   v_char = 0;
-   v_signed_char = 1;
-   v_unsigned_char = 2;
- 
-   v_short = 3;
-   v_signed_short = 4;
-   v_unsigned_short = 5;    
- 
-   v_int = 6;
-   v_signed_int = 7;
-   v_unsigned_int = 8;    
- 
-   v_long = 9;
-   v_signed_long = 10;
-   v_unsigned_long = 11;    
-   
-   v_float = 100.0;
-   v_double = 200.0;
- 
- 
- 
-   v_char_pointer = &v_char;
-   v_signed_char_pointer = &v_signed_char;
-   v_unsigned_char_pointer = &v_unsigned_char;
- 
-   v_short_pointer = &v_short;
-   v_signed_short_pointer = &v_signed_short;
-   v_unsigned_short_pointer = &v_unsigned_short;
- 
-   v_int_pointer = &v_int;
-   v_signed_int_pointer = &v_signed_int;
-   v_unsigned_int_pointer = &v_unsigned_int;
- 
-   v_long_pointer = &v_long;
-   v_signed_long_pointer = &v_signed_long;
-   v_unsigned_long_pointer = &v_unsigned_long;
- 
-   v_float_pointer = &v_float;
-   v_double_pointer = &v_double;
- 
-   ptr_to_ptr_to_float = &v_float_pointer;
-   
-   
-   v_char_array[0] = v_char;
-   v_signed_char_array[0] = v_signed_char;
-   v_unsigned_char_array[0] = v_unsigned_char;
- 
-   v_short_array[0] = v_short;
-   v_signed_short_array[0] = v_signed_short;
-   v_unsigned_short_array[0] = v_unsigned_short;
- 
-   v_int_array[0] = v_int;
-   v_int_array[1] = v_int * 3;
-   
-   v_signed_int_array[0] = v_signed_int;
-   v_unsigned_int_array[0] = v_unsigned_int;
- 
-   v_long_array[0] = v_long;
-   v_signed_long_array[0] = v_signed_long;
-   v_unsigned_long_array[0] = v_unsigned_long;
- 
-   v_float_array[0] = v_float;
-   v_double_array[0] = v_double;
- 
- }
- 
- 
- 
--- 0 ----
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/pointers.exp gdb/testsuite/gdb.base/pointers.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/pointers.exp	Mon Jan  4 13:35:27 1999
--- gdb/testsuite/gdb.base/pointers.exp	Wed Dec 31 16:00:00 1969
***************
*** 1,358 ****
- # 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 was written by Elena Zannoni (ezannoni@cygnus.com)
- 
- # This file is part of the gdb testsuite
- #
- # tests for pointer arithmetic and pointer dereferencing
- # with integer type variables and pointers to integers
- # 
- 
- if $tracelevel then {
- 	strace $tracelevel
- 	}
- 
- #
- # test running programs
- #
- set prms_id 0
- set bug_id 0
- 
- set testfile "pointers"
- set srcfile ${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
- 
- if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-w}] != "" } {
-      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
- }
- 
- gdb_test "next" "return 0;" "continuing after dummy()"
- 
- 
- #
- # let's see if gdb catches some illegal operations on pointers
- #
- # I must comment these out because strict type checking is not
- # supported in this version of GDB. I do not really know
- # what the expected gdb reply is.
- #
- 
- #send_gdb "print v_int_pointer2 = &v_int_pointer\n"
- #gdb_expect {
- #    -re ".*.*$gdb_prompt $" {
- #        pass "illegal pointer assignment rejected"
- #      }
- #    -re ".*$gdb_prompt $" { fail "illegal pointer assignment rejected" }
- #    timeout           { fail "(timeout) illegal pointer assignment rejected" }    
- #  }
- 
- 
- #send_gdb "print v_unsigned_int_pointer = &v_int\n"
- #gdb_expect {
- #    -re ".*.*$gdb_prompt $" {
- #        pass "illegal pointer assignment rejected"
- #      }
- #    -re ".*$gdb_prompt $" { fail "illegal pointer assignment rejected" }
- #    timeout           { fail "(timeout) ilegal pointer assignment rejected" }    
- #  }
- 
- #send_gdb "print v_unsigned_int_pointer == v_double_pointer\n"
- #gdb_expect {
- #    -re ".*.*$gdb_prompt $" {
- #        pass "illegal pointer operation (+) rejected"
- #      }
- #    -re ".*$gdb_prompt $" { fail "illegal pointer operation (+) rejected" }
- #    timeout           { fail "(timeout) illegal pointer operation (+) rejected" }    
- #  }
- 
- 
- #send_gdb "print v_unsigned_int_pointer * v_double_pointer\n"
- #gdb_expect {
- #    -re ".*Argument to arithmetic operation not a number or boolean.*$gdb_prompt $" {
- #        pass "illegal pointer operation (*) rejected"
- #      }
- #    -re ".*$gdb_prompt $" { fail "illegal pointer operation (*) rejected" }
- #    timeout           { fail "(timeout) illegal pointer operation (*) rejected" }    
- #  }
- 
- 
- #send_gdb "print v_unsigned_int_pointer = v_double_pointer\n"
- #gdb_expect {
- #    -re ".*.*$gdb_prompt $" {
- #        pass "ilegal pointer assignment rejected"
- #      }
- #    -re ".*$gdb_prompt $" { fail "illegal pointer assignment rejected" }
- #    timeout           { fail "(timeout) illegal pointer assignment rejected" }    
- #  }
- 
- 
- #send_gdb "print v_unsigned_int_pointer = v_unsigned_int\n"
- #gdb_expect {
- #    -re ".*.*$gdb_prompt $" {
- #        pass "illegal pointer assignment rejected"
- #      }
- #    -re ".*$gdb_prompt $" { fail "illegal pointer assignment rejected" }
- #    timeout           { fail "(timeout) illegal pointer assignment rejected" }    
- #  }
- 
- gdb_test "set variable v_int_pointer=&v_int_array\[0\]" "" "set pointer to beginning of array"
- gdb_test "set variable v_int_pointer2=&v_int_array\[1\]" "" "set pointer to end of array"
- 
- 
- send_gdb "print *v_int_pointer\n"
- gdb_expect {
-     -re ".*= 6.*$gdb_prompt $" {
-         pass "print object pointed to"
-       }
-     -re ".*$gdb_prompt $" { fail "print object pointed to" }
-     timeout           { fail "(timeout) print object pointed to" }    
-   }
-   
- send_gdb "print *v_int_pointer2\n"
- gdb_expect {
-     -re ".*= 18.*$gdb_prompt $" {
-         pass "print object pointed to"
-       }
-     -re ".*$gdb_prompt $" { fail "print object pointed to" }
-     timeout           { fail "(timeout) print object pointed to" }    
-   }
- 
- 
- send_gdb "print v_int_pointer == v_int_pointer2\n"
- gdb_expect {
-     -re ".*= 0.*$gdb_prompt $" {
-         pass "pointer1==pointer2"
-       }
-     -re ".*$gdb_prompt $" { fail "pointer1==pointer2" }
-     timeout           { fail "(timeout) pointer1==pointer2" }    
-   }
- 
- send_gdb "print v_int_pointer != v_int_pointer2\n"
- gdb_expect {
-     -re ".*= 1.*$gdb_prompt $" {
-         pass "pointer1!=pointer2"
-       }
-     -re ".*$gdb_prompt $" { fail "pointer1!=pointer2" }
-     timeout           { fail "(timeout) pointer1!=pointer2" }    
-   }
- 
- 
- send_gdb "print v_int_pointer <= v_int_pointer2\n"
- gdb_expect {
-     -re ".*= 1.*$gdb_prompt $" {
-         pass "pointer1<=pointer2"
-       }
-     -re ".*$gdb_prompt $" { fail "pointer1<=pointer2" }
-     timeout           { fail "(timeout) pointer1<=pointer2" }    
-   }
- 
- 
- send_gdb "print v_int_pointer >= v_int_pointer2\n"
- gdb_expect {
-     -re ".*= 0.*$gdb_prompt $" {
-         pass "pointer1>=pointer2"
-       }
-     -re ".*$gdb_prompt $" { fail "pointer1>=pointer2" }
-     timeout           { fail "(timeout) pointer1>=pointer2" }    
-   }
- 
- 
- send_gdb "print v_int_pointer < v_int_pointer2\n"
- gdb_expect {
-     -re ".*= 1.*$gdb_prompt $" {
-         pass "pointer1<pointer2"
-       }
-     -re ".*$gdb_prompt $" { fail "pointer1<pointer2" }
-     timeout           { fail "(timeout) pointer1<pointer2" }    
-   }
- 
- send_gdb "print v_int_pointer > v_int_pointer2\n"
- gdb_expect {
-     -re ".*= 0.*$gdb_prompt $" {
-         pass "pointer1>pointer2"
-       }
-     -re ".*$gdb_prompt $" { fail "pointer1>pointer2" }
-     timeout           { fail "(timeout) pointer1>pointer2" }    
-   }
- 
- 
- gdb_test "set variable y = *v_int_pointer++" "" "set y = *v_int_pointer++"
- send_gdb "print y\n"
- gdb_expect {
-     -re ".*= 6.*$gdb_prompt $" {
-         send_gdb "print *v_int_pointer\n"
-         gdb_expect {
-              -re ".*= 18.*$gdb_prompt $" {
-                  pass "pointer assignment and increment"
-                }
-              -re ".*$gdb_prompt $" { fail "pointer assignment and increment" }
-              timeout           { fail "(timeout) pointer assignment and increment" }    
-          }
-          }
-     -re ".*$gdb_prompt $" { fail "pointer assignment and increment" }
-     timeout           { fail "(timeout) pointer assignment and increment" }    
-   }
- 
- 
- 
- 
- gdb_test "set variable y = *--v_int_pointer2" "" "set y = *--v_int_pointer2"
- send_gdb "print y\n"
- gdb_expect {
-     -re ".*= 6.*$gdb_prompt $" {
-         send_gdb "print *v_int_pointer2\n"
-         gdb_expect {
-              -re ".*= 6.*$gdb_prompt $" {
-                  pass "pointer decrement and assignment"
-                }
-              -re ".*$gdb_prompt $" { fail "pointer decrement and assignment" }
-              timeout           { fail "(timeout) pointer decrement and assignment" }    
-          }
-          }
-     -re ".*$gdb_prompt $" { fail "pointer decrement and assignment" }
-     timeout           { fail "(timeout) pointer decrement and assignment" }    
-   }
- 
- gdb_test "set variable y =v_int_pointer-v_int_pointer2" "" "set y =v_int_pointer-v_int_pointer2"
- send_gdb "print y\n"
- gdb_expect {
-     -re ".*= 1.*$gdb_prompt $" {
-         pass "pointer1-pointer2"
-       }
-     -re ".*$gdb_prompt $" { fail "pointer1-pointer2" }
-     timeout           { fail "(timeout) pointer1-pointer2" }    
-   }
- 
- gdb_test "set variable v_int_pointer=v_int_array" "" "set v_int_pointer=v_int_array"
- send_gdb "print *v_int_pointer\n"
- gdb_expect {
-     -re ".*= 6.*$gdb_prompt $" {
-         pass "print array element through pointer"
-       }
-     -re ".*$gdb_prompt $" { fail "print array element through pointer" }
-     timeout           { fail "(timeout) print array element through pointer" }    
-   }
- 
- 
- send_gdb "print *(v_int_pointer+1)\n"
- gdb_expect {
-     -re ".*= 18.*$gdb_prompt $" {
-         pass "print array element through pointer"
-       }
-     -re ".*$gdb_prompt $" { fail "print array element through pointer" }
-     timeout           { fail "(timeout) print array element through pointer" }    
-   }
- 
- # test print elements of array through pointers
- 
- send_gdb "print (*rptr)\[0\]\n"
- gdb_expect {
-     -re ".*= 0.*$gdb_prompt $" {
-         pass "print array element through pointer"
-       }
-     -re ".*$gdb_prompt $" { fail "print array element through pointer" }
-     timeout           { fail "(timeout) print array element through pointer" }    
-   }
- 
- send_gdb "print (*rptr)\[1\]\n"
- gdb_expect {
-     -re ".*= 1.*$gdb_prompt $" {
-         pass "print array element through pointer"
-       }
-     -re ".*$gdb_prompt $" { fail "print array element through pointer" }
-     timeout           { fail "(timeout) print array element through pointer" }    
-   }
- 
- 
- send_gdb "print (*rptr)\[2\]\n"
- gdb_expect {
-     -re ".*= 2.*$gdb_prompt $" {
-         pass "print array element through pointer"
-       }
-     -re ".*$gdb_prompt $" { fail "print array element through pointer" }
-     timeout           { fail "(timeout) print array element through pointer" }    
-   }
- 
- gdb_test "set variable rptr = rptr+1" "" "increment rptr"
- 
- send_gdb "print (*rptr)\[0\]\n"
- gdb_expect {
-     -re ".*= 3.*$gdb_prompt $" {
-         pass "print array element through pointer"
-       }
-     -re ".*$gdb_prompt $" { fail "print array element through pointer" }
-     timeout           { fail "(timeout) print array element through pointer" }    
-   }
- 
- 
- send_gdb "print (*rptr)\[1\]\n"
- gdb_expect {
-     -re ".*= 4.*$gdb_prompt $" {
-         pass "print array element through pointer"
-       }
-     -re ".*$gdb_prompt $" { fail "print array element through pointer" }
-     timeout           { fail "(timeout) print array element through pointer" }    
-   }
- 
- 
- send_gdb "print (*rptr)\[2\]\n"
- gdb_expect {
-     -re ".*= 5.*$gdb_prompt $" {
-         pass "print array element through pointer"
-       }
-     -re ".*$gdb_prompt $" { fail "print array element through pointer" }
-     timeout           { fail "(timeout) print array element through pointer" }    
-   }
- 
- 
- send_gdb "print *( *(matrix+1) +2)\n"
- gdb_expect {
-     -re ".*= 5.*$gdb_prompt $" {
-         pass "print array element w/ pointer arithmetic"
-       }
-     -re ".*$gdb_prompt $" { fail "print array element w/ pointer arithemtic" }
-     timeout           { fail "(timeout) print array element w/ pointer arithmetic" }    
-   }
- 
- 
- send_gdb "print **ptr_to_ptr_to_float\n"
- gdb_expect {
-     -re ".*= 100.*$gdb_prompt $" {
-         pass "print through ptr to ptr"
-       }
-     -re ".*$gdb_prompt $" { fail "print through ptr to ptr" }
-     timeout           { fail "(timeout) print through ptr to ptr" }    
-   }
--- 0 ----
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/pointers2.c gdb/testsuite/gdb.base/pointers2.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/pointers2.c	Mon Jan  4 07:34:31 1999
--- gdb/testsuite/gdb.base/pointers2.c	Wed Dec 31 16:00:00 1969
***************
*** 1,51 ****
- void marker1 ()
- {
-     
- }
- 
- 
- int main()
- {
-     char C, *pC, **ppC, ***pppC, ****ppppC, *****pppppC, ******ppppppC;
-     unsigned char UC, *pUC;
-     short S, *pS;
-     unsigned short US, *pUS;
-     int I, *pI;
-     unsigned int UI, *pUI;
-     long L, *pL;
-     unsigned long UL, *pUL;
-     float F, *pF;
-     double D, *pD;
-     C = 'A';
-     UC = 21;
-     S = -14;
-     US = 7;
-     I = 102;
-     UI = 1002;
-     L = -234;
-     UL = 234;
-     F = 1.25E10;
-     D = -1.375E-123;
-     pC = &C;
-     ppC = &pC;
-     pppC = &ppC;
-     ppppC = &pppC;
-     pppppC = &ppppC;
-     ppppppC = &pppppC;
-     pUC = &UC;
-     pS = &S;
-     pUS = &US;
-     pI = &I;
-     pUI = &UI;
-     pL = &L;
-     pUL = &UL;
-     pF = &F;
-     pD = &D;
-     
-     #ifdef usestubs
-        set_debug_traps();
-        breakpoint();
-     #endif
-     marker1();
-     return 0;
- }
--- 0 ----
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/pointers2.exp gdb/testsuite/gdb.base/pointers2.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/pointers2.exp	Tue Jan  5 13:58:18 1999
--- gdb/testsuite/gdb.base/pointers2.exp	Wed Dec 31 16:00:00 1969
***************
*** 1,288 ****
- #   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
- 
- # This file was written by Elena Zannoni. (ezannoni@cygnus.com)
- 
- 
- # This file is part of the gdb testsuite
- #
- # tests for pointers 
- # with elementary type variables and pointers.
- # 
- 
- 
- if $tracelevel then {
-         strace $tracelevel
-         }
- 
- #
- # test running programs
- #
- set prms_id 0
- set bug_id 0
- 
- set testfile "pointers2"
- 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."
- }
- 
- 
- 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 $" {}
-                 timeout { fail "up from marker1" }
-             }
-         }
-         -re "$gdb_prompt $" { fail "continue to marker1"  }
-         timeout { fail "(timeout) continue to marker1"  }
-     }
- 
- 
- send_gdb "print *pUC\n"
- gdb_expect {
-     -re ".\[0-9\]* = 21 \'.025\'.*$gdb_prompt $" {
-         pass "print value of *pUC"
-       }
-     -re ".*$gdb_prompt $" { fail "print value of *pUC" }
-     timeout           { fail "(timeout) print value of *pUC" }
-   }
- 
- 
- send_gdb "ptype pUC\n"
- gdb_expect {
-     -re "type = unsigned char \\*.*$gdb_prompt $"  { pass "ptype pUC" }
-     -re ".*$gdb_prompt $"   {  fail "ptype pUC" }
-     timeout             { fail "(timeout) ptype pUC" }
- }
- 
- send_gdb "print *pS\n"
- gdb_expect {
-     -re ".\[0-9\]* = -14.*$gdb_prompt $" {
-         pass "print value of *pS"
-       }
-     -re ".*$gdb_prompt $" { fail "print value of *pS" }
-     timeout           { fail "(timeout) print value of *pS" }
-   }
- 
- 
- send_gdb "ptype pS\n"
- gdb_expect {
-     -re "type = short \\*.*$gdb_prompt $"  { pass "ptype pS" }
-     -re "type = short int \\*.*$gdb_prompt $"  { pass "ptype pS" }
-     -re ".*$gdb_prompt $"   {  fail "ptype pS" }
-     timeout             { fail "(timeout) ptype pS" }
- }
- 
- send_gdb "print *pUS\n"
- gdb_expect {
-     -re ".\[0-9\]* = 7.*$gdb_prompt $" {
-         pass "print value of *pUS"
-       }
-     -re ".*$gdb_prompt $" { fail "print value of *pUS" }
-     timeout           { fail "(timeout) print value of *pUS" }
-   }
- 
- 
- send_gdb "ptype pUS\n"
- gdb_expect {
-     -re "type = unsigned short \\*.*$gdb_prompt $"  { pass "ptype pUS" }
-     -re "type = short unsigned int \\*.*$gdb_prompt $"  { pass "ptype pUS" }
-     -re ".*$gdb_prompt $"   {  fail "ptype pUS" }
-     timeout             { fail "(timeout) ptype pUS" }
- }
- 
- send_gdb "print *pI\n"
- gdb_expect {
-     -re ".\[0-9\]* = 102.*$gdb_prompt $" {
-         pass "print value of *pI"
-       }
-     -re ".*$gdb_prompt $" { fail "print value of *pI" }
-     timeout           { fail "(timeout) print value of *pI" }
-   }
- 
- 
- send_gdb "ptype pI\n"
- gdb_expect {
-     -re "type = int \\*.*$gdb_prompt $"  { pass "ptype pI" }
-     -re ".*$gdb_prompt $"   {  fail "ptype pI" }
-     timeout             { fail "(timeout) ptype pI" }
- }
- 
- send_gdb "print *pUI\n"
- gdb_expect {
-     -re ".\[0-9\]* = 1002.*$gdb_prompt $" {
-         pass "print value of *pUI"
-       }
-     -re ".*$gdb_prompt $" { fail "print value of *pUI" }
-     timeout           { fail "(timeout) print value of *pUI" }
-   }
- 
- 
- send_gdb "ptype pUI\n"
- gdb_expect {
-     -re "type = unsigned int \\*.*$gdb_prompt $"  { pass "ptype pUI" }
-     -re ".*$gdb_prompt $"   {  fail "ptype pUI" }
-     timeout             { fail "(timeout) ptype pUI" }
- }
- 
- send_gdb "print *pL\n"
- gdb_expect {
-     -re ".\[0-9\]* = -234.*$gdb_prompt $" {
-         pass "print value of *pL"
-       }
-     -re ".*$gdb_prompt $" { fail "print value of *pL" }
-     timeout           { fail "(timeout) print value of *pL" }
-   }
- 
- 
- send_gdb "ptype pL\n"
- gdb_expect {
-     -re "type = long \\*.*$gdb_prompt $"  { pass "ptype pL" }
-     -re "type = long int \\*.*$gdb_prompt $"  { pass "ptype pL" }
-     -re ".*$gdb_prompt $"   {  fail "ptype pL" }
-     timeout             { fail "(timeout) ptype pL" }
- }
- 
- send_gdb "print *pUL\n"
- gdb_expect {
-     -re ".\[0-9\]* = 234.*$gdb_prompt $" {
-         pass "print value of *pUL"
-       }
-     -re ".*$gdb_prompt $" { fail "print value of *pUL" }
-     timeout           { fail "(timeout) print value of *pUL" }
-   }
- 
- 
- send_gdb "ptype pUL\n"
- gdb_expect {
-     -re "type = unsigned long \\*.*$gdb_prompt $"  { pass "ptype pUL" }
-     -re "type = long unsigned int \\*.*$gdb_prompt $"  { pass "ptype pUL" }
-     -re ".*$gdb_prompt $"   {  fail "ptype pUL" }
-     timeout             { fail "(timeout) ptype pUL" }
- }
- 
- send_gdb "print *pF\n"
- gdb_expect {
-     -re ".\[0-9\]* = 1.2\[0-9\]*e\\+10.*$gdb_prompt $" {
-         pass "print value of *pF"
-       }
-     -re ".*$gdb_prompt $" { fail "print value of *pF" }
-     timeout           { fail "(timeout) print value of *pF" }
-   }
- 
- 
- send_gdb "ptype pF\n"
- gdb_expect {
-     -re "type = float \\*.*$gdb_prompt $"  { pass "ptype pF" }
-     -re ".*$gdb_prompt $"   {  fail "ptype pF" }
-     timeout             { fail "(timeout) ptype pF" }
- }
- 
- send_gdb "print *pD\n"
- gdb_expect {
-     -re ".\[0-9\]* = -1.375e-123.*$gdb_prompt $" {
-         pass "print value of *pD"
-       }
-     -re ".*$gdb_prompt $" { fail "print value of *pD" }
-     timeout           { fail "(timeout) print value of *pD" }
-   }
- 
- 
- send_gdb "ptype pD\n"
- gdb_expect {
-     -re "type = double \\*.*$gdb_prompt $"  { pass "ptype pD" }
-     -re ".*$gdb_prompt $"   {  fail "ptype pD" }
-     timeout             { fail "(timeout) ptype pD" }
- }
- 
- send_gdb "print ******ppppppC\n"
- gdb_expect {
-     -re ".\[0-9\]* = 65 \'A\'.*$gdb_prompt $" {
-         pass "print value of ******ppppppC"
-       }
-     -re ".*$gdb_prompt $" { fail "print value of ******ppppppC" }
-     timeout           { fail "(timeout) print value of ******ppppppC" }
-   }
- 
- 
- send_gdb "ptype pC\n"
- gdb_expect {
-     -re "type = char \\*.*$gdb_prompt $"  { pass "ptype pC" }
-     -re ".*$gdb_prompt $"   {  fail "ptype pC" }
-     timeout             { fail "(timeout) ptype pC" }
- }
- 
- send_gdb "ptype ppC\n"
- gdb_expect {
-     -re "type = char \\*\\*.*$gdb_prompt $"  { pass "ptype ppC" }
-     -re ".*$gdb_prompt $"   {  fail "ptype ppC" }
-     timeout             { fail "(timeout) ptype ppC" }
- }
- 
- send_gdb "ptype pppC\n"
- gdb_expect {
-     -re "type = char \\*\\*\\*.*$gdb_prompt $"  { pass "ptype  pppC" }
-     -re ".*$gdb_prompt $"   {  fail "ptype pppC" }
-     timeout             { fail "(timeout) ptype pppC" }
- }
- 
- send_gdb "ptype ppppC\n"
- gdb_expect {
-     -re "type = char \\*\\*\\*\\*.*$gdb_prompt $"  { pass "ptype ppppC" }
-     -re ".*$gdb_prompt $"   {  fail "ptype ppppC" }
-     timeout             { fail "(timeout) ptype ppppC" }
- }
- 
- send_gdb "ptype pppppC\n"
- gdb_expect {
-     -re "type = char \\*\\*\\*\\*\\*.*$gdb_prompt $"  { pass "ptype pppppC" }
-     -re ".*$gdb_prompt $"   {  fail "ptype pppppC" }
-     timeout             { fail "(timeout) ptype pppppC" }
- }
- 
- send_gdb "ptype ppppppC\n"
- gdb_expect {
-     -re "type = char \\*\\*\\*\\*\\*\\*.*$gdb_prompt $"  { pass "ptype ppppppC" }
-     -re ".*$gdb_prompt $"   {  fail "ptype ppppppC" }
-     timeout             { fail "(timeout) ptype ppppppC" }
- }
- 
--- 0 ----
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/printcmds.c gdb/testsuite/gdb.base/printcmds.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/printcmds.c	Fri Mar 24 14:06:13 1995
--- gdb/testsuite/gdb.base/printcmds.c	Thu Jun 24 20:28:09 1999
***************
*** 1,7 ****
  /* This table is used as a source for every ascii character.
     It is explicitly unsigned to avoid differences due to native characters
     being either signed or unsigned. */
! 
  unsigned char ctable1[256] = {
    0000, 0001, 0002, 0003, 0004, 0005, 0006, 0007,
    0010, 0011, 0012, 0013, 0014, 0015, 0016, 0017,
--- 1,7 ----
  /* This table is used as a source for every ascii character.
     It is explicitly unsigned to avoid differences due to native characters
     being either signed or unsigned. */
! #include <stdlib.h>
  unsigned char ctable1[256] = {
    0000, 0001, 0002, 0003, 0004, 0005, 0006, 0007,
    0010, 0011, 0012, 0013, 0014, 0015, 0016, 0017,
***************
*** 64,70 ****
  int int3dim[2][3][2] = {{{0,1},{2,3},{4,5}},{{6,7},{8,9},{10,11}}};
  int int4dim[1][2][3][2] = {{{{0,1},{2,3},{4,5}},{{6,7},{8,9},{10,11}}}};
  
! char *teststring = "teststring contents";
  
  /* Test printing of a struct containing character arrays. */
  
--- 64,70 ----
  int int3dim[2][3][2] = {{{0,1},{2,3},{4,5}},{{6,7},{8,9},{10,11}}};
  int int4dim[1][2][3][2] = {{{{0,1},{2,3},{4,5}},{{6,7},{8,9},{10,11}}}};
  
! char *teststring = (char*)"teststring contents";
  
  /* Test printing of a struct containing character arrays. */
  
***************
*** 86,92 ****
  
  /* -- */
  
! main ()
  {
  #ifdef usestubs
    set_debug_traps();
--- 86,92 ----
  
  /* -- */
  
! int main ()
  {
  #ifdef usestubs
    set_debug_traps();
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ptrs.c gdb/testsuite/gdb.base/ptrs.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ptrs.c	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/ptrs.c	Thu Jun 24 20:28:32 1999
***************
*** 0 ****
--- 1,176 ----
+ 
+ #if !defined (__STDC__) && !defined (_AIX)
+ #define signed  /**/
+ #endif
+ 
+ char		v_char;
+ signed char	v_signed_char;
+ unsigned char	v_unsigned_char;
+ 
+ short		v_short;
+ signed short	v_signed_short;
+ unsigned short	v_unsigned_short;
+ 
+ int		v_int;
+ signed int	v_signed_int;
+ unsigned int	v_unsigned_int;
+ 
+ long		v_long;
+ signed long	v_signed_long;
+ unsigned long	v_unsigned_long;
+ 
+ float		v_float;
+ double		v_double;
+ 
+ 
+ 
+ char		*v_char_pointer;
+ signed char	*v_signed_char_pointer;
+ unsigned char	*v_unsigned_char_pointer;
+ 
+ short		*v_short_pointer;
+ signed short	*v_signed_short_pointer;
+ unsigned short	*v_unsigned_short_pointer;
+ 
+ int		*v_int_pointer;
+ int             *v_int_pointer2;
+ signed int	*v_signed_int_pointer;
+ unsigned int	*v_unsigned_int_pointer;
+ 
+ long		*v_long_pointer;
+ signed long	*v_signed_long_pointer;
+ unsigned long	*v_unsigned_long_pointer;
+ 
+ float		*v_float_pointer;
+ double		*v_double_pointer;
+ 
+ 
+ char		v_char_array[2];
+ signed char	v_signed_char_array[2];
+ unsigned char	v_unsigned_char_array[2];
+ 
+ short		v_short_array[2];
+ signed short	v_signed_short_array[2];
+ unsigned short	v_unsigned_short_array[2];
+ 
+ int		v_int_array[2];
+ signed int	v_signed_int_array[2];
+ unsigned int	v_unsigned_int_array[2];
+ 
+ long		v_long_array[2];
+ signed long	v_signed_long_array[2];
+ unsigned long	v_unsigned_long_array[2];
+ 
+ float		v_float_array[2];
+ double		v_double_array[2];
+ 
+ int matrix[2][3] = { { 0, 1, 2}, {3, 4, 5}};
+ int (*rptr)[3] = matrix;
+ 
+ float ** ptr_to_ptr_to_float;
+ 
+ int y;
+ 
+ int main ()
+ {
+     void dummy();
+     
+     /* Ensure that malloc is a pointer type; avoid use of "void" and any include files. */
+     /* extern char *malloc();*/
+ 
+     /*  void *malloc(size_t);*/
+     
+ 
+     
+ #ifdef usestubs
+   set_debug_traps();
+   breakpoint();
+ #endif
+   dummy();
+ /*  v_int_pointer2 = &v_int_pointer;
+   v_unsigned_int_pointer = &v_int;
+   
+   y = (v_unsigned_int_pointer == v_double_pointer);
+   
+   x = v_unsigned_int_pointer * v_double_pointer;
+   
+   v_unsigned_int_pointer = v_double_pointer;
+   
+   v_unsigned_int_pointer = v_unsigned_int;*/
+   
+   return 0;
+   
+ }
+ 
+ void dummy()
+ {
+     
+   
+   v_char = 0;
+   v_signed_char = 1;
+   v_unsigned_char = 2;
+ 
+   v_short = 3;
+   v_signed_short = 4;
+   v_unsigned_short = 5;    
+ 
+   v_int = 6;
+   v_signed_int = 7;
+   v_unsigned_int = 8;    
+ 
+   v_long = 9;
+   v_signed_long = 10;
+   v_unsigned_long = 11;    
+   
+   v_float = 100.0;
+   v_double = 200.0;
+ 
+ 
+ 
+   v_char_pointer = &v_char;
+   v_signed_char_pointer = &v_signed_char;
+   v_unsigned_char_pointer = &v_unsigned_char;
+ 
+   v_short_pointer = &v_short;
+   v_signed_short_pointer = &v_signed_short;
+   v_unsigned_short_pointer = &v_unsigned_short;
+ 
+   v_int_pointer = &v_int;
+   v_signed_int_pointer = &v_signed_int;
+   v_unsigned_int_pointer = &v_unsigned_int;
+ 
+   v_long_pointer = &v_long;
+   v_signed_long_pointer = &v_signed_long;
+   v_unsigned_long_pointer = &v_unsigned_long;
+ 
+   v_float_pointer = &v_float;
+   v_double_pointer = &v_double;
+ 
+   ptr_to_ptr_to_float = &v_float_pointer;
+   
+   
+   v_char_array[0] = v_char;
+   v_signed_char_array[0] = v_signed_char;
+   v_unsigned_char_array[0] = v_unsigned_char;
+ 
+   v_short_array[0] = v_short;
+   v_signed_short_array[0] = v_signed_short;
+   v_unsigned_short_array[0] = v_unsigned_short;
+ 
+   v_int_array[0] = v_int;
+   v_int_array[1] = v_int * 3;
+   
+   v_signed_int_array[0] = v_signed_int;
+   v_unsigned_int_array[0] = v_unsigned_int;
+ 
+   v_long_array[0] = v_long;
+   v_signed_long_array[0] = v_signed_long;
+   v_unsigned_long_array[0] = v_unsigned_long;
+ 
+   v_float_array[0] = v_float;
+   v_double_array[0] = v_double;
+ 
+ }
+ 
+ 
+ 
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ptrs.exp gdb/testsuite/gdb.base/ptrs.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ptrs.exp	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/ptrs.exp	Thu Jun 24 20:28:32 1999
***************
*** 0 ****
--- 1,369 ----
+ # 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 was written by Elena Zannoni (ezannoni@cygnus.com)
+ 
+ # This file is part of the gdb testsuite
+ #
+ # tests for pointer arithmetic and pointer dereferencing
+ # with integer type variables and pointers to integers
+ # 
+ 
+ if $tracelevel then {
+ 	strace $tracelevel
+ 	}
+ 
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+ 
+ set testfile "ptrs"
+ set srcfile ${testfile}.c
+ set binfile ${objdir}/${subdir}/${testfile}
+ 
+ if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-w}] != "" } {
+      gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+     }
+ 
+ if [get_compiler_info ${binfile}] {
+     return -1;
+ }
+ 
+ if {$hp_aCC_compiler} {
+     set true true
+     set false false
+ } else {
+     set true 1
+     set false 0
+ }
+ 
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load ${binfile}
+ 
+ 
+ #
+ # set it up at a breakpoint so we can play with the variable values
+ #
+ 
+ if ![runto_main] then {
+     perror "couldn't run to breakpoint"
+     continue
+ }
+ 
+ gdb_test "next" "return 0;" "continuing after dummy()"
+ 
+ 
+ #
+ # let's see if gdb catches some illegal operations on pointers
+ #
+ # I must comment these out because strict type checking is not
+ # supported in this version of GDB. I do not really know
+ # what the expected gdb reply is.
+ #
+ 
+ #send_gdb "print v_int_pointer2 = &v_int_pointer\n"
+ #gdb_expect {
+ #    -re ".*.*$gdb_prompt $" {
+ #        pass "illegal pointer assignment rejected"
+ #      }
+ #    -re ".*$gdb_prompt $" { fail "illegal pointer assignment rejected" }
+ #    timeout           { fail "(timeout) illegal pointer assignment rejected" }    
+ #  }
+ 
+ 
+ #send_gdb "print v_unsigned_int_pointer = &v_int\n"
+ #gdb_expect {
+ #    -re ".*.*$gdb_prompt $" {
+ #        pass "illegal pointer assignment rejected"
+ #      }
+ #    -re ".*$gdb_prompt $" { fail "illegal pointer assignment rejected" }
+ #    timeout           { fail "(timeout) ilegal pointer assignment rejected" }    
+ #  }
+ 
+ #send_gdb "print v_unsigned_int_pointer == v_double_pointer\n"
+ #gdb_expect {
+ #    -re ".*.*$gdb_prompt $" {
+ #        pass "illegal pointer operation (+) rejected"
+ #      }
+ #    -re ".*$gdb_prompt $" { fail "illegal pointer operation (+) rejected" }
+ #    timeout           { fail "(timeout) illegal pointer operation (+) rejected" }    
+ #  }
+ 
+ 
+ #send_gdb "print v_unsigned_int_pointer * v_double_pointer\n"
+ #gdb_expect {
+ #    -re ".*Argument to arithmetic operation not a number or boolean.*$gdb_prompt $" {
+ #        pass "illegal pointer operation (*) rejected"
+ #      }
+ #    -re ".*$gdb_prompt $" { fail "illegal pointer operation (*) rejected" }
+ #    timeout           { fail "(timeout) illegal pointer operation (*) rejected" }    
+ #  }
+ 
+ 
+ #send_gdb "print v_unsigned_int_pointer = v_double_pointer\n"
+ #gdb_expect {
+ #    -re ".*.*$gdb_prompt $" {
+ #        pass "ilegal pointer assignment rejected"
+ #      }
+ #    -re ".*$gdb_prompt $" { fail "illegal pointer assignment rejected" }
+ #    timeout           { fail "(timeout) illegal pointer assignment rejected" }    
+ #  }
+ 
+ 
+ #send_gdb "print v_unsigned_int_pointer = v_unsigned_int\n"
+ #gdb_expect {
+ #    -re ".*.*$gdb_prompt $" {
+ #        pass "illegal pointer assignment rejected"
+ #      }
+ #    -re ".*$gdb_prompt $" { fail "illegal pointer assignment rejected" }
+ #    timeout           { fail "(timeout) illegal pointer assignment rejected" }    
+ #  }
+ 
+ gdb_test "set variable v_int_pointer=&v_int_array\[0\]" "" "set pointer to beginning of array"
+ gdb_test "set variable v_int_pointer2=&v_int_array\[1\]" "" "set pointer to end of array"
+ 
+ 
+ send_gdb "print *v_int_pointer\n"
+ gdb_expect {
+     -re ".*= 6.*$gdb_prompt $" {
+         pass "print object pointed to"
+       }
+     -re ".*$gdb_prompt $" { fail "print object pointed to" }
+     timeout           { fail "(timeout) print object pointed to" }    
+   }
+   
+ send_gdb "print *v_int_pointer2\n"
+ gdb_expect {
+     -re ".*= 18.*$gdb_prompt $" {
+         pass "print object pointed to"
+       }
+     -re ".*$gdb_prompt $" { fail "print object pointed to" }
+     timeout           { fail "(timeout) print object pointed to" }    
+   }
+ 
+ 
+ send_gdb "print v_int_pointer == v_int_pointer2\n"
+ gdb_expect {
+     -re ".*= $false.*$gdb_prompt $" {
+         pass "pointer1==pointer2"
+       }
+     -re ".*$gdb_prompt $" { fail "pointer1==pointer2" }
+     timeout           { fail "(timeout) pointer1==pointer2" }    
+   }
+ 
+ send_gdb "print v_int_pointer != v_int_pointer2\n"
+ gdb_expect {
+     -re ".*= $true.*$gdb_prompt $" {
+         pass "pointer1!=pointer2"
+       }
+     -re ".*$gdb_prompt $" { fail "pointer1!=pointer2" }
+     timeout           { fail "(timeout) pointer1!=pointer2" }    
+   }
+ 
+ 
+ send_gdb "print v_int_pointer <= v_int_pointer2\n"
+ gdb_expect {
+     -re ".*= $true.*$gdb_prompt $" {
+         pass "pointer1<=pointer2"
+       }
+     -re ".*$gdb_prompt $" { fail "pointer1<=pointer2" }
+     timeout           { fail "(timeout) pointer1<=pointer2" }    
+   }
+ 
+ 
+ send_gdb "print v_int_pointer >= v_int_pointer2\n"
+ gdb_expect {
+     -re ".*= $false.*$gdb_prompt $" {
+         pass "pointer1>=pointer2"
+       }
+     -re ".*$gdb_prompt $" { fail "pointer1>=pointer2" }
+     timeout           { fail "(timeout) pointer1>=pointer2" }    
+   }
+ 
+ 
+ send_gdb "print v_int_pointer < v_int_pointer2\n"
+ gdb_expect {
+     -re ".*= $true.*$gdb_prompt $" {
+         pass "pointer1<pointer2"
+       }
+     -re ".*$gdb_prompt $" { fail "pointer1<pointer2" }
+     timeout           { fail "(timeout) pointer1<pointer2" }    
+   }
+ 
+ send_gdb "print v_int_pointer > v_int_pointer2\n"
+ gdb_expect {
+     -re ".*= $false.*$gdb_prompt $" {
+         pass "pointer1>pointer2"
+       }
+     -re ".*$gdb_prompt $" { fail "pointer1>pointer2" }
+     timeout           { fail "(timeout) pointer1>pointer2" }    
+   }
+ 
+ 
+ gdb_test "set variable y = *v_int_pointer++" "" "set y = *v_int_pointer++"
+ send_gdb "print y\n"
+ gdb_expect {
+     -re ".*= 6.*$gdb_prompt $" {
+         send_gdb "print *v_int_pointer\n"
+         gdb_expect {
+              -re ".*= 18.*$gdb_prompt $" {
+                  pass "pointer assignment and increment"
+                }
+              -re ".*$gdb_prompt $" { fail "pointer assignment and increment" }
+              timeout           { fail "(timeout) pointer assignment and increment" }    
+          }
+          }
+     -re ".*$gdb_prompt $" { fail "pointer assignment and increment" }
+     timeout           { fail "(timeout) pointer assignment and increment" }    
+   }
+ 
+ 
+ 
+ 
+ gdb_test "set variable y = *--v_int_pointer2" "" "set y = *--v_int_pointer2"
+ send_gdb "print y\n"
+ gdb_expect {
+     -re ".*= 6.*$gdb_prompt $" {
+         send_gdb "print *v_int_pointer2\n"
+         gdb_expect {
+              -re ".*= 6.*$gdb_prompt $" {
+                  pass "pointer decrement and assignment"
+                }
+              -re ".*$gdb_prompt $" { fail "pointer decrement and assignment" }
+              timeout           { fail "(timeout) pointer decrement and assignment" }    
+          }
+          }
+     -re ".*$gdb_prompt $" { fail "pointer decrement and assignment" }
+     timeout           { fail "(timeout) pointer decrement and assignment" }    
+   }
+ 
+ gdb_test "set variable y =v_int_pointer-v_int_pointer2" "" "set y =v_int_pointer-v_int_pointer2"
+ send_gdb "print y\n"
+ gdb_expect {
+     -re ".*= 1.*$gdb_prompt $" {
+         pass "pointer1-pointer2"
+       }
+     -re ".*$gdb_prompt $" { fail "pointer1-pointer2" }
+     timeout           { fail "(timeout) pointer1-pointer2" }    
+   }
+ 
+ gdb_test "set variable v_int_pointer=v_int_array" "" "set v_int_pointer=v_int_array"
+ send_gdb "print *v_int_pointer\n"
+ gdb_expect {
+     -re ".*= 6.*$gdb_prompt $" {
+         pass "print array element through pointer"
+       }
+     -re ".*$gdb_prompt $" { fail "print array element through pointer" }
+     timeout           { fail "(timeout) print array element through pointer" }    
+   }
+ 
+ 
+ send_gdb "print *(v_int_pointer+1)\n"
+ gdb_expect {
+     -re ".*= 18.*$gdb_prompt $" {
+         pass "print array element through pointer"
+       }
+     -re ".*$gdb_prompt $" { fail "print array element through pointer" }
+     timeout           { fail "(timeout) print array element through pointer" }    
+   }
+ 
+ # test print elements of array through pointers
+ 
+ send_gdb "print (*rptr)\[0\]\n"
+ gdb_expect {
+     -re ".*= 0.*$gdb_prompt $" {
+         pass "print array element through pointer"
+       }
+     -re ".*$gdb_prompt $" { fail "print array element through pointer" }
+     timeout           { fail "(timeout) print array element through pointer" }    
+   }
+ 
+ send_gdb "print (*rptr)\[1\]\n"
+ gdb_expect {
+     -re ".*= 1.*$gdb_prompt $" {
+         pass "print array element through pointer"
+       }
+     -re ".*$gdb_prompt $" { fail "print array element through pointer" }
+     timeout           { fail "(timeout) print array element through pointer" }    
+   }
+ 
+ 
+ send_gdb "print (*rptr)\[2\]\n"
+ gdb_expect {
+     -re ".*= 2.*$gdb_prompt $" {
+         pass "print array element through pointer"
+       }
+     -re ".*$gdb_prompt $" { fail "print array element through pointer" }
+     timeout           { fail "(timeout) print array element through pointer" }    
+   }
+ 
+ gdb_test "set variable rptr = rptr+1" "" "increment rptr"
+ 
+ send_gdb "print (*rptr)\[0\]\n"
+ gdb_expect {
+     -re ".*= 3.*$gdb_prompt $" {
+         pass "print array element through pointer"
+       }
+     -re ".*$gdb_prompt $" { fail "print array element through pointer" }
+     timeout           { fail "(timeout) print array element through pointer" }    
+   }
+ 
+ 
+ send_gdb "print (*rptr)\[1\]\n"
+ gdb_expect {
+     -re ".*= 4.*$gdb_prompt $" {
+         pass "print array element through pointer"
+       }
+     -re ".*$gdb_prompt $" { fail "print array element through pointer" }
+     timeout           { fail "(timeout) print array element through pointer" }    
+   }
+ 
+ 
+ send_gdb "print (*rptr)\[2\]\n"
+ gdb_expect {
+     -re ".*= 5.*$gdb_prompt $" {
+         pass "print array element through pointer"
+       }
+     -re ".*$gdb_prompt $" { fail "print array element through pointer" }
+     timeout           { fail "(timeout) print array element through pointer" }    
+   }
+ 
+ 
+ send_gdb "print *( *(matrix+1) +2)\n"
+ gdb_expect {
+     -re ".*= 5.*$gdb_prompt $" {
+         pass "print array element w/ pointer arithmetic"
+       }
+     -re ".*$gdb_prompt $" { fail "print array element w/ pointer arithemtic" }
+     timeout           { fail "(timeout) print array element w/ pointer arithmetic" }    
+   }
+ 
+ 
+ send_gdb "print **ptr_to_ptr_to_float\n"
+ gdb_expect {
+     -re ".*= 100.*$gdb_prompt $" {
+         pass "print through ptr to ptr"
+       }
+     -re ".*$gdb_prompt $" { fail "print through ptr to ptr" }
+     timeout           { fail "(timeout) print through ptr to ptr" }    
+   }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ptrs2.c gdb/testsuite/gdb.base/ptrs2.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ptrs2.c	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/ptrs2.c	Thu Jun 24 20:28:32 1999
***************
*** 0 ****
--- 1,51 ----
+ void marker1 ()
+ {
+     
+ }
+ 
+ 
+ int main()
+ {
+     char C, *pC, **ppC, ***pppC, ****ppppC, *****pppppC, ******ppppppC;
+     unsigned char UC, *pUC;
+     short S, *pS;
+     unsigned short US, *pUS;
+     int I, *pI;
+     unsigned int UI, *pUI;
+     long L, *pL;
+     unsigned long UL, *pUL;
+     float F, *pF;
+     double D, *pD;
+     C = 'A';
+     UC = 21;
+     S = -14;
+     US = 7;
+     I = 102;
+     UI = 1002;
+     L = -234;
+     UL = 234;
+     F = 1.25E10;
+     D = -1.375E-123;
+     pC = &C;
+     ppC = &pC;
+     pppC = &ppC;
+     ppppC = &pppC;
+     pppppC = &ppppC;
+     ppppppC = &pppppC;
+     pUC = &UC;
+     pS = &S;
+     pUS = &US;
+     pI = &I;
+     pUI = &UI;
+     pL = &L;
+     pUL = &UL;
+     pF = &F;
+     pD = &D;
+     
+     #ifdef usestubs
+        set_debug_traps();
+        breakpoint();
+     #endif
+     marker1();
+     return 0;
+ }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ptrs2.exp gdb/testsuite/gdb.base/ptrs2.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ptrs2.exp	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/ptrs2.exp	Thu Jun 24 20:28:33 1999
***************
*** 0 ****
--- 1,288 ----
+ #   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
+ 
+ # This file was written by Elena Zannoni. (ezannoni@cygnus.com)
+ 
+ 
+ # This file is part of the gdb testsuite
+ #
+ # tests for pointers 
+ # with elementary type variables and pointers.
+ # 
+ 
+ 
+ if $tracelevel then {
+         strace $tracelevel
+         }
+ 
+ #
+ # test running programs
+ #
+ set prms_id 0
+ set bug_id 0
+ 
+ set testfile "ptrs2"
+ 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."
+ }
+ 
+ 
+ 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 $" {}
+                 timeout { fail "up from marker1" }
+             }
+         }
+         -re "$gdb_prompt $" { fail "continue to marker1"  }
+         timeout { fail "(timeout) continue to marker1"  }
+     }
+ 
+ 
+ send_gdb "print *pUC\n"
+ gdb_expect {
+     -re ".\[0-9\]* = 21 \'.025\'.*$gdb_prompt $" {
+         pass "print value of *pUC"
+       }
+     -re ".*$gdb_prompt $" { fail "print value of *pUC" }
+     timeout           { fail "(timeout) print value of *pUC" }
+   }
+ 
+ 
+ send_gdb "ptype pUC\n"
+ gdb_expect {
+     -re "type = unsigned char \\*.*$gdb_prompt $"  { pass "ptype pUC" }
+     -re ".*$gdb_prompt $"   {  fail "ptype pUC" }
+     timeout             { fail "(timeout) ptype pUC" }
+ }
+ 
+ send_gdb "print *pS\n"
+ gdb_expect {
+     -re ".\[0-9\]* = -14.*$gdb_prompt $" {
+         pass "print value of *pS"
+       }
+     -re ".*$gdb_prompt $" { fail "print value of *pS" }
+     timeout           { fail "(timeout) print value of *pS" }
+   }
+ 
+ 
+ send_gdb "ptype pS\n"
+ gdb_expect {
+     -re "type = short \\*.*$gdb_prompt $"  { pass "ptype pS" }
+     -re "type = short int \\*.*$gdb_prompt $"  { pass "ptype pS" }
+     -re ".*$gdb_prompt $"   {  fail "ptype pS" }
+     timeout             { fail "(timeout) ptype pS" }
+ }
+ 
+ send_gdb "print *pUS\n"
+ gdb_expect {
+     -re ".\[0-9\]* = 7.*$gdb_prompt $" {
+         pass "print value of *pUS"
+       }
+     -re ".*$gdb_prompt $" { fail "print value of *pUS" }
+     timeout           { fail "(timeout) print value of *pUS" }
+   }
+ 
+ 
+ send_gdb "ptype pUS\n"
+ gdb_expect {
+     -re "type = unsigned short \\*.*$gdb_prompt $"  { pass "ptype pUS" }
+     -re "type = short unsigned int \\*.*$gdb_prompt $"  { pass "ptype pUS" }
+     -re ".*$gdb_prompt $"   {  fail "ptype pUS" }
+     timeout             { fail "(timeout) ptype pUS" }
+ }
+ 
+ send_gdb "print *pI\n"
+ gdb_expect {
+     -re ".\[0-9\]* = 102.*$gdb_prompt $" {
+         pass "print value of *pI"
+       }
+     -re ".*$gdb_prompt $" { fail "print value of *pI" }
+     timeout           { fail "(timeout) print value of *pI" }
+   }
+ 
+ 
+ send_gdb "ptype pI\n"
+ gdb_expect {
+     -re "type = int \\*.*$gdb_prompt $"  { pass "ptype pI" }
+     -re ".*$gdb_prompt $"   {  fail "ptype pI" }
+     timeout             { fail "(timeout) ptype pI" }
+ }
+ 
+ send_gdb "print *pUI\n"
+ gdb_expect {
+     -re ".\[0-9\]* = 1002.*$gdb_prompt $" {
+         pass "print value of *pUI"
+       }
+     -re ".*$gdb_prompt $" { fail "print value of *pUI" }
+     timeout           { fail "(timeout) print value of *pUI" }
+   }
+ 
+ 
+ send_gdb "ptype pUI\n"
+ gdb_expect {
+     -re "type = unsigned int \\*.*$gdb_prompt $"  { pass "ptype pUI" }
+     -re ".*$gdb_prompt $"   {  fail "ptype pUI" }
+     timeout             { fail "(timeout) ptype pUI" }
+ }
+ 
+ send_gdb "print *pL\n"
+ gdb_expect {
+     -re ".\[0-9\]* = -234.*$gdb_prompt $" {
+         pass "print value of *pL"
+       }
+     -re ".*$gdb_prompt $" { fail "print value of *pL" }
+     timeout           { fail "(timeout) print value of *pL" }
+   }
+ 
+ 
+ send_gdb "ptype pL\n"
+ gdb_expect {
+     -re "type = long \\*.*$gdb_prompt $"  { pass "ptype pL" }
+     -re "type = long int \\*.*$gdb_prompt $"  { pass "ptype pL" }
+     -re ".*$gdb_prompt $"   {  fail "ptype pL" }
+     timeout             { fail "(timeout) ptype pL" }
+ }
+ 
+ send_gdb "print *pUL\n"
+ gdb_expect {
+     -re ".\[0-9\]* = 234.*$gdb_prompt $" {
+         pass "print value of *pUL"
+       }
+     -re ".*$gdb_prompt $" { fail "print value of *pUL" }
+     timeout           { fail "(timeout) print value of *pUL" }
+   }
+ 
+ 
+ send_gdb "ptype pUL\n"
+ gdb_expect {
+     -re "type = unsigned long \\*.*$gdb_prompt $"  { pass "ptype pUL" }
+     -re "type = long unsigned int \\*.*$gdb_prompt $"  { pass "ptype pUL" }
+     -re ".*$gdb_prompt $"   {  fail "ptype pUL" }
+     timeout             { fail "(timeout) ptype pUL" }
+ }
+ 
+ send_gdb "print *pF\n"
+ gdb_expect {
+     -re ".\[0-9\]* = 1.2\[0-9\]*e\\+10.*$gdb_prompt $" {
+         pass "print value of *pF"
+       }
+     -re ".*$gdb_prompt $" { fail "print value of *pF" }
+     timeout           { fail "(timeout) print value of *pF" }
+   }
+ 
+ 
+ send_gdb "ptype pF\n"
+ gdb_expect {
+     -re "type = float \\*.*$gdb_prompt $"  { pass "ptype pF" }
+     -re ".*$gdb_prompt $"   {  fail "ptype pF" }
+     timeout             { fail "(timeout) ptype pF" }
+ }
+ 
+ send_gdb "print *pD\n"
+ gdb_expect {
+     -re ".\[0-9\]* = -1.375e-123.*$gdb_prompt $" {
+         pass "print value of *pD"
+       }
+     -re ".*$gdb_prompt $" { fail "print value of *pD" }
+     timeout           { fail "(timeout) print value of *pD" }
+   }
+ 
+ 
+ send_gdb "ptype pD\n"
+ gdb_expect {
+     -re "type = double \\*.*$gdb_prompt $"  { pass "ptype pD" }
+     -re ".*$gdb_prompt $"   {  fail "ptype pD" }
+     timeout             { fail "(timeout) ptype pD" }
+ }
+ 
+ send_gdb "print ******ppppppC\n"
+ gdb_expect {
+     -re ".\[0-9\]* = 65 \'A\'.*$gdb_prompt $" {
+         pass "print value of ******ppppppC"
+       }
+     -re ".*$gdb_prompt $" { fail "print value of ******ppppppC" }
+     timeout           { fail "(timeout) print value of ******ppppppC" }
+   }
+ 
+ 
+ send_gdb "ptype pC\n"
+ gdb_expect {
+     -re "type = char \\*.*$gdb_prompt $"  { pass "ptype pC" }
+     -re ".*$gdb_prompt $"   {  fail "ptype pC" }
+     timeout             { fail "(timeout) ptype pC" }
+ }
+ 
+ send_gdb "ptype ppC\n"
+ gdb_expect {
+     -re "type = char \\*\\*.*$gdb_prompt $"  { pass "ptype ppC" }
+     -re ".*$gdb_prompt $"   {  fail "ptype ppC" }
+     timeout             { fail "(timeout) ptype ppC" }
+ }
+ 
+ send_gdb "ptype pppC\n"
+ gdb_expect {
+     -re "type = char \\*\\*\\*.*$gdb_prompt $"  { pass "ptype  pppC" }
+     -re ".*$gdb_prompt $"   {  fail "ptype pppC" }
+     timeout             { fail "(timeout) ptype pppC" }
+ }
+ 
+ send_gdb "ptype ppppC\n"
+ gdb_expect {
+     -re "type = char \\*\\*\\*\\*.*$gdb_prompt $"  { pass "ptype ppppC" }
+     -re ".*$gdb_prompt $"   {  fail "ptype ppppC" }
+     timeout             { fail "(timeout) ptype ppppC" }
+ }
+ 
+ send_gdb "ptype pppppC\n"
+ gdb_expect {
+     -re "type = char \\*\\*\\*\\*\\*.*$gdb_prompt $"  { pass "ptype pppppC" }
+     -re ".*$gdb_prompt $"   {  fail "ptype pppppC" }
+     timeout             { fail "(timeout) ptype pppppC" }
+ }
+ 
+ send_gdb "ptype ppppppC\n"
+ gdb_expect {
+     -re "type = char \\*\\*\\*\\*\\*\\*.*$gdb_prompt $"  { pass "ptype ppppppC" }
+     -re ".*$gdb_prompt $"   {  fail "ptype ppppppC" }
+     timeout             { fail "(timeout) ptype ppppppC" }
+ }
+ 
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ptype.c gdb/testsuite/gdb.base/ptype.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ptype.c	Mon Nov 27 14:43:03 1995
--- gdb/testsuite/gdb.base/ptype.c	Thu Jun 24 20:28:09 1999
***************
*** 6,11 ****
--- 6,12 ----
  /*
   *	First the basic C types.
   */
+ #include <stdlib.h>
  
  #if !defined (__STDC__) && !defined (_AIX)
  #define signed  /**/
***************
*** 213,233 ****
  
  typedef enum {FALSE, TRUE} boolean;
  boolean v_boolean;
! typedef enum bvals {false, true} boolean2;
  boolean2 v_boolean2;
  
  enum misordered {two = 2, one = 1, zero = 0, three = 3};
  
  /***********/
  
! main ()
  {
    /* Ensure that malloc is a pointer type; avoid use of "void" and any include files. */
!   extern char *malloc();
! 
!   /* Seems like we need a variable of this type to get the type to be put
!      in the executable, at least for AIX xlc.  */
!   enum misordered v_misordered = three;
  
    /* Some of the tests in ptype.exp require invoking malloc, so make
       sure it is linked in to this program.  */
--- 214,235 ----
  
  typedef enum {FALSE, TRUE} boolean;
  boolean v_boolean;
! /*note: aCC has bool type predefined with 'false' and 'true'*/
! typedef enum bvals {my_false, my_true} boolean2;
  boolean2 v_boolean2;
  
  enum misordered {two = 2, one = 1, zero = 0, three = 3};
  
+ /* Seems like we need a variable of this type to get the type to be put
+    in the executable, at least for AIX xlc.  */
+ enum misordered v_misordered = three;
+ 
  /***********/
  
! int main ()
  {
    /* Ensure that malloc is a pointer type; avoid use of "void" and any include files. */
! /*  extern char *malloc();*/
  
    /* Some of the tests in ptype.exp require invoking malloc, so make
       sure it is linked in to this program.  */
***************
*** 309,313 ****
    v_t_struct_p = 0;
  
    v_boolean = FALSE;
!   v_boolean2 = false;
  }
--- 311,316 ----
    v_t_struct_p = 0;
  
    v_boolean = FALSE;
!   v_boolean2 = my_false;
!   return 0;
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ptype.exp gdb/testsuite/gdb.base/ptype.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/ptype.exp	Wed Sep 24 13:09:59 1997
--- gdb/testsuite/gdb.base/ptype.exp	Thu Jun 24 20:28:09 1999
***************
*** 94,100 ****
  # IBM's xlc puts out bogus stabs--the stuff field is type 42,
  # which isn't defined.
  
! gdb_test "ptype struct link" "type = struct link \{.*\[\r\n\]    struct link \[*\]next;.*\[\r\n\]    struct link \[*(\]+linkfunc\[)(\]+(struct link \[*\], int\[)\]|);.*\[\r\n\]    struct t_struct stuff.1..2..3.;.*\[\r\n\]\}.*" "ptype linked list structure" 
  
  #
  # test ptype command with unions
--- 94,100 ----
  # IBM's xlc puts out bogus stabs--the stuff field is type 42,
  # which isn't defined.
  
! gdb_test "ptype struct link" "type = struct link \{\[\r\n\]+\[ \t\]+struct link \\*next;\[\r\n\]+\[ \t\]+struct link \\*\\(\\*linkfunc\\)\\((struct link \\*, int|void|)\\);\[\r\n\]+\[ \t\]+struct t_struct stuff.1..2..3.;\[\r\n\]+\}.*" "ptype linked list structure" 
  
  #
  # test ptype command with unions
***************
*** 103,109 ****
  
  # IBM's xlc puts out bogus stabs--the stuff field is type 42,
  # which isn't defined.
! gdb_test "ptype union tu_link" "type = union tu_link .*\[\r\n\]    struct link \[*\]next;.*\[\r\n\]    struct link \[(\*\]+linkfunc\[)(\]+(struct link \[*\], int\[)\]|);.*\[\r\n\]    struct t_struct stuff.1..2..3.;.*\[\r\n\]\}.*" "ptype linked list union" 
  
  #
  # test ptype command with enums
--- 103,109 ----
  
  # IBM's xlc puts out bogus stabs--the stuff field is type 42,
  # which isn't defined.
! gdb_test "ptype union tu_link" "type = union tu_link \{\[\r\n\]+\[ \t\]+struct link \\*next;\[\r\n\]+\[ \t\]+struct link \\*\\(\\*linkfunc\\)\\((struct link \\*, int|void|)\\);\[\r\n\]+\[ \t\]+struct t_struct stuff.1..2..3.;\[\r\n\]+\}.*" "ptype linked list union" 
  
  #
  # test ptype command with enums
***************
*** 117,123 ****
  #
  # test ptype command with enums as typedef
  #
! gdb_test "ptype boolean" "type = enum \{FALSE, TRUE\}.*" "ptype unnamed typedef'd enumeration" 
  
  # And check that whatis shows the name, not "enum {...}".
  # This probably fails for all DWARF 1 cases, so assume so for now. -fnf
--- 117,123 ----
  #
  # test ptype command with enums as typedef
  #
! gdb_test "ptype boolean" "type = enum (boolean |)\{FALSE, TRUE\}.*" "ptype unnamed typedef'd enumeration" 
  
  # And check that whatis shows the name, not "enum {...}".
  # This probably fails for all DWARF 1 cases, so assume so for now. -fnf
***************
*** 128,148 ****
  # GDB's behavior is correct; the type which the variable is defined
  # as (51) doesn't have a name.  Only 55 has a name.
  
! if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" "i*86-*-sysv4*" }
  setup_xfail_format "DWARF 1"
! gdb_test "whatis v_boolean" "type = boolean" \
    "whatis unnamed typedef'd enum (compiler bug in IBM's xlc)"
  
  # Same thing with struct and union.
! gdb_test "ptype t_struct3" "type = struct \{.*
   *double v_double_member;.*
   *int v_int_member;.*\}" "printing typedef'd struct"
  
! gdb_test "ptype t_union3" "type = union \{.*
   *double v_double_member;.*
   *int v_int_member;.*\}" "printing typedef'd union"
  
! gdb_test "ptype enum bvals" "type = enum bvals \{false, true\}.*" "ptype named typedef'd enumf'd enum" 
  
  #
  # test ptype command with out-of-order enum values
--- 128,150 ----
  # GDB's behavior is correct; the type which the variable is defined
  # as (51) doesn't have a name.  Only 55 has a name.
  
! if {!$gcc_compiled && !$hp_aCC_compiler} {
!     setup_xfail "rs6000-*-*" "i*86-*-sysv4*" "hppa*-*-*" # CLLbs14773
! }
  setup_xfail_format "DWARF 1"
! gdb_test "whatis v_boolean" "type = (enum |)boolean" \
    "whatis unnamed typedef'd enum (compiler bug in IBM's xlc)"
  
  # Same thing with struct and union.
! gdb_test "ptype t_struct3" "type = struct (t_struct3 |)\{.*
   *double v_double_member;.*
   *int v_int_member;.*\}" "printing typedef'd struct"
  
! gdb_test "ptype t_union3" "type = union (t_union3 |)\{.*
   *double v_double_member;.*
   *int v_int_member;.*\}" "printing typedef'd union"
  
! gdb_test "ptype enum bvals" "type = enum bvals \{my_false, my_true\}.*" "ptype named typedef'd enumf'd enum"
  
  #
  # test ptype command with out-of-order enum values
***************
*** 365,370 ****
--- 367,373 ----
  
  if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" "i*86-*-sysv4*" }
  setup_xfail_format "DWARF 1"
+ if {$hp_aCC_compiler} {setup_xfail "hppa*-*-*"}
  gdb_test "ptype t_char_array" "type = (|unsigned )char \\\[0?\\\]"
  
  #
***************
*** 489,509 ****
  #
  # test ptype command with nested structure and union
  #
! gdb_test "ptype struct outer_struct" "type = struct outer_struct \{.*\[\r\n\]    int outer_int;.*\[\r\n\]    struct inner_struct inner_struct_instance;.*\[\r\n\]    union inner_union inner_union_instance;.*\[\r\n\]    (long|long int|int) outer_long;.*\[\r\n\]\}.*" "ptype outer structure" 
  
! gdb_test "ptype struct inner_struct" "type = struct inner_struct \{.*\[\r\n\]    int inner_int;.*\[\r\n\]    (long|long int|int) inner_long;.*\[\r\n\]\}.*" "ptype inner structure" 
  
! gdb_test "ptype union inner_union" "type = union inner_union \{.*\[\r\n\]    int inner_union_int;.*\[\r\n\]    (long|long int|int) inner_union_long;.*\[\r\n\]\}.*" "ptype inner union" 
  
! gdb_test "ptype nested_su" "type = struct outer_struct \{.*\[\r\n\]    int outer_int;.*\[\r\n\]    struct inner_struct inner_struct_instance;.*\[\r\n\]    union inner_union inner_union_instance;.*\[\r\n\]    (long|long int|int) outer_long;.*\[\r\n\]\}.*" "ptype nested structure" 
  
  gdb_test "ptype nested_su.outer_int" "type = int.*" "ptype outer int" 
  
! gdb_test "ptype nested_su.inner_struct_instance" "type = struct inner_struct \{.*\[\r\n\]    int inner_int;.*\[\r\n\]    (long|long int|int) inner_long;.*\[\r\n\]\}.*" "ptype nested structure #2" 
  
  gdb_test "ptype nested_su.inner_struct_instance.inner_int" "type = int.*" "ptype inner int" 
  
! gdb_test "ptype nested_su.inner_union_instance" "type = union inner_union \{.*\[\r\n\]    int inner_union_int;.*\[\r\n\]    (long|long int|int) inner_union_long;.*\[\r\n\]\}.*" "ptype nested union" 
  
  # Test printing type of string constants and array constants, but
  # requires a running process.  These call malloc, and can take a long
--- 492,525 ----
  #
  # test ptype command with nested structure and union
  #
! if {$hp_aCC_compiler} {
!     set outer "outer_struct::"
!     set struct ""
!     set union ""
! } else {
!     set outer ""
!     set struct "struct"
!     set union "union"
! }
! gdb_test "ptype struct outer_struct" "type = struct outer_struct \{.*\[\r\n\]+\
! .*int outer_int;.*\[\r\n\]+\
! .*(struct|) ${outer}inner_struct inner_struct_instance;.*\[\r\n\]+\
! .*(union|) ${outer}inner_union inner_union_instance;.*\[\r\n\]+\
! .*(long|long int|int) outer_long;.*\[\r\n\]\}.*" "ptype outer structure" 
  
! gdb_test "ptype ${struct} ${outer}inner_struct" "type = struct ${outer}inner_struct \{.*\[\r\n\]    int inner_int;.*\[\r\n\]    (long|long int|int) inner_long;.*\[\r\n\]\}.*" "ptype inner structure" 
  
! gdb_test "ptype ${union} ${outer}inner_union" "type = union ${outer}inner_union \{.*\[\r\n\]    int inner_union_int;.*\[\r\n\]    (long|long int|int) inner_union_long;.*\[\r\n\]\}.*" "ptype inner union" 
  
! gdb_test "ptype nested_su" "type = struct outer_struct \{.*\[\r\n\]    int outer_int;.*\[\r\n\]    (struct |)${outer}inner_struct inner_struct_instance;.*\[\r\n\]    (union |)${outer}inner_union inner_union_instance;.*\[\r\n\]    (long|long int|int) outer_long;.*\[\r\n\]\}.*" "ptype nested structure" 
  
  gdb_test "ptype nested_su.outer_int" "type = int.*" "ptype outer int" 
  
! gdb_test "ptype nested_su.inner_struct_instance" "type = struct ${outer}inner_struct \{.*\[\r\n\]    int inner_int;.*\[\r\n\]    (long|long int|int) inner_long;.*\[\r\n\]\}.*" "ptype nested structure #2" 
  
  gdb_test "ptype nested_su.inner_struct_instance.inner_int" "type = int.*" "ptype inner int" 
  
! gdb_test "ptype nested_su.inner_union_instance" "type = union ${outer}inner_union \{.*\[\r\n\]    int inner_union_int;.*\[\r\n\]    (long|long int|int) inner_union_long;.*\[\r\n\]\}.*" "ptype nested union" 
  
  # Test printing type of string constants and array constants, but
  # requires a running process.  These call malloc, and can take a long
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/recurse.c gdb/testsuite/gdb.base/recurse.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/recurse.c	Fri Jan 31 13:21:27 1997
--- gdb/testsuite/gdb.base/recurse.c	Thu Jun 24 20:28:10 1999
***************
*** 1,9 ****
--- 1,14 ----
  /* Trivial code used to test watchpoints in recursive code and 
     auto-deletion of watchpoints as they go out of scope.  */
  
+ #ifdef PROTOTYPES
+ static int
+ recurse (int a)
+ #else
  static int 
  recurse (a)
       int a;
+ #endif
  {
    int b = 0;
  
***************
*** 15,25 ****
    return b;
  }
  
! main()
  {
  #ifdef usestubs
    set_debug_traps();
    breakpoint();
  #endif
    recurse (10);
  }
--- 20,31 ----
    return b;
  }
  
! int main()
  {
  #ifdef usestubs
    set_debug_traps();
    breakpoint();
  #endif
    recurse (10);
+   return 0;
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/relational.exp gdb/testsuite/gdb.base/relational.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/relational.exp	Mon Jan  4 13:35:27 1999
--- gdb/testsuite/gdb.base/relational.exp	Thu Jun 24 20:28:25 1999
***************
*** 42,47 ****
--- 42,58 ----
       gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
      }
  
+ if [get_compiler_info ${binfile}] {
+     return -1;
+ }
+ 
+ if {$hp_aCC_compiler} {
+     set true true
+     set false false
+ } else {
+     set true 1
+     set false 0
+ }
  
  gdb_exit
  gdb_start
***************
*** 108,114 ****
  
  send_gdb "print x < y\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x<y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y" }
--- 119,125 ----
  
  send_gdb "print x < y\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x<y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y" }
***************
*** 117,123 ****
  
  send_gdb "print x <= y\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x<=y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<=y" }
--- 128,134 ----
  
  send_gdb "print x <= y\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x<=y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<=y" }
***************
*** 126,132 ****
  
  send_gdb "print x > y\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x>y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>y" }
--- 137,143 ----
  
  send_gdb "print x > y\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x>y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>y" }
***************
*** 135,141 ****
  
  send_gdb "print x >= y\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x>=y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>=y" }
--- 146,152 ----
  
  send_gdb "print x >= y\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x>=y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>=y" }
***************
*** 144,150 ****
  
  send_gdb "print x == y\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x==y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x==y" }
--- 155,161 ----
  
  send_gdb "print x == y\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x==y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x==y" }
***************
*** 153,159 ****
  
  send_gdb "print x != y\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x!=y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x!=y" }
--- 164,170 ----
  
  send_gdb "print x != y\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x!=y"
        }
      -re ".*$gdb_prompt $" { fail "print value of x!=y" }
***************
*** 172,178 ****
  
  send_gdb "print x < y < z\n"
  gdb_expect {
!     -re ".*1\r\n$gdb_prompt $" {
          pass "print value of x<y<z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y<z" }
--- 183,189 ----
  
  send_gdb "print x < y < z\n"
  gdb_expect {
!     -re ".*$true.*\r\n$gdb_prompt $" {
          pass "print value of x<y<z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y<z" }
***************
*** 181,187 ****
  
  send_gdb "print x <= y <= z\n"
  gdb_expect {
!     -re ".*1\r\n$gdb_prompt $" {
          pass "print value of x<=y<=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<=y<=z" }
--- 192,198 ----
  
  send_gdb "print x <= y <= z\n"
  gdb_expect {
!     -re ".*$true\r\n$gdb_prompt $" {
          pass "print value of x<=y<=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<=y<=z" }
***************
*** 190,196 ****
  
  send_gdb "print x > y > z\n"
  gdb_expect {
!     -re ".*0\r\n$gdb_prompt $" {
          pass "print value of x>y>z"
        }
      -re 8".*$gdb_prompt $" { fail "print value of x>y>z" }
--- 201,207 ----
  
  send_gdb "print x > y > z\n"
  gdb_expect {
!     -re ".*$false.*\r\n$gdb_prompt $" {
          pass "print value of x>y>z"
        }
      -re 8".*$gdb_prompt $" { fail "print value of x>y>z" }
***************
*** 199,205 ****
  
  send_gdb "print x >= y >= z\n"
  gdb_expect {
!     -re ".*0\r\n$gdb_prompt $" {
          pass "print value of x>=y>=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>=y>=z" }
--- 210,216 ----
  
  send_gdb "print x >= y >= z\n"
  gdb_expect {
!     -re ".*$false.*\r\n$gdb_prompt $" {
          pass "print value of x>=y>=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>=y>=z" }
***************
*** 213,219 ****
  
  send_gdb "print x == y == z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x==y==z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x==y==z" }
--- 224,230 ----
  
  send_gdb "print x == y == z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x==y==z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x==y==z" }
***************
*** 225,231 ****
  
  send_gdb "print x != y != z\n"
  gdb_expect {
!     -re ".*0\r\n$gdb_prompt $" {
          pass "print value of x!=y!=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x!=y!=z" }
--- 236,242 ----
  
  send_gdb "print x != y != z\n"
  gdb_expect {
!     -re ".*$false\r\n$gdb_prompt $" {
          pass "print value of x!=y!=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x!=y!=z" }
***************
*** 242,248 ****
  
  send_gdb "print x < y == z\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x<y==z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y==z" }
--- 253,259 ----
  
  send_gdb "print x < y == z\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x<y==z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y==z" }
***************
*** 252,258 ****
  # 0  2  2
  send_gdb "print x < y != z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x<y!=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y!=z" }
--- 263,269 ----
  # 0  2  2
  send_gdb "print x < y != z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x<y!=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y!=z" }
***************
*** 267,273 ****
  # 2 3 1
  send_gdb "print x < y <= z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x<y<=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y<=z" }
--- 278,284 ----
  # 2 3 1
  send_gdb "print x < y <= z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x<y<=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y<=z" }
***************
*** 278,284 ****
  # 2 3 1
  send_gdb "print x < y >= z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x<y>=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y>=z" }
--- 289,295 ----
  # 2 3 1
  send_gdb "print x < y >= z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x<y>=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y>=z" }
***************
*** 292,298 ****
  # 2 3 0
  send_gdb "print x < y > z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x<y>z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y>z" }
--- 303,309 ----
  # 2 3 0
  send_gdb "print x < y > z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x<y>z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<y>z" }
***************
*** 305,311 ****
  # 1 3 0
  send_gdb "print x > y >= z\n"
  gdb_expect {
!     -re ".*1.*$gdb_prompt $" {
          pass "print value of x>y>=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>y>=z" }
--- 316,322 ----
  # 1 3 0
  send_gdb "print x > y >= z\n"
  gdb_expect {
!     -re ".*$true.*$gdb_prompt $" {
          pass "print value of x>y>=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>y>=z" }
***************
*** 318,324 ****
  # 1 3 2
  send_gdb "print x > y == z\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x>y==z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>y==z" }
--- 329,335 ----
  # 1 3 2
  send_gdb "print x > y == z\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x>y==z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>y==z" }
***************
*** 332,338 ****
  # 2 3 0
  send_gdb "print x > y != z\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x>y!=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>y!=z" }
--- 343,349 ----
  # 2 3 0
  send_gdb "print x > y != z\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x>y!=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>y!=z" }
***************
*** 345,351 ****
  # 4 3 0
  send_gdb "print x > y <= z\n"
  gdb_expect {
!     -re ".*0.*$gdb_prompt $" {
          pass "print value of x>y<=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>y<=z" }
--- 356,362 ----
  # 4 3 0
  send_gdb "print x > y <= z\n"
  gdb_expect {
!     -re ".*$false.*$gdb_prompt $" {
          pass "print value of x>y<=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>y<=z" }
***************
*** 355,361 ****
  # 4 3 0
  send_gdb "print x >= y == z\n"
  gdb_expect {
!     -re ".*0\r\n$gdb_prompt $" {
          pass "print value of x>=y==z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>=y==z" }
--- 366,372 ----
  # 4 3 0
  send_gdb "print x >= y == z\n"
  gdb_expect {
!     -re ".*$false\r\n$gdb_prompt $" {
          pass "print value of x>=y==z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>=y==z" }
***************
*** 368,374 ****
  # 2 3 0
  send_gdb "print x >= y != z\n"
  gdb_expect {
!     -re ".*0\r\n$gdb_prompt $" {
          pass "print value of x>=y!=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>=y!=z" }
--- 379,385 ----
  # 2 3 0
  send_gdb "print x >= y != z\n"
  gdb_expect {
!     -re ".*$false\r\n$gdb_prompt $" {
          pass "print value of x>=y!=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>=y!=z" }
***************
*** 382,388 ****
  # 0 3 4 
  send_gdb "print x >= y <= z\n"
  gdb_expect {
!     -re ".*1\r\n$gdb_prompt $" {
          pass "print value of x>=y<=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>=y<=z" }
--- 393,399 ----
  # 0 3 4 
  send_gdb "print x >= y <= z\n"
  gdb_expect {
!     -re ".*$true\r\n$gdb_prompt $" {
          pass "print value of x>=y<=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>=y<=z" }
***************
*** 392,398 ****
  # 0 3 4
  send_gdb "print x <= y == z\n"
  gdb_expect {
!     -re ".*0\r\n$gdb_prompt $" {
          pass "print value of x<=y==z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<=y==z" }
--- 403,409 ----
  # 0 3 4
  send_gdb "print x <= y == z\n"
  gdb_expect {
!     -re ".*$false\r\n$gdb_prompt $" {
          pass "print value of x<=y==z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<=y==z" }
***************
*** 404,410 ****
  # 2 3 4
  send_gdb "print x <= y != z\n"
  gdb_expect {
!     -re ".*1\r\n$gdb_prompt $" {
          pass "print value of x<=y!=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<=y!=z" }
--- 415,421 ----
  # 2 3 4
  send_gdb "print x <= y != z\n"
  gdb_expect {
!     -re ".*$true\r\n$gdb_prompt $" {
          pass "print value of x<=y!=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x<=y!=z" }
***************
*** 415,421 ****
  # 2 3 4
  send_gdb "print x == y != z\n"
  gdb_expect {
!     -re ".*1\r\n$gdb_prompt $" {
          pass "print value of x==y!=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x==y!=z" }
--- 426,432 ----
  # 2 3 4
  send_gdb "print x == y != z\n"
  gdb_expect {
!     -re ".*$true\r\n$gdb_prompt $" {
          pass "print value of x==y!=z"
        }
      -re ".*$gdb_prompt $" { fail "print value of x==y!=z" }
***************
*** 432,438 ****
  # 2 3 0
  send_gdb "print x >= (y < z)\n"
  gdb_expect {
!     -re ".*1\r\n$gdb_prompt $" {
          pass "print value of x>=(y<z)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>=(y<z)" }
--- 443,449 ----
  # 2 3 0
  send_gdb "print x >= (y < z)\n"
  gdb_expect {
!     -re ".*$true\r\n$gdb_prompt $" {
          pass "print value of x>=(y<z)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>=(y<z)" }
***************
*** 443,449 ****
  # 2 3 0
  send_gdb "print x >= (y != z)\n"
  gdb_expect {
!     -re ".*1\r\n$gdb_prompt $" {
          pass "print value of x>=(y!=z)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>=(y*!=z)" }
--- 454,460 ----
  # 2 3 0
  send_gdb "print x >= (y != z)\n"
  gdb_expect {
!     -re ".*$true\r\n$gdb_prompt $" {
          pass "print value of x>=(y!=z)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x>=(y*!=z)" }
***************
*** 453,459 ****
  # 2 3 0
  send_gdb "print x == (y == z)\n"
  gdb_expect {
!     -re ".*0\r\n$gdb_prompt $" {
          pass "print value of x==(y==z)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x==(y==z)" }
--- 464,470 ----
  # 2 3 0
  send_gdb "print x == (y == z)\n"
  gdb_expect {
!     -re ".*$false\r\n$gdb_prompt $" {
          pass "print value of x==(y==z)"
        }
      -re ".*$gdb_prompt $" { fail "print value of x==(y==z)" }
***************
*** 467,473 ****
  # 1 3 4
  send_gdb "print (x == y) < z\n"
  gdb_expect {
!     -re ".*1\r\n$gdb_prompt $" {
          pass "print value of (x==y)<z"
        }
      -re ".*$gdb_prompt $" { fail "print value of (x==y)<z" }
--- 478,484 ----
  # 1 3 4
  send_gdb "print (x == y) < z\n"
  gdb_expect {
!     -re ".*$true\r\n$gdb_prompt $" {
          pass "print value of (x==y)<z"
        }
      -re ".*$gdb_prompt $" { fail "print value of (x==y)<z" }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/restore.c gdb/testsuite/gdb.base/restore.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/restore.c	Mon Dec  7 15:14:53 1998
--- gdb/testsuite/gdb.base/restore.c	Thu Jun 24 20:28:30 1999
***************
*** 248,254 ****
  
  /* generated code ends here */
  
! main ()
  {
    register int local;
  #ifdef usestubs
--- 248,254 ----
  
  /* generated code ends here */
  
! int main ()
  {
    register int local;
  #ifdef usestubs
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/return.c gdb/testsuite/gdb.base/return.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/return.c	Fri Jan 31 13:21:28 1997
--- gdb/testsuite/gdb.base/return.c	Thu Jun 24 20:28:10 1999
***************
*** 1,7 ****
  #include <stdio.h>
  /*  Test "return" command.  */
  
! func1 ()
  {
    printf("in func1\n");
  }
--- 1,7 ----
  #include <stdio.h>
  /*  Test "return" command.  */
  
! void func1 ()
  {
    printf("in func1\n");
  }
***************
*** 21,27 ****
  int tmp2;
  double tmp3;
  
! main ()
  {
  #ifdef usestubs
    set_debug_traps();
--- 21,27 ----
  int tmp2;
  double tmp3;
  
! int main ()
  {
  #ifdef usestubs
    set_debug_traps();
***************
*** 32,35 ****
--- 32,36 ----
    tmp2 = func2 ();
    tmp3 = func3 ();
    printf("exiting\n");
+   return 0;
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/run.c gdb/testsuite/gdb.base/run.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/run.c	Mon Apr 21 14:56:46 1997
--- gdb/testsuite/gdb.base/run.c	Thu Jun 24 20:28:11 1999
***************
*** 34,44 ****
--- 34,53 ----
  
  #else /* ! vxworks */
  #  include <stdio.h>
+ #  include <stdlib.h>
  #endif /* ! vxworks */
  
+ #ifdef PROTOTYPES
+ int factorial (int);
+ 
+ int
+ main (int argc, char **argv, char **envp)
+ #else
+ int
  main (argc, argv, envp)
  int argc;
  char *argv[], **envp;
+ #endif
  {
  #ifdef usestubs
      set_debug_traps();
***************
*** 57,67 ****
      return 0;
  }
  
! int factorial (value)
! int value;
  {
      if (value > 1) {
  	value *= factorial (value - 1);
      }
      return (value);
  }
--- 66,82 ----
      return 0;
  }
  
! #ifdef PROTOTYPES
! int factorial (int value)
! #else
! int factorial (value) int value;
! #endif
  {
+     int  local_var;
+ 
      if (value > 1) {
  	value *= factorial (value - 1);
      }
+     local_var = value;
      return (value);
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/scope.exp gdb/testsuite/gdb.base/scope.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/scope.exp	Tue Jan  5 13:58:18 1999
--- gdb/testsuite/gdb.base/scope.exp	Thu Jun 24 20:28:11 1999
***************
*** 59,64 ****
--- 59,65 ----
      global srcdir
      global subdir
      global gcc_compiled
+     global hp_cc_compiler
  
      # skip past init.  There may be a call to __main at the start of
      # main, so the first next may only get us to the init0 call.
***************
*** 111,116 ****
--- 112,119 ----
      # Print scope1.c::filelocal, which is 2
  
      if {$gcc_compiled} then { setup_xfail "rs6000-*-*" }
+     #DTS 11747CLLbs
+     if {$hp_cc_compiler} then { setup_xfail "hppa2.0w-*-*"}
      if [gdb_test "print 'scope1.c'::filelocal" "\\\$$decimal = 2" "print 'scope1.c'::filelocal"  "No symbol \"scope1.c\" in current context.*" "print '$srcdir/$subdir/scope1.c'::filelocal"] { 
        gdb_suppress_tests ; 
      }
***************
*** 119,124 ****
--- 122,129 ----
      # Print scope1.c::filelocal_bss, which is 102
  
      if {$gcc_compiled} then { setup_xfail "rs6000-*-*" }
+     #DTS 11747CLLbs
+     if {$hp_cc_compiler} then { setup_xfail "hppa2.0w-*-*"}
      if [gdb_test "print 'scope1.c'::filelocal_bss" "\\\$$decimal = 102" "print 'scope1.c'::filelocal_bss"  "No symbol \"scope1.c\" in current context.*" "print '$srcdir/$subdir/scope1.c'::filelocal_bss"] { 
        gdb_suppress_tests ; 
      }
***************
*** 127,132 ****
--- 132,139 ----
      # Print scope1.c::filelocal_ro, which is 202
  
      if {$gcc_compiled} then { setup_xfail "rs6000-*-*" }
+     #DTS 11747CLLbs
+     if {$hp_cc_compiler} then { setup_xfail "hppa2.0w-*-*"}
      if [gdb_test "print 'scope1.c'::filelocal_ro" "\\\$$decimal = 202" "print 'scope1.c'::filelocal_ro"  "No symbol \"scope1.c\" in current context.*" "print '$srcdir/$subdir/scope1.c'::filelocal_ro"] { 
        gdb_suppress_tests ; 
      }
***************
*** 134,140 ****
  
      # Print scope1.c::foo::funclocal, which is 3
  
-     if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" }
      if [gdb_test "print foo::funclocal" "\\\$$decimal = 3" "print foo::funclocal" ] { 
        gdb_suppress_tests ; 
      }
--- 141,146 ----
***************
*** 238,249 ****
  
      gdb_test "print funclocal" "\\\$$decimal = 3" "print funclocal at foo"
  
-     if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" }
      gdb_test "print foo::funclocal" "\\\$$decimal = 3" \
  	"print foo::funclocal at foo"
  
      if {$gcc_compiled} then { setup_xfail "rs6000-*-*" }
-     if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" }
      gdb_test "print 'scope1.c'::foo::funclocal" "\\\$$decimal = 3" "print 'scope1.c'::foo::funclocal at foo"  "No symbol \"scope1.c\" in current context.*" "print '$srcdir/$subdir/scope1.c'::foo::funclocal"
  
  
--- 244,253 ----
***************
*** 252,263 ****
      gdb_test "print funclocal_bss" "\\\$$decimal = 103" \
  	"print funclocal_bss at foo"
  
-     if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" }
      gdb_test "print foo::funclocal_bss" "\\\$$decimal = 103" \
  	"print foo::funclocal_bss at foo"
  
      if {$gcc_compiled} then { setup_xfail "rs6000-*-*" }
-     if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" }
      gdb_test "print 'scope1.c'::foo::funclocal_bss" "\\\$$decimal = 103" "print 'scope1.c'::foo::funclocal_bss at foo"  "No symbol \"scope1.c\" in current context.*" "print '$srcdir/$subdir/scope1.c'::foo::funclocal_bss"
  
  
--- 256,265 ----
***************
*** 266,288 ****
      gdb_test "print funclocal_ro" "\\\$$decimal = 203" \
  	"print funclocal_ro at foo"
  
-     if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" }
      gdb_test "print foo::funclocal_ro" "\\\$$decimal = 203" \
  	"print foo::funclocal_ro at foo"
  
      if {$gcc_compiled} then { setup_xfail "rs6000-*-*" }
-     if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" }
      gdb_test "print 'scope1.c'::foo::funclocal_ro" "\\\$$decimal = 203" "print 'scope1.c'::foo::funclocal_ro at foo"  "No symbol \"scope1.c\" in current context.*" "print '$srcdir/$subdir/scope1.c'::foo::funclocal_ro"
  
  
      # Print scope1.c::bar::funclocal, which is 4
  
-     if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" }
      gdb_test "print bar::funclocal" "\\\$$decimal = 4" \
  	"print bar::funclocal at foo"
  
      if {$gcc_compiled} then { setup_xfail "rs6000-*-*" }
-     if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" }
      gdb_test "print 'scope1.c'::bar::funclocal" "\\\$$decimal = 4" "print 'scope1.c'::bar::funclocal at foo"  "No symbol \"scope1.c\" in current context.*" "print '$srcdir/$subdir/scope1.c'::bar::funclocal"
      gdb_stop_suppressing_tests;
  
--- 268,286 ----
***************
*** 365,371 ****
  
      # Print scope1.c::foo::funclocal, which is 3
  
-     if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" }
      if [gdb_test "print foo::funclocal" "\\\$$decimal = 3" "print foo::funclocal at bar" ] { 
        gdb_suppress_tests ; 
      }
--- 363,368 ----
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/scope0.c gdb/testsuite/gdb.base/scope0.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/scope0.c	Sat Mar 29 13:00:21 1997
--- gdb/testsuite/gdb.base/scope0.c	Thu Jun 24 20:28:11 1999
***************
*** 5,11 ****
  #endif
  static const int filelocal_ro = 201;	/* In Read-Only Data section */
  
! main ()
  {
  #ifdef usestubs
    set_debug_traps();
--- 5,23 ----
  #endif
  static const int filelocal_ro = 201;	/* In Read-Only Data section */
  
! extern void init1();
! extern void foo();
! 
! int autovars (int bcd, int abc);
! int localscopes (int x);
! int useit (int val);
! void init0();
! void marker1 ();
! void marker2 ();
! void marker3 ();
! void marker4 ();
! 
! int main ()
  {
  #ifdef usestubs
    set_debug_traps();
***************
*** 19,32 ****
  
  /* On some systems, such as AIX, unreferenced variables are deleted
     from the executable.  */
! usestatics ()
  {
    useit (filelocal);
    useit (filelocal_bss);
    useit (filelocal_ro);
  }
  
! init0 ()
  {
    filelocal_bss = 101;
    init1 ();
--- 31,44 ----
  
  /* On some systems, such as AIX, unreferenced variables are deleted
     from the executable.  */
! void usestatics ()
  {
    useit (filelocal);
    useit (filelocal_bss);
    useit (filelocal_ro);
  }
  
! void init0 ()
  {
    filelocal_bss = 101;
    init1 ();
***************
*** 34,42 ****
--- 46,59 ----
  
  /* This is to derail optimizer in localscopes.
     Return 1 + 2 + . . . + N.  */
+ #ifdef PROTOTYPES
+ int
+ sum_upto (int n)
+ #else
  int
  sum_upto (n)
       int n;
+ #endif
  {
    int i;
    int retval = 0;
***************
*** 46,53 ****
--- 63,75 ----
    return retval;
  }
  
+ #ifdef PROTOTYPES
+ int
+ useit (int val)
+ #else
  int
  useit (val)
+ #endif
  {
      static int usedval;
  
***************
*** 55,64 ****
--- 77,91 ----
      return val + sum_upto (0);
  }
  
+ #ifdef PROTOTYPES
+ int
+ autovars (int bcd, int abc)
+ #else
  int
  autovars (bcd, abc)
       int bcd;
       int abc;
+ #endif
  {
      int  i0 =  useit (0),  i1 =  useit (1),  i2 =  useit (2);
      int  i3 =  useit (3),  i4 =  useit (4),  i5 =  useit (5);
***************
*** 133,141 ****
--- 160,173 ----
        + i91 + i92 + i93 + i94 + i95 + i96 + i97 + i98 + i99 + abc + bcd;
  }
  
+ #ifdef PROTOTYPES
+ int
+ localscopes (int x)
+ #else
  int
  localscopes (x)
       int x;
+ #endif
  {
      int localval;
      int retval;
***************
*** 170,176 ****
      return retval;
  }
  
! marker1 () {}
! marker2 () {}
! marker3 () {}
! marker4 () {}
--- 202,208 ----
      return retval;
  }
  
! void marker1 () {}
! void marker2 () {}
! void marker3 () {}
! void marker4 () {}
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/scope1.c gdb/testsuite/gdb.base/scope1.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/scope1.c	Mon Jun  6 18:56:38 1994
--- gdb/testsuite/gdb.base/scope1.c	Thu Jun 24 20:28:11 1999
***************
*** 5,12 ****
  #endif
  static const int filelocal_ro = 202;	/* In Read-Only Data section */
  
! foo ()
  {
    static int funclocal = 3;	/* In Data section */
    static int funclocal_bss;	/* In BSS section */
    static const int funclocal_ro = 203;	/* RO Data */
--- 5,15 ----
  #endif
  static const int filelocal_ro = 202;	/* In Read-Only Data section */
  
! void foo ()
  {
+ 
+   void bar ();
+   
    static int funclocal = 3;	/* In Data section */
    static int funclocal_bss;	/* In BSS section */
    static const int funclocal_ro = 203;	/* RO Data */
***************
*** 16,43 ****
    bar ();
  }
  
! bar ()
  {
    static int funclocal = 4;	/* In data section */
    static int funclocal_bss;	/* In BSS section */
    funclocal_bss = 104;
  }
  
! init1 ()
  {
    filelocal_bss = 102;
  }
  
  /* On some systems, such as AIX, unreferenced variables are deleted
     from the executable.  */
! usestatics1 ()
  {
    useit1 (filelocal);
    useit1 (filelocal_bss);
    useit1 (filelocal_ro);
  }
  
! useit1 (val)
  {
      static int usedval;
  
--- 19,52 ----
    bar ();
  }
  
! void bar ()
  {
    static int funclocal = 4;	/* In data section */
    static int funclocal_bss;	/* In BSS section */
    funclocal_bss = 104;
  }
  
! void init1 ()
  {
    filelocal_bss = 102;
  }
  
  /* On some systems, such as AIX, unreferenced variables are deleted
     from the executable.  */
! void usestatics1 ()
  {
+   void useit1 (int val);
+   
    useit1 (filelocal);
    useit1 (filelocal_bss);
    useit1 (filelocal_ro);
  }
  
! #ifdef PROTOTYPES
! void useit1 (int val)
! #else
! void useit1 (val) int val;
! #endif
  {
      static int usedval;
  
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/sect-cmd.exp gdb/testsuite/gdb.base/sect-cmd.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/sect-cmd.exp	Fri Jan  8 16:00:54 1999
--- gdb/testsuite/gdb.base/sect-cmd.exp	Thu Jun 24 20:28:28 1999
***************
*** 59,68 ****
  # not clear that there'll be a section named "$CODE$" in such
  # programs.)
  #
  send_gdb "info files\n"
  gdb_expect {
!   -re ".*(0x\[0-9a-fA-F\]*) - (0x\[0-9a-fA-F\]*) is .CODE..*$gdb_prompt $"\
!           {pass "info files"}
    -re "$gdb_prompt $"\
            {fail "info files"}
    timeout {fail "(timeout) info files"}
--- 59,73 ----
  # not clear that there'll be a section named "$CODE$" in such
  # programs.)
  #
+ 
+ set address1 ""
+ set address2 ""
  send_gdb "info files\n"
  gdb_expect {
!   -re ".*(0x\[0-9a-fA-F\]*) - (0x\[0-9a-fA-F\]*) is .(CODE|text).*$gdb_prompt $"\
!           {pass "info files"
! 	   set address1 $expect_out(1,string)
! 	   set address2 $expect_out(2,string)}
    -re "$gdb_prompt $"\
            {fail "info files"}
    timeout {fail "(timeout) info files"}
***************
*** 71,83 ****
  # Reset the section to that same starting address, which should be
  # harmless (i.e., we just want to exercise the section command).
  #
! send_gdb "section \$CODE\$ $expect_out(1,string)\n"
! gdb_expect {
!   -re ".*$expect_out(1,string) \- $expect_out(2,string) is .CODE..*$gdb_prompt $"\
!           {pass "set section command"}
!   -re "$gdb_prompt $"\
!           {fail "set section command"}
!   timeout {fail "(timeout) set section command"}
  }
  
  # Verify that GDB responds gracefully to a non-existent section name.
--- 76,99 ----
  # Reset the section to that same starting address, which should be
  # harmless (i.e., we just want to exercise the section command).
  #
! if [istarget "hppa2.0w-*-*"] then {
!   send_gdb "section \.text $address1\n"
!   gdb_expect {
!     -re ".*$address1 \- $address2 is .text.*$gdb_prompt $"\
!             {pass "set section command"}
!     -re "$gdb_prompt $"\
!             {fail "set section command"}
!     timeout {fail "(timeout) set section command"}
!   }
! } else {
!   send_gdb "section \$CODE\$ $address1\n"
!   gdb_expect {
!     -re ".*$address1 \- $address2 is .CODE..*$gdb_prompt $"\
!             {pass "set section command"}
!     -re "$gdb_prompt $"\
!             {fail "set section command"}
!     timeout {fail "(timeout) set section command"}
!   }
  }
  
  # Verify that GDB responds gracefully to a non-existent section name.
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/setshow.c gdb/testsuite/gdb.base/setshow.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/setshow.c	Fri Sep 12 17:07:58 1997
--- gdb/testsuite/gdb.base/setshow.c	Thu Jun 24 20:28:25 1999
***************
*** 3,12 ****
--- 3,17 ----
  
  #include <stdio.h>
  
+ #ifdef PROTOTYPES
+ int
+ main(int argc, char **argv)
+ #else
  int 
  main(argc, argv)
       int argc;
       char **argv;
+ #endif
  {
    int i = 1;
  #ifdef usestubs
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/setvar.c gdb/testsuite/gdb.base/setvar.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/setvar.c	Sat Aug 26 00:36:42 1995
--- gdb/testsuite/gdb.base/setvar.c	Thu Jun 24 20:28:12 1999
***************
*** 1,7 ****
--- 1,13 ----
+ #include <stdlib.h>
+ 
+ #ifdef PROTOTYPES
+ int main (int argc, char **argv, char **envp)
+ #else
  main (argc, argv, envp)
       int argc;
       char **argv;
       char **envp;
+ #endif
  {
      extern void dummy();
  #ifdef usestubs
***************
*** 9,14 ****
--- 15,21 ----
      breakpoint();
  #endif
      dummy();
+     return 0;
  }
  
  /* We put main() right up front so its line number doesn't keep changing.  */
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/setvar.exp gdb/testsuite/gdb.base/setvar.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/setvar.exp	Sun Jun 29 21:24:02 1997
--- gdb/testsuite/gdb.base/setvar.exp	Thu Jun 24 20:28:12 1999
***************
*** 329,336 ****
--- 329,340 ----
  gdb_test "set v_unsigned_short_pointer=v_unsigned_short_array" ""
  gdb_test "set variable *(v_unsigned_short_pointer)=123" ""
  gdb_test "set variable *(v_unsigned_short_pointer+1)=-456" ""
+ # DTS 10060CLLbs - bad type info from cc
+ if {$hp_cc_compiler} {setup_xfail hppa*-*-*11*}
  gdb_test "print v_unsigned_short_array" ".\[0-9\]* =.*\{123,.*65080\}" \
      "set variable unsigned short pointer"
+ # DTS 10060CLLbs - bad type info from cc
+ if {$hp_cc_compiler} {setup_xfail hppa*-*-*11*}
  gdb_test "print *(v_unsigned_short_pointer+1)" ".\[0-9\]* = 65080"
  #
  # test "set variable" for type "int *"
***************
*** 385,390 ****
--- 389,396 ----
  # the type of the structure to be specified, as in
  # v_struct1 = (struct t_struct) {32, 33, 34, 35, 36, 37}
  # GDB should do the same if it wants to provide this feature.
+ # However, for HP's aCC this is OK, so we skip the tests for aCC
+ if {! $hp_aCC_compiler} {
  if [target_info exists gdb,cannot_call_functions] {
      setup_xfail "*-*-*" 2416
      fail "set variable v_struct1 = {32, 33, 34, 35, 36, 37}"
***************
*** 398,403 ****
--- 404,410 ----
  .*v_int_member = 2,.*\
  v_long_member = 3,.*v_float_member = 4,.*v_double_member = 5.*\}" \
    "set print structure #2"
+ }
  
  # Test printing of enumeration bitfields.
  # GNU C supports them, some other compilers don't.
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/shlib-call.exp gdb/testsuite/gdb.base/shlib-call.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/shlib-call.exp	Tue Jan 19 14:24:21 1999
--- gdb/testsuite/gdb.base/shlib-call.exp	Thu Jun 24 20:28:31 1999
***************
*** 180,186 ****
      "Breakpoint.*file.*shr2.c, line.*" \
      "breakpoint function shr2"
  
! gdb_test continue "Continuing\\..*Breakpoint \[0-9\]+, shr2 \\(.*\\) at.*shr2\\.c:3.*3.*return 2.x;" \
  "run until breakpoint set at a function"
  
  
--- 180,186 ----
      "Breakpoint.*file.*shr2.c, line.*" \
      "breakpoint function shr2"
  
! gdb_test continue "Continuing\\..*Breakpoint \[0-9\]+, shr2 \\(.*\\) at.*shr2\\.c:7.*7.*return 2.x;" \
  "run until breakpoint set at a function"
  
  
***************
*** 249,258 ****
  
  # PR's 16495, 18213
  # test that we can re-set breakpoints in shared libraries
! gdb_test "break shr1" "Breakpoint 1 at .*" "set bp in shared library"
  gdb_test "run" "Starting program:.*Breakpoint 1,.*" "run to bp in shared library"
! gdb_test "cont" "Program exited normally."
  gdb_test "run" "Starting program:.*Breakpoint 1,.*" "re-run to bp in shared library (PR's 16495, 18213)"
! gdb_test "cont" "Program exited normally."
  
  return 0
--- 249,258 ----
  
  # PR's 16495, 18213
  # test that we can re-set breakpoints in shared libraries
! gdb_test "break shr1" "Breakpoint 1.*" "set bp in shared library"
  gdb_test "run" "Starting program:.*Breakpoint 1,.*" "run to bp in shared library"
! gdb_test "cont" ".*Program exited normally..*"
  gdb_test "run" "Starting program:.*Breakpoint 1,.*" "re-run to bp in shared library (PR's 16495, 18213)"
! gdb_test "cont" ".*Program exited normally..*"
  
  return 0
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/shmain.c gdb/testsuite/gdb.base/shmain.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/shmain.c	Tue Jan 19 14:24:21 1999
--- gdb/testsuite/gdb.base/shmain.c	Thu Jun 24 20:28:16 1999
***************
*** 3,10 ****
  #include "ss.h"
  #include <stdio.h>
  
! extern int shr1();
! extern int shr2();
  extern float sg;
  
  int eglob;
--- 3,12 ----
  #include "ss.h"
  #include <stdio.h>
  
! extern int structarg(struct s);
! extern int pstructarg(struct s*);
! extern int shr1(int);
! extern int shr2(int);
  extern float sg;
  
  int eglob;
***************
*** 16,28 ****
  
  int g;
  
  int local_structarg(x)
  struct s x;
  {
    return x.b;
  }
  
! main()
  {
    struct s y;
    g = 1;
--- 18,44 ----
  
  int g;
  
+ #ifdef PROTOTYPES
+ int local_structarg(struct s x)
+ #else
  int local_structarg(x)
  struct s x;
+ #endif
  {
    return x.b;
  }
  
! #ifdef PROTOTYPES
! int mainshr1(int g)
! #else
! int mainshr1(g)
! int g;
! #endif
! {
!   return 2*g;
! }
! 
! int main()
  {
    struct s y;
    g = 1;
***************
*** 36,47 ****
    g = local_structarg(y);
    g = structarg(y);
    g = pstructarg(&y);
! 
!   return (0);
! }
! 
! int mainshr1(g)
! int g;
! {
!   return 2*g;
  }
--- 52,56 ----
    g = local_structarg(y);
    g = structarg(y);
    g = pstructarg(&y);
!   return 0;
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/shr1.c gdb/testsuite/gdb.base/shr1.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/shr1.c	Mon Jan  4 07:34:31 1999
--- gdb/testsuite/gdb.base/shr1.c	Thu Jun 24 20:28:16 1999
***************
*** 7,14 ****
--- 7,18 ----
  int sgi = 2;
  static int sgs = 7;
  
+ #ifdef PROTOTYPES
+ int shr1(int x)
+ #else
  int shr1(x)
  int x;
+ #endif
  {
    f mumble;
    int l;
***************
*** 25,44 ****
--- 29,60 ----
    return 2*x;
  }
  
+ #ifdef PROTOTYPES
+ static int shr1_local(int x)
+ #else
  static int shr1_local(x)
  int x;
+ #endif
  {
    return 2*x;
  }
  
+ #ifdef PROTOTYPES
+ int structarg(struct s x)
+ #else
  int structarg(x)
  struct s x;
+ #endif
  {
    return x.a;
  }
  
+ #ifdef PROTOTYPES
+ int pstructarg(struct s *x)
+ #else
  int pstructarg(x)
  struct s *x;
+ #endif
  {
    return x->a;
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/shr2.c gdb/testsuite/gdb.base/shr2.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/shr2.c	Mon Jan  4 07:34:31 1999
--- gdb/testsuite/gdb.base/shr2.c	Thu Jun 24 20:28:16 1999
***************
*** 1,11 ****
! int shr2(x)
  {
    return 2*x;
  }
  
! int shr2_local(x)
  {
    return 2*x;
  }
- 
- 
--- 1,17 ----
! #ifdef PROTOTYPES
! int shr2(int x)
! #else
! int shr2(x) int x;
! #endif
  {
    return 2*x;
  }
  
! #ifdef PROTOTYPES
! int shr2_local(int x)
! #else
! int shr2_local(x) int x;
! #endif
  {
    return 2*x;
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/sigall.c gdb/testsuite/gdb.base/sigall.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/sigall.c	Thu Apr  3 15:24:29 1997
--- gdb/testsuite/gdb.base/sigall.c	Thu Jun 24 20:28:12 1999
***************
*** 1,4 ****
--- 1,5 ----
  #include <signal.h>
+ #include <unistd.h>
  
  #ifdef __sh__
  #define signal(a,b)	/* Signals not supported on this target - make them go away */
***************
*** 7,435 ****
--- 8,791 ----
  /* Signal handlers, we set breakpoints in them to make sure that the
     signals really get delivered.  */
  
+ #ifdef PROTOTYPES
+ void
+ handle_ABRT (int sig)
+ #else
  void
  handle_ABRT (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_HUP (int sig)
+ #else
  void
  handle_HUP (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_QUIT (int sig)
+ #else
  void
  handle_QUIT (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_ILL (int sig)
+ #else
  void
  handle_ILL (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_EMT (int sig)
+ #else
  void
  handle_EMT (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_FPE (int sig)
+ #else
  void
  handle_FPE (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_BUS (int sig)
+ #else
  void
  handle_BUS (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_SEGV (int sig)
+ #else
  void
  handle_SEGV (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_SYS (int sig)
+ #else
  void
  handle_SYS (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_PIPE (int sig)
+ #else
  void
  handle_PIPE (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_ALRM (int sig)
+ #else
  void
  handle_ALRM (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_URG (int sig)
+ #else
  void
  handle_URG (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_TSTP (int sig)
+ #else
  void
  handle_TSTP (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_CONT (int sig)
+ #else
  void
  handle_CONT (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_CHLD (int sig)
+ #else
  void
  handle_CHLD (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_TTIN (int sig)
+ #else
  void
  handle_TTIN (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_TTOU (int sig)
+ #else
  void
  handle_TTOU (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_IO (int sig)
+ #else
  void
  handle_IO (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_XCPU (int sig)
+ #else
  void
  handle_XCPU (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_XFSZ (int sig)
+ #else
  void
  handle_XFSZ (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_VTALRM (int sig)
+ #else
  void
  handle_VTALRM (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_PROF (int sig)
+ #else
  void
  handle_PROF (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_WINCH (int sig)
+ #else
  void
  handle_WINCH (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_LOST (int sig)
+ #else
  void
  handle_LOST (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_USR1 (int sig)
+ #else
  void
  handle_USR1 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_USR2 (int sig)
+ #else
  void
  handle_USR2 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_PWR (int sig)
+ #else
  void
  handle_PWR (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_POLL (int sig)
+ #else
  void
  handle_POLL (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_WIND (int sig)
+ #else
  void
  handle_WIND (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_PHONE (int sig)
+ #else
  void
  handle_PHONE (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_WAITING (int sig)
+ #else
  void
  handle_WAITING (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_LWP (int sig)
+ #else
  void
  handle_LWP (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_DANGER (int sig)
+ #else
  void
  handle_DANGER (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_GRANT (int sig)
+ #else
  void
  handle_GRANT (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_RETRACT (int sig)
+ #else
  void
  handle_RETRACT (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_MSG (int sig)
+ #else
  void
  handle_MSG (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_SOUND (int sig)
+ #else
  void
  handle_SOUND (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_SAK (int sig)
+ #else
  void
  handle_SAK (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_PRIO (int sig)
+ #else
  void
  handle_PRIO (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_33 (int sig)
+ #else
  void
  handle_33 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_34 (int sig)
+ #else
  void
  handle_34 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_35 (int sig)
+ #else
  void
  handle_35 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_36 (int sig)
+ #else
  void
  handle_36 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_37 (int sig)
+ #else
  void
  handle_37 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_38 (int sig)
+ #else
  void
  handle_38 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_39 (int sig)
+ #else
  void
  handle_39 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_40 (int sig)
+ #else
  void
  handle_40 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_41 (int sig)
+ #else
  void
  handle_41 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_42 (int sig)
+ #else
  void
  handle_42 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_43 (int sig)
+ #else
  void
  handle_43 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_44 (int sig)
+ #else
  void
  handle_44 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_45 (int sig)
+ #else
  void
  handle_45 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_46 (int sig)
+ #else
  void
  handle_46 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_47 (int sig)
+ #else
  void
  handle_47 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_48 (int sig)
+ #else
  void
  handle_48 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_49 (int sig)
+ #else
  void
  handle_49 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_50 (int sig)
+ #else
  void
  handle_50 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_51 (int sig)
+ #else
  void
  handle_51 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_52 (int sig)
+ #else
  void
  handle_52 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_53 (int sig)
+ #else
  void
  handle_53 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_54 (int sig)
+ #else
  void
  handle_54 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_55 (int sig)
+ #else
  void
  handle_55 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_56 (int sig)
+ #else
  void
  handle_56 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_57 (int sig)
+ #else
  void
  handle_57 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_58 (int sig)
+ #else
  void
  handle_58 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_59 (int sig)
+ #else
  void
  handle_59 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_60 (int sig)
+ #else
  void
  handle_60 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_61 (int sig)
+ #else
  void
  handle_61 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_62 (int sig)
+ #else
  void
  handle_62 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_63 (int sig)
+ #else
  void
  handle_63 (sig)
       int sig;
+ #endif
  {
  }
  
+ #ifdef PROTOTYPES
+ void
+ handle_TERM (int sig)
+ #else
  void
  handle_TERM (sig)
       int sig;
+ #endif
  {
  }
  
***************
*** 438,443 ****
--- 794,800 ----
  gen_ABRT ()
  {
    kill (getpid (), SIGABRT);
+   return 0;
  }  
  
  int
***************
*** 448,453 ****
--- 805,811 ----
  #else
    handle_HUP (0);
  #endif
+ return 0;
  }  
  
  int
***************
*** 458,463 ****
--- 816,822 ----
  #else
    handle_QUIT (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 468,473 ****
--- 827,833 ----
  #else
    handle_ILL (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 478,483 ****
--- 838,844 ----
  #else
    handle_EMT (0);
  #endif
+ return 0;
  }
  
  int x;
***************
*** 499,504 ****
--- 860,866 ----
  #else
    kill (getpid (), SIGFPE);
  #endif
+ return 0;
  }
  
  int
***************
*** 509,514 ****
--- 871,877 ----
  #else
    handle_BUS (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 519,524 ****
--- 882,888 ----
  #else
    handle_SEGV (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 529,534 ****
--- 893,899 ----
  #else
    handle_SYS (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 539,544 ****
--- 904,910 ----
  #else
    handle_PIPE (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 549,554 ****
--- 915,921 ----
  #else
    handle_ALRM (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 559,564 ****
--- 926,932 ----
  #else
    handle_URG (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 569,574 ****
--- 937,943 ----
  #else
    handle_TSTP (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 579,584 ****
--- 948,954 ----
  #else
    handle_CONT (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 589,594 ****
--- 959,965 ----
  #else
    handle_CHLD (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 599,604 ****
--- 970,976 ----
  #else
    handle_TTIN (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 609,614 ****
--- 981,987 ----
  #else
    handle_TTOU (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 619,624 ****
--- 992,998 ----
  #else
    handle_IO (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 629,634 ****
--- 1003,1009 ----
  #else
    handle_XCPU (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 639,644 ****
--- 1014,1020 ----
  #else
    handle_XFSZ (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 649,654 ****
--- 1025,1031 ----
  #else
    handle_VTALRM (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 659,664 ****
--- 1036,1042 ----
  #else
    handle_PROF (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 669,674 ****
--- 1047,1053 ----
  #else
    handle_WINCH (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 679,684 ****
--- 1058,1064 ----
  #else
    handle_LOST (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 689,694 ****
--- 1069,1075 ----
  #else
    handle_USR1 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 699,704 ****
--- 1080,1086 ----
  #else
    handle_USR2 (0);
  #endif
+ return 0;
  }  
  
  int
***************
*** 709,714 ****
--- 1091,1097 ----
  #else
    handle_PWR (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 719,724 ****
--- 1102,1108 ----
  #else
    handle_POLL (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 729,734 ****
--- 1113,1119 ----
  #else
    handle_WIND (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 739,744 ****
--- 1124,1130 ----
  #else
    handle_PHONE (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 749,754 ****
--- 1135,1141 ----
  #else
    handle_WAITING (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 759,764 ****
--- 1146,1152 ----
  #else
    handle_LWP (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 769,774 ****
--- 1157,1163 ----
  #else
    handle_DANGER (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 779,784 ****
--- 1168,1174 ----
  #else
    handle_GRANT (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 789,794 ****
--- 1179,1185 ----
  #else
    handle_RETRACT (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 799,804 ****
--- 1190,1196 ----
  #else
    handle_MSG (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 809,814 ****
--- 1201,1207 ----
  #else
    handle_SOUND (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 819,824 ****
--- 1212,1218 ----
  #else
    handle_SAK (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 829,834 ****
--- 1223,1229 ----
  #else
    handle_PRIO (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 839,844 ****
--- 1234,1240 ----
  #else
    handle_33 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 849,854 ****
--- 1245,1251 ----
  #else
    handle_34 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 859,864 ****
--- 1256,1262 ----
  #else
    handle_35 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 869,874 ****
--- 1267,1273 ----
  #else
    handle_36 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 879,884 ****
--- 1278,1284 ----
  #else
    handle_37 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 889,894 ****
--- 1289,1295 ----
  #else
    handle_38 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 899,904 ****
--- 1300,1306 ----
  #else
    handle_39 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 909,914 ****
--- 1311,1317 ----
  #else
    handle_40 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 919,924 ****
--- 1322,1328 ----
  #else
    handle_41 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 929,934 ****
--- 1333,1339 ----
  #else
    handle_42 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 939,944 ****
--- 1344,1350 ----
  #else
    handle_43 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 949,954 ****
--- 1355,1361 ----
  #else
    handle_44 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 959,964 ****
--- 1366,1372 ----
  #else
    handle_45 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 969,974 ****
--- 1377,1383 ----
  #else
    handle_46 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 979,984 ****
--- 1388,1394 ----
  #else
    handle_47 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 989,994 ****
--- 1399,1405 ----
  #else
    handle_48 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 999,1004 ****
--- 1410,1416 ----
  #else
    handle_49 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 1009,1014 ****
--- 1421,1427 ----
  #else
    handle_50 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 1019,1024 ****
--- 1432,1438 ----
  #else
    handle_51 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 1029,1034 ****
--- 1443,1449 ----
  #else
    handle_52 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 1039,1044 ****
--- 1454,1460 ----
  #else
    handle_53 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 1049,1054 ****
--- 1465,1471 ----
  #else
    handle_54 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 1059,1064 ****
--- 1476,1482 ----
  #else
    handle_55 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 1069,1074 ****
--- 1487,1493 ----
  #else
    handle_56 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 1079,1084 ****
--- 1498,1504 ----
  #else
    handle_57 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 1089,1094 ****
--- 1509,1515 ----
  #else
    handle_58 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 1099,1104 ****
--- 1520,1526 ----
  #else
    handle_59 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 1109,1114 ****
--- 1531,1537 ----
  #else
    handle_60 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 1119,1124 ****
--- 1542,1548 ----
  #else
    handle_61 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 1129,1134 ****
--- 1553,1559 ----
  #else
    handle_62 (0);
  #endif
+ return 0;
  }
  
  int
***************
*** 1139,1150 ****
--- 1564,1577 ----
  #else
    handle_63 (0);
  #endif
+ return 0;
  }
  
  int
  gen_TERM ()
  {
    kill (getpid (), SIGTERM);
+ return 0;
  }  
  
  int
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/signals.c gdb/testsuite/gdb.base/signals.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/signals.c	Wed Jul 12 10:28:53 1995
--- gdb/testsuite/gdb.base/signals.c	Thu Jun 24 20:28:12 1999
***************
*** 1,6 ****
--- 1,7 ----
  /* Test GDB dealing with stuff like stepping into sigtramp.  */
  
  #include <signal.h>
+ #include <unistd.h>
  
  #ifdef __sh__
  #define signal(a,b)	/* Signals not supported on this target - make them go away */
***************
*** 9,17 ****
--- 10,23 ----
  
  static int count = 0;
  
+ #ifdef PROTOTYPES
+ static void
+ handler (int sig)
+ #else
  static void
  handler (sig)
       int sig;
+ #endif
  {
    signal (sig, handler);
    ++count;
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/signals.exp gdb/testsuite/gdb.base/signals.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/signals.exp	Mon Apr  5 22:10:08 1999
--- gdb/testsuite/gdb.base/signals.exp	Thu Jun 24 20:28:13 1999
***************
*** 42,47 ****
--- 42,53 ----
      return -1;
  }
  
+ if {$hp_cc_compiler} {
+     set void 0
+ } else {
+     set void void
+ }
+ 
  proc signal_tests_1 {} {
      global gdb_prompt
      if [runto_main] then {
***************
*** 380,386 ****
      # lose its cool, this is not a problem, it just has to note
      # that the breakpoint condition is false and keep going.
  
!     gdb_test "p func1 ()" "^p func1 \\(\\)\r\n.\[0-9\]* = void" \
  	"p func1 () #1 in signals.exp"
  
      # Make sure the count got incremented.
--- 386,392 ----
      # lose its cool, this is not a problem, it just has to note
      # that the breakpoint condition is false and keep going.
  
!     gdb_test "p func1 ()" "^p func1 \\(\\)\r\n.\[0-9\]* = $void" \
  	"p func1 () #1 in signals.exp"
  
      # Make sure the count got incremented.
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/smoke.c gdb/testsuite/gdb.base/smoke.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/smoke.c	Fri Jan  8 15:42:20 1999
--- gdb/testsuite/gdb.base/smoke.c	Wed Dec 31 16:00:00 1969
***************
*** 1,40 ****
- /* Test various kinds of stepping.
- */
- int glob = 0;
- 
- int callee() {
-     glob++;
-     return (0);
- }
- 
- int main () {
-    int w,x,y,z;
-    int a[10], b[10];
- 
-    /* Test "next" and "step" */
-    w = 0;
-    x = 1;
-    y = 2;
-    z = 3;
-    w = w + 2;
-    x = x + 3;
-    y = y + 4;
-    z = z + 5;
- 
-    /* Test that "next" goes over a call */
-    callee(); /* OVER */
- 
-    /* Test that "step" doesn't */
-    callee(); /* INTO */
- 
-    /* Test "stepi" */
-    a[5] = a[3] - a[4];
-    callee(); /* STEPI */
-    
-    /* Test "nexti" */
-    callee(); /* NEXTI */
- 
-    y = w + z;
- 
-    return (0);
- }
--- 0 ----
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/smoke.cc gdb/testsuite/gdb.base/smoke.cc
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/smoke.cc	Fri Jan  8 15:40:55 1999
--- gdb/testsuite/gdb.base/smoke.cc	Wed Dec 31 16:00:00 1969
***************
*** 1,480 ****
- // 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;
- };
- 
- // ========================= 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; }
- };
- 
- 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;
- 
-   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 -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/smoke.exp gdb/testsuite/gdb.base/smoke.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/smoke.exp	Mon Apr  5 22:09:49 1999
--- gdb/testsuite/gdb.base/smoke.exp	Wed Dec 31 16:00:00 1969
***************
*** 1,181 ****
- # 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
- 
- # smoke.exp -- Expect script to test gdb before checkins
- 
- # use this to debug:
- #
- #log_user 1
- 
- if $tracelevel then {
-     strace $tracelevel
- }
- 
- set testfile smoke
- set testfile1 smoke1
- set c_srcfile   ${srcdir}/${subdir}/${testfile}.c
- set cpp_srcfile ${srcdir}/${subdir}/${testfile}.cc
- set binfile ${objdir}/${subdir}/${testfile}
- set binfile1 ${objdir}/${subdir}/${testfile1}
- 
- #remote_exec build "rm -f ${binfile}"
- remote_exec build "rm -f core"
- 
- # "C" section, using source copied from "step-test.c" from "gdb.base"
- #
- if { [gdb_compile "${c_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}
- 
- # Some basic tests
- #
- gdb_test "tb main"   ".*Breakpoint 1 at.*line 15.*" "temp breakpoint"
- gdb_test "b callee"  ".*Breakpoint 2 at.*line 6.*"  "breakpoint"
- gdb_test "l 10"      ".*10.*int main.*11.*int w,x,y,z;.*12.*int a.*" "list"
- gdb_test "c" ".*The program is not being run.*" "catch error"
- gdb_test "r" ".*Starting program.*main.*15.*"   "hit bp"
- gdb_test "hel r" ".*Start debugged program.*without arguments.*" "help"
- gdb_test "n" ".*x = 1;.*" "next"
- gdb_test "s" ".*y = 2;.*" "step"
- gdb_test "p/t x" ".* = 1.*" "print x in binary"
- gdb_test "p 1+2*3+4" ".* = 11.*" "calculate"
- gdb_test "p/t 1+2*3+4" ".* = 1011.*" "binary"
- 
- # Note: accept either "Watchpoint" or "Hardware watchpoint";
- #       10.20 can't do the hardware watch.  The hardware kind
- #       triggers one line earlier than the regular kind.
- #
- gdb_test "wat y" ".*atchpoint.*y.*" "set watch"
- gdb_test "c" ".*atchpoint.*Old.*= .*New.*= 2.*1\[78\].*" "continue, hit watch"
- 
- gdb_test "set glob=999" ".*.*" "set"
- gdb_test "p glob"   ".*= 999.*.*" "print glob"
- gdb_test "p/x glob" ".*= 0x3e7.*" "hex"
- gdb_test "c" ".*atchpoint.*Old.*= 2.*New.*= 6.*2\[12\].*" "continue, 2nd hit watch"
- gdb_test "d 5" "No breakpoint number 5." "del non existing watch"
- gdb_test "c" ".*Breakpoint.*callee.*6.*" "hit bp"
- gdb_test "bt" ".*callee.*6.*main.*25.*" "bt"
- gdb_test "fin" ".*Run till exit.*callee.*Value returned.*0.*" "finish"
- gdb_test "c"  ".*Breakpoint.*callee.*6.*" "hit bp again"
- gdb_test "cle" ".*Deleted breakpoint.*" "clear"
- gdb_test "wat glob" ".*atchpoint.*glob.*" "set 2nd watch"
- gdb_test "i wat" ".*" ""
- gdb_test "whe" ".*" ""
- 
- # ??rehrauer: We're now disabling watchpoints while an interactive
- # call is "in flight".  When/if we can teach gdb how to unwind through
- # the call dummy frame, we can then allow watches during calls, and
- # also then restore this testpoint to the original, commented-out form.
- #
- gdb_test "call callee()" ".*\[0-9\]* = 0.*" "call, didn't hit watch"
- #gdb_test "call callee()" ".*atchpoint.*Old.*= 1000.*New.*= 1001.*\[67\].*being debug.*is done.*" "call, hit watch"
- 
- gdb_test "d 4" ".*" "del watch 2"
- gdb_test "d 3" ".*" "del watch 1"
- gdb_test "info break" "No breakpoints or watchpoints."
- # since we have deleted all the watchpoints this test is useless
- #gdb_test "c" ".*Continuing.*" "end call"
- gdb_test "c" ".*Program exited normally.*" "pgm exit"
- 
- # Check for production of a core file
- #
- #set exec_output [execute_anywhere "ls core"]
- set exec_output [remote_exec build "ls core"]
- 
- if [ regexp "core not found" $exec_output]  {
-     pass "No core dumped on quit"
- } else {
-   if [ regexp "No such file or directory" $exec_output] {
-       pass "ls: core: No core dumped on quit"
-   } else {
-       remote_exec build "rm -f core"
-       fail "Core dumped on quit"
-   }
- }
- 
- 
- #========================================
- #
- # "C++" section, using source copied from "misc.cc" from "gdb.c++"
- #
- 
- #
- #remote_exec build "rm -f ${binfile}"
- #remote_exec build "CC -g -o ${binfile} ${cpp_srcfile}"
- if {[gdb_compile "${cpp_srcfile}" "${binfile1}" executable {c++ 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 ${binfile1}
- 
- # Tests, some copied from misc.exp.
- #
- 
-     # See what language gdb thinks main() is, prior to reading full symbols.
-     # I think this fails for COFF targets.
-     setup_xfail "a29k-*-udi"
-     send_gdb "show language\n"
-     gdb_expect {
-         -re ".* source language is \"auto; currently c\\+\\+\".*$gdb_prompt $" {
-             pass "deduced language is C++, before full symbols"
-         }
-         -re ".*$gdb_prompt $" {    fail "source language not correct for C++ (psymtabs only)"}
-             return
-         
-         timeout { fail "can't show language (timeout)"}
-             return
-     }
- 
- gdb_test "b main" ".*Breakpoint 1 at.*" ""
- gdb_test "r" ".*Starting program.*Breakpoint 1.*" "run to main"
- gdb_test "ptype Foo" ".*type = class Foo.*static int st;.*int operator.*" "ptype"
- gdb_test "step" ".*inheritance1.*" "step"
- gdb_test "ptype g_anon_union" ".*anon_union.*union.*int a;.*" "anon"
- gdb_test "p g_E" ".*class D.*class B.*class A.*class C.*class A.*x = 0.*" "print inherited class "
- gdb_test "p g_E.x = 99" ".*warn.*x ambiguous; using E::x. Use a cast to disambig.*99.*" "set via print"
- gdb_test "c" ".*Program exited.*" "run to end"
- 
- gdb_exit
- 
- # Check for production of a core file
- #
- #set exec_output [execute_anywhere "ls core"]
- set exec_output [remote_exec build "ls core"]
- if [ regexp "core not found" $exec_output]  {
-     pass "No core dumped on quit"
- } else {
-   if [ regexp "No such file or directory" $exec_output] {
-       pass "ls: core: No core dumped on quit"
-   } else {
-       remote_exec build "rm -f core"
-       fail "Core dumped on quit"
-   }
- }
- 
- # execute_anywhere "rm -f ${binfile1}"
- #
- return 0
--- 0 ----
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/so-impl-ld.c gdb/testsuite/gdb.base/so-impl-ld.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/so-impl-ld.c	Fri Jan  8 15:28:15 1999
--- gdb/testsuite/gdb.base/so-impl-ld.c	Thu Jun 24 20:28:28 1999
***************
*** 4,12 ****
  
  #include <stdio.h>
  
! extern int solib_main (int);
  
! main ()
  {
    int  result;
  
--- 4,16 ----
  
  #include <stdio.h>
  
! #if defined(__cplusplus) || defined(__STDCPP__)
! extern "C" int  solib_main (int  arg);
! #else
! int  solib_main (int  arg);
! #endif
  
! int main ()
  {
    int  result;
  
***************
*** 15,18 ****
--- 19,23 ----
  
    /* Call it again. */
    result = solib_main (result);
+   return 0;
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/so-impl-ld.exp gdb/testsuite/gdb.base/so-impl-ld.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/so-impl-ld.exp	Fri Jan  8 15:28:15 1999
--- gdb/testsuite/gdb.base/so-impl-ld.exp	Thu Jun 24 20:28:28 1999
***************
*** 68,95 ****
  }
  
  if [istarget "hppa*-hp-hpux*"] then {
!     remote_exec build "ld -b ${libfile}1.o -o ${libfile}1.sl"
  } else {
      set additional_flags "additional_flags=-shared"
!     gdb_compile "${libfile}1.o" "${libfile}1.sl" executable [list debug $additional_flags]
  }
  
  # Build the test case
  #remote_exec build "$CC -Aa -g ${srcfile} ${libfile}1.sl -o ${binfile}"
  
  
! if {$gcc_compiled == 0} {
!     if [istarget "hppa*-hp-hpux*"] then {
! 	set additional_flags "additional_flags=-Ae"
!     } else {
! 	# don't know what the compiler is, hope for the best, maybe it's ANSI...
! 	set additional_flags ""
!     }
  } else {
      set additional_flags ""
  }
  
! if {[gdb_compile "${srcdir}/${subdir}/${srcfile} ${libfile}1.sl" "${binfile}" executable [list debug $additional_flags]] != ""} {
      perror "Couldn't build ${binfile}"
      return -1
  }
--- 68,90 ----
  }
  
  if [istarget "hppa*-hp-hpux*"] then {
!     remote_exec build "ld -b ${libfile}1.o -o ${objdir}/${subdir}/${libfile}1.sl"
  } else {
      set additional_flags "additional_flags=-shared"
!     gdb_compile "${libfile}1.o" "${objdir}/${subdir}/${libfile}1.sl" executable [list debug $additional_flags]
  }
  
  # Build the test case
  #remote_exec build "$CC -Aa -g ${srcfile} ${libfile}1.sl -o ${binfile}"
  
  
! if {$hp_cc_compiler} {
!     set additional_flags "additional_flags=-Ae"
  } else {
      set additional_flags ""
  }
  
! if {[gdb_compile "${srcdir}/${subdir}/${srcfile} ${objdir}/${subdir}/${libfile}1.sl" "${binfile}" executable [list debug $additional_flags]] != ""} {
      perror "Couldn't build ${binfile}"
      return -1
  }
***************
*** 110,116 ****
  #
  send_gdb "next\n"
  gdb_expect {
!   -re "17\[ \t\]*result = solib_main .result.*$gdb_prompt $"\
            {pass "step over solib call"}
    -re "$gdb_prompt $"\
            {fail "step over solib call"}
--- 105,111 ----
  #
  send_gdb "next\n"
  gdb_expect {
!   -re "21\[ \t\]*result = solib_main .result.*$gdb_prompt $"\
            {pass "step over solib call"}
    -re "$gdb_prompt $"\
            {fail "step over solib call"}
***************
*** 121,127 ****
  #
  send_gdb "step\n"
  gdb_expect {
!   -re "solib_main .arg=10000. at.*${libfile}1.c:8.*$gdb_prompt $"\
            {pass "step into solib call"}
    -re "$gdb_prompt $"\
            {fail "step into solib call"}
--- 116,122 ----
  #
  send_gdb "step\n"
  gdb_expect {
!   -re "solib_main .arg=10000. at.*${libfile}1.c:17.*$gdb_prompt $"\
            {pass "step into solib call"}
    -re "$gdb_prompt $"\
            {fail "step into solib call"}
***************
*** 132,138 ****
  #
  send_gdb "next\n"
  gdb_expect {
!   -re "9\[ \t\]*\}.*$gdb_prompt $"\
            {pass "step in solib call"}
    -re "$gdb_prompt $"\
            {fail "step in solib call"}
--- 127,133 ----
  #
  send_gdb "next\n"
  gdb_expect {
!   -re "18\[ \t\]*\}.*$gdb_prompt $"\
            {pass "step in solib call"}
    -re "$gdb_prompt $"\
            {fail "step in solib call"}
***************
*** 148,154 ****
  	# we haven't left the callee yet, so do another next
  	send_gdb "next\n"
  	gdb_expect {
! 	    -re "main .. at.*so-impl-ld.c:18.*$gdb_prompt $"\
  		{pass "step out of solib call"}
  	    -re "$gdb_prompt $"\
  		{fail "step out of solib call"}
--- 143,149 ----
  	# we haven't left the callee yet, so do another next
  	send_gdb "next\n"
  	gdb_expect {
! 	    -re "main .. at.*so-impl-ld.c:22.*$gdb_prompt $"\
  		{pass "step out of solib call"}
  	    -re "$gdb_prompt $"\
  		{fail "step out of solib call"}
***************
*** 156,162 ****
  	}
      }
  
!     -re "main .. at.*so-impl-ld.c:18.*$gdb_prompt $"\
  	{pass "step out of solib call"}
      -re "$gdb_prompt $"\
  	{fail "step out of solib call"}
--- 151,157 ----
  	}
      }
  
!     -re "main .. at.*so-impl-ld.c:22.*$gdb_prompt $"\
  	{pass "step out of solib call"}
      -re "$gdb_prompt $"\
  	{fail "step out of solib call"}
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/so-indr-cl.c gdb/testsuite/gdb.base/so-indr-cl.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/so-indr-cl.c	Fri Jan  8 15:28:15 1999
--- gdb/testsuite/gdb.base/so-indr-cl.c	Thu Jun 24 20:28:28 1999
***************
*** 3,23 ****
     */
  
  #include <stdio.h>
  
  extern int solib_main (int);
  
  static int
  solib_wrapper (function)
    int (*function)(int);
  {
    return (*function)(100);
  }
  
  
! main ()
  {
    int  result;
  
    /* This is an indirect call to solib_main. */
    result = solib_wrapper (solib_main);
  }
--- 3,30 ----
     */
  
  #include <stdio.h>
+ #ifdef PROTOTYPES
+ extern "C" int solib_main (int);
  
+ static int
+ solib_wrapper (int (*function)(int))
+ #else
  extern int solib_main (int);
  
  static int
  solib_wrapper (function)
    int (*function)(int);
+ #endif
  {
    return (*function)(100);
  }
  
  
! int main ()
  {
    int  result;
  
    /* This is an indirect call to solib_main. */
    result = solib_wrapper (solib_main);
+   return 0;
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/so-indr-cl.exp gdb/testsuite/gdb.base/so-indr-cl.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/so-indr-cl.exp	Fri Jan  8 15:28:15 1999
--- gdb/testsuite/gdb.base/so-indr-cl.exp	Thu Jun 24 20:28:29 1999
***************
*** 51,63 ****
  #remote_exec build "$CC -g +z -c ${libfile}1.c -o ${libfile}1.o"
  
  
! if {$gcc_compiled == 0} {
!     if [istarget "hppa*-hp-hpux*"] then {
! 	set additional_flags "additional_flags=+z"
!     } else {
! 	# don't know what the compiler is...
! 	set additional_flags ""
!     }
  } else {
      set additional_flags "additional_flags=-fpic"
  }
--- 51,58 ----
  #remote_exec build "$CC -g +z -c ${libfile}1.c -o ${libfile}1.o"
  
  
! if {$hp_cc_compiler || $hp_aCC_compiler} {
!     set additional_flags "additional_flags=+z"
  } else {
      set additional_flags "additional_flags=-fpic"
  }
***************
*** 77,89 ****
  #remote_exec build "$CC -Aa -g ${srcfile} ${libfile}1.sl -o ${binfile}"
  
  
! if {$gcc_compiled == 0} {
!     if [istarget "hppa*-hp-hpux*"] then {
! 	set additional_flags "additional_flags=-Ae"
!     } else {
! 	# don't know what the compiler is, hope for the best, maybe it's ANSI...
! 	set additional_flags ""
!     }
  } else {
      set additional_flags ""
  }
--- 72,79 ----
  #remote_exec build "$CC -Aa -g ${srcfile} ${libfile}1.sl -o ${binfile}"
  
  
! if {$hp_cc_compiler} {
!     set additional_flags "additional_flags=-Ae"
  } else {
      set additional_flags ""
  }
***************
*** 119,124 ****
--- 109,116 ----
  gdb_expect {
    -re "Cannot break on solib_main without a running program.*$gdb_prompt $"\
            {pass "break on indirect solib call before running"}
+   -re "Breakpoint.*deferred.*\\(\"solib_main\" was not found.*$gdb_prompt $"\
+ 	  {pass "break on indirect solib call before running 2"}
    -re "$gdb_prompt $"\
            {fail "break on indirect solib call before running"}
    timeout {fail "(timeout) break on indirect solib call before running"}
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/solib.c gdb/testsuite/gdb.base/solib.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/solib.c	Mon Jan  4 07:34:31 1999
--- gdb/testsuite/gdb.base/solib.c	Thu Jun 24 20:28:15 1999
***************
*** 7,18 ****
  #include <stdio.h>
  #include <dl.h>
  
! main ()
  {
    shl_t  solib_handle;
    int  dummy;
    int  status;
!   int  (*solib_main) ();
  
    /* Load a shlib, with immediate binding of all symbols.
  
--- 7,18 ----
  #include <stdio.h>
  #include <dl.h>
  
! int main ()
  {
    shl_t  solib_handle;
    int  dummy;
    int  status;
!   int  (*solib_main) (int);
  
    /* Load a shlib, with immediate binding of all symbols.
  
***************
*** 56,59 ****
--- 56,60 ----
  
    /* All done. */
    dummy = -1;
+   return 0;
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/solib.exp gdb/testsuite/gdb.base/solib.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/solib.exp	Tue Jan  5 13:58:18 1999
--- gdb/testsuite/gdb.base/solib.exp	Thu Jun 24 20:28:15 1999
***************
*** 86,91 ****
--- 86,116 ----
      gdb_compile "${binfile}1.o" "${binfile}1.sl" executable [list debug $additional_flags]
      gdb_compile "${binfile}2.o" "${binfile}2.sl" executable [list debug $additional_flags]
  }
+ 
+ # Build a version where the main program is in a shared library.  For
+ # testing an indirect call made in a shared library.
+ 
+ if {[gdb_compile "${srcdir}/${subdir}/${testfile}.c" "${binfile}_sl.o" object [list debug $additional_flags]] != ""} {
+     perror "Couldn't compile ${testfile}.c for ${binfile}_sl.o"
+     #return -1
+ }
+ 
+ if { [istarget "hppa*-*-hpux*"] } {
+     remote_exec build "ld -b ${binfile}_sl.o -o ${binfile}_sl.sl"
+ } else {
+     set additional_flags "additional_flags=-shared"
+     gdb_compile "${binfile}_sl.o" "${binfile}_sl.sl" executable [list debug $additional_flags]
+ }
+ 
+ if { [istarget "hppa*-*-hpux*"] } {
+     set additional_flags "-Wl,-u,main"
+     if { [gdb_compile "${binfile}_sl.sl" "${binfile}_sl" executable [list debug $additional_flags]] != "" } {
+         gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+     }
+ } else {
+     # FIXME: need to fill this part in for non-HP build
+ }
+ 
  #cd ..
  
  # Start with a fresh gdb
***************
*** 316,319 ****
--- 341,360 ----
  #
  
  gdb_exit
+ 
+ #
+ # Test stepping into an indirect call in a shared library.
+ #
+ 
+ gdb_start
+ gdb_load ${binfile}_sl
+ gdb_test "break main" ".*deferred. at .main..*" "break on main"
+ gdb_test "run" ".*Breakpoint.*main.*solib.c.*" "hit breakpoint at main"
+ gdb_test "break 45" "Breakpoint.*solib.c, line 45.*" "break on indirect call"
+ gdb_test "continue" "Continuing.*solib.c:45.*" \
+ 	"continue to break on indirect call"
+ gdb_test "step" "solib_main.*solib1.c:17.*return arg.arg.*" \
+ 	"step into indirect call from a shared library"
+ gdb_exit
+ 
  return 0
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/solib1.c gdb/testsuite/gdb.base/solib1.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/solib1.c	Mon Jan  4 07:34:31 1999
--- gdb/testsuite/gdb.base/solib1.c	Thu Jun 24 20:28:15 1999
***************
*** 2,9 ****
--- 2,18 ----
     library, for use by the solib.exp testcase.  It simply returns
     the square of its integer argument.
     */
+ #if defined(__cplusplus) || defined(__STDCPP__)
+ extern "C" int
+ solib_main (int arg)
+ #else
+ #ifdef PROTOTYPES
+ int  solib_main (int arg)
+ #else
  int  solib_main (arg)
    int  arg;
+ #endif
+ #endif
  {
    return arg*arg;
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/solib2.c gdb/testsuite/gdb.base/solib2.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/solib2.c	Mon Jan  4 07:34:31 1999
--- gdb/testsuite/gdb.base/solib2.c	Thu Jun 24 20:28:15 1999
***************
*** 2,9 ****
--- 2,19 ----
     library, for use by the solib.exp testcase.  It simply returns
     the cube of its integer argument.
     */
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ #ifdef PROTOTYPES
+ int  solib_main (int  arg)
+ #else
  int  solib_main (arg)
    int  arg;
+ #endif
  {
    return arg*arg*arg;
  }
+ #ifdef __cplusplus
+ }
+ #endif
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/step-test.c gdb/testsuite/gdb.base/step-test.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/step-test.c	Mon Mar  8 19:55:52 1999
--- gdb/testsuite/gdb.base/step-test.c	Thu Jun 24 20:28:29 1999
***************
*** 1,9 ****
  /* Test various kinds of stepping.
  */
! int glob = 0;
  
  int callee() {
!     glob++;   
  }
  
  /* A structure which, we hope, will need to be passed using memcpy.  */
--- 1,12 ----
+ #include <stdlib.h>
+ #include <string.h>
+ 
  /* Test various kinds of stepping.
  */
! int myglob = 0;
  
  int callee() {
!     myglob++; return 0;
  }
  
  /* A structure which, we hope, will need to be passed using memcpy.  */
***************
*** 14,20 ****
  void
  large_struct_by_value (struct rhomboidal r)
  {
!   glob += r.rather_large[42]; /* step-test.exp: arrive here 1 */
  }
  
  int main () {
--- 17,23 ----
  void
  large_struct_by_value (struct rhomboidal r)
  {
!   myglob += r.rather_large[42]; /* step-test.exp: arrive here 1 */
  }
  
  int main () {
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/step-test.exp gdb/testsuite/gdb.base/step-test.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/step-test.exp	Thu Mar 18 23:35:17 1999
--- gdb/testsuite/gdb.base/step-test.exp	Thu Jun 24 20:28:29 1999
***************
*** 66,72 ****
  
  # Step into call
  #
! gdb_test "step" ".*${decimal}.*glob.*"   "step into"
  
  # Step out of call
  #
--- 66,72 ----
  
  # Step into call
  #
! gdb_test "step" ".*${decimal}.*myglob.*"   "step into"
  
  # Step out of call
  #
***************
*** 74,80 ****
  # platforms, on which `finish' will return you to some kind of pop
  # instruction, which is attributed to the line containing the function
  # call?
! gdb_test "finish" ".*${decimal}.*a.*5.*= a.*3.*" "step out"
  
  ### Testing nexti and stepi.
  ###
--- 74,91 ----
  # platforms, on which `finish' will return you to some kind of pop
  # instruction, which is attributed to the line containing the function
  # call?
! 
! # On PA64 we end up at a different instruction than PA32
! if { [istarget "hppa2.0w-hp-hpux*"] } {
!     send_gdb "finish\n"
!     gdb_expect {
!         -re ".*${decimal}.*a.*5.*= a.*3.*$gdb_prompt $" { pass "step out 1" }
!         -re ".*${decimal}.*callee.*INTO.*$gdb_prompt $" { pass "step out 2" }
!         timeout { fail "step out" }
!     }
! } else {
!     gdb_test "finish" ".*${decimal}.*a.*5.*= a.*3.*" "step out"
! }
  
  ### Testing nexti and stepi.
  ###
***************
*** 153,158 ****
--- 164,179 ----
    -re ".*${decimal}.*callee.*NEXTI.*$gdb_prompt $" {
      puts "*** Matched success..."
      pass "stepi: finish call"
+   }
+   -re ".*${decimal}.*callee.*STEPI.*$gdb_prompt $" {
+     # On PA64 we end up at a different instruction than PA32
+     if { [istarget "hppa2.0w-hp-hpux*"] } {
+         puts "*** Matched success..."
+         pass "stepi: finish call 2"
+     } else {
+ 	fail "stepi: finish call 2"
+         return
+     }
    }
    -re "$gdb_prompt $" {
      # We got something else.  Fail.
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/sum.c gdb/testsuite/gdb.base/sum.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/sum.c	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/sum.c	Thu Jun 24 20:28:33 1999
***************
*** 0 ****
--- 1,15 ----
+ /* This is a sample program for the HP/DDE debugger. */
+ #include <stdio.h>
+ 
+ #ifdef PROTOTYPES
+ 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 -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/term.exp gdb/testsuite/gdb.base/term.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/term.exp	Wed Sep 24 13:10:01 1997
--- gdb/testsuite/gdb.base/term.exp	Thu Jun 24 20:28:13 1999
***************
*** 43,48 ****
--- 43,50 ----
       gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
  }
  
+ gdb_exit
+ gdb_start
  delete_breakpoints
  gdb_reinitialize_dir $srcdir/$subdir
  gdb_load ${binfile}
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/twice.c gdb/testsuite/gdb.base/twice.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/twice.c	Fri Mar 24 14:06:24 1995
--- gdb/testsuite/gdb.base/twice.c	Thu Jun 24 20:28:13 1999
***************
*** 1,3 ****
--- 1,4 ----
+ #include <stdio.h>
  int nothing ()
  
  {
***************
*** 6,12 ****
  }
  
  
! main ()
  
  {
      int y ;
--- 7,13 ----
  }
  
  
! int main ()
  
  {
      int y ;
***************
*** 16,19 ****
--- 17,21 ----
  #endif    
      y = nothing () ;
      printf ("hello\n") ;
+     return 0;
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/twice.exp gdb/testsuite/gdb.base/twice.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/twice.exp	Sun Jun 29 21:24:05 1997
--- gdb/testsuite/gdb.base/twice.exp	Thu Jun 24 20:28:13 1999
***************
*** 60,63 ****
--- 60,64 ----
  
      gdb_test "step" "nothing \\(\\) at.*"
  }
+ remote_exec build "rm -f twice.c" 
  return 0
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/varargs.c gdb/testsuite/gdb.base/varargs.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/varargs.c	Mon Jan  4 07:34:31 1999
--- gdb/testsuite/gdb.base/varargs.c	Thu Jun 24 20:28:17 1999
***************
*** 18,28 ****
  unsigned short us;
  int a,b,c,d;
  int max_val;
  float fa,fb,fc,fd;
  double da,db,dc,dd;
  double dmax_val;
  
! main() {
    c = -1;
    uc = 1;
    s = -2;
--- 18,29 ----
  unsigned short us;
  int a,b,c,d;
  int max_val;
+ long long ll;
  float fa,fb,fc,fd;
  double da,db,dc,dd;
  double dmax_val;
  
! int main() {
    c = -1;
    uc = 1;
    s = -2;
***************
*** 43,48 ****
--- 44,51 ----
    dd = 2.0;
    dmax_val = find_max_double(3, 1.0, 4.0, 2.0);
    dmax_val = find_max_double(a, db, dc, dd);
+   
+   return 0;
  }
  
  /* Integer varargs, 1 declared arg */
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/varargs.exp gdb/testsuite/gdb.base/varargs.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/varargs.exp	Mon May 17 11:18:23 1999
--- gdb/testsuite/gdb.base/varargs.exp	Thu Jun 24 20:28:17 1999
***************
*** 48,70 ****
      return -1
  }
  
! if {$gcc_compiled == 0} {
!     if [istarget "hppa*-hp-hpux*"] then {
! 	set additional_flags "additional_flags=-Ae"
!     } else {
! 	# don't know what the compiler is, hope for the best, maybe it's ANSI...
! 	set additional_flags ""
!     }
  } else {
      set additional_flags ""
  }
  
  # build the first test case
! #if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug $additional_flags]] != "" } {
! #     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
! #}
! 
! if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug $additional_flags]] != "" } {
       gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
  }
  
--- 48,61 ----
      return -1
  }
  
! if {$hp_cc_compiler} {
!     set additional_flags "additional_flags=-Ae"
  } else {
      set additional_flags ""
  }
  
  # build the first test case
! if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug ${additional_flags}}] != "" } {
       gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
  }
  
***************
*** 84,89 ****
--- 75,92 ----
      continue
  }
  
+ if { $hp_aCC_compiler } {
+     # When compiled w/ aCC we need to disable overload resolution
+     # for command line calls.
+     # We need it for vararg calls since the aCC compiler gives us no
+     # information about the undeclared arguments, or even that there 
+     # _are_ undeclared arguments. As far as gdb is concerned it only
+     # knows about the declared arguments. So we need to force the call
+     # even though the overload resolution mechanism says that the types
+     # don't match. 
+     # - guo
+     gdb_test "set overload-resolution 0" ""
+ }
  
  send_gdb "print find_max1(5,1,2,3,4,5)\n"
  gdb_expect {
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/vforked-prog.c gdb/testsuite/gdb.base/vforked-prog.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/vforked-prog.c	Wed Dec 31 16:00:00 1969
--- gdb/testsuite/gdb.base/vforked-prog.c	Thu Jun 24 20:28:36 1999
***************
*** 0 ****
--- 1,11 ----
+ #include <stdio.h>
+ 
+ #ifdef PROTOTYPES
+ int main (void)
+ #else
+ main()
+ #endif
+ {
+   printf("Hello from vforked-prog...\n");
+   return 0;
+ }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/volatile.exp gdb/testsuite/gdb.base/volatile.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/volatile.exp	Fri Feb  5 16:37:17 1999
--- gdb/testsuite/gdb.base/volatile.exp	Thu Jun 24 20:28:29 1999
***************
*** 49,55 ****
  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."
  }
  
--- 49,61 ----
  set srcfile ${testfile}.c
  set binfile ${objdir}/${subdir}/${testfile}
  
! if [istarget "hppa*-*-*"] {
!     set lang "c++"
! } else {
!     set lang ""
! }
! 
! if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [concat debug $lang]] != "" } {
       gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
  }
  
***************
*** 100,241 ****
  # these tests are all expected to fail if GCC is the compiler. -sts
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vox" "type = volatile char"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype victuals" "type = volatile unsigned char"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vixen" "type = volatile short"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vitriol" "type = volatile unsigned short"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vellum" "type = volatile long"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype valve" "type = volatile unsigned long"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vacuity" "type = volatile float"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vertigo" "type = volatile double"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vampire" "type = volatile char *"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype viper" "type = volatile unsigned char *"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vigour" "type = volatile short *"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vapour" "type = volatile unsigned short *"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype ventricle" "type = volatile long *"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vigintillion" "type = volatile unsigned long *"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vocation" "type = volatile float *"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype veracity" "type = volatile double *"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vapidity" "type = volatile char * volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype velocity" "type = volatile unsigned char * volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype veneer" "type = volatile short * volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype video" "type = volatile unsigned short * volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vacuum" "type = volatile long * volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype veniality" "type = volatile unsigned long * volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vitality" "type = volatile float * volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype voracity" "type = volatile double * volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype victor" "type = const volatile char"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vicar" "type = const volatile unsigned char"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype victory" "type = const volatile char *"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vicarage" "type = const volatile unsigned char *"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vein" "type = volatile char * const"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vogue" "type = volatile unsigned char * const"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype cavern" "type = const volatile char * const"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype coverlet" "type = const volatile unsigned char * const"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype caveat" "type = const char * volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype covenant" "type = const unsigned char * volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vizier" "type = const volatile char * volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vanadium" "type = const volatile unsigned char * volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vane" "type = char * const volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype veldt" "type = unsigned char * const volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype cove" "type = const char * const volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype cavity" "type = const unsigned char * const volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vagus" "type = volatile char * const volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vagrancy" "type = volatile unsigned char * const volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vagary" "type = const volatile char * const volatile"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vendor" "type = const volatile unsigned char * const volatile"
  
  # test function parameters
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
  send_gdb "ptype qux2\n"
  gdb_expect {
!     -re "type = int \\(volatile unsigned char, const volatile int, volatile short &, volatile long \\*, float \\* volatile, const volatile signed char \\* const volatile\\)" {
          pass "ptype qux2"
      }
      -re ".*$gdb_prompt $" { fail "ptype qux2" }
--- 106,247 ----
  # these tests are all expected to fail if GCC is the compiler. -sts
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vox" "type = volatile char.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype victuals" "type = volatile unsigned char.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vixen" "type = volatile short.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vitriol" "type = volatile unsigned short.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vellum" "type = volatile long.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype valve" "type = volatile unsigned long.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vacuity" "type = volatile float.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vertigo" "type = volatile double.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vampire" "type = volatile char \\*.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype viper" "type = volatile unsigned char \\*.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vigour" "type = volatile short \\*.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vapour" "type = volatile unsigned short \\*.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype ventricle" "type = volatile long \\*.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vigintillion" "type = volatile unsigned long \\*.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vocation" "type = volatile float \\*.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype veracity" "type = volatile double \\*.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vapidity" "type = volatile char \\* volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype velocity" "type = volatile unsigned char \\* volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype veneer" "type = volatile short \\* volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype video" "type = volatile unsigned short \\* volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vacuum" "type = volatile long \\* volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype veniality" "type = volatile unsigned long \\* volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vitality" "type = volatile float \\* volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype voracity" "type = volatile double \\* volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype victor" "type = const volatile char.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vicar" "type = const volatile unsigned char.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype victory" "type = const volatile char \\*.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vicarage" "type = const volatile unsigned char \\*.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vein" "type = volatile char \\* const.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vogue" "type = volatile unsigned char \\* const.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype cavern" "type = const volatile char \\* const.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype coverlet" "type = const volatile unsigned char \\* const.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype caveat" "type = const char \\* volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype covenant" "type = const unsigned char \\* volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vizier" "type = const volatile char \\* volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vanadium" "type = const volatile unsigned char \\* volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vane" "type = char \\* const volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype veldt" "type = unsigned char \\* const volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype cove" "type = const char \\* const volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype cavity" "type = const unsigned char \\* const volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vagus" "type = volatile char \\* const volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vagrancy" "type = volatile unsigned char \\* const volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vagary" "type = const volatile char \\* const volatile.*"
  
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
! gdb_test "ptype vendor" "type = const volatile unsigned char \\* const volatile.*"
  
  # test function parameters
  if {$gcc_compiled} then { setup_xfail "*-*-*" }
  send_gdb "ptype qux2\n"
  gdb_expect {
!     -re "type = int \\(volatile unsigned char, const volatile int, volatile short, volatile long \\*, float \\* volatile, const volatile signed char \\* const volatile\\).*$gdb_prompt $" {
          pass "ptype qux2"
      }
      -re ".*$gdb_prompt $" { fail "ptype qux2" }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/watchpoint.c gdb/testsuite/gdb.base/watchpoint.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/watchpoint.c	Fri Jan 31 13:21:29 1997
--- gdb/testsuite/gdb.base/watchpoint.c	Thu Jun 24 20:28:13 1999
***************
*** 1,4 ****
--- 1,5 ----
  #include <stdio.h>
+ #include <unistd.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
***************
*** 28,33 ****
--- 29,35 ----
  int ival2 = -1;
  int ival3 = -1;
  int ival4 = -1;
+ int ival5 = -1;
  char buf[10];
  struct foo
  {
***************
*** 53,61 ****
--- 55,86 ----
  {
  }
  
+ void marker6 ()
+ {
+ }
+ 
+ #ifdef PROTOTYPES
+ void recurser (int  x)
+ #else
+ void recurser (x) int  x;
+ #endif
+ {
+   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
***************
*** 120,124 ****
--- 145,174 ----
       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;
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/watchpoint.exp gdb/testsuite/gdb.base/watchpoint.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/watchpoint.exp	Thu Mar 18 23:35:17 1999
--- gdb/testsuite/gdb.base/watchpoint.exp	Thu Jun 24 20:28:14 1999
***************
*** 30,49 ****
  set srcfile ${testfile}.c
  set binfile ${objdir}/${subdir}/${testfile}
  
  
  if [get_compiler_info ${binfile}] {
      return -1
  }
  
- # if we are on HPUX and we are not compiled with gcc, then skip these tests.
- 
- if [istarget hppa*-*-hpux*] {
-     if {!$gcc_compiled} {
- 	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."
  }
--- 30,41 ----
  set srcfile ${testfile}.c
  set binfile ${objdir}/${subdir}/${testfile}
  
+ set wp_set 1
  
  if [get_compiler_info ${binfile}] {
      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."
  }
***************
*** 69,74 ****
--- 61,67 ----
      global hex
      global decimal
      global srcfile
+     global wp_set
  
      if [gdb_test "break marker1" "Breakpoint 1 at $hex: file .*$srcfile, line $decimal.*" "set breakpoint at marker1" ] { 
        return 0; 
***************
*** 85,95 ****
      }
  
  
!     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" ] { 
--- 78,104 ----
      }
  
  
!     # ??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 ".*\[Ww\]atchpoint 3: ival3.*$gdb_prompt $" {
!             pass "set watchpoint on ival3"
!         }
!         -re "warning: can't do that without a running program; try \"break main\", \"run\" first.*$gdb_prompt $" {
!             pass "set watchpoint on ival3"
!             set wp_set 0
!             return 1
!         }
!         timeout {
!             fail "(timeout) 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" ] { 
***************
*** 117,127 ****
      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; 
      }
  
  
--- 126,139 ----
      global gdb_prompt
      global hex
      global decimal
+     global wp_set
  
      # Ensure that the watchpoint is disabled when we startup.
  
!     if { $wp_set } {
!         if [gdb_test "disable 3" "^disable 3\[\r\n\]+" "disable watchpoint in test_simple_watchpoint" ] { 
! 	    return 0; 
! 	}
      }
  
  
***************
*** 143,148 ****
--- 155,205 ----
  	}
      }
  
+     if { !$wp_set } {
+ 	# ??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)"  }
+ 	}
+ 
+         set wp_set 1
+ 
+ 	# "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" ] { 
***************
*** 221,226 ****
--- 278,286 ----
      global decimal
      global hex
  
+     # "info watch" is the same as "info break"
+     gdb_test "info watch" "\[0-9\]+\[ \]*breakpoint.*marker1.*\r\n\[0-9\]+\[ \]*breakpoint.*marker2.*\r\n\[0-9]+\[ \]*.*watchpoint.*ival3\r\n\.*\[0-9\]+ times.*" "watchpoints found in watchpoint/breakpoint table"
+ 
      # Ensure that the watchpoint is disabled when we startup.
  
      if [gdb_test "disable 3" "^disable 3\[\r\n\]+" "disable watchpoint in test_disabling_watchpoints" ] { 
***************
*** 270,276 ****
  
      # 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.
--- 330,336 ----
  
      # Check watchpoint list, looking for the entry that confirms the
      # watchpoint is disabled.
!     gdb_test "info watchpoints" "\[0-9]+\[ \]*.*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.
***************
*** 293,327 ****
  	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.
--- 353,382 ----
  	gdb_test "break func2 if 0" "Breakpoint.*at.*"
  	gdb_test "p \$func2_breakpoint_number = \$bpnum" " = .*"
  
! 	# 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*-*-*"
! 	# The following architectures define CALL_DUMMY_HAS_COMPLETED.
! 	clear_xfail "hppa*-*-*hpux*"
! 	gdb_test "p func1 ()" "= 73" \
! 	"calling function with watchpoint enabled"
  
  	# 
  	# "finish" brings us back to main.
***************
*** 495,512 ****
  	gdb_test "cont" "Continuing.*Breakpoint.*marker5 \\(\\).*" \
  	    "did not trigger wrong watchpoint"
  
  	# 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_continue_to_end "continue to exit in test_complex_watchpoint"
      }
  }
  
  # Start with a fresh gdb.
  
  gdb_start
  gdb_reinitialize_dir $srcdir/$subdir
  gdb_load $binfile
--- 550,631 ----
  	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.*\[Ww\]atchpoint .* deleted because the program has left the block in.*which its expression is valid.*" "self-delete local watch"
+ 
+         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"
+ 
+         # 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 "cont" "Continuing.*func2.*"
+         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_continue_to_end "continue to exit in test_complex_watchpoint"
      }
  }
  
  # Start with a fresh gdb.
  
+ gdb_exit
  gdb_start
  gdb_reinitialize_dir $srcdir/$subdir
  gdb_load $binfile
***************
*** 575,579 ****
--- 694,776 ----
  	    [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"}
+       }
      }
  }
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/whatis.c gdb/testsuite/gdb.base/whatis.c
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/whatis.c	Fri Jan 31 13:21:30 1997
--- gdb/testsuite/gdb.base/whatis.c	Thu Jun 24 20:28:14 1999
***************
*** 188,194 ****
  
  /***********/
  
! main ()
  {
  #ifdef usestubs
    set_debug_traps();
--- 188,194 ----
  
  /***********/
  
! int main ()
  {
  #ifdef usestubs
    set_debug_traps();
diff -c -N /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/whatis.exp gdb/testsuite/gdb.base/whatis.exp
*** /home/debugger/proj/cygnus/snaps/gdb-19990621/gdb-19990621/gdb/testsuite/gdb.base/whatis.exp	Wed Sep 24 13:10:01 1997
--- gdb/testsuite/gdb.base/whatis.exp	Thu Jun 24 20:28:14 1999
***************
*** 49,62 ****
  gdb_reinitialize_dir $srcdir/$subdir
  gdb_load $binfile
  
- # If we did not use the signed keyword when compiling the file, don't
- # expect GDB to know that char is signed.
- if $signed_keyword_not_used then {
-     set signed_char "char"
- } else {
-     set signed_char "signed char"
- }
- 
  # Define a procedure to set up an xfail for all targets that put out a
  # `long' type as an `int' type.
  # Sun/Ultrix cc have this problem.
--- 49,54 ----
***************
*** 77,86 ****
--- 69,89 ----
  # uses in the stabs.  So we need to deal with names both from gcc and
  # native compilers.
  #
+ 
  gdb_test "whatis v_char" \
      "type = (unsigned char|char)" \
      "whatis char"
  
+ # If we did not use the signed keyword when compiling the file, don't
+ # expect GDB to know that char is signed.
+ if { $hp_cc_compiler || $hp_aCC_compiler } {
+     set signed_keyword_not_used 1
+ }
+ if $signed_keyword_not_used then {
+     set signed_char "char"
+ } else {
+     set signed_char "signed char"
+ }
  setup_xfail "a29k-*-*"
  if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix*" }
  gdb_test "whatis v_signed_char" \
***************
*** 270,282 ****
      "whatis double pointer"
  
  
  # test whatis command with structure types
  gdb_test "whatis v_struct1" \
      "type = struct t_struct" \
      "whatis named structure"
  
  gdb_test "whatis v_struct2" \
!     "type = struct \{...\}" \
      "whatis unnamed structure"
  
  
--- 273,293 ----
      "whatis double pointer"
  
  
+ if { $hp_aCC_compiler } {
+     set unstruct "unnamed\.struct\..*"
+     set ununion "unnamed\.union\..*"
+ } else {
+     set unstruct "\.\.\."
+     set ununion "\.\.\."
+ }
+ 
  # test whatis command with structure types
  gdb_test "whatis v_struct1" \
      "type = struct t_struct" \
      "whatis named structure"
  
  gdb_test "whatis v_struct2" \
!     "type = struct \{$unstruct\}" \
      "whatis unnamed structure"
  
  
***************
*** 286,353 ****
      "whatis named union"
  
  gdb_test "whatis v_union2" \
!     "type = union \{...\}" \
      "whatis unnamed union"
  
  
  
  # test whatis command with functions return type
  gdb_test "whatis v_char_func" \
!     "type = (signed |unsigned |)char \\(\\)" \
      "whatis char function"
  
  gdb_test "whatis v_signed_char_func" \
!     "type = (signed |unsigned |)char \\(\\)" \
      "whatis signed char function"
  
  gdb_test "whatis v_unsigned_char_func" \
!     "type = unsigned char \\(\\)"	\
      "whatis unsigned char function"
  
  gdb_test "whatis v_short_func" \
!     "type = short (int |)\\(\\)" \
      "whatis short function"
  
  gdb_test "whatis v_signed_short_func" \
!     "type = (signed |)short (int |)\\(\\)" \
      "whatis signed short function"
  
  gdb_test "whatis v_unsigned_short_func" \
!     "type = (unsigned short|short unsigned int) \\(\\)" \
      "whatis unsigned short function"
  
  gdb_test "whatis v_int_func" \
!     "type = int \\(\\)" \
      "whatis int function"
  
  gdb_test "whatis v_signed_int_func" \
!     "type = (signed |)int \\(\\)" \
      "whatis signed int function"
  
  gdb_test "whatis v_unsigned_int_func" \
!     "type = unsigned int \\(\\)" \
      "whatis unsigned int function"
  
  gdb_test "whatis v_long_func" \
!     "type = (long|int|long int) \\(\\)" \
      "whatis long function"
  
  gdb_test "whatis v_signed_long_func" \
!     "type = (signed |)(int|long|long int) \\(\\)" \
      "whatis signed long function"
  
  gdb_test "whatis v_unsigned_long_func" \
!     "type = (unsigned (int|long|long int)|long unsigned int) \\(\\)" \
      "whatis unsigned long function"
  
  # Sun /bin/cc calls this a function returning double.
  if {!$gcc_compiled} then {setup_xfail "*-sun-sunos4*"}
  gdb_test "whatis v_float_func" \
!     "type = float \\(\\)" \
      "whatis float function"
  
  gdb_test "whatis v_double_func" \
!     "type = double \\(\\)" \
      "whatis double function" \
  
  
--- 297,374 ----
      "whatis named union"
  
  gdb_test "whatis v_union2" \
!     "type = union \{$ununion\}" \
      "whatis unnamed union"
  
  
+ if { [istarget "hppa*-hp-hpux10.20"] && $hp_aCC_compiler } {
+     # On HP-UX 10.20 with aCC compiler and objdebug mode,
+     # we need the 'void' pattern; without objdebug mode,
+     # we still need to '' pattern.
+     # FIXME: need to look into this further.
+     # - guo
+     set void "(void|)"
+ } else {
+     set void ""
+ }
  
  # test whatis command with functions return type
  gdb_test "whatis v_char_func" \
!     "type = (signed |unsigned |)char \\($void\\)" \
      "whatis char function"
  
  gdb_test "whatis v_signed_char_func" \
!     "type = (signed |unsigned |)char \\($void\\)" \
      "whatis signed char function"
  
  gdb_test "whatis v_unsigned_char_func" \
!     "type = unsigned char \\($void\\)"	\
      "whatis unsigned char function"
  
  gdb_test "whatis v_short_func" \
!     "type = short (int |)\\($void\\)" \
      "whatis short function"
  
  gdb_test "whatis v_signed_short_func" \
!     "type = (signed |)short (int |)\\($void\\)" \
      "whatis signed short function"
  
  gdb_test "whatis v_unsigned_short_func" \
!     "type = (unsigned short|short unsigned int) \\($void\\)" \
      "whatis unsigned short function"
  
  gdb_test "whatis v_int_func" \
!     "type = int \\($void\\)" \
      "whatis int function"
  
  gdb_test "whatis v_signed_int_func" \
!     "type = (signed |)int \\($void\\)" \
      "whatis signed int function"
  
  gdb_test "whatis v_unsigned_int_func" \
!     "type = unsigned int \\($void\\)" \
      "whatis unsigned int function"
  
  gdb_test "whatis v_long_func" \
!     "type = (long|int|long int) \\($void\\)" \
      "whatis long function"
  
  gdb_test "whatis v_signed_long_func" \
!     "type = (signed |)(int|long|long int) \\($void\\)" \
      "whatis signed long function"
  
  gdb_test "whatis v_unsigned_long_func" \
!     "type = (unsigned (int|long|long int)|long unsigned int) \\($void\\)" \
      "whatis unsigned long function"
  
  # Sun /bin/cc calls this a function returning double.
  if {!$gcc_compiled} then {setup_xfail "*-sun-sunos4*"}
  gdb_test "whatis v_float_func" \
!     "type = float \\($void\\)" \
      "whatis float function"
  
  gdb_test "whatis v_double_func" \
!     "type = double \\($void\\)" \
      "whatis double function" \
  
  
***************
*** 376,383 ****
      "type = int" \
      "whatis outer structure member"
  
  gdb_test "whatis nested_su.inner_struct_instance" \
!     "type = struct inner_struct" \
      "whatis inner structure"
  
  gdb_test "whatis nested_su.inner_struct_instance.inner_int" \
--- 397,410 ----
      "type = int" \
      "whatis outer structure member"
  
+ if {$hp_aCC_compiler} {
+     set outer "outer_struct::"
+ } else {
+     set outer ""
+ }
+ 
  gdb_test "whatis nested_su.inner_struct_instance" \
!     "type = struct ${outer}inner_struct" \
      "whatis inner structure"
  
  gdb_test "whatis nested_su.inner_struct_instance.inner_int" \
***************
*** 385,391 ****
      "whatis inner structure member"
  
  gdb_test "whatis nested_su.inner_union_instance" \
!     "type = union inner_union" \
      "whatis inner union"
  
  gdb_test "whatis nested_su.inner_union_instance.inner_union_int" \
--- 412,418 ----
      "whatis inner structure member"
  
  gdb_test "whatis nested_su.inner_union_instance" \
!     "type = union ${outer}inner_union" \
      "whatis inner union"
  
  gdb_test "whatis nested_su.inner_union_instance.inner_union_int" \


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]