]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
2003-08-22 Michael Chastain <mec@shout.net>
authorMichael Chastain <mec@google.com>
Sat, 30 Aug 2003 03:40:35 +0000 (03:40 +0000)
committerMichael Chastain <mec@google.com>
Sat, 30 Aug 2003 03:40:35 +0000 (03:40 +0000)
* gdb.cp: New directory.
* gdb.cp/*: Copy from gdb.c++/*.
* gdb.c++/*: Remove.
* Makefile.in: Change gdb.c++ to gdb.cp.
* configure.in:  Ditto.
* carlton_runnamespace: Ditto.
* carlton_runtest: Ditto.
* configure: Regnerate.

88 files changed:
gdb/testsuite/ChangeLog
gdb/testsuite/Makefile.in
gdb/testsuite/carlton_runnamespace
gdb/testsuite/carlton_runtest
gdb/testsuite/configure
gdb/testsuite/configure.in
gdb/testsuite/gdb.c++/Makefile.in [deleted file]
gdb/testsuite/gdb.c++/ambiguous.cc [deleted file]
gdb/testsuite/gdb.c++/ambiguous.exp [deleted file]
gdb/testsuite/gdb.c++/annota2.cc [deleted file]
gdb/testsuite/gdb.c++/annota2.exp [deleted file]
gdb/testsuite/gdb.c++/annota3.cc [deleted file]
gdb/testsuite/gdb.c++/annota3.exp [deleted file]
gdb/testsuite/gdb.c++/anon-union.cc [deleted file]
gdb/testsuite/gdb.c++/anon-union.exp [deleted file]
gdb/testsuite/gdb.c++/casts.cc [deleted file]
gdb/testsuite/gdb.c++/casts.exp [deleted file]
gdb/testsuite/gdb.c++/classes.exp [deleted file]
gdb/testsuite/gdb.c++/cplusfuncs.cc [deleted file]
gdb/testsuite/gdb.c++/cplusfuncs.exp [deleted file]
gdb/testsuite/gdb.c++/ctti.exp [deleted file]
gdb/testsuite/gdb.c++/cttiadd.cc [deleted file]
gdb/testsuite/gdb.c++/cttiadd1.cc [deleted file]
gdb/testsuite/gdb.c++/cttiadd2.cc [deleted file]
gdb/testsuite/gdb.c++/cttiadd3.cc [deleted file]
gdb/testsuite/gdb.c++/demangle.exp [deleted file]
gdb/testsuite/gdb.c++/derivation.cc [deleted file]
gdb/testsuite/gdb.c++/derivation.exp [deleted file]
gdb/testsuite/gdb.c++/hang.H [deleted file]
gdb/testsuite/gdb.c++/hang.exp [deleted file]
gdb/testsuite/gdb.c++/hang1.C [deleted file]
gdb/testsuite/gdb.c++/hang2.C [deleted file]
gdb/testsuite/gdb.c++/hang3.C [deleted file]
gdb/testsuite/gdb.c++/inherit.exp [deleted file]
gdb/testsuite/gdb.c++/local.cc [deleted file]
gdb/testsuite/gdb.c++/local.exp [deleted file]
gdb/testsuite/gdb.c++/m-data.cc [deleted file]
gdb/testsuite/gdb.c++/m-data.exp [deleted file]
gdb/testsuite/gdb.c++/m-static.cc [deleted file]
gdb/testsuite/gdb.c++/m-static.exp [deleted file]
gdb/testsuite/gdb.c++/m-static.h [deleted file]
gdb/testsuite/gdb.c++/m-static1.cc [deleted file]
gdb/testsuite/gdb.c++/maint.exp [deleted file]
gdb/testsuite/gdb.c++/member-ptr.cc [deleted file]
gdb/testsuite/gdb.c++/member-ptr.exp [deleted file]
gdb/testsuite/gdb.c++/method.cc [deleted file]
gdb/testsuite/gdb.c++/method.exp [deleted file]
gdb/testsuite/gdb.c++/misc.cc [deleted file]
gdb/testsuite/gdb.c++/misc.exp [deleted file]
gdb/testsuite/gdb.c++/namespace.cc [deleted file]
gdb/testsuite/gdb.c++/namespace.exp [deleted file]
gdb/testsuite/gdb.c++/namespace1.cc [deleted file]
gdb/testsuite/gdb.c++/overload.cc [deleted file]
gdb/testsuite/gdb.c++/overload.exp [deleted file]
gdb/testsuite/gdb.c++/ovldbreak.cc [deleted file]
gdb/testsuite/gdb.c++/ovldbreak.exp [deleted file]
gdb/testsuite/gdb.c++/pr-1023.cc [deleted file]
gdb/testsuite/gdb.c++/pr-1023.exp [deleted file]
gdb/testsuite/gdb.c++/pr-1210.cc [deleted file]
gdb/testsuite/gdb.c++/pr-1210.exp [deleted file]
gdb/testsuite/gdb.c++/pr-574.cc [deleted file]
gdb/testsuite/gdb.c++/pr-574.exp [deleted file]
gdb/testsuite/gdb.c++/printmethod.cc [deleted file]
gdb/testsuite/gdb.c++/printmethod.exp [deleted file]
gdb/testsuite/gdb.c++/ref-types.cc [deleted file]
gdb/testsuite/gdb.c++/ref-types.exp [deleted file]
gdb/testsuite/gdb.c++/rtti.exp [deleted file]
gdb/testsuite/gdb.c++/rtti.h [deleted file]
gdb/testsuite/gdb.c++/rtti1.cc [deleted file]
gdb/testsuite/gdb.c++/rtti2.cc [deleted file]
gdb/testsuite/gdb.c++/templates.cc [deleted file]
gdb/testsuite/gdb.c++/templates.exp [deleted file]
gdb/testsuite/gdb.c++/try_catch.cc [deleted file]
gdb/testsuite/gdb.c++/try_catch.exp [deleted file]
gdb/testsuite/gdb.c++/userdef.cc [deleted file]
gdb/testsuite/gdb.c++/userdef.exp [deleted file]
gdb/testsuite/gdb.c++/virtfunc.cc [deleted file]
gdb/testsuite/gdb.c++/virtfunc.exp [deleted file]
gdb/testsuite/gdb.cp/breakpoint.cc [moved from gdb/testsuite/gdb.c++/breakpoint.cc with 100% similarity]
gdb/testsuite/gdb.cp/breakpoint.exp [moved from gdb/testsuite/gdb.c++/breakpoint.exp with 100% similarity]
gdb/testsuite/gdb.cp/maint.exp
gdb/testsuite/gdb.cp/namespace.cc
gdb/testsuite/gdb.cp/namespace.exp
gdb/testsuite/gdb.cp/namespace1.cc
gdb/testsuite/gdb.cp/overload.cc
gdb/testsuite/gdb.cp/overload.exp
gdb/testsuite/gdb.cp/rtti.exp
gdb/testsuite/gdb.cp/templates.exp

index fdcc209606879294172b497aaeceb31117bb26cc..fd580a28f2d2e04b755f9706c6a8ac00177a4bd4 100644 (file)
@@ -1,3 +1,14 @@
+2003-08-22  Michael Chastain  <mec@shout.net>
+
+       * gdb.cp: New directory.
+       * gdb.cp/*: Copy from gdb.c++/*.
+       * gdb.c++/*: Remove.
+       * Makefile.in: Change gdb.c++ to gdb.cp.
+       * configure.in:  Ditto.
+       * carlton_runnamespace: Ditto.
+       * carlton_runtest: Ditto.
+       * configure: Regnerate.
+
 2003-08-02  Andrew Cagney  <cagney@redhat.com>
 
        * gdb.base/annota3.exp: New file.
index 898e6ed28b4ae105c32b0ab6805380958e41c40c..3f3b7ad2bb919f8c7b04cfb228de36af8117573b 100644 (file)
@@ -35,7 +35,7 @@ SHELL = @SHELL@
 EXEEXT = @EXEEXT@
 SUBDIRS = @subdirs@
 RPATH_ENVVAR = @RPATH_ENVVAR@
-ALL_SUBDIRS = gdb.arch gdb.asm gdb.base gdb.c++ gdb.disasm gdb.java gdb.mi \
+ALL_SUBDIRS = gdb.arch gdb.asm gdb.base gdb.cp gdb.disasm gdb.java gdb.mi \
        gdb.objc gdb.threads gdb.trace $(SUBDIRS)
 
 EXPECT = `if [ -f $${rootme}/../../expect/expect ] ; then \
index 60e4dfe7a0f67d618e907951f73bad3dac905edb..d28ba3edcd6bf9b4102d4e11f0f4ec10aef81ca1 100755 (executable)
@@ -6,7 +6,7 @@
 # stabs info, too?
 
 EXTRADEBUGPATH=/usr/local/testbed/gcc3/bin
-TESTS="gdb.c++/namespace.exp gdb.c++/rtti.exp"
+TESTS="gdb.cpnamespace.exp gdb.cp/rtti.exp"
 
 echo "Running tests using regular compiler."
 runtest ${TESTS} > /dev/null 2>&1
index 4ad75321a4c54d2a1272765a9b585f1c325408b2..305fbf3e05e2adde1270edd051623978a6b230c7 100755 (executable)
@@ -19,34 +19,34 @@ FASTTESTS="gdb.base/assign.exp \
   gdb.base/sizeof.exp \
   gdb.base/structs.exp \
   gdb.base/varargs.exp \
-  gdb.c++/ambiguous.exp \
-  gdb.c++/derivation.exp \
-  gdb.c++/local.exp \
-  gdb.c++/m-data.exp \
-  gdb.c++/m-static.exp \
-  gdb.c++/method.exp \
-  gdb.c++/breakpoint.exp \
-  gdb.c++/pr-1210.exp \
-  gdb.c++/rtti.exp"
+  gdb.cp/ambiguous.exp \
+  gdb.cp/derivation.exp \
+  gdb.cp/local.exp \
+  gdb.cp/m-data.exp \
+  gdb.cp/m-static.exp \
+  gdb.cp/method.exp \
+  gdb.cp/breakpoint.exp \
+  gdb.cp/pr-1210.exp \
+  gdb.cp/rtti.exp"
 
 # 6 seconds or more (usually around 10).
 MEDTESTS="gdb.base/exprs.exp \
   gdb.base/funcargs.exp \
   gdb.base/scope.exp \
   gdb.base/setvar.exp \
-  gdb.c++/classes.exp \
-  gdb.c++/namespace.exp \
-  gdb.c++/overload.exp \
-  gdb.c++/templates.exp \
-  gdb.c++/userdef.exp \
-  gdb.c++/virtfunc.exp"
+  gdb.cp/classes.exp \
+  gdb.cp/namespace.exp \
+  gdb.cp/overload.exp \
+  gdb.cp/templates.exp \
+  gdb.cp/userdef.exp \
+  gdb.cp/virtfunc.exp"
 
 # 15 seconds or more.
 SLOWTESTS="gdb.base/callfuncs.exp \
   gdb.base/completion.exp \
   gdb.base/printcmds.exp \
-  gdb.c++/cplusfuncs.exp \
-  gdb.c++/demangle.exp"
+  gdb.cp/cplusfuncs.exp \
+  gdb.cp/demangle.exp"
 
 echo "Running fast tests."
 runtest ${FASTTESTS} > /dev/null 2>&1
index 31e3a079f955ad4a82ff0f817fcde10f1d705937..f75ec25d9bff525af043f9fbf483c7d129f27ead 100755 (executable)
@@ -34,6 +34,7 @@ program_suffix=NONE
 program_transform_name=s,x,x,
 silent=
 site=
+sitefile=
 srcdir=
 target=NONE
 verbose=
@@ -148,6 +149,7 @@ Configuration:
   --help                  print this message
   --no-create             do not create output files
   --quiet, --silent       do not print \`checking...' messages
+  --site-file=FILE        use FILE as the site file
   --version               print the version of autoconf that created configure
 Directory and file names:
   --prefix=PREFIX         install architecture-independent files in PREFIX
@@ -318,6 +320,11 @@ EOF
   -site=* | --site=* | --sit=*)
     site="$ac_optarg" ;;
 
+  -site-file | --site-file | --site-fil | --site-fi | --site-f)
+    ac_prev=sitefile ;;
+  -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
+    sitefile="$ac_optarg" ;;
+
   -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
     ac_prev=srcdir ;;
   -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
@@ -483,12 +490,16 @@ fi
 srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
 
 # Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+if test -z "$sitefile"; then
+  if test -z "$CONFIG_SITE"; then
+    if test "x$prefix" != xNONE; then
+      CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+    else
+      CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+    fi
   fi
+else
+  CONFIG_SITE="$sitefile"
 fi
 for ac_site_file in $CONFIG_SITE; do
   if test -r "$ac_site_file"; then
@@ -549,7 +560,7 @@ ac_config_sub=$ac_aux_dir/config.sub
 ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
 
 echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:553: checking build system type" >&5
+echo "configure:564: checking build system type" >&5
 
 build_alias=$build
 case "$build_alias" in
@@ -573,7 +584,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:577: checking host system type" >&5
+echo "configure:588: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -594,7 +605,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 echo "$ac_t""$host" 1>&6
 
 echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:598: checking target system type" >&5
+echo "configure:609: checking target system type" >&5
 
 target_alias=$target
 case "$target_alias" in
@@ -709,7 +720,7 @@ fi
 
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:713: checking how to run the C preprocessor" >&5
+echo "configure:724: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -724,13 +735,13 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 728 "configure"
+#line 739 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:734: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:745: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -741,13 +752,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 745 "configure"
+#line 756 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:751: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:762: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -758,13 +769,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 762 "configure"
+#line 773 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:768: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:779: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -792,17 +803,17 @@ for ac_hdr in pthread.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:796: checking for $ac_hdr" >&5
+echo "configure:807: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 801 "configure"
+#line 812 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:806: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -830,12 +841,12 @@ done
 
 
 echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:834: checking for Cygwin environment" >&5
+echo "configure:845: checking for Cygwin environment" >&5
 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 839 "configure"
+#line 850 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -846,7 +857,7 @@ int main() {
 return __CYGWIN__;
 ; return 0; }
 EOF
-if { (eval echo configure:850: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:861: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_cygwin=yes
 else
@@ -863,19 +874,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
 CYGWIN=
 test "$ac_cv_cygwin" = yes && CYGWIN=yes
 echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:867: checking for mingw32 environment" >&5
+echo "configure:878: checking for mingw32 environment" >&5
 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 872 "configure"
+#line 883 "configure"
 #include "confdefs.h"
 
 int main() {
 return __MINGW32__;
 ; return 0; }
 EOF
-if { (eval echo configure:879: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:890: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_mingw32=yes
 else
@@ -894,7 +905,7 @@ test "$ac_cv_mingw32" = yes && MINGW32=yes
 
 
 echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:898: checking for executable suffix" >&5
+echo "configure:909: checking for executable suffix" >&5
 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -904,10 +915,10 @@ else
   rm -f conftest*
   echo 'int main () { return 0; }' > conftest.$ac_ext
   ac_cv_exeext=
-  if { (eval echo configure:908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+  if { (eval echo configure:919: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
     for file in conftest.*; do
       case $file in
-      *.c | *.o | *.obj) ;;
+      *.c | *.o | *.obj | *.ilk | *.pdb) ;;
       *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
       esac
     done
@@ -1028,7 +1039,7 @@ done
 ac_given_srcdir=$srcdir
 
 trap 'rm -fr `echo "Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile \
-  gdb.c++/Makefile gdb.disasm/Makefile gdb.java/Makefile gdb.mi/Makefile \
+  gdb.cp/Makefile gdb.disasm/Makefile gdb.java/Makefile gdb.mi/Makefile \
   gdb.objc/Makefile gdb.threads/Makefile gdb.trace/Makefile config.h:config.hin" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
 EOF
 cat >> $CONFIG_STATUS <<EOF
@@ -1122,7 +1133,7 @@ EOF
 cat >> $CONFIG_STATUS <<EOF
 
 CONFIG_FILES=\${CONFIG_FILES-"Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile \
-  gdb.c++/Makefile gdb.disasm/Makefile gdb.java/Makefile gdb.mi/Makefile \
+  gdb.cp/Makefile gdb.disasm/Makefile gdb.java/Makefile gdb.mi/Makefile \
   gdb.objc/Makefile gdb.threads/Makefile gdb.trace/Makefile"}
 EOF
 cat >> $CONFIG_STATUS <<\EOF
index f80b623cd364411bdf4adbaa62e20e0da027dc0d..03fb6991bfd0db459fea59c4de38b3ffcc109ef2 100644 (file)
@@ -114,5 +114,5 @@ AC_EXEEXT
 
 AC_CONFIG_SUBDIRS($configdirs)
 AC_OUTPUT([Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile \
-  gdb.c++/Makefile gdb.disasm/Makefile gdb.java/Makefile gdb.mi/Makefile \
+  gdb.cp/Makefile gdb.disasm/Makefile gdb.java/Makefile gdb.mi/Makefile \
   gdb.objc/Makefile gdb.threads/Makefile gdb.trace/Makefile])
diff --git a/gdb/testsuite/gdb.c++/Makefile.in b/gdb/testsuite/gdb.c++/Makefile.in
deleted file mode 100644 (file)
index 8f4a90e..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-VPATH = @srcdir@
-srcdir = @srcdir@
-
-EXECUTABLES = ambiguous annota2 anon-union cplusfuncs cttiadd \
-       derivation inherit local member-ptr method misc \
-        overload ovldbreak ref-typ ref-typ2 templates userdef virtfunc namespace ref-types
-
-all info install-info dvi install uninstall installcheck check:
-       @echo "Nothing to be done for $@..."
-
-clean mostlyclean:
-       -rm -f *~ *.o *.ci
-       -rm -f core ${EXECUTABLES}
-
-distclean maintainer-clean realclean: clean
-       -rm -f Makefile config.status config.log
diff --git a/gdb/testsuite/gdb.c++/ambiguous.cc b/gdb/testsuite/gdb.c++/ambiguous.cc
deleted file mode 100644 (file)
index 6ee7bc1..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-
-void marker1()
-{
-  return;
-}
-
-class A1 {
-public:
-  int x;
-  int y;
-};
-
-class A2 {
-public:
-  int x;
-  int y;
-};
-
-class A3 {
-public:
-  int x;
-  int y;
-};
-
-class X : public A1, public A2 {
-public:
-  int z;
-};
-
-class L : public A1 {
-public:
-  int z;
-};
-
-class LV : public virtual A1 {
-public:
-  int z;
-};
-
-class M : public A2 {
-public:
-  int w;
-};
-
-class N : public L, public M {
-public:
-  int r;
-};
-
-class K : public A1 {
-public:
-  int i;
-};
-
-class KV : public virtual A1 {
-public:
-  int i;
-};
-
-class J : public K, public L {
-public:
-  int j;
-};
-
-class JV : public KV, public LV {
-public:
-  int jv;
-};
-
-class JVA1 : public KV, public LV, public A1 {
-public:
-  int jva1;
-};
-
-class JVA2 : public KV, public LV, public A2 {
-public:
-  int jva2;
-};
-
-class JVA1V : public KV, public LV, public virtual A1 {
-public:
-  int jva1v;
-};
-
-int main()
-{
-  A1 a1;
-  A2 a2;
-  A3 a3;
-  X x;
-  L l;
-  M m;
-  N n;
-  K k;
-  J j;
-  JV jv;
-  JVA1 jva1;
-  JVA2 jva2;
-  JVA1V jva1v;
-  
-  int i;
-
-  i += k.i + m.w + a1.x + a2.x + a3.x + x.z + l.z + n.r + j.j;
-
-  marker1();
-  
-}
-
-
-  
diff --git a/gdb/testsuite/gdb.c++/ambiguous.exp b/gdb/testsuite/gdb.c++/ambiguous.exp
deleted file mode 100644 (file)
index 4224b2d..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-# Copyright 1998, 1999 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# This file is part of the gdb testsuite
-
-# tests relating to ambiguous class members
-# Written by Satish Pai <pai@apollo.hp.com> 1997-07-28
-
-# This file is part of the gdb testsuite
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-#
-# test running programs
-#
-
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "ambiguous"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if [get_compiler_info ${binfile} "c++"] {
-    return -1;
-}
-
-if { $gcc_compiled } then { continue }
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-#
-# set it up at a breakpoint so we can play with the variable values
-#
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-send_gdb "break marker1\n" ; gdb_expect -re ".*$gdb_prompt $"
-    send_gdb "cont\n"
-    gdb_expect {
-        -re "Break.* marker1 \\(\\) at .*:$decimal.*$gdb_prompt $" {
-            send_gdb "up\n"
-            gdb_expect {
-                -re ".*$gdb_prompt $" { pass "up from marker1" }
-                timeout { fail "up from marker1" }
-            }
-        }
-        -re "$gdb_prompt $" { fail "continue to marker1"  }
-        timeout { fail "(timeout) continue to marker1"  }
-    }
-
-# print out various class objects' members.  The values aren't
-# important, just check that the warning is emitted at the
-# right times. 
-
-# X is derived from A1 and A2; both A1 and A2 have a member 'x'
-send_gdb "print x.x\n"
-gdb_expect {
-   -re "warning: x ambiguous; using X::A2::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
-       pass "print x.x"
-   }
-   -re "warning: x ambiguous; using X::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
-       pass "print x.x"
-   }
-   -re ".*$gdb_prompt $" { fail "print x.x" }
-   timeout { fail "(timeout) print x.x" }
-}
-
-
-# N is derived from A1 and A2, but not immediately -- two steps
-# up in the hierarchy. Both A1 and A2 have a member 'x'.
-send_gdb "print n.x\n"
-gdb_expect {
-   -re "warning: x ambiguous; using N::M::A2::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
-       pass "print n.x"
-   }
-   -re "warning: x ambiguous; using N::L::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
-       pass "print n.x"
-   }
-   -re ".*$gdb_prompt $" { fail "print n.x" }
-   timeout { fail "(timeout) print n.x" }
-}
-
-# J is derived from A1 twice.  A1 has a member x. 
-send_gdb "print j.x\n"
-gdb_expect {
-   -re "warning: x ambiguous; using J::L::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
-       pass "print j.x"
-   }
-   -re "warning: x ambiguous; using J::K::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
-       pass "print j.x"
-   }
-   -re ".*$gdb_prompt $" { fail "print j.x" }
-   timeout { fail "(timeout) print j.x" }
-}
-
-# JV is derived from A1 but A1 is a virtual base. Should not
-# report an ambiguity in this case. 
-send_gdb "print jv.x\n"
-gdb_expect {
-   -re "warning: x ambiguous.*Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
-       fail "print jv.x (ambiguity reported)"
-   }
-   -re "\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" { pass "print jv.x" }
-   -re ".*$gdb_prompt $" { fail "print jv.x (??)" }
-   timeout { fail "(timeout) print jv.x" }
-}
-
-# JVA1 is derived from A1; A1 occurs as a virtual base in two
-# ancestors, and as a non-virtual immediate base. Ambiguity must
-# be reported. 
-send_gdb "print jva1.x\n"
-gdb_expect {
-   -re "warning: x ambiguous; using JVA1::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
-       pass "print jva1.x"
-   }
-   -re "warning: x ambiguous; using JVA1::KV::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
-       pass "print jva1.x"
-   }
-   -re ".*$gdb_prompt $" { fail "print jva1.x" }
-   timeout { fail "(timeout) print jva1.x" }
-}
-
-# JVA2 is derived from A1 & A2; A1 occurs as a virtual base in two
-# ancestors, and A2 is a non-virtual immediate base. Ambiguity must
-# be reported as A1 and A2 both have a member 'x'.
-send_gdb "print jva2.x\n"
-gdb_expect {
-   -re "warning: x ambiguous; using JVA2::A2::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
-       pass "print jva2.x"
-   }
-   -re "warning: x ambiguous; using JVA2::KV::A1::x. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
-       pass "print jva2.x"
-   }
-   -re ".*$gdb_prompt $" { fail "print jva2.x" }
-   timeout { fail "(timeout) print jva2.x" }
-}
-
-# JVA1V is derived from A1; A1 occurs as a virtual base in two
-# ancestors, and also as a virtual immediate base. Ambiguity must
-# not be reported.
-send_gdb "print jva1v.x\n"
-gdb_expect {
-   -re "warning: x ambiguous.*Use a cast to disambiguate.\r\n\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" {
-       fail "print jva1v.x (ambiguity reported)"
-   }
-   -re "\\$\[0-9\]* = \[-\]*\[0-9\]*\r\n$gdb_prompt $" { pass "print jva1v.x" }
-   -re ".*$gdb_prompt $" { fail "print jva1v.x (??)" }
-   timeout { fail "(timeout) print jva1v.x" }
-}
-
-# Now check for ambiguous bases.
-
-# J is derived from A1 twice; report ambiguity if a J is
-# cast to an A1.
-send_gdb "print (A1)j\n"
-gdb_expect {
-   -re "warning: A1 ambiguous; using J::L::A1. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \{x = \[-\]*\[0-9\]*, y = \[-\]*\[0-9\]*\}\r\n$gdb_prompt $" {
-       pass "print (A1)j"
-   }
-   -re "warning: A1 ambiguous; using J::K::A1. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \{x = \[-\]*\[0-9\]*, y = \[-\]*\[0-9\]*\}\r\n$gdb_prompt $" {
-       pass "print (A1)j"
-   }
-   -re ".*$gdb_prompt $" { fail "print (A1)j" }
-   timeout { fail "(timeout) print (A1)j" }
-}
-
-# JV is derived from A1 twice, but A1 is a virtual base; should
-# not report ambiguity when a JV is cast to an A1.
-send_gdb "print (A1)jv\n"
-gdb_expect {
-   -re "warning: A1 ambiguous.*Use a cast to disambiguate.\r\n\\$\[0-9\]* = \{x = \[-\]*\[0-9\]*, y = \[-\]*\[0-9\]*\}\r\n$gdb_prompt $" {
-       fail "print (A1)jv (ambiguity reported)"
-   }
-   -re "\\$\[0-9\]* = \{x = \[-\]*\[0-9\]*, y = \[-\]*\[0-9\]*\}\r\n$gdb_prompt $" { pass "print (A1)jv" }
-   -re ".*$gdb_prompt $" { fail "print (A1)jv (??)" }
-   timeout { fail "(timeout) print (A1)jv" }
-}
-
-# JVA1 is derived from A1; A1 is a virtual base and also a
-# non-virtual base.  Must report ambiguity if a JVA1 is cast to an A1.
-send_gdb "print (A1)jva1\n"
-gdb_expect {
-   -re "warning: A1 ambiguous; using JVA1::A1. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \{x = \[-\]*\[0-9\]*, y = \[-\]*\[0-9\]*\}\r\n$gdb_prompt $" {
-       pass "print (A1)jva1"
-   }
-   -re "warning: A1 ambiguous; using JVA1::KV::A1. Use a cast to disambiguate.\r\n\\$\[0-9\]* = \{x = \[-\]*\[0-9\]*, y = \[-\]*\[0-9\]*\}\r\n$gdb_prompt $" {
-       pass "print (A1)jva1"
-   }
-   -re ".*$gdb_prompt $" { fail "print (A1)jva1" }
-   timeout { fail "(timeout) print (A1)jva1" }
-}
-
-# JVA1V is derived from A1; A1 is a virtual base indirectly
-# and also directly; must not report ambiguity when a JVA1V is cast to an A1.
-send_gdb "print (A1)jva1v\n"
-gdb_expect {
-   -re "warning: A1 ambiguous.*Use a cast to disambiguate.\r\n\\$\[0-9\]* = \{x = \[-\]*\[0-9\]*, y = \[-\]*\[0-9\]*\}\r\n$gdb_prompt $" {
-       fail "print (A1)jva1v (ambiguity reported)"
-   }
-   -re "\\$\[0-9\]* = \{x = \[-\]*\[0-9\]*, y = \[-\]*\[0-9\]*\}\r\n$gdb_prompt $" { pass "print (A1)jva1v"
-   }
-   -re ".*$gdb_prompt $" { fail "print (A1)jva1v (??)" }
-   timeout { fail "(timeout) print (A1)jva1v" }
-}
-
diff --git a/gdb/testsuite/gdb.c++/annota2.cc b/gdb/testsuite/gdb.c++/annota2.cc
deleted file mode 100644 (file)
index 234752e..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#include <stdio.h>
-
-class A {
-public:
-  int x;
-  int y;
-  int foo (int arg);
-};
-
-
-int A::foo (int arg)
-{
-  x += arg;
-  return arg *2;
-}
-
-int main()
-{
-  A a;
-
-  a.x = 0;
-  a.x = 1;
-  a.y = 2;
-
-  printf ("a.x is %d\n", a.x);
-  return 0;
-}
-
diff --git a/gdb/testsuite/gdb.c++/annota2.exp b/gdb/testsuite/gdb.c++/annota2.exp
deleted file mode 100644 (file)
index 0446eb3..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-#   Copyright 1999, 2000, 2001, 2002, 2003
-#   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)
-
-if $tracelevel then {
-    strace $tracelevel
-}
-
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "annota2"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++ additional_flags=-w}] != "" } {
-    gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-# are we on a target board? If so, don't run these tests.
-# note: this is necessary because we cannot use runto_main (which would
-# work for remote targets too) because of the different prompt we get
-# when using annotation level 2.
-#
-if [is_remote target] then {
-    return 0
-}
-
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-if [target_info exists gdb_stub] {
-    gdb_step_for_stub;
-}
-
-#
-# line number where we need to stop in main
-#
-set main_line 25
-
-# The commands we test here produce many lines of output; disable "press 
-# <return> to continue" prompts.
-send_gdb "set height 0\n"
-gdb_expect -re "$gdb_prompt $"
-
-#
-# break at main
-#
-gdb_test "break 25" \
-    "Breakpoint.*at.* file .*$srcfile, line.*" \
-    "breakpoint main"
-
-
-#
-# NOTE: this prompt is OK only when the annotation level is > 1
-# NOTE: When this prompt is in use the gdb_test procedure cannot be used because
-# it assumes that the last char of the gdb_prompt is a white space. This is not
-# true with this annotated prompt. So we must use send_gdb and gdb_expect.
-#
-
-set old_gdb_prompt $gdb_prompt
-set gdb_prompt "\r\n\032\032pre-prompt\r\n$gdb_prompt \r\n\032\032prompt\r\n"
-
-send_gdb "set annotate 2\n" 
-gdb_expect {
-    -re "set annotate 2\r\n$gdb_prompt$" { pass "annotation set at level 2" }
-    -re ".*$gdb_prompt$"       { fail "annotation set at level 2" }
-    timeout                { fail "annotation set at level 2 (timeout)" }
-  }
-
-send_gdb "run\n"
-  gdb_expect {
-    -re "$main_line.*$gdb_prompt$" { pass "run until main breakpoint" }
-    -re ".*$gdb_prompt$"       { fail "run until main breakpoint" }
-    timeout                { fail "run until main breakpoint (timeout)" }
-  }
-
-#
-# print class 'a' with public fields.
-# this will test:
-# annotate-field-begin
-# annotate-field-name-end
-# annotate-field-value
-# annotate-field-end
-#
-send_gdb "print a\n"
-gdb_expect {
-  -re "\r\n\032\032post-prompt\r\n\r\n\032\032value-history-begin 1 -\r\n.*= \r\n\032\032value-history-value\r\n\\{\r\n\032\032field-begin -\r\nx\r\n\032\032field-name-end\r\n = \r\n\032\032field-value\r\n1\r\n\032\032field-end\r\n, \r\n\032\032field-begin -\r\ny\r\n\032\032field-name-end\r\n = \r\n\032\032field-value\r\n2\r\n\032\032field-end\r\n\\}\r\n\r\n\032\032value-history-end\r\n$gdb_prompt$" \
-       { pass "print class" }
-  -re ".*$gdb_prompt$"     { fail "print class" }
-  timeout                  { fail "print class (timeout)" }
-}
-
-#
-# continue until exit
-# this will test:
-# annotate-exited
-#
-send_gdb "continue\n"
-gdb_expect {
-  -re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\na.x is 1\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032exited 0\r\n\r\nProgram exited normally.\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
-         { pass "continue until exit" }
-  -re ".*$gdb_prompt$"     { fail "continue to exit" }
-  timeout                  { fail "continue to exit (timeout)" }
-}
-
-#
-# delete all breakpoints
-#
-send_gdb "delete\n"
-gdb_expect {
-  -re ".*Delete all breakpoints. \\(y or n\\) \r\n\032\032query.*$" {
-           send_gdb "y\n"
-           gdb_expect {
-            -re "\r\n\032\032post-query\r\n$gdb_prompt$" { pass "delete bps" }
-            -re ".*$gdb_prompt$" { fail "delete bps" }
-            timeout  { fail "delete bps (timeout)" }
-        }
-     }
-  -re ".*$gdb_prompt$" { fail "delete bps" }
-  timeout  { fail "delete bps (timeout)" }
-}
-
-#
-# break at first line of main. 
-#
-send_gdb "break 22\n"
-gdb_expect {
-  -re  "\r\n\032\032post-prompt\r\n\r\n\032\032breakpoints-invalid\r\nBreakpoint.*at $hex: file.*$srcfile, line.*\r\n$gdb_prompt$" \
-           { pass "breakpoint at main" }
-  -re ".*$gdb_prompt$"     { fail "break at main" }
-  timeout                  { fail "break at main (timeout)" }
-}
-
-#
-# change value of main_line
-#
-set main_line 22
-
-#
-# run program up to breakpoint.
-#
-
-
-send_gdb "run\n"
-  gdb_expect {
-    -re "$main_line.*$gdb_prompt$"    { pass "run until main breakpoint" }
-    -re ".*$gdb_prompt$"       { fail "run until main breakpoint" }
-    timeout                { fail "run until main breakpoint (timeout)" }
-  }
-
-#
-# set up a watch point on a.x 
-#
-send_gdb "watch a.x\n"
-gdb_expect {
-   -re "\r\n\032\032post-prompt\r\n\r\n\032\032breakpoints-invalid\r\n.*atchpoint 3: a.x\r\n$gdb_prompt$" \
-          { pass "set watch on a.x" }
-   -re ".*$gdb_prompt$"  { fail "set watch on a.x" }
-   timeout    { fail "set watch on a.x (timeout)" }
-}
-
-#
-# do a next, so that the watchpoint triggers. This will test:
-# annotate-watchpoint
-#
-send_gdb "next\n"
-gdb_expect {
-   -re "\r\n\032\032post-prompt\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032watchpoint 3\r\nWatchpoint 3: a.x\r\n\r\nOld value = 0\r\nNew value = 1\r\n\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.*$srcfile\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n$decimal\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source .*$srcfile.*beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
-          { pass "watch triggered on a.x" }
-   -re "\r\n\032\032post-prompt\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032watchpoint 3\r\n\.*atchpoint 3: a.x\r\n\r\nOld value = 0\r\nNew value = 1\r\n\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.*$srcfile\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n$decimal\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source .*$srcfile.*beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n.*$gdb_prompt$" \
-          { pass "watch triggered on a.x" }
-   -re "\r\n\032\032post-prompt\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032source .*$srcfile.*beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
-          { kfail "gdb/38" "watch triggered on a.x" }
-   -re ".*$gdb_prompt$"  { fail "watch triggered on a.x" }
-   timeout    { fail "watch triggered on a.x (timeout)" }
-}
-
-
-#
-# send ^C to gdb, so that the quit() function gets called 
-# and annotate-quit is tested
-# test:
-# annotate-quit
-#
-# This test sometimes fails, but not reproducibly.  See gdb/544.
-#
-send_gdb "\003"
-gdb_expect {
-    -re "\r\n\032\032error-begin\r\nQuit\r\n\r\n\032\032quit\r\n$gdb_prompt$" \
-           { pass "annotate-quit" }
-    -re "$gdb_prompt$" { kfail "gdb/544" "annotate-quit" }
-    -re ".*$gdb_prompt$" { fail "annotate-quit" }
-    timeout { fail "annotate-quit (timeout)" }
-}
-
-#
-# FIXME: the testsuite does not currently have tests for 
-#        annotate_catchpoints and annotate_function_call
-#        and a few variants of the annotations that are 
-#        tested (marked by FIXME on the annot?.exp files)
-#
-
-# reinstall the old prompt for the rest of the testsuite.
-
-set gdb_prompt $old_gdb_prompt
-
diff --git a/gdb/testsuite/gdb.c++/annota3.cc b/gdb/testsuite/gdb.c++/annota3.cc
deleted file mode 100644 (file)
index 234752e..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#include <stdio.h>
-
-class A {
-public:
-  int x;
-  int y;
-  int foo (int arg);
-};
-
-
-int A::foo (int arg)
-{
-  x += arg;
-  return arg *2;
-}
-
-int main()
-{
-  A a;
-
-  a.x = 0;
-  a.x = 1;
-  a.y = 2;
-
-  printf ("a.x is %d\n", a.x);
-  return 0;
-}
-
diff --git a/gdb/testsuite/gdb.c++/annota3.exp b/gdb/testsuite/gdb.c++/annota3.exp
deleted file mode 100644 (file)
index 431ed4f..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-# Copyright 2003 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)
-
-if $tracelevel then {
-    strace $tracelevel
-}
-
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "annota3"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++ additional_flags=-w}] != "" } {
-    gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-# are we on a target board? If so, don't run these tests.
-# note: this is necessary because we cannot use runto_main (which would
-# work for remote targets too) because of the different prompt we get
-# when using annotation level 2.
-#
-if [is_remote target] then {
-    return 0
-}
-
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-if [target_info exists gdb_stub] {
-    gdb_step_for_stub;
-}
-
-#
-# line number where we need to stop in main
-#
-set main_line 25
-
-# The commands we test here produce many lines of output; disable "press 
-# <return> to continue" prompts.
-send_gdb "set height 0\n"
-gdb_expect -re "$gdb_prompt $"
-
-#
-# break at main
-#
-gdb_test "break 25" \
-    "Breakpoint.*at.* file .*$srcfile, line.*" \
-    "breakpoint main"
-
-
-#
-# NOTE: this prompt is OK only when the annotation level is > 1
-# NOTE: When this prompt is in use the gdb_test procedure cannot be used because
-# it assumes that the last char of the gdb_prompt is a white space. This is not
-# true with this annotated prompt. So we must use send_gdb and gdb_expect.
-#
-
-set old_gdb_prompt $gdb_prompt
-set gdb_prompt "\r\n\032\032pre-prompt\r\n$gdb_prompt \r\n\032\032prompt\r\n"
-
-send_gdb "set annotate 3\n" 
-gdb_expect_list "annotation set at level 3" "\r\n$gdb_prompt$" {
-    "set annotate 3"
-}
-
-send_gdb "run\n"
-gdb_expect_list "first run until main breakpoint" "$gdb_prompt$" {
-    "\r\n\032\032post-prompt\r\n"
-    "Starting program: .*annota3 \r\n"
-    "\(\r\n\032\032\(frames-invalid|breakpoints-invalid\)\r\n\)+"
-    "\r\n\032\032starting\r\n"
-    "\(\r\n\032\032\(frames-invalid|breakpoints-invalid\)\r\n\)+"
-    "\r\n\032\032breakpoint 1\r\n"
-    "\r\n"
-    "Breakpoint 1, main \\(\\) at .*annota3.cc:25\r\n"
-    "\r\n\032\032source.*annota3.cc:25:.*:beg:0x\[0-9a-z\]+\r\n"
-    "\r\n\032\032stopped\r\n"
-}
-
-#
-# print class 'a' with public fields.
-#
-send_gdb "print a\n"
-gdb_expect_list "print class" "$gdb_prompt$" {
-    "\r\n\032\032post-prompt\r\n"
-    ".*= \\{x = 1, y = 2\\}\r\n"
-}
-
-#
-# continue until exit
-# this will test:
-# annotate-exited
-#
-send_gdb "continue\n"
-gdb_expect_list "continue to exit" "$gdb_prompt$" {
-    "\r\n\032\032post-prompt\r\n"
-    "Continuing.\r\n"
-    "\r\n\032\032starting\r\n"
-    "\r\n\032\032frames-invalid\r\n"
-    "a.x is 1\r\n"
-    "\r\n\032\032frames-invalid\r\n"
-    "\r\n\032\032exited 0\r\n"
-    "\r\n"
-    "Program exited normally.\r\n"
-    "\r\n\032\032frames-invalid\r\n"
-    "\r\n\032\032stopped\r\n"
-}
-
-#
-# delete all breakpoints
-#
-send_gdb "delete\n"
-gdb_expect {
-  -re ".*Delete all breakpoints. \\(y or n\\) \r\n\032\032query.*$" {
-           send_gdb "y\n"
-           gdb_expect {
-            -re "\r\n\032\032post-query\r\n$gdb_prompt$" { pass "delete bps" }
-            -re ".*$gdb_prompt$" { fail "delete bps" }
-            timeout  { fail "delete bps (timeout)" }
-        }
-     }
-  -re ".*$gdb_prompt$" { fail "delete bps" }
-  timeout  { fail "delete bps (timeout)" }
-}
-
-#
-# break at first line of main. 
-#
-send_gdb "break 22\n"
-gdb_expect_list "break at main" "$gdb_prompt$" {
-    "\r\n\032\032post-prompt\r\n"
-    "\r\n\032\032breakpoints-invalid\r\n"
-    "Breakpoint.*at 0x\[a-z0-9\]+: file.*annota3.cc, line 22.\r\n"
-}
-
-#
-# run program up to breakpoint.
-#
-
-
-send_gdb "run\n"
-gdb_expect_list "second run until main breakpoint" "$gdb_prompt$" {
-    "\r\n\032\032post-prompt\r\n"
-    "\(\r\n\032\032\(frames-invalid|breakpoints-invalid\)\r\n\)+"
-    "\r\n\032\032starting\r\n"
-    "\(\r\n\032\032\(frames-invalid|breakpoints-invalid\)\r\n\)+"
-    "\r\n\032\032breakpoint 2\r\n"
-    "\r\n"
-    "Breakpoint 2, main \\(\\) at .*annota3.cc:22\r\n"
-    "\r\n\032\032source.*annota3.cc:22:.*:beg:0x\[0-9a-z\]+\r\n"
-    "\r\n\032\032stopped\r\n"
-}
-
-#
-# set up a watch point on a.x 
-#
-send_gdb "watch a.x\n"
-gdb_expect_list "set watch on a.x" "$gdb_prompt$" {
-    "\r\n\032\032post-prompt\r\n"
-    "\r\n\032\032breakpoints-invalid\r\n"
-    ".*atchpoint 3: a.x\r\n" \
-}
-
-#
-# do a next, so that the watchpoint triggers. This will test:
-# annotate-watchpoint
-#
-send_gdb "next\n"
-gdb_expect {
-    -re "\r\n\032\032post-prompt\r\n\r\n\032\032starting\r\n\(\r\n\032\032frames-invalid\r\n\)+\r\n\032\032watchpoint 3\r\nWatchpoint 3: a.x\r\n\r\nOld value = 0\r\nNew value = 1\r\nmain \\(\\) at .*$srcfile:$decimal\r\n\r\n\032\032source .*$srcfile.*beg:$hex\r\n\r\n\032\032stopped\r\n.*$gdb_prompt$" { 
-       pass "watch triggered on a.x"
-    }
-    -re "\r\n\032\032post-prompt\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032source .*$srcfile.*beg:$hex\r\n\r\n\032\032stopped\r\n$gdb_prompt$" {
-       kfail "gdb/38" "watch triggered on a.x"
-    }
-    -re ".*$gdb_prompt$" {
-       fail "watch triggered on a.x"
-    }
-    timeout {
-       fail "watch triggered on a.x (timeout)"
-    }
-}
-
-#
-# send ^C to gdb, so that the quit() function gets called 
-# and annotate-quit is tested
-# test:
-# annotate-quit
-#
-# This test sometimes fails, but not reproducibly.  See gdb/544.
-#
-send_gdb "\003"
-gdb_expect_list "annotate-quit" "$gdb_prompt$" {
-    "\r\n\032\032error-begin\r\n"
-    "Quit\r\n"
-    "\r\n\032\032quit\r\n"
-}
-
-#
-# FIXME: the testsuite does not currently have tests for 
-#        annotate_catchpoints and annotate_function_call
-#        and a few variants of the annotations that are 
-#        tested (marked by FIXME on the annot?.exp files)
-#
-
-# reinstall the old prompt for the rest of the testsuite.
-
-set gdb_prompt $old_gdb_prompt
-
diff --git a/gdb/testsuite/gdb.c++/anon-union.cc b/gdb/testsuite/gdb.c++/anon-union.cc
deleted file mode 100644 (file)
index 0b3fd13..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-
-struct Foo {
-  union {
-    int zero;
-    unsigned int one;
-  } num1;
-  struct X {
-      int rock;
-      unsigned int rock2;
-  };
-  union {
-    int pebble;
-    X x;
-    union {
-      int qux;
-      unsigned int mux;
-    };
-    unsigned int boulder;
-  };
-  union {
-    int paper;
-    unsigned int cloth;
-  };
-  union {
-    int two;
-    unsigned int three;
-  } num2;
-};
-
-union Bar {
-  int x;
-  unsigned int y;
-};
-
-
-int main()
-{
-  Foo foo = {0, 0};
-
-  foo.paper = 33;
-  foo.pebble = 44;
-  foo.mux = 55;
-
-  Bar bar = {0};
-
-  union {
-    int z;
-    unsigned int w;
-  }; w = 0;
-
-  bar.x = 33;
-
-  w = 45;
-
-}
diff --git a/gdb/testsuite/gdb.c++/anon-union.exp b/gdb/testsuite/gdb.c++/anon-union.exp
deleted file mode 100644 (file)
index 0d5c777..0000000
+++ /dev/null
@@ -1,348 +0,0 @@
-# Tests for anonymous union support.
-# Copyright 1998, 1999, 2003 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
-
-# Written by Satish Pai <pai@apollo.hp.com> 1997-08-19
-
-# This file is part of the gdb testsuite
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-#
-# test running programs
-#
-
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "anon-union"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     perror "Testcase compile failed" 0
-     continue
-}
-
-# Start with a fresh gdb
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-send_gdb "set width 0\n"
-gdb_expect -re "$gdb_prompt $"
-
-#send_gdb "ptype foo\n"
-#gdb_expect {
-#   -re "\r\n$gdb_prompt $" {
-#      pass "ptype foo"
-#    }
-#    -re ".*$gdb_prompt $" { fail "ptype foo" }
-#    timeout { fail "(timeout) ptype foo" }
-#}
-
-#send_gdb "ptype bar\n"
-#gdb_expect {
-#   -re "\r\n$gdb_prompt $" {
-#      pass "ptype foo"
-#    }
-#    -re ".*$gdb_prompt $" { fail "ptype foo" }
-#    timeout { fail "(timeout) ptype foo" }
-#}
-
-# NOTE: Add -- ptype foo.x, etc. when things are working
-
-#Initialize foo
-send_gdb "next\n"
-gdb_expect {
-   -re "40\[ \t\]*foo.paper = 33;\r\n$gdb_prompt $" {
-      pass "next 1"
-    }
-    -re ".*$gdb_prompt $" { fail "next 1" }
-    timeout { fail "(timeout) next 1" }
-}
-
-# Print out the big anon union.
-send_gdb "print foo\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 0, x = \{rock = 0, rock2 = 0\}, \{qux = 0, mux = 0\}, boulder = 0\}, \{paper = 0, cloth = 0\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
-      pass "print foo 1"
-    }
-    -re ".*$gdb_prompt $" { fail "print foo 1" }
-    timeout { fail "(timeout) print foo 1" }
-}
-
-# Step over assignment to member
-
-send_gdb "next\n"
-gdb_expect {
-   -re "41\[ \t\]*foo.pebble = 44;\r\n$gdb_prompt $" {
-      pass "next 1"
-    }
-    -re ".*$gdb_prompt $" { fail "next 1" }
-    timeout { fail "(timeout) next 1" }
-}
-
-# Now print out anon union again
-send_gdb "print foo\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 0, x = \{rock = 0, rock2 = 0\}, \{qux = 0, mux = 0\}, boulder = 0\}, \{paper = 33, cloth = 33\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
-      pass "print foo 2"
-    }
-    -re ".*$gdb_prompt $" { fail "print foo 2" }
-    timeout { fail "(timeout) print foo 2" }
-}
-
-# Modify the member just set
-send_gdb "set var foo.cloth = 35\n"
-gdb_expect {
-   -re "\r\n$gdb_prompt $" {
-      pass "set var foo.cloth"
-    }
-    timeout { fail "(timeout) set var foo.cloth" }
-}
-
-# Now print out anon union again to see if the right member was set 
-send_gdb "print foo\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 0, x = \{rock = 0, rock2 = 0\}, \{qux = 0, mux = 0\}, boulder = 0\}, \{paper = 35, cloth = 35\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
-      pass "print foo 3"
-    }
-    -re ".*$gdb_prompt $" { fail "print foo 3" }
-    timeout { fail "(timeout) print foo 3" }
-}
-
-
-# Step over next assignment to member
-
-send_gdb "next\n"
-gdb_expect {
-   -re "42\[ \t\]*foo.mux = 55;\r\n$gdb_prompt $" {
-      pass "next 2"
-    }
-    -re ".*$gdb_prompt $" { fail "next 2" }
-    timeout { fail "(timeout) next 2" }
-}
-
-# Now print out anon union again 
-send_gdb "print foo\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 44, x = \{rock = 44, rock2 = 0\}, \{qux = 44, mux = 44\}, boulder = 44\}, \{paper = 35, cloth = 35\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
-      pass "print foo 4"
-    }
-    -re ".*$gdb_prompt $" { fail "print foo 4" }
-    timeout { fail "(timeout) print foo 4" }
-}
-
-# Modify the member just set
-send_gdb "set var foo.pebble = 45\n"
-gdb_expect {
-   -re "\r\n$gdb_prompt $" {
-      pass "set var foo.pebble"
-    }
-    timeout { fail "(timeout) set var foo.pebble" }
-}
-
-# Now print out anon union again to see if the right member was set 
-send_gdb "print foo\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 45, x = \{rock = 45, rock2 = 0\}, \{qux = 45, mux = 45\}, boulder = 45\}, \{paper = 35, cloth = 35\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
-      pass "print foo 5"
-    }
-    -re ".*$gdb_prompt $" { fail "print foo 5" }
-    timeout { fail "(timeout) print foo 5" }
-}
-
-# Modify another member at a different level
-send_gdb "set var foo.qux = 46\n"
-gdb_expect {
-   -re "\r\n$gdb_prompt $" {
-      pass "set var foo.qux"
-    }
-    timeout { fail "(timeout) set var foo.qux" }
-}
-
-# Now print out anon union again to see if the right member was set 
-send_gdb "print foo\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 46, x = \{rock = 46, rock2 = 0\}, \{qux = 46, mux = 46\}, boulder = 46\}, \{paper = 35, cloth = 35\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
-      pass "print foo 6"
-    }
-    -re ".*$gdb_prompt $" { fail "print foo 6" }
-    timeout { fail "(timeout) print foo 6" }
-}
-
-# Modify the member at another level, but not the first one in the union
-send_gdb "set var foo.mux = 47\n"
-gdb_expect {
-   -re "\r\n$gdb_prompt $" {
-      pass "set var foo.mux"
-    }
-    timeout { fail "(timeout) set var foo.mux" }
-}
-
-# Now print out anon union again to see if things worked
-send_gdb "print foo\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 47, x = \{rock = 47, rock2 = 0\}, \{qux = 47, mux = 47\}, boulder = 47\}, \{paper = 35, cloth = 35\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
-      pass "print foo 7"
-    }
-    -re ".*$gdb_prompt $" { fail "print foo 7" }
-    timeout { fail "(timeout) print foo 7" }
-}
-
-# Modify a member of a struct in an anon union
-send_gdb "set var foo.x.rock = 48\n"
-gdb_expect {
-   -re "\r\n$gdb_prompt $" {
-      pass "set var foo.x.rock"
-    }
-    timeout { fail "(timeout) set var foo.x.rock" }
-}
-
-# Now print out anon union again to see if things worked
-send_gdb "print foo\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 48, x = \{rock = 48, rock2 = 0\}, \{qux = 48, mux = 48\}, boulder = 48\}, \{paper = 35, cloth = 35\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
-      pass "print foo 8"
-    }
-    -re ".*$gdb_prompt $" { fail "print foo 8" }
-    timeout { fail "(timeout) print foo 8" }
-}
-
-# Modify a member of a struct in an anon union, but something
-# that doesn't alias to some other union member
-send_gdb "set var foo.x.rock2 = 49\n"
-gdb_expect {
-   -re "\r\n$gdb_prompt $" {
-      pass "set var foo.x.rock2"
-    }
-    timeout { fail "(timeout) set var foo.x.rock2" }
-}
-
-# Now print out anon union again to see if things worked
-send_gdb "print foo\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \{num1 = \{zero = 0, one = 0\}, \{pebble = 48, x = \{rock = 48, rock2 = 49\}, \{qux = 48, mux = 48\}, boulder = 48\}, \{paper = 35, cloth = 35\}, num2 = \{two = 0, three = 0\}\}\r\n$gdb_prompt $" {
-      pass "print foo 9"
-    }
-    -re ".*$gdb_prompt $" { fail "print foo 9" }
-    timeout { fail "(timeout) print foo 9" }
-}
-
-
-# Step over next four assignments
-send_gdb "next 4\n"
-gdb_expect {
-   -re "53\[ \t\]*w = 45;\r\n$gdb_prompt $" {
-      pass "next 3"
-    }
-    -re ".*$gdb_prompt $" { fail "next 3" }
-    timeout { fail "(timeout) next 3" }
-}
-
-# Tests for anon unions that are not members of a class or struct
-
-send_gdb "print w\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 0\r\n$gdb_prompt $" {
-      pass "print w 1"
-    }
-    -re ".*$gdb_prompt $" { fail "print w 1" }
-    timeout { fail "(timeout) print w 1" }
-}
-
-send_gdb "print z\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 0\r\n$gdb_prompt $" {
-      pass "print z 1"
-    }
-    -re ".*$gdb_prompt $" { fail "print z 1" }
-    timeout { fail "(timeout) print z 1" }
-}
-
-# Step over next assignment to w
-send_gdb "next\n"
-gdb_expect {
-   -re "55\[ \t\]*\}\r\n$gdb_prompt $" {
-      pass "next 4"
-    }
-    -re ".*$gdb_prompt $" { fail "next 4" }
-    timeout { fail "(timeout) next 4" }
-}
-
-# See if the change in value is noticed
-send_gdb "print w\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 45\r\n$gdb_prompt $" {
-      pass "print w 2"
-    }
-    -re ".*$gdb_prompt $" { fail "print w 2" }
-    timeout { fail "(timeout) print w 2" }
-}
-
-# See if z shows the same value
-send_gdb "print z\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 45\r\n$gdb_prompt $" {
-      pass "print z 2"
-    }
-    -re ".*$gdb_prompt $" { fail "print z 2" }
-    timeout { fail "(timeout) print z 2" }
-}
-
-# Set the anon union member 
-send_gdb "set var z = 27\n"
-gdb_expect {
-   -re "\r\n$gdb_prompt $" {
-      pass "set var z"
-    }
-    timeout { fail "(timeout) set var z" }
-}
-
-# See if the change in value is noticed
-send_gdb "print w\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 27\r\n$gdb_prompt $" {
-      pass "print w 3"
-    }
-    -re ".*$gdb_prompt $" { fail "print w 3" }
-    timeout { fail "(timeout) print w 3" }
-}
-
-# See if z shows the same value
-send_gdb "print z\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 27\r\n$gdb_prompt $" {
-      pass "print z 3"
-    }
-    -re ".*$gdb_prompt $" { fail "print z 3" }
-    timeout { fail "(timeout) print z 3" }
-}
diff --git a/gdb/testsuite/gdb.c++/casts.cc b/gdb/testsuite/gdb.c++/casts.cc
deleted file mode 100644 (file)
index 831add9..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-struct A
-{
-  int a;
-  A (int aa): a (aa) {}
-};
-
-struct B: public A
-{
-  int b;
-  B (int aa, int bb): A (aa), b(bb) {}
-};
-
-int
-main (int argc, char **argv)
-{
-  A *a = new B(42, 1729);
-  B *b = (B *) a;
-
-  return 0;  /* breakpoint spot: casts.exp: 1 */
-}
diff --git a/gdb/testsuite/gdb.c++/casts.exp b/gdb/testsuite/gdb.c++/casts.exp
deleted file mode 100644 (file)
index 5b6cabe..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright 2002, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# This file is part of the gdb testsuite
-
-# Test casting, especially between class types or pointer-to-class
-# types.
-
-# This file is part of the gdb testsuite
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-#
-# test running programs
-#
-
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "casts"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if [get_compiler_info ${binfile} "c++"] {
-    return -1;
-}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-gdb_test "break [gdb_get_line_number "casts.exp: 1"]" \
-    "Breakpoint.*at.* file .*" \
-    ""
-
-gdb_test "continue" "Breakpoint .* at .*casts.cc.*" ""
-
-# Casting a pointer to a base class to a pointer to a derived class
-# should yield the entire derived class.  Until August 2002, GDB got
-# the enclosing type on `(B *) a' wrong: while the value's static type
-# was `B *', as it should be, the enclosing type (which is supposed to
-# be the dynamic type) was `A *'.  It's senseless to have a static
-# type derived from the dynamic type; it should be the other way
-# 'round.  Dereferencing this oddly typed pointer yielded a value in
-# which only the base class's members were initialized, since GDB uses
-# the enclosing type to decide how many bytes to read.  Members from
-# the derived class were garbage, from GDB's address space.
-gdb_test "print * (B *) a" ".* = {<A> = {a = 42}, b = 1729}" \
-    "cast base class pointer to derived class pointer"
-
-# Check also that we get the same results from letting the compiler do
-# the dereference.
-gdb_test "print * b" ".* = {<A> = {a = 42}, b = 1729}" \
-    "let compiler cast base class pointer to derived class pointer"
diff --git a/gdb/testsuite/gdb.c++/classes.exp b/gdb/testsuite/gdb.c++/classes.exp
deleted file mode 100644 (file)
index 3f398ac..0000000
+++ /dev/null
@@ -1,918 +0,0 @@
-# Copyright 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# This file was written by Fred Fish. (fnf@cygnus.com)
-
-set ws "\[\r\n\t \]+"
-set nl "\[\r\n\]+"
-
-if $tracelevel then {
-       strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "misc"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-# Create and source the file that provides information about the compiler
-# used to compile the test case.
-
-if [get_compiler_info ${binfile} "c++"] {
-    return -1
-}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-#
-# Test ptype of class objects.
-#
-
-proc test_ptype_class_objects {} {
-    global gdb_prompt
-    global ws
-    global nl
-
-    # Note that struct members are public by default, so we don't print
-    # "public:" for the public members of structs.
-    # Accept it if gdb just fails to distinguish between
-    # class and struct, and everything else is OK.
-
-    send_gdb "ptype struct default_public_struct\n"
-    gdb_expect {
-       -re "type = struct default_public_struct \{${ws}int a;${ws}int b;$nl\}$nl$gdb_prompt $" {
-           pass "ptype struct default_public_struct"
-       }
-       -re "type = class default_public_struct \{$nl.*int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype struct default_public_struct"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype struct default_public_struct" }
-       timeout { fail "ptype struct default_public_struct (timeout)" ; return }
-    }
-
-    # Note that struct members are public by default, so we don't print
-    # "public:" for the public members of structs.
-    # Accept it if gdb just fails to distinguish between
-    # class and struct, and everything else is OK.
-
-    send_gdb "ptype struct explicit_public_struct\n"
-    gdb_expect {
-       -re "type = struct explicit_public_struct \{${ws}int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype struct explicit_public_struct"
-       }
-       -re "type = class explicit_public_struct \{$nl.*int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype struct explicit_public_struct"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype struct explicit_public_struct" }
-       timeout { fail "ptype struct explicit_public_struct (timeout)" ; return }
-    }
-
-    # Accept it if gdb just fails to distinguish between
-    # class and struct, and everything else is OK.
-
-    send_gdb "ptype struct protected_struct\n"
-    gdb_expect {
-       -re "type = struct protected_struct \{${ws}protected:${ws}int a;${ws}int b;$nl\}$nl$gdb_prompt $" {
-           pass "ptype struct protected_struct"
-       }
-       -re "type = class protected_struct \{${ws}protected:${ws}int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype struct protected_struct"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype struct protected_struct" }
-       timeout { fail "ptype struct protected_struct (timeout)" ; return }
-    }
-
-    # Accept it if gdb just fails to distinguish between
-    # class and struct, and everything else is OK.
-
-    send_gdb "ptype struct private_struct\n"
-    gdb_expect {
-       -re "type = struct private_struct \{${ws}private:${ws}int a;${ws}int b;$nl\}$nl$gdb_prompt $" {
-           pass "ptype struct private_struct"
-       }
-       -re "type = class private_struct \{${ws}private:${ws}int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" { 
-           pass "ptype struct private_struct"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype struct private_struct" }
-       timeout { fail "ptype struct private_struct (timeout)" ; return }
-    }
-
-    # Accept it if gdb just fails to distinguish between
-    # class and struct, and everything else is OK.
-
-    send_gdb "ptype struct mixed_protection_struct\n"
-    gdb_expect {
-       -re "type = struct mixed_protection_struct \{${ws}int a;${ws}int b;${ws}private:${ws}int c;${ws}int d;${ws}protected:${ws}int e;${ws}int f;${ws}public:${ws}int g;${ws}private:${ws}int h;${ws}protected:${ws}int i;$nl\}$nl$gdb_prompt $" {
-           pass "ptype struct mixed_protection_struct"
-       }
-        -re "type = struct mixed_protection_struct \{${ws}public:${ws}int a;${ws}int b;${ws}private:${ws}int c;${ws}int d;${ws}protected:${ws}int e;${ws}int f;${ws}public:${ws}int g;${ws}private:${ws}int h;${ws}protected:${ws}int i;$nl.*\}$nl$gdb_prompt $" {
-            pass "ptype struct mixed_protection_struct (extra public)"
-        }
-       -re "type = class mixed_protection_struct \{${ws}public:${ws}int a;${ws}int b;${ws}private:${ws}int c;${ws}int d;${ws}protected:${ws}int e;${ws}int f;${ws}public:${ws}int g;${ws}private:${ws}int h;${ws}protected:${ws}int i;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype struct mixed_protection_struct"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype struct mixed_protection_struct" }
-       timeout { fail "ptype struct mixed_protection_struct (timeout)" ; return }
-    }
-
-    # Accept it if gdb just fails to distinguish between
-    # class and struct, and everything else is OK.
-
-    send_gdb "ptype class public_class\n"
-    gdb_expect {
-       -re "type = class public_class \{${ws}public:${ws}int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype class public_class"
-       }
-       -re "type = struct public_class \{${ws}int a;${ws}int b;$nl\}$nl$gdb_prompt $" {
-           pass "ptype class public_class"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype class public_class" }
-       timeout { fail "ptype class public_class (timeout)" ; return }
-    }
-
-    send_gdb "ptype class protected_class\n"
-    gdb_expect {
-       -re "type = class protected_class \{${ws}protected:${ws}int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype class protected_class"
-       }
-       -re "type = struct protected_class \{${ws}int a;${ws}int b;$nl\}$nl$gdb_prompt $" {
-           fail "ptype class protected_class"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype class protected_class" }
-       timeout { fail "ptype class protected_class (timeout)" ; return }
-    }
-
-    # Accept it if gdb just emits a superflous "private:"
-    # attribute, since classes default to private and for consistency with
-    # structs (where we don't print the "public:" attribute) we don't print
-    # the "private:" attribute.
-
-    send_gdb "ptype class default_private_class\n"
-    gdb_expect {
-       -re "type = class default_private_class \{${ws}int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype class default_private_class"
-       }
-       -re "type = class default_private_class \{${ws}private:${ws}int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype class default_private_class"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype class default_private_class" }
-       timeout { fail "ptype class default_private_class (timeout)" ; return }
-    }
-
-    send_gdb "ptype class explicit_private_class\n"
-    gdb_expect {
-       -re "type = class explicit_private_class \{${ws}private:${ws}int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype class explicit_private_class"
-       }
-        -re "type = class explicit_private_class \{${ws}int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
-            pass "ptype class explicit_private_class"
-        }
-       -re "type = struct explicit_private_class \{${ws}int a;${ws}int b;$nl.*\}$nl$gdb_prompt $" {
-           fail "ptype class explicit_private_class"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype class explicit_private_class" }
-       timeout { fail "ptype class explicit_private_class (timeout)" ; return }
-    }
-
-    send_gdb "ptype class mixed_protection_class\n"
-    gdb_expect {
-       -re "type = class mixed_protection_class \{${ws}public:${ws}int a;${ws}int b;${ws}private:${ws}int c;${ws}int d;${ws}protected:${ws}int e;${ws}int f;${ws}public:${ws}int g;${ws}private:${ws}int h;${ws}protected:${ws}int i;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype class mixed_protection_class"
-       }
-       -re "type = struct mixed_protection_class \{${ws}int a;${ws}int b;${ws}int c;${ws}int d;${ws}int e;${ws}int f;${ws}int g;${ws}int h;${ws}int i;$nl.*\}$nl$gdb_prompt $" {
-           fail "ptype class mixed_protection_class"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype class mixed_protection_class" }
-       timeout { fail "ptype class mixed_protection_class (timeout)" ; return }
-    }
-
-    # This class does not use any C++-specific features, so it's fine for
-    # it to print as "struct".
-    send_gdb "ptype class A\n"
-    gdb_expect {
-       -re "type = (class|struct) A \{(${ws}public:|)${ws}int a;${ws}int x;((${ws}A & operator=\\(A const ?&\\);)|(${ws}A\\((A const|const A) ?&\\);)|(${ws}A\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class A"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype class A"
-       }
-       timeout {
-           fail "ptype class A (timeout)"
-           return
-       }
-    }
-
-    send_gdb "ptype class B\n"
-    gdb_expect {
-       -re "type = class B : public A \{${ws}public:${ws}int b;${ws}int x;${ws}B & operator=\\(B const ?&\\);${ws}B\\((B const|const B) ?&\\);${ws}B\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class B"
-       }
-       -re "type = class B : public A \{${ws}public:${ws}int b;${ws}int x;((${ws}B & operator=\\(B const ?&\\);)|(${ws}B\\(B const ?&\\);)|(${ws}B\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class B (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype class B"
-       }
-       timeout {
-           fail "ptype class B (timeout)"
-           return
-       }
-    }
-
-    send_gdb "ptype class C\n"
-    gdb_expect {
-       -re "type = class C : public A \{${ws}public:${ws}int c;${ws}int x;${ws}C & operator=\\(C const ?&\\);${ws}C\\((C const|const C) ?&\\);${ws}C\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class C"
-       }
-       -re "type = class C : public A \{${ws}public:${ws}int c;${ws}int x;((${ws}C & operator=\\(C const ?&\\);)|(${ws}C\\(C const ?&\\);)|(${ws}C\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class C (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype class C"
-       }
-       timeout {
-           fail "ptype class C (timeout)"
-           return
-       }
-    }
-
-    send_gdb "ptype class D\n"
-    gdb_expect {
-       -re "type = class D : public B, public C \{${ws}public:${ws}int d;${ws}int x;${ws}D & operator=\\(D const ?&\\);${ws}D\\((D const|const D) ?&\\);${ws}D\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class D"
-       }
-       -re "type = class D : public B, public C \{${ws}public:${ws}int d;${ws}int x;((${ws}D & operator=\\(D const ?&\\);)|(${ws}D\\(D const ?&\\);)|(${ws}D\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class D (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype class D"
-       }
-       timeout {
-           fail "ptype class D (timeout)"
-           return
-       }
-    }
-
-    send_gdb "ptype class E\n"
-    gdb_expect {
-       -re "type = class E : public D \{${ws}public:${ws}int e;${ws}int x;${ws}E & operator=\\(E const ?&\\);${ws}E\\((E const|const E) ?&\\);${ws}E\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class E"
-       }
-       -re "type = class E : public D \{${ws}public:${ws}int e;${ws}int x;((${ws}E & operator=\\(E const ?&\\);)|(${ws}E\\((E const|const E) ?&\\);)|(${ws}E\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class E"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype class E"
-       }
-       timeout {
-           fail "ptype class E (timeout)"
-           return
-       }
-    }
-
-    # With g++ 2.x and stabs debug info, we misinterpret static methods
-    # whose name matches their argument mangling.
-    send_gdb "ptype class Static\n"
-    gdb_expect {
-       -re "type = (class|struct) Static \{(${ws}public:|)${ws}Static & operator=\\(Static const ?&\\);${ws}Static\\((Static const|const Static) ?&\\);${ws}Static\\((void|)\\);${ws}static void ii\\(int, int\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class Static"
-       }
-       -re "type = (class|struct) Static \{(${ws}public:|)${ws}static void ii\\(int, int\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class Static"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype class Static"
-       }
-       timeout {
-           fail "ptype class Static (timeout)"
-           return
-       }
-    }
-
-    send_gdb "ptype class vA\n"
-    gdb_expect {
-       -re "type = (class|struct) vA \{(${ws}public:|)${ws}int va;${ws}int vx;${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class vA"
-       }
-       -re "type = (class|struct) vA \{(${ws}public:|)${ws}int va;${ws}int vx;${ws}vA & operator=\\(vA const ?&\\);${ws}vA\\((vA const|const vA) ?&\\);${ws}vA\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class vA"
-       }
-       -re "type = (class|struct) vA \{(${ws}public:|)${ws}int va;${ws}int vx;((${ws}vA & operator=\\(vA const ?&\\);)|(${ws}vA\\(vA const ?&\\);)|(${ws}vA\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class vA (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype class vA"
-       }
-       timeout {
-           fail "ptype class vA (timeout)"
-           return
-       }
-    }
-
-    # Accept the form with embedded GNU style mangled virtual table constructs
-    # for now, but with a FIXME.  At some future point, gdb should use a
-    # portable representation for the virtual table constructs.
-
-    # The format of a g++ virtual base pointer.
-    set vbptr "(_vb\[$.\]|__vb_)\[0-9\]?"
-
-    send_gdb "ptype class vB\n"
-    gdb_expect {
-       -re "type = class vB : public virtual vA \{${ws}public:${ws}int vb;${ws}int vx;${ws}vB & operator=\\(vB const ?&\\);${ws}vB\\((vB const|const vB) ?&\\);${ws}vB\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class vB"
-       }
-       -re "type = class vB : public virtual vA \{${ws}private:${ws}vA \\*${vbptr}vA;${ws}public:${ws}int vb;${ws}int vx;${ws}vB & operator=\\(vB const ?&\\);${ws}vB\\(int, vB const ?&\\);${ws}vB\\(int\\);${ws}\}$nl$gdb_prompt $" {
-           setup_xfail "*-*-*"
-           fail "ptype class vB (FIXME: non-portable virtual table constructs)"
-       }
-        -re "type = class vB : public virtual vA \{${ws}public:${ws}int vb;${ws}int vx;${ws}\}$nl$gdb_prompt $" {
-            pass "ptype class vB"
-        }
-       -re "type = class vB : public virtual vA \{${ws}private:${ws}vA \\*_vb.vA;${ws}public:${ws}int vb;${ws}int vx;((${ws}vB & operator=\\(vB const ?&\\);)|(${ws}vB\\(int, vB const ?&\\);)|(${ws}vB\\(int\\);))*${ws}\}$nl$gdb_prompt $" {
-           setup_xfail "*-*-*"
-           fail "ptype class vB (FIXME) (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype class vB"
-       }
-       timeout {
-           fail "ptype class vB (timeout)"
-           return
-       }
-    }
-
-    # Accept the form with embedded GNU style mangled virtual table constructs
-    # for now, but with a FIXME.  At some future point, gdb should use a
-    # portable representation for the virtual table constructs.
-
-    send_gdb "ptype class vC\n"
-    gdb_expect {
-       -re "type = class vC : public virtual vA \{${ws}public:${ws}int vc;${ws}int vx;${ws}vC & operator=\\(vC const ?&\\);${ws}vC\\((vC const|const vC) ?&\\);${ws}vC\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class vC"
-       }
-       -re "type = class vC : public virtual vA \{${ws}private:${ws}vA \\*${vbptr}vA;${ws}public:${ws}int vc;${ws}int vx;${ws}vC & operator=\\(vC const ?&\\);${ws}vC\\(int, vC const ?&\\);${ws}vC\\(int\\);${ws}\}$nl$gdb_prompt $" {
-           setup_xfail "*-*-*"
-           fail "ptype class vC (FIXME: non-portable virtual table constructs)"
-       }
-        -re "type = class vC : public virtual vA \{${ws}public:${ws}int vc;${ws}int vx;${ws}\}$nl$gdb_prompt $" {
-            pass "ptype class vC"
-        }
-       -re "type = class vC : public virtual vA \{${ws}private:${ws}vA \\*_vb.vA;${ws}public:${ws}int vc;${ws}int vx;((${ws}vC & operator=\\(vC const ?&\\);)|(${ws}vC\\(int, vC const ?&\\);)|(${ws}vC\\(int\\);))*${ws}\}$nl$gdb_prompt $" {
-           setup_xfail "*-*-*"
-           fail "ptype class vC (FIXME) (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype class vC"
-       }
-       timeout {
-           fail "ptype class vC (timeout)"
-           return
-       }
-    }
-
-    # Accept the form with embedded GNU style mangled virtual table constructs
-    # for now, but with a FIXME.  At some future point, gdb should use a
-    # portable representation for the virtual table constructs.
-
-    send_gdb "ptype class vD\n"
-    gdb_expect {
-       -re "type = class vD : public virtual vB, public virtual vC \{${ws}public:${ws}int vd;${ws}int vx;${ws}vD & operator=\\(vD const ?&\\);${ws}vD\\((vD const|const vD) ?&\\);${ws}vD\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class vD"
-       }
-       -re "type = class vD : public virtual vB, public virtual vC \{${ws}private:${ws}vC \\*${vbptr}vC;${ws}vB \\*${vbptr}vB;${ws}public:${ws}int vd;${ws}int vx;${ws}vD & operator=\\(vD const ?&\\);${ws}vD\\(int, vD const ?&\\);${ws}vD\\(int\\);${ws}\}$nl$gdb_prompt $" {
-           setup_xfail "*-*-*"
-           fail "ptype class vD (FIXME: non-portable virtual table constructs)"
-       }
-        -re "type = class vD : public virtual vB, public virtual vC \{${ws}public:${ws}int vd;${ws}int vx;${ws}\}$nl$gdb_prompt $" {
-            pass "ptype class vD"
-        }
-       -re "type = class vD : public virtual vB, public virtual vC \{${ws}private:${ws}vC \\*_vb.vC;${ws}vB \\*_vb.vB;${ws}public:${ws}int vd;${ws}int vx;((${ws}vD & operator=\\(vD const ?&\\);)|(${ws}vD\\(int, vD const ?&\\);)|(${ws}vD\\(int\\);))*${ws}\}$nl$gdb_prompt $" {
-           setup_xfail "*-*-*"
-           fail "ptype class vD (FIXME) (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype class vD"
-       }
-       timeout {
-           fail "ptype class vD (timeout)"
-           return
-       }
-    }
-
-    # Accept the form with embedded GNU style mangled virtual table constructs
-    # for now, but with a FIXME.  At some future point, gdb should use a
-    # portable representation for the virtual table constructs.
-
-    send_gdb "ptype class vE\n"
-    gdb_expect {
-       -re "type = class vE : public virtual vD \{${ws}public:${ws}int ve;${ws}int vx;${ws}vE & operator=\\(vE const ?&\\);${ws}vE\\((vE const|const vE) ?&\\);${ws}vE\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class vE"
-       }
-       -re "type = class vE : public virtual vD \{${ws}private:${ws}vD \\*${vbptr}vD;${ws}public:${ws}int ve;${ws}int vx;${ws}vE & operator=\\(vE const ?&\\);${ws}vE\\(int, vE const ?&\\);${ws}vE\\(int\\);${ws}\}$nl$gdb_prompt $" {
-           setup_xfail "*-*-*"
-           fail "ptype class vE (FIXME: non-portable virtual table constructs)"
-       }
-        -re "type = class vE : public virtual vD \{${ws}public:${ws}int ve;${ws}int vx;${ws}\}$nl$gdb_prompt $" {
-            pass "ptype class vE"
-        }
-       -re "type = class vE : public virtual vD \{${ws}private:${ws}vD \\*_vb.vD;${ws}public:${ws}int ve;${ws}int vx;((${ws}vE & operator=\\(vE const ?&\\);)|(${ws}vE\\(int, vE const ?&\\);)|(${ws}vE\\(int\\);))*${ws}\}$nl$gdb_prompt $" {
-           setup_xfail "*-*-*"
-           fail "ptype class vE (FIXME) (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype class vE"
-       }
-       timeout {
-           fail "ptype class vE (timeout)"
-           return
-       }
-    }
-
-    send_gdb "ptype class Base1\n"
-    gdb_expect {
-       -re "type = class Base1 \{${ws}public:${ws}int x;${ws}Base1 & operator=\\(Base1 const ?&\\);${ws}Base1\\(((Base1 const)|(const Base1)) ?&\\);${ws}Base1\\(int\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class Base1"
-       }
-       -re "type = class Base1 \{${ws}public:${ws}int x;${ws}Base1\\(int\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class Base1"
-       }
-       -re "type = class Base1 \{${ws}public:${ws}int x;((${ws}Base1 & operator=\\(Base1 const ?&\\);)|(${ws}Base1\\(Base1 const ?&\\);)|(${ws}Base1\\(int\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class Base1 (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype class Base1"
-       }
-       timeout {
-           fail "ptype class Base1 (timeout)"
-           return
-       }
-    }
-
-    send_gdb "ptype class Foo\n"
-    gdb_expect {
-        -re "type = class Foo \{${ws}public:${ws}int x;${ws}int y;${ws}static int st;\r\n${ws}Foo\\(int, int\\);${ws}int operator!\\((void|)\\);${ws}operator int\\((void|)\\);${ws}int times\\(int\\);$nl\}$nl$gdb_prompt $" {
-            pass "ptype class Foo"
-        }
-       -re "type = class Foo \{${ws}public:${ws}int x;${ws}int y;${ws}static int st;${ws}Foo & operator=\\(Foo const ?&\\);${ws}Foo\\((Foo const|const Foo) ?&\\);${ws}Foo\\(int, int\\);${ws}int operator!\\((void|)\\);${ws}operator int\\((void|)\\);${ws}int times\\(int\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class Foo"
-       }
-       -re "type = class Foo \{${ws}public:${ws}int x;${ws}int y;${ws}static int st;((${ws}Foo & operator=\\(Foo const ?&\\);)|(${ws}Foo\\(Foo const ?&\\);)|(${ws}Foo\\(int, int\\);)|(${ws}int operator!\\((void|)\\);)|(${ws}int operator int\\((void|)\\);)|(${ws}int times\\(int\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class Foo (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype class Foo"
-       }
-       timeout {
-           fail "ptype class Foo (timeout)"
-           return
-       }
-    }
-
-    send_gdb "ptype class Bar\n"
-    gdb_expect {
-       -re "type = class Bar : public Base1, public Foo \{${ws}public:${ws}int z;${ws}Bar & operator=\\(Bar const ?&\\);${ws}Bar\\((Bar const|const Bar) ?&\\);${ws}Bar\\(int, int, int\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class Bar"
-       }
-       -re "type = class Bar : public Base1, public Foo \{${ws}public:${ws}int z;((${ws}Bar & operator=\\(Bar const ?&\\);)|(${ws}Bar\\(Bar const ?&\\);)|(${ws}Bar\\(int, int, int\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype class Bar (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype class Bar"
-       }
-       timeout {
-           fail "ptype class Bar (timeout)"
-           return
-       }
-    }
-}
-
-#
-# Test simple access to class members.
-#
-
-proc test_non_inherited_member_access {} {
-    global gdb_prompt
-    
-    # Print non-inherited members of g_A.
-
-    gdb_test "print g_A.a" ".* = 1" "g_A.a incorrect"
-
-    gdb_test "print g_A.x" ".* = 2" "g_A.x incorrect"
-
-    # Print non-inherited members of g_B.
-
-    gdb_test "print g_B.b" ".* = 5" "g_B.b incorrect"
-
-    gdb_test "print g_B.x" ".* = 6" "g_B.x incorrect"
-
-    # Print non-inherited members of g_C.
-
-    gdb_test "print g_C.c" ".* = 9" "g_C.c incorrect"
-
-    gdb_test "print g_C.x" ".* = 10" "g_C.x incorrect"
-
-    # Print non-inherited members of g_D.
-
-    gdb_test "print g_D.d" ".* = 19" "g_D.d incorrect"
-
-    gdb_test "print g_D.x" ".* = 20" "g_D.x incorrect"
-
-    # Print non-inherited members of g_E.
-
-    gdb_test "print g_E.e" ".* = 31" "g_E.e incorrect"
-
-    gdb_test "print g_E.x" ".* = 32" "g_E.x incorrect"
-}
-
-#
-# Try access to non-members that are members of another class.
-# Should give errors.
-#
-
-proc test_wrong_class_members {} {
-    global gdb_prompt
-
-    gdb_test "print g_A.b" "There is no member( or method|) named b." "print g_A.b should be error"
-
-    gdb_test "print g_B.c" "There is no member( or method|) named c." "print g_B.c should be error"
-
-    gdb_test "print g_B.d" "There is no member( or method|) named d." "print g_B.d should be error"
-
-    gdb_test "print g_C.b" "There is no member( or method|) named b." "print g_C.b should be error"
-
-    gdb_test "print g_C.d" "There is no member( or method|) named d." "print g_C.d should be error"
-
-    gdb_test "print g_D.e" "There is no member( or method|) named e." "print g_D.e should be error"
-}
-
-#
-# Try access to non-members that are not members of any class.
-# Should give errors.
-#
-
-proc test_nonexistent_members {} {
-    global gdb_prompt
-
-    gdb_test "print g_A.y" "There is no member( or method|) named y." "print g_A.y should be error"
-
-    gdb_test "print g_B.z" "There is no member( or method|) named z." "print g_B.z should be error"
-
-    gdb_test "print g_C.q" "There is no member( or method|) named q." "print g_C.q should be error"
-
-    gdb_test "print g_D.p" "There is no member( or method|) named p." "print g_D.p should be error"
-}
-
-#
-# Call a method that expects a base class parameter with base, inherited,
-# and unrelated class arguments.
-#
-
-proc test_method_param_class {} {
-    gdb_test "call class_param.Aptr_a (&g_A)" ".* = 1" "base class param->a"
-    gdb_test "call class_param.Aptr_x (&g_A)" ".* = 2" "base class param->x"
-    gdb_test "call class_param.Aptr_a (&g_B)" ".* = 3" "inherited class param->a"
-    gdb_test "call class_param.Aptr_x (&g_B)" ".* = 4" "inherited class param->x"
-    gdb_test "call class_param.Aref_a (g_A)" ".* = 1" "base class (&param)->a"
-    gdb_test "call class_param.Aref_x (g_A)" ".* = 2" "base class (&param)->x"
-    gdb_test "call class_param.Aref_a (g_B)" ".* = 3" "inherited class (&param)->a"
-    gdb_test "call class_param.Aref_x (g_B)" ".* = 4" "inherited class (&param)->x"
-    gdb_test "call class_param.Aval_a (g_A)" ".* = 1" "base class param.a"
-    gdb_test "call class_param.Aval_x (g_A)" ".* = 2" "base class param.x"
-    gdb_test "call class_param.Aval_a (g_B)" ".* = 3" "inherited class param.a"
-    gdb_test "call class_param.Aval_x (g_B)" ".* = 4" "inherited class param.x"
-
-    gdb_test "call class_param.Aptr_a (&foo)" "Cannot resolve .*" "unrelated class *param"
-    gdb_test "call class_param.Aref_a (foo)" "Cannot resolve .*" "unrelated class &param"
-    gdb_test "call class_param.Aval_a (foo)" "Cannot resolve .*" "unrelated class param"
-}
-
-#
-# Examine a class with an enum field.
-#
-
-proc test_enums {} {
-    global gdb_prompt
-    global hp_aCC_compiler
-
-    # print the object
-    send_gdb "print obj_with_enum\n"
-    gdb_expect {
-       -re "\\$\[0-9\]* = \\{priv_enum = red, x = 0\\}.*$gdb_prompt $" { pass "print obj_with_enum (1)" }
-       -re "$gdb_prompt $"                     { fail "print obj_with_enum (1)" }
-       timeout                             { fail "(timeout) print obj_with_enum (1)" }
-    }
-
-    send_gdb "next\n"
-    gdb_expect {
-       -re "$gdb_prompt $"                     { pass "next" }
-       timeout                             { fail "(timeout) next" }
-    }
-
-    # print the object again
-    send_gdb "print obj_with_enum\n"
-    gdb_expect {
-       -re "\\$\[0-9\]* = \\{priv_enum = green, x = 0\\}.*$gdb_prompt $" { pass "print obj_with_enum (2)" }
-       -re "$gdb_prompt $"                     { fail "print obj_with_enum (2)" }
-       timeout                             { fail "(timeout) print obj_with_enum (2)" }
-    }
-
-    # print out the enum member
-    send_gdb "print obj_with_enum.priv_enum\n"
-    gdb_expect {
-       -re "\\$\[0-9\]* = green.*$gdb_prompt $" { pass "print obj_with_enum.priv_enum" }
-       -re "$gdb_prompt $"                     { fail "print obj_with_enum.priv_enum" }
-       timeout                             { fail "(timeout) print obj_with_enum.priv_enum" }
-    }
-
-    # ptype on the enum member
-    # The third success case is a little dubious, but it's not clear what
-    # ought to be required of a ptype on a private enum... -sts 19990324
-    send_gdb "ptype obj_with_enum.priv_enum\n"
-    gdb_expect {
-       -re "type = enum ClassWithEnum::PrivEnum \\{red, green, blue, yellow = 42\\}.*$gdb_prompt $" { pass "ptype obj_with_enum.priv_enum" }
-       -re "type = enum PrivEnum \\{red, green, blue, yellow = 42\\}.*$gdb_prompt $" { pass "ptype obj_with_enum.priv_enum" }
-       -re "type = enum \\{red, green, blue, yellow = 42\\}.*$gdb_prompt $" { pass "ptype obj_with_enum.priv_enum" }
-       -re "$gdb_prompt $"                     { fail "ptype obj_with_enum.priv_enum" }
-       timeout                             { fail "(timeout) ptype obj_with_enum.priv_enum" }
-    }
-
-    # ptype on the object
-    send_gdb "ptype obj_with_enum\n"
-    gdb_expect {
-       -re "type = class ClassWithEnum \\{\r\n\[ \t\]*public:\r\n\[ \t\]*(enum |)ClassWithEnum::PrivEnum priv_enum;\r\n\[ \t\]*int x;\r\n\\}\r\n$gdb_prompt $" { pass "ptype obj_with_enum" }
-       -re "type = class ClassWithEnum \\{\r\n\[ \t\]*public:\r\n\[ \t\]*(enum |)PrivEnum priv_enum;\r\n\[ \t\]*int x;.*\\}\r\n$gdb_prompt $"
-       {
-           # NOTE: carlton/2003-02-28: One could certainly argue that
-           # this output is acceptable: PrivEnum is a member of
-           # ClassWithEnum, so there's no need to explicitly qualify
-           # its name with "ClassWithEnum::".  The truth, though, is
-           # that GDB is simply forgetting that PrivEnum is a member
-           # of ClassWithEnum, so we do that output for a bad reason
-           # instead of a good reason.  Under stabs, we probably
-           # can't get this right; under DWARF-2, we can.
-           kfail "gdb/57" "ptype obj_with_enum"
-       }
-       -re "$gdb_prompt $"                     { fail "ptype obj_with_enum" }
-       timeout                             { fail "(timeout) ptype obj_with_enum" }
-    }
-
-    # We'll do this test twice, because of a parser bug: see
-    # PR gdb/826.
-
-    send_gdb "print (ClassWithEnum::PrivEnum) 42\n"
-    gdb_expect {
-       -re "\\$\[0-9\]* = yellow.*$gdb_prompt $" { pass "print (ClassWithEnum::PrivEnum) 42" }
-       -re "A parse error in expression, near `42'.\r\n$gdb_prompt $"
-       { kfail "gdb/826" "print (ClassWithEnum::PrivEnum) 42" }
-       -re "$gdb_prompt $"                     { fail "print (ClassWithEnum::PrivEnum) 42" }
-       timeout                             { fail "(timeout) print (ClassWithEnum::PrivEnum) 42" }
-    }
-
-    send_gdb "print ('ClassWithEnum::PrivEnum') 42\n"
-    gdb_expect {
-       -re "\\$\[0-9\]* = yellow.*$gdb_prompt $" { pass "print ('ClassWithEnum::PrivEnum') 42" }
-       -re "No symbol \"ClassWithEnum::PrivEnum\" in current context.\r\n$gdb_prompt $"
-       { kfail "gdb/57" "print ('ClassWithEnum::PrivEnum') 42" }
-       -re "$gdb_prompt $"                     { fail "print ('ClassWithEnum::PrivEnum') 42" }
-       timeout                             { fail "(timeout) print ('ClassWithEnum::PrivEnum') 42" }
-    }
-}
-
-#
-# Pointers to class members
-#
-
-proc test_pointers_to_class_members {} {
-    global gdb_prompt
-    global decimal
-    global nl
-
-    gdb_test "print Bar::z" ".* = .int\[ \]*\[( \]*Bar::&\[)\]+\[ \]*Bar::z" "print Bar::z"
-
-    gdb_test "print &Foo::x" ".* = .int\[ \]*\[( \]*Foo::\[*)\]+\[ \]*&Foo::x" "print &Foo::x"
-
-    gdb_test "print (int)&Foo::x" ".* = 0" "print (int)&Foo::x"
-
-    send_gdb "print (int)&Bar::y == 2*sizeof(int)\n"
-    gdb_expect {
-       -re ".* = true$nl$gdb_prompt $" {
-           pass "print (int)&Bar::y == 2*sizeof(int)"
-       }
-       -re "There is no field named y.*$gdb_prompt $" {
-           setup_xfail "*-*-*"
-           fail "print (int)&Bar::y == 2*sizeof(int)"
-       }
-       -re ".*$gdb_prompt $" { fail "print (int)&Bar::y == 2*sizeof(int)" }
-       timeout { fail "print (int)&Bar::y == 2*sizeof(int) (timeout)" ; return }
-    }
-
-    send_gdb "next 2\n"
-    setup_xfail "*-*-*"
-    gdb_expect {
-       -re "$decimal\[ \t\]+inheritance3 \[)(\]+;$nl$gdb_prompt $" {}
-       -re ".*$gdb_prompt $" { fail "next to inheritance3" ; return }
-    }
-    clear_xfail "*-*-*"
-
-    gdb_test "print (int)pmi == sizeof(int)" ".* = false" "print (int)pmi == sizeof(int)"
-}
-
-#
-# Test static members.
-#
-
-proc test_static_members {} {
-    global gdb_prompt
-    global hex
-    global nl
-
-    send_gdb "print Foo::st\n"
-    gdb_expect {
-       -re ".* = 100$nl$gdb_prompt $" {
-           pass "print Foo::st"
-       }
-       -re "There is no field named st.*$gdb_prompt $" {
-           setup_xfail "*-*-*"
-           fail "print Foo::st"
-       }
-       -re ".*$gdb_prompt $" { fail "print Foo::st" }
-       timeout { fail "print Foo::st (timeout)" ; return }
-    }
-
-    send_gdb "set foo.st = 200\n"
-    gdb_expect {
-       -re ".*$gdb_prompt $" {}
-    }
-
-    send_gdb "print bar.st\n"
-    gdb_expect {
-       -re ".* = 200$nl$gdb_prompt $" {
-           pass "print bar.st"
-       }
-       -re "There is no member( or method|) named st.*$gdb_prompt $" {
-           setup_xfail "*-*-*"
-           fail "print bar.st"
-       }
-       -re ".*$gdb_prompt $" { fail "print bar.st" }
-       timeout { fail "print bar.st (timeout)" ; return }
-    }
-
-    send_gdb "print &foo.st\n"
-    gdb_expect {
-       -re ".* = .int \[*)\]+ $hex$nl$gdb_prompt $" {
-           pass "print &foo.st"
-       }
-       -re "There is no member( or method|) named st.*$gdb_prompt $" {
-           setup_xfail "*-*-*"
-           fail "print &foo.st"
-       }
-       -re ".*$gdb_prompt $" { fail "print &foo.st" }
-       timeout { fail "print &foo.st (timeout)" ; return }
-    }
-
-    set got_bar_st 0
-    send_gdb "print &Bar::st\n"
-    gdb_expect {
-       -re ".* = .int \[*)\]+ $hex$nl$gdb_prompt $" {
-           pass "print &Bar::st"
-           set got_bar_st 1
-       }
-       -re "There is no field named st.*$gdb_prompt $" {
-           setup_xfail "*-*-*"
-           fail "print &Bar::st"
-       }
-       -re ".*$gdb_prompt $" { fail "print &Bar::st" }
-       timeout { fail "print &Bar::st (timeout)" ; return }
-    }
-
-    if $got_bar_st then {
-       gdb_test "print *\$" ".* = 200" "print *\$"
-    }
-
-    gdb_test "set print static-members off" ""
-    gdb_test "print csi" \
-       "{x = 10, y = 20}" \
-       "print csi without static members"
-    gdb_test "print cnsi" \
-       "{x = 30, y = 40}" \
-       "print cnsi without static members"
-
-    gdb_test "set print static-members on" ""
-    gdb_test "print csi" \
-       "{x = 10, y = 20, static null = {x = 0, y = 0, static null = <same as static member of an already seen type>}}" \
-       "print csi with static members"
-    gdb_test "print cnsi" \
-       "{x = 30, y = 40, static null = {x = 0, y = 0, static null = <same as static member of an already seen type>, static yy = {z = 5, static xx = {x = 1, y = 2, static null = <same as static member of an already seen type>, static yy = <same as static member of an already seen type>}}}, static yy = <same as static member of an already seen type>}" \
-       "print cnsi with static members"
-}
-
-proc do_tests {} {
-    global prms_id
-    global bug_id
-    global subdir
-    global objdir
-    global srcdir
-    global binfile
-    global gdb_prompt
-
-    set prms_id 0
-    set bug_id 0
-
-    # Start with a fresh gdb.
-
-    gdb_exit
-    gdb_start
-    gdb_reinitialize_dir $srcdir/$subdir
-    gdb_load $binfile
-
-    send_gdb "set language c++\n"
-    gdb_expect -re "$gdb_prompt $"
-    send_gdb "set width 0\n"
-    gdb_expect -re "$gdb_prompt $"
-
-    runto_main
-    test_ptype_class_objects
-
-    if [ runto 'inheritance2' ] then {
-       test_non_inherited_member_access
-       test_wrong_class_members
-       test_nonexistent_members
-       test_method_param_class
-    }
-
-    gdb_breakpoint enums2
-    if [ gdb_continue "enums2(\\(\\)|)" ]==0 then {
-       gdb_test "finish" "" ""
-       test_enums
-    }
-
-    if [istarget "mips-idt-*"] then {
-       # Restart because IDT/SIM runs out of file descriptors.
-       gdb_exit
-       gdb_start
-       gdb_reinitialize_dir $srcdir/$subdir
-       gdb_load $binfile
-    }
-
-    if [ runto_main ] then {
-       test_pointers_to_class_members
-       test_static_members
-    }
-
-    if [istarget "mips-idt-*"] then {
-       # Restart because IDT/SIM runs out of file descriptors.
-       gdb_exit
-       gdb_start
-       gdb_reinitialize_dir $srcdir/$subdir
-       gdb_load $binfile
-    }
-
-    if [ runto marker_reg1 ] then {
-
-       gdb_test "finish" "Run till exit from.*" "finish from marker_reg1"
-
-       send_gdb "print v.method ()\n"
-       gdb_expect {
-           -re "= 82.*$gdb_prompt $" {
-               pass "calling method for small class"
-           }
-           -re "Address requested for identifier .v. which is in register.*$gdb_prompt $" {
-               setup_xfail "*-*-*" 2972
-               fail "calling method for small class"
-           }
-           -re ".*$gdb_prompt $" { fail "calling method for small class" }
-           timeout { fail "calling method for small class (timeout)" }
-           eof { fail "calling method for small class (eof)" }
-       }
-    }
-
-}
-
-do_tests
-
-send_gdb "maint demangle inheritance1__Fv\n"
-gdb_expect {
-   -re "inheritance1\\(void\\).*$gdb_prompt $" { pass "demangle" }
-   -re ".*$gdb_prompt $"   { fail "demangle" }
-   timeout           { fail "(timeout) demangle" }
-}
diff --git a/gdb/testsuite/gdb.c++/cplusfuncs.cc b/gdb/testsuite/gdb.c++/cplusfuncs.cc
deleted file mode 100644 (file)
index 7f033d6..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-#include <stddef.h>
-
-class foo {
-public:
-  foo  (int);
-  foo  (int, const char *);
-  foo  (foo&);
-  ~foo ();
-
-  void  operator *      (foo&);
-  void  operator %      (foo&);
-  void  operator -      (foo&);
-  void  operator >>     (foo&);
-  void  operator !=     (foo&);
-  void  operator >      (foo&);
-  void  operator >=     (foo&);
-  void  operator |      (foo&);
-  void  operator &&     (foo&);
-  void  operator !      (void);
-  void  operator ++     (int);
-  void  operator =      (foo&);
-  void  operator +=     (foo&);
-  void  operator *=     (foo&);
-  void  operator %=     (foo&);
-  void  operator >>=    (foo&);
-  void  operator |=     (foo&);
-  void  operator ,      (foo&);
-  void  operator /      (foo&);
-  void  operator +      (foo&);
-  void  operator <<     (foo&);
-  void  operator ==     (foo&);
-  void  operator <      (foo&);
-  void  operator <=     (foo&);
-  void  operator &      (foo&);
-  void  operator ^      (foo&);
-  void  operator ||     (foo&);
-  void  operator ~      (void);
-  void  operator --     (int);
-  foo*  operator ->     (void);
-  void  operator -=     (foo&);
-  void  operator /=     (foo&);
-  void  operator <<=    (foo&);
-  void  operator &=     (foo&);
-  void  operator ^=     (foo&);
-  void  operator ->*    (foo&);
-  void  operator []     (foo&);
-  void  operator ()     (foo&);
-  void* operator new    (size_t) throw ();
-  void  operator delete (void *);
-  /**/  operator int    ();
-  /**/  operator char*  ();
-
-  int foofunc (int); // forced to have int return type, which is required
-  int foofunc (int, signed char *); // forced to have int return type, which is required
-  int ifoo;
-  const char *ccpfoo;
-};
-
-#ifdef usestubs
-extern "C" { 
-   void set_debug_traps();
-   void breakpoint();
-};
-#endif
-
-int main () {
-#ifdef usestubs
-   set_debug_traps();
-   breakpoint();
-#endif
-   int z=3;
-}
-
-foo::foo  (int i)                  { ifoo = i;}
-foo::foo  (int i, const char *ccp) { ifoo = i; ccpfoo = ccp; }
-foo::foo  (foo& afoo)              { afoo.ifoo = 0; }
-foo::~foo ()                       {}
-
-void  foo::operator *      (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator %      (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator -      (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator >>     (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator !=     (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator >      (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator >=     (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator |      (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator &&     (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator !      (void) {}
-void  foo::operator ++     (int ival) { ival = 0; }
-void  foo::operator =      (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator +=     (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator *=     (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator %=     (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator >>=    (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator |=     (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator ,      (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator /      (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator +      (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator <<     (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator ==     (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator <      (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator <=     (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator &      (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator ^      (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator ||     (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator ~      (void) {}
-void  foo::operator --     (int ival) { ival = 0; }
-foo*  foo::operator ->     (void) {return this;}
-void  foo::operator -=     (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator /=     (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator <<=    (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator &=     (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator ^=     (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator ->*    (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator []     (foo& afoo) { afoo.ifoo = 0; }
-void  foo::operator ()     (foo& afoo) { afoo.ifoo = 0; }
-void* foo::operator new    (size_t ival) throw () { ival = 0; return 0; }
-void  foo::operator delete (void *ptr) { ptr = 0; }
-/**/  foo::operator int    () { return 0; }
-/**/  foo::operator char*  () { return 0; }
-
-/* Some functions to test overloading by varying one argument type. */
-
-void overload1arg (void)               {          }
-void overload1arg (char arg)           { arg = 0; }
-void overload1arg (signed char arg)    { arg = 0; }
-void overload1arg (unsigned char arg)  { arg = 0; }
-void overload1arg (short arg)          { arg = 0; }
-void overload1arg (unsigned short arg) { arg = 0; }
-void overload1arg (int arg)            { arg = 0; }
-void overload1arg (unsigned int arg)   { arg = 0; }
-void overload1arg (long arg)           { arg = 0; }
-void overload1arg (unsigned long arg)  { arg = 0; }
-void overload1arg (float arg)          { arg = 0; }
-void overload1arg (double arg)         { arg = 0; }
-
-/* Some functions to test overloading by varying argument count. */
-
-void overloadargs (int a1)                             { a1 = 0; }
-void overloadargs (int a1, int a2)                     { a1 = a2 = 0; }
-void overloadargs (int a1, int a2, int a3)             { a1 = a2 = a3 = 0; }
-void overloadargs (int a1, int a2, int a3, int a4)
-                       { a1 = a2 = a3 = a4 = 0; }
-void overloadargs (int a1, int a2, int a3, int a4, int a5)
-                       { a1 = a2 = a3 = a4 = a5 = 0; }
-void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6)
-                       { a1 = a2 = a3 = a4 = a5 = a6 = 0; }
-void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7)
-                       { a1 = a2 = a3 = a4 = a5 = a6 = a7 = 0; }
-void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
-                  int a8)
-                       { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = 0; }
-void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
-                  int a8, int a9)
-                       { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = 0; }
-void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
-                  int a8, int a9, int a10)
-                       { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 =
-                         a10 = 0; }
-void overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
-                  int a8, int a9, int a10, int a11)
-                       { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 =
-                         a10 = a11 == 0; }
-
-/* Some hairy function definitions.
-   Use typedefs to help maintain sanity. */
-
-typedef int   (*PFPc_i)(char *);
-typedef short (*PFPl_s)(long *);
-typedef short (*PFPc_s)(char *);
-typedef int   (*PFl_i)(long);
-typedef PFl_i (*PFPc_PFl_i)(char *);
-typedef PFl_i (*PFPi_PFl_i)(int *);
-typedef PFl_i (*PFPFPc_i_PFl_i)(PFPc_i);
-typedef PFl_i (*PFs_PFl_i)(short);
-typedef int   (*PFPFPl_s_i)(PFPl_s);
-typedef int   (*PFPFPc_s_i)(PFPc_s);
-
-PFs_PFl_i hairyfunc1 (int arg)                 { arg = 0; return 0; }
-int       hairyfunc2 (PFPc_i arg)              { arg = 0; return 0; }
-int      hairyfunc3 (PFPFPl_s_i arg)           { arg = 0; return 0; }
-int      hairyfunc4 (PFPFPc_s_i arg)           { arg = 0; return 0; }
-int      hairyfunc5 (PFPc_PFl_i arg)           { arg = 0; return 0; }
-int      hairyfunc6 (PFPi_PFl_i arg)           { arg = 0; return 0; }
-int      hairyfunc7 (PFPFPc_i_PFl_i arg)       { arg = 0; return 0; }
-
-/* gdb has two demanglers (one for g++ 2.95, one for g++ 3).
-   These marker functions help me figure out which demangler is in use. */
-
-char * dm_type_char_star (char * p)            { return p; }
-int    dm_type_foo_ref (foo & foo)             { return foo.ifoo; }
-int *  dm_type_int_star (int * p)              { return p; }
-long * dm_type_long_star (long * p)            { return p; }
-int    dm_type_unsigned_int (unsigned int i)   { return i; }
-int    dm_type_void (void)                     { return 0; }
-void * dm_type_void_star (void * p)            { return p; }
diff --git a/gdb/testsuite/gdb.c++/cplusfuncs.exp b/gdb/testsuite/gdb.c++/cplusfuncs.exp
deleted file mode 100644 (file)
index 0a5e1b3..0000000
+++ /dev/null
@@ -1,564 +0,0 @@
-# Copyright 1992, 1997, 1999, 2001, 2002, 2003 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)
-# Adapted for g++ 3.0 ABI by Michael Chastain. (chastain@redhat.com)
-
-if $tracelevel then {
-       strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "cplusfuncs"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if { [get_compiler_info $binfile "c++"] } {
-    return -1
-}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-#
-# g++ changed its ABI between 2.95 and 3.0.  gdb has two demanglers
-# for the two different styles.  The two demanglers have some subtle
-# discrepancies in their output.
-#
-#   old demangler         new demangler
-#   --- ---------         --- ---------
-#   "operator, "          "operator,"
-#   "char *"              "char*"
-#   "int *"               "int*"
-#   "long *"              "long*"
-#   "void *"              "void*"
-#   "foo &"               "foo&"
-#   "unsigned int"        "unsigned"
-#   "void"                ""
-#
-# I probe for the forms in use.
-# The defaults are for the v3 demangler (as of 2001-02-13).
-#
-
-set dm_operator_comma          ","
-set dm_type_char_star          "char*"
-set dm_type_char_star_quoted    "char\\*"
-set dm_type_foo_ref            "foo&"
-set dm_type_int_star           "int*"
-set dm_type_long_star          "long*"
-set dm_type_unsigned_int       "unsigned"
-set dm_type_void               ""
-set dm_type_void_star          "void*"
-
-proc probe_demangler { } {
-    global gdb_prompt
-    global dm_operator_comma
-    global dm_type_char_star
-    global dm_type_char_star_quoted
-    global dm_type_foo_ref
-    global dm_type_int_star
-    global dm_type_long_star
-    global dm_type_unsigned_int
-    global dm_type_void
-    global dm_type_void_star
-
-    send_gdb "print &'foo::operator,(foo&)'\n"
-    gdb_expect {
-       -re ".*foo::operator, \\(.*foo.*&.*\\).*\r\n$gdb_prompt $" {
-           # v2 demangler
-           set dm_operator_comma ", "
-           pass "detect dm_operator_comma"
-       }
-       -re ".*foo::operator,\\(.*foo.*&.*\\).*\r\n$gdb_prompt $" {
-           # v3 demangler
-           pass "detect dm_operator_comma"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "detect dm_operator_comma"
-       }
-       timeout {
-           fail "detect dm_operator_comma"
-       }
-    }
-
-    send_gdb "print &'dm_type_char_star'\n"
-    gdb_expect {
-       -re ".*dm_type_char_star\\(char \\*\\).*\r\n$gdb_prompt $" {
-           # v2 demangler
-           set dm_type_char_star "char *"
-           set dm_type_char_star_quoted "char \\*"
-           pass "detect dm_type_char_star"
-       }
-       -re ".*dm_type_char_star\\(char\\*\\).*\r\n$gdb_prompt $" {
-           # v3 demangler
-           pass "detect dm_type_char_star"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "detect dm_type_char_star"
-       }
-       timeout {
-           fail "detect dm_type_char_star (timeout)"
-       }
-    }
-
-    send_gdb "print &'dm_type_foo_ref'\n"
-    gdb_expect {
-       -re ".*dm_type_foo_ref\\(foo &\\).*\r\n$gdb_prompt $" {
-           # v2 demangler
-           set dm_type_foo_ref "foo &"
-           pass "detect dm_type_foo_ref"
-       }
-       -re ".*dm_type_foo_ref\\(foo&\\).*\r\n$gdb_prompt $" {
-           # v3 demangler
-           pass "detect dm_type_foo_ref"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "detect dm_type_foo_ref"
-       }
-       timeout {
-           fail "detect dm_type_foo_ref (timeout)"
-       }
-    }
-
-    send_gdb "print &'dm_type_int_star'\n"
-    gdb_expect {
-       -re ".*dm_type_int_star\\(int \\*\\).*\r\n$gdb_prompt $" {
-           # v2 demangler
-           set dm_type_int_star "int *"
-           pass "detect dm_type_int_star"
-       }
-       -re ".*dm_type_int_star\\(int\\*\\).*\r\n$gdb_prompt $" {
-           # v3 demangler
-           pass "detect dm_type_int_star"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "detect dm_type_int_star"
-       }
-       timeout {
-           fail "detect dm_type_int_star (timeout)"
-       }
-    }
-
-    send_gdb "print &'dm_type_long_star'\n"
-    gdb_expect {
-       -re ".*dm_type_long_star\\(long \\*\\).*\r\n$gdb_prompt $" {
-           # v2 demangler
-           set dm_type_long_star "long *"
-           pass "detect dm_type_long_star"
-       }
-       -re ".*dm_type_long_star\\(long\\*\\).*\r\n$gdb_prompt $" {
-           # v3 demangler
-           pass "detect dm_type_long_star"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "detect dm_type_long_star"
-       }
-       timeout {
-           fail "detect dm_type_long_star (timeout)"
-       }
-    }
-
-    send_gdb "print &'dm_type_unsigned_int'\n"
-    gdb_expect {
-       -re ".*dm_type_unsigned_int\\(unsigned int\\).*\r\n$gdb_prompt $" {
-           # v2 demangler
-           set dm_type_unsigned_int "unsigned int"
-           pass "detect dm_type_unsigned_int"
-       }
-       -re ".*dm_type_unsigned_int\\(unsigned\\).*\r\n$gdb_prompt $" {
-           # v3 demangler
-           pass "detect dm_type_unsigned_int"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "detect dm_type_unsigned_int"
-       }
-       timeout {
-           fail "detect dm_unsigned int (timeout)"
-       }
-    }
-
-    send_gdb "print &'dm_type_void'\n"
-    gdb_expect {
-       -re ".*dm_type_void\\(void\\).*\r\n$gdb_prompt $" {
-           # v2 demangler
-           set dm_type_void "void"
-           pass "detect dm_type_void"
-       }
-       -re ".*dm_type_void\\(\\).*\r\n$gdb_prompt $" {
-           # v3 demangler
-           pass "detect dm_type_void"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "detect dm_type_void"
-       }
-       timeout {
-           fail "detect dm_type_void (timeout)"
-       }
-    }
-
-    send_gdb "print &'dm_type_void_star'\n"
-    gdb_expect {
-       -re ".*dm_type_void_star\\(void \\*\\).*\r\n$gdb_prompt $" {
-           # v2 demangler
-           set dm_type_void_star "void *"
-           pass "detect dm_type_void_star"
-       }
-       -re ".*dm_type_void_star\\(void\\*\\).*\r\n$gdb_prompt $" {
-           # v3 demangler
-           pass "detect dm_type_void_star"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "detect dm_type_void_star"
-       }
-       timeout {
-           fail "detect dm_type_void_star (timeout)"
-       }
-    }
-}
-
-#
-#  Lookup a specific C++ function and print the demangled type.
-#  This form accepts the demangled type as a regexp.
-#
-
-proc info_func_regexp { name demangled } {
-    global gdb_prompt
-
-    send_gdb "info function $name\n"
-    gdb_expect {
-       -re ".*File .*:\r\n(class |)$demangled\r\n.*$gdb_prompt $" {
-           pass "info function for \"$name\""
-       }
-       -re ".*$gdb_prompt $" {
-           fail "info function for \"$name\""
-       }
-       timeout {
-           fail "info function for \"$name\" (timeout)"
-       }
-    }
-}
-
-#
-#  Lookup a specific C++ function and print the demangled type.
-#  This form accepts the demangled type as a literal string.
-#
-
-proc info_func { name demangled } {
-    info_func_regexp "$name" [string_to_regexp "$demangled"]
-}
-
-#
-# Print the address of a function.
-# This checks that I can lookup a fully qualified C++ function.
-# This also checks the argument types on the return string.
-
-# Note: carlton/2003-01-16: If you modify this, make a corresponding
-# modification to print_addr_2_kfail.
-
-proc print_addr_2 { name good } {
-    global gdb_prompt
-    global hex
-
-    set good_pattern [string_to_regexp $good]
-
-    send_gdb "print &'$name'\n"
-    gdb_expect {
-       -re ".* = .* $hex <$good_pattern>\r\n$gdb_prompt $" {
-           pass "print &'$name'"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "print &'$name'"
-       }
-       timeout {
-           fail "print &'$name' (timeout)"
-       }
-    }
-}
-
-# NOTE: carlton/2003-01-16: hairyfunc5-6 fail on GCC 3.x (for at least
-# x=1 and x=2.1).  So I'm modifying print_addr_2 to accept a failure
-# condition.  FIXME: It would be nice if the failure condition were
-# conditional on the compiler version, but I'm not sufficiently
-# motivated.  I did hardwire in the versions of char * and int *,
-# which will give some compiler-specificity to the failure.
-
-proc print_addr_2_kfail { name good bad bugid } {
-    global gdb_prompt
-    global hex
-
-    set good_pattern [string_to_regexp $good]
-    set bad_pattern [string_to_regexp $bad]
-
-    send_gdb "print &'$name'\n"
-    gdb_expect {
-       -re ".* = .* $hex <$good_pattern>\r\n$gdb_prompt $" {
-           pass "print &'$name'"
-       }
-       -re ".* = .* $hex <$bad_pattern>\r\n$gdb_prompt $" {
-           kfail $bugid "print &'$name'"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "print &'$name'"
-       }
-       timeout {
-           fail "print &'$name' (timeout)"
-       }
-    }
-}
-
-#
-#  Simple interfaces to print_addr_2.
-#
-
-proc print_addr { name } {
-    print_addr_2 "$name" "$name"
-}
-
-#
-# Test name demangling for operators.
-#
-# The '(' at the end of each regex input pattern is so that we match only
-# the one we are looking for.  I.E. "operator&" would match both
-# "operator&(foo &)" and "operator&&(foo &)".
-#
-# gdb-gnats bug gdb/18:
-#  "gdb can't parse "info func operator*" or "info func operator\*".
-#  The star in "operator*" is interpreted as a regexp, but the "\*"
-#  in  "operator\*" is not a legal operator.
-#
-
-proc test_lookup_operator_functions {} {
-    global dm_operator_comma
-    global dm_type_char_star
-    global dm_type_char_star_quoted
-    global dm_type_foo_ref
-    global dm_type_void
-    global dm_type_void_star
-
-    # operator* requires quoting so that GDB does not treat it as a regexp.
-    info_func "operator\\*("   "void foo::operator*($dm_type_foo_ref);"
-    info_func "operator%("     "void foo::operator%($dm_type_foo_ref);"
-    info_func "operator-("     "void foo::operator-($dm_type_foo_ref);"
-    info_func "operator>>("    "void foo::operator>>($dm_type_foo_ref);"
-    info_func "operator!=("    "void foo::operator!=($dm_type_foo_ref);"
-    info_func "operator>("     "void foo::operator>($dm_type_foo_ref);"
-    info_func "operator>=("    "void foo::operator>=($dm_type_foo_ref);"
-    info_func "operator|("     "void foo::operator|($dm_type_foo_ref);"
-    info_func "operator&&("    "void foo::operator&&($dm_type_foo_ref);"
-    info_func "operator!("     "void foo::operator!($dm_type_void);"
-    info_func "operator++("    "void foo::operator++(int);"
-    info_func "operator=("     "void foo::operator=($dm_type_foo_ref);"
-    info_func "operator+=("    "void foo::operator+=($dm_type_foo_ref);"
-    # operator*= requires quoting so that GDB does not treat it as a regexp.
-    info_func "operator\\*=("  "void foo::operator*=($dm_type_foo_ref);"
-    info_func "operator%=("    "void foo::operator%=($dm_type_foo_ref);"
-    info_func "operator>>=("   "void foo::operator>>=($dm_type_foo_ref);"
-    info_func "operator|=("    "void foo::operator|=($dm_type_foo_ref);"
-    info_func "operator$dm_operator_comma\("   \
-                               "void foo::operator$dm_operator_comma\($dm_type_foo_ref);"
-    info_func "operator/("     "void foo::operator/($dm_type_foo_ref);"
-    info_func "operator+("     "void foo::operator+($dm_type_foo_ref);"
-    info_func "operator<<("    "void foo::operator<<($dm_type_foo_ref);"
-    info_func "operator==("    "void foo::operator==($dm_type_foo_ref);"
-    info_func "operator<("     "void foo::operator<($dm_type_foo_ref);"
-    info_func "operator<=("    "void foo::operator<=($dm_type_foo_ref);"
-    info_func "operator&("     "void foo::operator&($dm_type_foo_ref);"
-    info_func "operator^("     "void foo::operator^($dm_type_foo_ref);"
-    info_func "operator||("    "void foo::operator||($dm_type_foo_ref);"
-    info_func "operator~("     "void foo::operator~($dm_type_void);"
-    info_func "operator--("    "void foo::operator--(int);"
-    info_func "operator->("    "foo *foo::operator->($dm_type_void);"
-    info_func "operator-=("    "void foo::operator-=($dm_type_foo_ref);"
-    info_func "operator/=("    "void foo::operator/=($dm_type_foo_ref);"
-    info_func "operator<<=("   "void foo::operator<<=($dm_type_foo_ref);"
-    info_func "operator&=("    "void foo::operator&=($dm_type_foo_ref);"
-    info_func "operator^=("    "void foo::operator^=($dm_type_foo_ref);"
-    # operator->* requires quoting so that GDB does not treat it as a regexp.
-    info_func "operator->\\*(" "void foo::operator->*($dm_type_foo_ref);"
-
-    # operator[] needs double backslashes, so that a single backslash
-    # will be sent to GDB, preventing the square brackets from being
-    # evaluated as a regular expression. 
-    info_func "operator\\\[\\\](" "void foo::operator\[\]($dm_type_foo_ref);"
-
-    # These are gnarly because they might end with 'static'.
-    set dm_type_void_star_regexp [string_to_regexp $dm_type_void_star]
-    info_func_regexp "operator new("     "void \\*foo::operator new\\(.*\\)(| static);"
-    info_func_regexp "operator delete("  "void foo::operator delete\\($dm_type_void_star_regexp\\)(| static);"
-
-    info_func "operator int("  "int foo::operator int($dm_type_void);"
-    info_func "operator()("    "void foo::operator()($dm_type_foo_ref);"
-    info_func "operator $dm_type_char_star_quoted\(" \
-                               "char *foo::operator $dm_type_char_star\($dm_type_void);"
-
-}
-
-
-proc test_paddr_operator_functions {} {
-    global hex
-    global hp_aCC_compiler
-    global dm_operator_comma
-    global dm_type_char_star
-    global dm_type_foo_ref
-    global dm_type_long_star
-    global dm_type_unsigned_int
-    global dm_type_void
-    global dm_type_void_star
-
-    print_addr "foo::operator*($dm_type_foo_ref)"
-    print_addr "foo::operator%($dm_type_foo_ref)"
-    print_addr "foo::operator-($dm_type_foo_ref)"
-    print_addr "foo::operator>>($dm_type_foo_ref)"
-    print_addr "foo::operator!=($dm_type_foo_ref)"
-    print_addr "foo::operator>($dm_type_foo_ref)"
-    print_addr "foo::operator>=($dm_type_foo_ref)"
-    print_addr "foo::operator|($dm_type_foo_ref)"
-    print_addr "foo::operator&&($dm_type_foo_ref)"
-    print_addr "foo::operator!($dm_type_void)"
-    print_addr "foo::operator++(int)"
-    print_addr "foo::operator=($dm_type_foo_ref)"
-    print_addr "foo::operator+=($dm_type_foo_ref)"
-    print_addr "foo::operator*=($dm_type_foo_ref)"
-    print_addr "foo::operator%=($dm_type_foo_ref)"
-    print_addr "foo::operator>>=($dm_type_foo_ref)"
-    print_addr "foo::operator|=($dm_type_foo_ref)"
-    print_addr "foo::operator$dm_operator_comma\($dm_type_foo_ref)"
-    print_addr "foo::operator/($dm_type_foo_ref)"
-    print_addr "foo::operator+($dm_type_foo_ref)"
-    print_addr "foo::operator<<($dm_type_foo_ref)"
-    print_addr "foo::operator==($dm_type_foo_ref)"
-    print_addr "foo::operator<($dm_type_foo_ref)"
-    print_addr "foo::operator<=($dm_type_foo_ref)"
-    print_addr "foo::operator&($dm_type_foo_ref)"
-    print_addr "foo::operator^($dm_type_foo_ref)"
-    print_addr "foo::operator||($dm_type_foo_ref)"
-    print_addr "foo::operator~($dm_type_void)"
-    print_addr "foo::operator--(int)"
-    print_addr "foo::operator->($dm_type_void)"
-    print_addr "foo::operator-=($dm_type_foo_ref)"
-    print_addr "foo::operator/=($dm_type_foo_ref)"
-    print_addr "foo::operator<<=($dm_type_foo_ref)"
-    print_addr "foo::operator&=($dm_type_foo_ref)"
-    print_addr "foo::operator^=($dm_type_foo_ref)"
-    print_addr "foo::operator->*($dm_type_foo_ref)"
-    print_addr "foo::operator\[\]($dm_type_foo_ref)"
-    print_addr "foo::operator()($dm_type_foo_ref)"
-
-    gdb_test "print &'foo::operator new'" \
-       " = .* $hex <foo::operator new\\(.*\\)(| static)>"
-    if { !$hp_aCC_compiler } {
-       print_addr "foo::operator delete($dm_type_void_star)"
-    } else {
-       gdb_test "print &'foo::operator delete($dm_type_void_star) static'" \
-           " = .*(0x\[0-9a-f\]+|) <foo::operator delete.*>"
-    }
-
-    print_addr "foo::operator int($dm_type_void)"
-    print_addr "foo::operator $dm_type_char_star\($dm_type_void)"
-}
-
-#
-# Test overloaded functions (1 arg).
-#
-
-proc test_paddr_overloaded_functions {} {
-    global dm_type_unsigned_int
-    global dm_type_void
-
-    print_addr "overload1arg($dm_type_void)"
-    print_addr "overload1arg(char)"
-    print_addr "overload1arg(signed char)"
-    print_addr "overload1arg(unsigned char)"
-    print_addr "overload1arg(short)"
-    print_addr "overload1arg(unsigned short)"
-    print_addr "overload1arg(int)"
-    print_addr "overload1arg($dm_type_unsigned_int)"
-    print_addr "overload1arg(long)"
-    print_addr "overload1arg(unsigned long)"
-    print_addr "overload1arg(float)"
-    print_addr "overload1arg(double)"
-
-    print_addr "overloadargs(int)"
-    print_addr "overloadargs(int, int)"
-    print_addr "overloadargs(int, int, int)"
-    print_addr "overloadargs(int, int, int, int)"
-    print_addr "overloadargs(int, int, int, int, int)"
-    print_addr "overloadargs(int, int, int, int, int, int)"
-    print_addr "overloadargs(int, int, int, int, int, int, int)"
-    print_addr "overloadargs(int, int, int, int, int, int, int, int)"
-    print_addr "overloadargs(int, int, int, int, int, int, int, int, int)"
-    print_addr "overloadargs(int, int, int, int, int, int, int, int, int, int)"
-    print_addr "overloadargs(int, int, int, int, int, int, int, int, int, int, int)"
-}
-
-proc test_paddr_hairy_functions {} {
-    global gdb_prompt
-    global hex
-    global dm_type_char_star
-    global dm_type_int_star
-    global dm_type_long_star
-
-    print_addr_2 "hairyfunc1" "hairyfunc1(int)"
-    print_addr_2 "hairyfunc2" "hairyfunc2(int (*)($dm_type_char_star))"
-    print_addr_2 "hairyfunc3" "hairyfunc3(int (*)(short (*)($dm_type_long_star)))"
-    print_addr_2 "hairyfunc4" "hairyfunc4(int (*)(short (*)($dm_type_char_star)))"
-
-    # gdb-gnats bug gdb/19:
-    # "gdb v3 demangler fails on hairyfunc5 hairyfunc6 hairyfunc7"
-    print_addr_2_kfail "hairyfunc5" "hairyfunc5(int (*(*)($dm_type_char_star))(long))" "hairyfunc5(int (*)(long) (*)(char*))" "gdb/19"
-    print_addr_2_kfail "hairyfunc6" "hairyfunc6(int (*(*)($dm_type_int_star))(long))" "hairyfunc6(int (*)(long) (*)(int*))" "gdb/19"
-    print_addr_2_kfail "hairyfunc7" "hairyfunc7(int (*(*)(int (*)($dm_type_char_star)))(long))" "hairyfunc7(int (*)(long) (*)(int (*)(char*)))" "gdb/19"
-}
-
-proc do_tests {} {
-    global prms_id
-    global bug_id
-    global subdir
-    global objdir
-    global srcdir
-    global binfile
-    global gdb_prompt
-
-    set prms_id 0
-    set bug_id 0
-
-    # Start with a fresh gdb.
-
-    gdb_exit
-    gdb_start
-    gdb_reinitialize_dir $srcdir/$subdir
-    gdb_load $binfile
-
-    send_gdb "set language c++\n"
-    gdb_expect -re "$gdb_prompt $"
-    send_gdb "set width 0\n"
-    gdb_expect -re "$gdb_prompt $"
-
-    runto_main
-
-    probe_demangler
-    test_paddr_overloaded_functions
-    test_paddr_operator_functions
-    test_paddr_hairy_functions
-    test_lookup_operator_functions
-}
-
-do_tests
diff --git a/gdb/testsuite/gdb.c++/ctti.exp b/gdb/testsuite/gdb.c++/ctti.exp
deleted file mode 100644 (file)
index 96e9fcf..0000000
+++ /dev/null
@@ -1,269 +0,0 @@
-# Copyright 1998, 1999, 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-
-# This file is part of the gdb testsuite
-# file written by Elena Zannoni (ezannoni@cygnus.com)
-#
-# source files cttiadd.cc, cttiadd1.cc, cttiadd2.cc, cttiadd3.cc
-#
-
-
-if $tracelevel then {
-        strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-# Check to see if we have an executable to test.  If not, then either we
-# haven't tried to compile one, or the compilation failed for some reason.
-# In either case, just notify the user and skip the tests in this file.
-
-set testfile "cttiadd"
-set srcfile  ${testfile}.cc
-set srcfile1 ${testfile}1.cc
-set srcfile2 ${testfile}2.cc
-set srcfile3 ${testfile}3.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if [get_compiler_info ${binfile} "c++"] {
-    return -1;
-}
-
-if { $gcc_compiled } then { continue }
-
-#if  { [gdb_compile "${srcdir}/${subdir}/${srcfile} ${srcdir}/${subdir}/${srcfile1} ${srcdir}/${subdir}/${srcfile2} ${srcdir}/${subdir}/${srcfile3}" "${binfile}" executable {debug c++}] != "" } {
-#     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-#}
-
-set cmdline "$CXX_FOR_TARGET ${srcdir}/${subdir}/${srcfile} ${srcdir}/${subdir}/${srcfile1} ${srcdir}/${subdir}/${srcfile2} ${srcdir}/${subdir}/${srcfile3} -g -o ${binfile}"
-
-remote_exec build $cmdline
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-
-send_gdb "n\n"
-gdb_expect {
-    -re "$decimal.*i = 2;.*$gdb_prompt $" {
-        pass "next "
-      }
-    -re ".*$gdb_prompt $" { fail "next " }
-    timeout           { fail "next " }
-  }
-
-
-send_gdb "n\n"
-gdb_expect {
-    -re "$decimal.*f = 4.5;.*$gdb_prompt $" {
-        pass "next "
-      }
-    -re ".*$gdb_prompt $" { fail "next " }
-    timeout           { fail "next " }
-  }
-
-send_gdb "n\n"
-gdb_expect {
-    -re "$decimal.*c = add\\(c, c\\);.*$gdb_prompt $" {
-        pass "next "
-      }
-    -re ".*$gdb_prompt $" { fail "next " }
-    timeout           { fail "next " }
-  }
-
-send_gdb "n\n"
-gdb_expect {
-    -re "$decimal.*i = add\\(i, i\\);.*$gdb_prompt $" {
-        pass "next "
-      }
-    -re ".*$gdb_prompt $" { fail "next " }
-    timeout           { fail "next " }
-  }
-
-send_gdb "n\n"
-gdb_expect {
-    -re "$decimal.*f = add\\(f, f\\);.*$gdb_prompt $" {
-        pass "next "
-      }
-    -re ".*$gdb_prompt $" { fail "next " }
-    timeout           { fail "next " }
-  }
-
-send_gdb "n\n"
-gdb_expect {
-    -re "$decimal.*add1\\(\\);.*$gdb_prompt $" {
-        pass "next "
-      }
-    -re ".*$gdb_prompt $" { fail "next " }
-    timeout           { fail "next " }
-  }
-
-send_gdb "print c\n"
-gdb_expect {
-    -re ".$decimal = -62.*\r\n$gdb_prompt $" {
-        pass "print value of c"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of c" }
-    timeout           { fail "(timeout) print value of c" }
-  }
-
-
-send_gdb "print f\n"
-gdb_expect {
-    -re ".$decimal = 9\r\n$gdb_prompt $" {
-        pass "print value of f"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of f" }
-    timeout           { fail "(timeout) print value of f" }
-  }
-
-
-send_gdb "print i\n"
-gdb_expect {
-    -re ".$decimal = 4\r\n$gdb_prompt $" {
-        pass "print value of i"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of i" }
-    timeout           { fail "(timeout) print value of i" }
-  }
-
-
-
-send_gdb "print add<int>(2,2)\n"
-gdb_expect {
-    -re ".$decimal = 4\r\n$gdb_prompt $" {
-        pass "print value of add<int>(2,2)"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of add<int>(2,2)" }
-    timeout           { fail "(timeout) print value of add<int>(2,2)" }
-  }
-
-send_gdb "print add<float>(2.3,2.3)\n"
-gdb_expect {
-    -re ".$decimal = 4\\.5\[0-9\]+\r\n$gdb_prompt $" {
-        pass "print value of add<float>(2.3,2.3)"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of add<float>(2.3,2.3)" }
-    timeout           { fail "(timeout) print value of add<float>(2.3,2.3)" }
-  }
-
-send_gdb "print add<char>('A','A')\n"
-gdb_expect {
-    -re ".$decimal = -126.*202.\r\n$gdb_prompt $" {
-        pass "print value of add<char>('A','A')"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of add<char>('A','A')" }
-    timeout           { fail "(timeout) print value of add<char>('A','A')" }
-  }
-
-
-send_gdb "print add2<int>(2,2)\n"
-gdb_expect {
-    -re ".$decimal = 4\r\n$gdb_prompt $" {
-        pass "print value of add2<int>(2,2)"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of add2<int>(2,2)" }
-    timeout           { fail "(timeout) print value of add2<int>(2,2)" }
-  }
-
-send_gdb "print add2<float>(2.3,2.3)\n"
-gdb_expect {
-    -re ".$decimal = 4\\.5\[0-9\]+\r\n$gdb_prompt $" {
-        pass "print value of add2<float>(2.3,2.3)"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of add2<float>(2.3,2.3)" }
-    timeout           { fail "(timeout) print value of add2<float>(2.3,2.3)" }
-  }
-
-send_gdb "print add2<char>('A','A')\n"
-gdb_expect {
-    -re ".$decimal = -126.*202.\r\n$gdb_prompt $" {
-        pass "print value of add2<char>('A','A')"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of add2<char>('A','A')" }
-    timeout           { fail "(timeout) print value of add2<char>('A','A')" }
-  }
-
-send_gdb "print add3<int>(2,2)\n"
-gdb_expect {
-    -re ".$decimal = 4\r\n$gdb_prompt $" {
-        pass "print value of add3<int>(2,2)"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of add3<int>(2,2)" }
-    timeout           { fail "(timeout) print value of add3<int>(2,2)" }
-  }
-
-send_gdb "print add3<float>(2.3,2.3)\n"
-gdb_expect {
-    -re ".$decimal = 4\\.5\[0-9\]+\r\n$gdb_prompt $" {
-        pass "print value of add3<float>(2.3,2.3)"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of add3<float>(2.3,2.3)" }
-    timeout           { fail "(timeout) print value of add3<float>(2.3,2.3)" }
-  }
-
-send_gdb "print add3<char>('A','A')\n"
-gdb_expect {
-    -re ".$decimal = -126.*202.\r\n$gdb_prompt $" {
-        pass "print value of add3<char>('A','A')"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of add3<char>('A','A')" }
-    timeout           { fail "(timeout) print value of add3<char>('A','A')" }
-  }
-
-send_gdb "print add4<int>(2,2)\n"
-gdb_expect {
-    -re ".$decimal = 4\r\n$gdb_prompt $" {
-        pass "print value of add4<int>(2,2)"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of add4<int>(2,2)" }
-    timeout           { fail "(timeout) print value of add4<int>(2,2)" }
-  }
-
-send_gdb "print add4<float>(2.3,2.3)\n"
-gdb_expect {
-    -re ".$decimal = 4\\.5\[0-9\]+\r\n$gdb_prompt $" {
-        pass "print value of add4<float>(2.3,2.3)"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of add4<float>(2.3,2.3)" }
-    timeout           { fail "(timeout) print value of add4<float>(2.3,2.3)" }
-  }
-
-send_gdb "print add4<char>('A','A')\n"
-gdb_expect {
-    -re ".$decimal = -126.*202.\r\n$gdb_prompt $" {
-        pass "print value of add4<char>('A','A')"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of add4<char>('A','A')" }
-    timeout           { fail "(timeout) print value of add4<char>('A','A')" }
-  }
-
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.c++/cttiadd.cc b/gdb/testsuite/gdb.c++/cttiadd.cc
deleted file mode 100644 (file)
index 1f50fae..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-template<class T> T add(T v1, T v2)
-{
-   T v3;
-   v3 = v1;
-   v3 += v2;
-   return v3;
- }
-
-int main()
-{
-  char c;
-  int i;
-  float f;
-  extern void add1();
-  extern void subr2();
-  extern void subr3();
-  
-  c = 'a';
-  i = 2;
-  f = 4.5;
-
-  c = add(c, c);
-  i = add(i, i);
-  f = add(f, f);
-
-  add1();
-  subr2();
-  subr3();
-}
diff --git a/gdb/testsuite/gdb.c++/cttiadd1.cc b/gdb/testsuite/gdb.c++/cttiadd1.cc
deleted file mode 100644 (file)
index 7113ece..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-template<class T> T add(T v1, T v2);
-
-void add1()
-{
-  char c;
-  int i;
-  float f;
-  
-  c = 'b';
-  i = 3;
-  f = 6.5;
-
-  c = add(c, c);
-  i = add(i, i);
-  f = add(f, f);
-}
diff --git a/gdb/testsuite/gdb.c++/cttiadd2.cc b/gdb/testsuite/gdb.c++/cttiadd2.cc
deleted file mode 100644 (file)
index d0d9891..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-template<class T> T add2(T v1, T v2)
-{
-   T v3;
-   v3 = v1;
-   v3 += v2;
-   return v3;
-}
-
-void subr2()
-{
-  char c;
-  int i;
-  float f;
-  
-  c = 'b';
-  i = 3;
-  f = 6.5;
-
-  c = add2(c, c);
-  i = add2(i, i);
-  f = add2(f, f);
-}
diff --git a/gdb/testsuite/gdb.c++/cttiadd3.cc b/gdb/testsuite/gdb.c++/cttiadd3.cc
deleted file mode 100644 (file)
index 7ba1b01..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-template<class T> T add3(T v1, T v2)
-{
-   T v3;
-   v3 = v1;
-   v3 += v2;
-   return v3;
-}
-
-template<class T> T add4(T v1, T v2)
-{
-   T v3;
-   v3 = v1;
-   v3 += v2;
-   return v3;
-}
-
-void subr3()
-{
-  char c;
-  int i;
-  float f;
-  
-  c = 'b';
-  i = 3;
-  f = 6.5;
-
-  c = add3(c, c);
-  i = add3(i, i);
-  f = add3(f, f);
-  c = add4(c, c);
-  i = add4(i, i);
-  f = add4(f, f);
-}
diff --git a/gdb/testsuite/gdb.c++/demangle.exp b/gdb/testsuite/gdb.c++/demangle.exp
deleted file mode 100644 (file)
index 7bd9fc5..0000000
+++ /dev/null
@@ -1,1582 +0,0 @@
-# Copyright (C) 1992, 1997, 1999, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# This file was written by Fred Fish. (fnf@cygnus.com)
-
-if $tracelevel then {
-    strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-### The demangling style we last sent to GDB.
-set current_demangling_style none
-
-### Set GDB's current demangling style to STYLE.  Subsequent calls to
-### test_demangle will include STYLE in the test name when reporting
-### passes and failures.
-proc set_demangling_style {style} {
-    global gdb_prompt
-    global current_demangling_style
-
-    send_gdb "set demangle-style $style\n"
-    gdb_expect {
-       -re "set demangle-style $style\[\r\n\]+$gdb_prompt $" {
-           pass "$style: set demangle-style"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "$style: set demangle-style"
-           error "set_demangling_style: set style"
-       }
-       timeout { 
-           fail "$style: set demangle-style (timeout)"
-           error "set_demangling_style: set style"
-       }
-    }
-
-    send_gdb "show demangle-style\n"
-    gdb_expect {
-       -re "The current C\[+\]+ demangling style is \"$style\".\r\n$gdb_prompt $" { 
-           pass "$style: check demangling style"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "$style: check demangling style"
-           error "set_demangling_style: check style"
-       }
-       timeout { 
-           fail "$style: check demangling style (timeout)" 
-           error "set_demangling_style: check style"
-       }
-    }
-
-    set current_demangling_style $style
-}
-
-
-### Utility function for test_demangling and test_demangling_exact.
-proc test_demangling_core {tester test result} {
-    global current_demangling_style
-
-    if {! [regexp {^([^ ]+): (.+)$} $test dummy style name]} {
-      error "bad test name passed to test_demangling"
-    }
-
-    if {[string compare $style $current_demangling_style]} {
-       set_demangling_style $style
-    }
-
-    $tester "maintenance demangle $name" $result $test
-}
-
-### Demangle an identifier, and check that the result matches a pattern.
-###
-### TEST should be of the form "STYLE: NAME", where STYLE is the name
-### of a demangling style (like "gnu" or "arm"), and NAME is a mangled
-### identifier to demangle.  Pass when the result matches the regular
-### expression RESULT.  Report passes and fails using TEST as the name
-### of the test.
-###
-### Why don't we just pass the STYLE and NAME as two separate
-### arguments, or let the style be a global variable?  That would be
-### cleaner.  However, doing it this way means that:
-### 
-### 1) the name of the test, as recorded in the summary and log,
-### appears verbatim in the script, and
-### 
-### 2) that test names are unique, even though we try to demangle the same
-### identifiers using several different mangling styles.
-### 
-### This makes it a lot easier for people tracking down failures to
-### find the one they care about.
-
-proc test_demangling {test result} {
-    test_demangling_core gdb_test $test $result
-}
-
-### Like test_demangling, above, except that RESULT is not a regexp,
-### but a string that must match exactly.
-
-proc test_demangling_exact {test result} {
-    test_demangling_core gdb_test_exact $test $result
-}
-
-
-
-#
-#  Test gnu style name demangling
-#
-
-proc test_gnu_style_demangling {} {
-    global gdb_prompt
-
-    test_demangling "gnu: Abort__FP6EditoriPCc" \
-       "Abort\[(\]+Editor \[*\]+, int, (const char|char const) \[*\]+\[)\]+"
-    test_demangling_exact "gnu: AddAlignment__9ivTSolverUiP12ivInteractorP7ivTGlue" "ivTSolver::AddAlignment(unsigned int, ivInteractor *, ivTGlue *)"
-    test_demangling "gnu: Append__15NameChooserViewPCc" \
-       "NameChooserView::Append\[(\]+(const char|char const) \[*\]+\[)\]+"
-    test_demangling_exact "gnu: ArrowheadIntersects__9ArrowLineP9ArrowheadR6BoxObjP7Graphic" "ArrowLine::ArrowheadIntersects(Arrowhead *, BoxObj &, Graphic *)"
-    test_demangling_exact "gnu: AtEnd__13ivRubberGroup" "ivRubberGroup::AtEnd(void)"
-    test_demangling_exact "gnu: BgFilter__9ivTSolverP12ivInteractor" "ivTSolver::BgFilter(ivInteractor *)"
-    test_demangling "gnu: BitPatterntoa__FRC10BitPatternccc" \
-       "BitPatterntoa\[(\]+(const BitPattern|BitPattern const) &, char, char, char\[)\]+"
-    test_demangling_exact "gnu: Check__6UArrayi" "UArray::Check(int)"
-    test_demangling_exact "gnu: CoreConstDecls__8TextCodeR7ostream" "TextCode::CoreConstDecls(ostream &)"
-    test_demangling_exact "gnu: Detach__8StateVarP12StateVarView" "StateVar::Detach(StateVarView *)"
-    test_demangling_exact "gnu: Done__9ComponentG8Iterator" "Component::Done(Iterator)"
-    test_demangling "gnu: DrawDestinationTransformedImage__FP7_XImageiiT0iiUlUiiiUiUlUlP4_XGCRC13ivTransformeriiii" \
-       "DrawDestinationTransformedImage\[(\]+_XImage \[*\]+, int, int, _XImage \[*\]+, int, int, unsigned long, unsigned int, int, int, unsigned int, unsigned long, unsigned long, _XGC \[*\]+, (const ivTransformer|ivTransformer const) &, int, int, int, int\[)\]+"
-
-    test_demangling "gnu: Edit__12StringEditorPCcii" \
-       "StringEditor::Edit\[(\]+(const char|char const) \[*\]+, int, int\[)\]+"
-    test_demangling_exact "gnu: Effect__11RelateManipR7ivEvent" "RelateManip::Effect(ivEvent &)"
-    test_demangling "gnu: FilterName__FPCc" \
-       "FilterName\[(\]+(const char|char const) \[*\]+\[)\]+"
-    test_demangling "gnu: Filter__6PSTextPCci" \
-       "PSText::Filter\[(\]+(const char|char const) \[*\]+, int\[)\]+"
-    test_demangling "gnu: FindColor__7CatalogPCciii" \
-       "Catalog::FindColor\[(\]+(const char|char const) \[*\]+, int, int, int\[)\]+"
-    test_demangling_exact "gnu: FindFixed__FRP4CNetP4CNet" "FindFixed(CNet *&, CNet *)"
-    test_demangling "gnu: FindFont__7CatalogPCcN21" \
-       "Catalog::FindFont\[(\]+(const char|char const) \[*\]+, (const char|char const) \[*\]+, (const char|char const) \[*\]+\[)\]+"
-    test_demangling_exact "gnu: Fix48_abort__FR8twolongs" "Fix48_abort(twolongs &)"
-    test_demangling_exact "gnu: GetBarInfo__15iv2_6_VScrollerP13ivPerspectiveRiT2" "iv2_6_VScroller::GetBarInfo(ivPerspective *, int &, int &)"
-    test_demangling_exact "gnu: GetBgColor__C9ivPainter" "ivPainter::GetBgColor(void) const"
-
-    test_demangling "gnu: Iisdouble__FPC6IntRep" \
-       "Iisdouble\[(\]+(const IntRep|IntRep const) \[*\]+\[)\]+"
-    test_demangling_exact "gnu: InsertBody__15H_PullrightMenuii" "H_PullrightMenu::InsertBody(int, int)"
-    test_demangling_exact "gnu: InsertCharacter__9TextManipc" "TextManip::InsertCharacter(char)"
-
-    test_demangling_exact "gnu: InsertToplevel__7ivWorldP12ivInteractorT1" "ivWorld::InsertToplevel(ivInteractor *, ivInteractor *)"
-    test_demangling_exact "gnu: InsertToplevel__7ivWorldP12ivInteractorT1iiUi" "ivWorld::InsertToplevel(ivInteractor *, ivInteractor *, int, int, unsigned int)"
-    test_demangling "gnu: IsADirectory__FPCcR4stat" \
-       "IsADirectory\[(\]+(const char|char const) \[*\]+, stat &\[)\]+"
-    test_demangling_exact "gnu: IsAGroup__FP11GraphicViewP11GraphicComp" "IsAGroup(GraphicView *, GraphicComp *)"
-    test_demangling_exact "gnu: IsA__10ButtonCodeUl" "ButtonCode::IsA(unsigned long)"
-
-    test_demangling_exact "gnu: ReadName__FR7istreamPc" "ReadName(istream &, char *)"
-    test_demangling_exact "gnu: Redraw__13StringBrowseriiii" "StringBrowser::Redraw(int, int, int, int)"
-    test_demangling_exact "gnu: Rotate__13ivTransformerf" "ivTransformer::Rotate(float)"
-    test_demangling_exact "gnu: Rotated__C13ivTransformerf" "ivTransformer::Rotated(float) const"
-    test_demangling_exact "gnu: Round__Ff" "Round(float)"
-
-    test_demangling_exact "gnu: SetExport__16MemberSharedNameUi" "MemberSharedName::SetExport(unsigned int)"
-    test_demangling_exact "gnu: Set__14ivControlState13ControlStatusUi" "ivControlState::Set(ControlStatus, unsigned int)"
-    test_demangling_exact "gnu: Set__5DFacePcii" "DFace::Set(char *, int, int)"
-
-    test_demangling_exact "gnu: VConvert__9ivTSolverP12ivInteractorRP8TElementT2" "ivTSolver::VConvert(ivInteractor *, TElement *&, TElement *&)"
-    test_demangling_exact "gnu: VConvert__9ivTSolverP7ivTGlueRP8TElement" "ivTSolver::VConvert(ivTGlue *, TElement *&)"
-    test_demangling_exact "gnu: VOrder__9ivTSolverUiRP12ivInteractorT2" "ivTSolver::VOrder(unsigned int, ivInteractor *&, ivInteractor *&)"
-    test_demangling "gnu: Valid__7CatalogPCcRP4Tool" \
-       "Catalog::Valid\[(\]+(const char|char const) \[*\]+, Tool \[*\]+&\[)\]+"
-    test_demangling_exact "gnu: _10PageButton\$__both" "PageButton::__both"
-    test_demangling_exact "gnu: _3RNG\$singleMantissa" "RNG::singleMantissa"
-    test_demangling_exact "gnu: _5IComp\$_release" "IComp::_release"
-    test_demangling_exact "gnu: _\$_10BitmapComp" "BitmapComp::~BitmapComp(void)"
-
-    test_demangling_exact "gnu: _\$_9__io_defs" "__io_defs::~__io_defs(void)"
-    test_demangling_exact "gnu: _\$_Q23foo3bar" "foo::bar::~bar(void)"
-    test_demangling_exact "gnu: _\$_Q33foo3bar4bell" "foo::bar::bell::~bell(void)"
-    test_demangling_exact "gnu: __10ivTelltaleiP7ivGlyph" "ivTelltale::ivTelltale(int, ivGlyph *)"
-    test_demangling_exact "gnu: __10ivViewportiP12ivInteractorUi" "ivViewport::ivViewport(int, ivInteractor *, unsigned int)"
-    test_demangling_exact "gnu: __10ostrstream" "ostrstream::ostrstream(void)"
-    test_demangling_exact "gnu: __10ostrstreamPcii" "ostrstream::ostrstream(char *, int, int)"
-    test_demangling "gnu: __11BasicDialogiPCcP13ivButtonStateN22Ui" \
-       "BasicDialog::BasicDialog\[(\]+int, (const char|char const) \[*\]+, ivButtonState \[*\]+, (const char|char const) \[*\]+, (const char|char const) \[*\]+, unsigned int\[)\]+"
-    test_demangling_exact "gnu: __11BitmapTablei" "BitmapTable::BitmapTable(int)"
-    test_demangling_exact "gnu: __12ViewportCodeP12ViewportComp" "ViewportCode::ViewportCode(ViewportComp *)"
-    test_demangling "gnu: __12iv2_6_BorderiPCci" \
-       "iv2_6_Border::iv2_6_Border\[(\]+int, (const char|char const) \[*\]+, int\[)\]+"
-    test_demangling_exact "gnu: __12iv2_6_Borderii" "iv2_6_Border::iv2_6_Border(int, int)"
-    test_demangling "gnu: __12ivBackgroundiP7ivGlyphPC7ivColor" \
-       "ivBackground::ivBackground\[(\]+int, ivGlyph \[*\]+, (const ivColor|ivColor const) \[*\]+\[)\]+"
-    test_demangling_exact "gnu: __12ivBreak_Listl" "ivBreak_List::ivBreak_List(long)"
-    test_demangling "gnu: __14TextInteractoriPCcUi" \
-       "TextInteractor::TextInteractor\[(\]+int, (const char|char const) \[*\]+, unsigned int\[)\]+"
-    test_demangling_exact "gnu: __14iv2_6_MenuItemiP12ivInteractor" "iv2_6_MenuItem::iv2_6_MenuItem(int, ivInteractor *)"
-    test_demangling "gnu: __14iv2_6_MenuItemiPCcP12ivInteractor" \
-       "iv2_6_MenuItem::iv2_6_MenuItem\[(\]+int, (const char|char const) \[*\]+, ivInteractor \[*\]+\[)\]+"
-
-    test_demangling_exact "gnu: __20DisplayList_IteratorR11DisplayList" "DisplayList_Iterator::DisplayList_Iterator(DisplayList &)"
-    test_demangling_exact "gnu: __3fooRT0" "foo::foo(foo &)"
-    test_demangling_exact "gnu: __3fooiN31" "foo::foo(int, int, int, int)"
-    test_demangling "gnu: __3fooiPCc" \
-       "foo::foo\[(\]+int, (const char|char const) \[*\]+\[)\]+"
-    test_demangling_exact "gnu: __3fooiRT0iT2iT2" "foo::foo(int, foo &, int, foo &, int, foo &)"
-    test_demangling "gnu: __6GetOptiPPcPCc" \
-       "GetOpt::GetOpt\[(\]+int, char \[*\]+\[*\]+, (const char|char const) \[*\]+\[)\]+"
-    test_demangling_exact "gnu: __6KeyMapPT0" "KeyMap::KeyMap(KeyMap *)"
-    test_demangling "gnu: __7ivWorldPCcRiPPcPC12ivOptionDescPC14ivPropertyData" \
-       "ivWorld::ivWorld\[(\]+(const char|char const) \[*\]+, int &, char \[*\]+\[*\]+, (const ivOptionDesc|ivOptionDesc const) \[*\]+, (const ivPropertyData|ivPropertyData const) \[*\]+\[)\]+"
-    test_demangling "gnu: __7procbufPCci" \
-       "procbuf::procbuf\[(\]+(const char|char const) \[*\]+, int\[)\]+"
-    test_demangling_exact "gnu: __8ArrowCmdP6EditorUiUi" "ArrowCmd::ArrowCmd(Editor *, unsigned int, unsigned int)"
-
-    test_demangling_exact "gnu: __9F_EllipseiiiiP7Graphic" "F_Ellipse::F_Ellipse(int, int, int, int, Graphic *)"
-    test_demangling_exact "gnu: __9FrameDataP9FrameCompi" "FrameData::FrameData(FrameComp *, int)"
-    test_demangling_exact "gnu: __9HVGraphicP9CanvasVarP7Graphic" "HVGraphic::HVGraphic(CanvasVar *, Graphic *)"
-    test_demangling_exact "gnu: __Q23foo3bar" "foo::bar::bar(void)"
-    test_demangling_exact "gnu: __Q33foo3bar4bell" "foo::bar::bell::bell(void)"
-    test_demangling_exact "gnu: __aa__3fooRT0" "foo::operator&&(foo &)"
-    test_demangling_exact "gnu: __aad__3fooRT0" "foo::operator&=(foo &)"
-    test_demangling_exact "gnu: __ad__3fooRT0" "foo::operator&(foo &)"
-    test_demangling_exact "gnu: __adv__3fooRT0" "foo::operator/=(foo &)"
-    test_demangling_exact "gnu: __aer__3fooRT0" "foo::operator^=(foo &)"
-    test_demangling_exact "gnu: __als__3fooRT0" "foo::operator<<=(foo &)"
-    test_demangling_exact "gnu: __amd__3fooRT0" "foo::operator%=(foo &)"
-    test_demangling_exact "gnu: __ami__3fooRT0" "foo::operator-=(foo &)"
-    test_demangling_exact "gnu: __aml__3FixRT0" "Fix::operator*=(Fix &)"
-    test_demangling_exact "gnu: __aml__5Fix16i" "Fix16::operator*=(int)"
-    test_demangling_exact "gnu: __aml__5Fix32RT0" "Fix32::operator*=(Fix32 &)"
-    test_demangling_exact "gnu: __aor__3fooRT0" "foo::operator|=(foo &)"
-    test_demangling_exact "gnu: __apl__3fooRT0" "foo::operator+=(foo &)"
-    test_demangling_exact "gnu: __ars__3fooRT0" "foo::operator>>=(foo &)"
-
-    test_demangling_exact "gnu: __as__3fooRT0" "foo::operator=(foo &)"
-    test_demangling_exact "gnu: __cl__3fooRT0" "foo::operator()(foo &)"
-    test_demangling_exact "gnu: __cl__6Normal" "Normal::operator()(void)"
-    test_demangling_exact "gnu: __cl__6Stringii" "String::operator()(int, int)"
-    test_demangling_exact "gnu: __cm__3fooRT0" "foo::operator, (foo &)"
-    test_demangling_exact "gnu: __co__3foo" "foo::operator~(void)"
-    test_demangling_exact "gnu: __dl__3fooPv" "foo::operator delete(void *)"
-    test_demangling_exact "gnu: __dv__3fooRT0" "foo::operator/(foo &)"
-    test_demangling_exact "gnu: __eq__3fooRT0" "foo::operator==(foo &)"
-    test_demangling_exact "gnu: __er__3fooRT0" "foo::operator^(foo &)"
-    test_demangling_exact "gnu: __ge__3fooRT0" "foo::operator>=(foo &)"
-    test_demangling_exact "gnu: __gt__3fooRT0" "foo::operator>(foo &)"
-    test_demangling_exact "gnu: __le__3fooRT0" "foo::operator<=(foo &)"
-    test_demangling_exact "gnu: __ls__3fooRT0" "foo::operator<<(foo &)"
-    test_demangling_exact "gnu: __ls__FR7ostreamPFR3ios_R3ios" "operator<<(ostream &, ios &(*)(ios &))"
-    test_demangling_exact "gnu: __ls__FR7ostreamR3Fix" "operator<<(ostream &, Fix &)"
-    test_demangling_exact "gnu: __lt__3fooRT0" "foo::operator<(foo &)"
-    test_demangling_exact "gnu: __md__3fooRT0" "foo::operator%(foo &)"
-    test_demangling_exact "gnu: __mi__3fooRT0" "foo::operator-(foo &)"
-    test_demangling_exact "gnu: __ml__3fooRT0" "foo::operator*(foo &)"
-    test_demangling_exact "gnu: __mm__3fooi" "foo::operator--(int)"
-
-    test_demangling_exact "gnu: __ne__3fooRT0" "foo::operator!=(foo &)"
-    test_demangling "gnu: __ne__FRC7ComplexT0" \
-       "operator!=\[(\]+(const Complex|Complex const) &, (const Complex|Complex const) &\[)\]+"
-    test_demangling "gnu: __ne__FRC7Complexd" \
-       "operator!=\[(\]+(const Complex|Complex const) &, double\[)\]+"
-    test_demangling "gnu: __ne__FRC9SubStringRC6String" \
-       "operator!=\[(\]+(const SubString|SubString const) &, (const String|String const) &\[)\]+"
-    test_demangling_exact "gnu: __nt__3foo" "foo::operator!(void)"
-    test_demangling_exact "gnu: __nw__3fooi" "foo::operator new(int)"
-    test_demangling_exact "gnu: __oo__3fooRT0" "foo::operator||(foo &)"
-    test_demangling_exact "gnu: __opPc__3foo" "foo::operator char *(void)"
-    test_demangling_exact "gnu: __opi__3foo" "foo::operator int(void)"
-    test_demangling_exact "gnu: __or__3fooRT0" "foo::operator|(foo &)"
-    test_demangling_exact "gnu: __pl__3fooRT0" "foo::operator+(foo &)"
-    test_demangling_exact "gnu: __pp__3fooi" "foo::operator++(int)"
-    test_demangling_exact "gnu: __rf__3foo" "foo::operator->(void)"
-    test_demangling_exact "gnu: __rm__3fooRT0" "foo::operator->*(foo &)"
-    test_demangling_exact "gnu: __rs__3fooRT0" "foo::operator>>(foo &)"
-    test_demangling "gnu: __vc__3fooRT0" "foo::operator\\\[\\\]\\(foo &\\)"
-    test_demangling "gnu: _gsub__6StringRC5RegexPCci" \
-       "String::_gsub\[(\]+(const Regex|Regex const) &, (const char|char const) \[*\]+, int\[)\]+"
-    test_demangling_exact "gnu: _new_Fix__FUs" "_new_Fix(unsigned short)"
-
-    # gcc 2.4.5 (and earlier) style virtual tables.  We want to continue to
-    # correctly demangle these even if newer compilers use a different form.
-    test_demangling_exact "gnu: _vt.foo" "foo virtual table"
-    test_demangling_exact "gnu: _vt.foo.bar" "foo::bar virtual table"
-    test_demangling_exact "gnu: _vt\$foo" "foo virtual table"
-    test_demangling_exact "gnu: _vt\$foo\$bar" "foo::bar virtual table"
-
-    test_demangling_exact "gnu: append__7ivGlyphPT0" "ivGlyph::append(ivGlyph *)"
-    test_demangling "gnu: arg__FRC7Complex" \
-       "arg\[(\]+(const Complex|Complex const) &\[)\]+"
-    test_demangling_exact "gnu: clearok__FP7_win_sti" "clearok(_win_st *, int)"
-
-    test_demangling_exact "gnu: complexfunc2__FPFPc_i" "complexfunc2(int (*)(char *))"
-    test_demangling_exact "gnu: complexfunc3__FPFPFPl_s_i" "complexfunc3(int (*)(short (*)(long *)))"
-    test_demangling_exact "gnu: complexfunc4__FPFPFPc_s_i" "complexfunc4(int (*)(short (*)(char *)))"
-    test_demangling_exact "gnu: complexfunc5__FPFPc_PFl_i" "complexfunc5(int (*(*)(char *))(long))"
-    test_demangling_exact "gnu: complexfunc6__FPFPi_PFl_i" "complexfunc6(int (*(*)(int *))(long))"
-    test_demangling_exact "gnu: complexfunc7__FPFPFPc_i_PFl_i" "complexfunc7(int (*(*)(int (*)(char *)))(long))"
-    test_demangling "gnu: contains__C9BitStringRC10BitPattern" \
-       "BitString::contains\[(\]+(const BitPattern|BitPattern const) &\[)\]+ const"
-    test_demangling "gnu: contains__C9BitStringRC12BitSubStringi" \
-       "BitString::contains\[(\]+(const BitSubString|BitSubString const) &, int\[)\]+ const"
-    test_demangling "gnu: contains__C9BitStringRT0" \
-       "BitString::contains\[(\]+(const BitString|BitString const) &\[)\]+ const"
-    test_demangling "gnu: div__FPC6IntRepT0P6IntRep" \
-       "div\[(\]+(const IntRep|IntRep const) \[*\]+, (const IntRep|IntRep const) \[*\]+, IntRep \[*\]+\[)\]+"
-    test_demangling "gnu: div__FPC6IntReplP6IntRep" \
-       "div\[(\]+(const IntRep|IntRep const) \[*\]+, long, IntRep \[*\]+\[)\]+"
-    test_demangling "gnu: div__FRC8RationalT0R8Rational" \
-       "div\[(\]+(const Rational|Rational const) &, (const Rational|Rational const) &, Rational &\[)\]+"
-    test_demangling "gnu: divide__FRC7IntegerT0R7IntegerT2" \
-       "divide\[(\]+(const Integer|Integer const) &, (const Integer|Integer const) &, Integer &, Integer &\[)\]+"
-    test_demangling "gnu: divide__FRC7IntegerlR7IntegerRl" \
-       "divide\[(\]+(const Integer|Integer const) &, long, Integer &, long &\[)\]+"
-    test_demangling "gnu: enable__14DocumentViewerPCcUi" \
-       "DocumentViewer::enable\[(\]+(const char|char const) \[*\]+, unsigned int\[)\]+"
-
-    test_demangling_exact "gnu: foo__FiN30" "foo(int, int, int, int)"
-    test_demangling_exact "gnu: foo__FiR3fooiT1iT1" "foo(int, foo &, int, foo &, int, foo &)"
-    test_demangling_exact "gnu: foo___3barl" "bar::foo_(long)"
-    test_demangling_exact "gnu: insert__15ivClippingStacklRP8_XRegion" "ivClippingStack::insert(long, _XRegion *&)"
-    test_demangling_exact "gnu: insert__16ChooserInfo_ListlR11ChooserInfo" "ChooserInfo_List::insert(long, ChooserInfo &)"
-    test_demangling_exact "gnu: insert__17FontFamilyRepListlRP15ivFontFamilyRep" "FontFamilyRepList::insert(long, ivFontFamilyRep *&)"
-    test_demangling_exact "gnu: leaveok__FP7_win_stc" "leaveok(_win_st *, char)"
-    test_demangling_exact "gnu: left_mover__C7ivMFKitP12ivAdjustableP7ivStyle" "ivMFKit::left_mover(ivAdjustable *, ivStyle *) const"
-    test_demangling "gnu: matches__C9BitStringRC10BitPatterni" \
-       "BitString::matches\[(\]+(const BitPattern|BitPattern const) &, int\[)\]+ const"
-    test_demangling "gnu: matches__C9SubStringRC5Regex" \
-       "SubString::matches\[(\]+(const Regex|Regex const) &\[)\]+ const"
-
-    test_demangling_exact "gnu: overload1arg__FSc" "overload1arg(signed char)"
-    test_demangling_exact "gnu: overload1arg__FUc" "overload1arg(unsigned char)"
-    test_demangling_exact "gnu: overload1arg__FUi" "overload1arg(unsigned int)"
-    test_demangling_exact "gnu: overload1arg__FUl" "overload1arg(unsigned long)"
-    test_demangling_exact "gnu: overload1arg__FUs" "overload1arg(unsigned short)"
-    test_demangling_exact "gnu: overload1arg__Fc" "overload1arg(char)"
-    test_demangling_exact "gnu: overload1arg__Fd" "overload1arg(double)"
-    test_demangling_exact "gnu: overload1arg__Ff" "overload1arg(float)"
-    test_demangling_exact "gnu: overload1arg__Fi" "overload1arg(int)"
-    test_demangling_exact "gnu: overload1arg__Fl" "overload1arg(long)"
-    test_demangling_exact "gnu: overload1arg__Fs" "overload1arg(short)"
-    test_demangling_exact "gnu: overload1arg__Fv" "overload1arg(void)"
-    test_demangling_exact "gnu: overloadargs__Fi" "overloadargs(int)"
-    test_demangling_exact "gnu: overloadargs__Fii" "overloadargs(int, int)"
-    test_demangling_exact "gnu: overloadargs__Fiii" "overloadargs(int, int, int)"
-    test_demangling_exact "gnu: overloadargs__Fiiii" "overloadargs(int, int, int, int)"
-
-    test_demangling_exact "gnu: overloadargs__Fiiiii" "overloadargs(int, int, int, int, int)"
-    test_demangling_exact "gnu: overloadargs__Fiiiiii" "overloadargs(int, int, int, int, int, int)"
-    test_demangling_exact "gnu: overloadargs__Fiiiiiii" "overloadargs(int, int, int, int, int, int, int)"
-    test_demangling_exact "gnu: overloadargs__Fiiiiiiii" "overloadargs(int, int, int, int, int, int, int, int)"
-    test_demangling_exact "gnu: overloadargs__Fiiiiiiiii" "overloadargs(int, int, int, int, int, int, int, int, int)"
-    test_demangling_exact "gnu: overloadargs__Fiiiiiiiiii" "overloadargs(int, int, int, int, int, int, int, int, int, int)"
-    test_demangling_exact "gnu: overloadargs__Fiiiiiiiiiii" "overloadargs(int, int, int, int, int, int, int, int, int, int, int)"
-    test_demangling "gnu: pick__13ivCompositionP8ivCanvasRC12ivAllocationiR5ivHit" \
-       "ivComposition::pick\[(\]+ivCanvas \[*\]+, (const ivAllocation|ivAllocation const) &, int, ivHit &\[)\]+"
-    test_demangling "gnu: pointer__C11ivHScrollerRC7ivEventRC12ivAllocation" \
-       "ivHScroller::pointer\[(\]+(const ivEvent|ivEvent const) &, (const ivAllocation|ivAllocation const) &\[)\]+ const"
-    test_demangling_exact "gnu: poke__8ivRasterUlUlffff" "ivRaster::poke(unsigned long, unsigned long, float, float, float, float)"
-    test_demangling_exact "gnu: polar__Fdd" "polar(double, double)"
-    test_demangling "gnu: read__10osStdInputRPCc" \
-       "osStdInput::read\[(\]+(const char|char const) \[*\]+&\[)\]+"
-
-    test_demangling_exact "gnu: scale__13ivTransformerff" "ivTransformer::scale(float, float)"
-    test_demangling "gnu: scanw__12CursesWindowPCce" \
-       "CursesWindow::scanw\[(\]+(const char|char const) \[*\]+,...\[)\]+"
-    test_demangling "gnu: scmp__FPCcT0" \
-       "scmp\[(\]+(const char|char const) \[*\]+, (const char|char const) \[*\]+\[)\]+"
-    test_demangling_exact "gnu: sgetn__7filebufPci" "filebuf::sgetn(char *, int)"
-    test_demangling_exact "gnu: shift__FP5_FrepiT0" "shift(_Frep *, int, _Frep *)"
-    test_demangling_exact "gnu: test__C6BitSeti" "BitSet::test(int) const"
-    test_demangling_exact "gnu: test__C6BitSetii" "BitSet::test(int, int) const"
-    test_demangling "gnu: testbit__FRC7Integerl" \
-       "testbit\[(\]+(const Integer|Integer const) &, long\[)\]+"
-    test_demangling_exact "gnu: text_source__8Documentl" "Document::text_source(long)"
-    test_demangling_exact "gnu: variance__6Erlangd" "Erlang::variance(double)"
-    test_demangling "gnu: vform__8iostreamPCcPc" \
-       "iostream::vform\[(\]+(const char|char const) \[*\]+, char \[*\]+\[)\]+"
-    test_demangling_exact "gnu: view__14DocumentViewerP8ItemViewP11TabularItem" "DocumentViewer::view(ItemView *, TabularItem *)"
-    test_demangling_exact "gnu: xy_extents__11ivExtensionffff" "ivExtension::xy_extents(float, float, float, float)"
-    test_demangling_exact "gnu: zero__8osMemoryPvUi" "osMemory::zero(void *, unsigned int)"
-    test_demangling_exact "gnu: _2T4\$N" "T4::N"
-    test_demangling_exact "gnu: _Q22T42t1\$N" "T4::t1::N"
-    test_demangling_exact "gnu: get__2T1" "T1::get(void)"
-    test_demangling_exact "gnu: get__Q22T11a" "T1::a::get(void)"
-    test_demangling_exact "gnu: get__Q32T11a1b" "T1::a::b::get(void)"
-    test_demangling_exact "gnu: get__Q42T11a1b1c" "T1::a::b::c::get(void)"
-    test_demangling_exact "gnu: get__Q52T11a1b1c1d" "T1::a::b::c::d::get(void)"
-    test_demangling_exact "gnu: put__2T1i" "T1::put(int)"
-    test_demangling_exact "gnu: put__Q22T11ai" "T1::a::put(int)"
-    test_demangling_exact "gnu: put__Q32T11a1bi" "T1::a::b::put(int)"
-    test_demangling_exact "gnu: put__Q42T11a1b1ci" "T1::a::b::c::put(int)"
-    test_demangling_exact "gnu: put__Q52T11a1b1c1di" "T1::a::b::c::d::put(int)"
-
-    test_demangling_exact "gnu: bar__3fooPv"       "foo::bar(void *)"
-    test_demangling "gnu: bar__3fooPCv" \
-       "foo::bar\[(\]+(const void|void const) *\[*\]+\[)\]+"
-    test_demangling_exact "gnu: bar__C3fooPv"      "foo::bar(void *) const"
-    test_demangling "gnu: bar__C3fooPCv" \
-       "foo::bar\[(\]+(const void|void const) *\[*\]+\[)\]+ const"
-    test_demangling_exact "gnu: __eq__3fooRT0"     "foo::operator==(foo &)"
-    test_demangling "gnu: __eq__3fooRC3foo" \
-        "foo::operator==\[(\]+(const foo|foo const) &\[)\]+"
-    test_demangling_exact "gnu: __eq__C3fooR3foo"  "foo::operator==(foo &) const"
-    test_demangling "gnu: __eq__C3fooRT0" \
-          "foo::operator==\[(\]+(const foo|foo const) &\[)\]+ const"
-
-    test_demangling_exact "gnu: elem__t6vector1Zdi" "vector<double>::elem(int)"
-    test_demangling_exact "gnu: elem__t6vector1Zii" "vector<int>::elem(int)"
-    test_demangling_exact "gnu: __t6vector1Zdi"     "vector<double>::vector(int)"
-    test_demangling_exact "gnu: __t6vector1Zii"     "vector<int>::vector(int)"
-    test_demangling_exact "gnu: _\$_t6vector1Zdi"    "vector<double>::~vector(int)"
-    test_demangling_exact "gnu: _\$_t6vector1Zii"    "vector<int>::~vector(int)"
-
-    test_demangling_exact "gnu: __nw__t2T11ZcUi" "T1<char>::operator new(unsigned int)"
-    test_demangling_exact "gnu: __nw__t2T11Z1tUi" "T1<t>::operator new(unsigned int)"
-    test_demangling_exact "gnu: __dl__t2T11ZcPv" "T1<char>::operator delete(void *)"
-    test_demangling_exact "gnu: __dl__t2T11Z1tPv" "T1<t>::operator delete(void *)"
-    test_demangling_exact "gnu: __t2T11Zci" "T1<char>::T1(int)"
-    test_demangling_exact "gnu: __t2T11Zc" "T1<char>::T1(void)"
-    test_demangling_exact "gnu: __t2T11Z1ti" "T1<t>::T1(int)"
-    test_demangling_exact "gnu: __t2T11Z1t" "T1<t>::T1(void)"
-
-    test_demangling_exact "gnu: __Q2t4List1Z10VHDLEntity3Pix" \
-       "List<VHDLEntity>::Pix::Pix(void)"
-
-    test_demangling_exact "gnu: __Q2t4List1Z10VHDLEntity3PixPQ2t4List1Z10VHDLEntity7element" \
-       "List<VHDLEntity>::Pix::Pix(List<VHDLEntity>::element *)"
-
-    test_demangling_exact "gnu: __Q2t4List1Z10VHDLEntity3PixRCQ2t4List1Z10VHDLEntity3Pix" \
-       "List<VHDLEntity>::Pix::Pix(List<VHDLEntity>::Pix const &)"
-
-    test_demangling_exact "gnu: __Q2t4List1Z10VHDLEntity7elementRC10VHDLEntityPT0" \
-       "List<VHDLEntity>::element::element(VHDLEntity const &, List<VHDLEntity>::element *)"
-
-    test_demangling_exact "gnu: __Q2t4List1Z10VHDLEntity7elementRCQ2t4List1Z10VHDLEntity7element" \
-       "List<VHDLEntity>::element::element(List<VHDLEntity>::element const &)"
-
-    test_demangling_exact "gnu: __cl__C11VHDLLibraryGt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity" \
-       "VHDLLibrary::operator()(PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> >) const"
-
-    test_demangling_exact "gnu: __cl__Ct4List1Z10VHDLEntityRCQ2t4List1Z10VHDLEntity3Pix" \
-       "List<VHDLEntity>::operator()(List<VHDLEntity>::Pix const &) const"
-
-    test_demangling_exact "gnu: __ne__FPvRCQ2t4List1Z10VHDLEntity3Pix" \
-       "operator!=(void *, List<VHDLEntity>::Pix const &)"
-
-    test_demangling_exact "gnu: __ne__FPvRCt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity" \
-       "operator!=(void *, PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> > const &)"
-
-    test_demangling_exact "gnu: __t4List1Z10VHDLEntityRCt4List1Z10VHDLEntity" \
-       "List<VHDLEntity>::List(List<VHDLEntity> const &)"
-
-    test_demangling_exact "gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity" \
-       "PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> >::PixX(void)"
-
-    test_demangling_exact "gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntityP14VHDLLibraryRepGQ2t4List1Z10VHDLEntity3Pix" \
-       "PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> >::PixX(VHDLLibraryRep *, List<VHDLEntity>::Pix)"
-
-    test_demangling_exact "gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntityRCt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity" \
-       "PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> >::PixX(PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> > const &)"
-
-    test_demangling_exact "gnu: nextE__C11VHDLLibraryRt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity" \
-       "VHDLLibrary::nextE(PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> > &) const"
-
-    test_demangling_exact "gnu: next__Ct4List1Z10VHDLEntityRQ2t4List1Z10VHDLEntity3Pix" \
-       "List<VHDLEntity>::next(List<VHDLEntity>::Pix &) const"
-
-    test_demangling_exact "gnu: _GLOBAL_\$D\$set" "global destructors keyed to set"
-
-    test_demangling_exact "gnu: _GLOBAL_\$I\$set" "global constructors keyed to set"
-
-    test_demangling_exact "gnu: __as__t5ListS1ZUiRCt5ListS1ZUi" \
-       "ListS<unsigned int>::operator=(ListS<unsigned int> const &)"
-
-    test_demangling_exact "gnu: __cl__Ct5ListS1ZUiRCQ2t5ListS1ZUi3Vix" \
-       "ListS<unsigned int>::operator()(ListS<unsigned int>::Vix const &) const"
-
-    test_demangling_exact "gnu: __cl__Ct5SetLS1ZUiRCQ2t5SetLS1ZUi3Vix" \
-       "SetLS<unsigned int>::operator()(SetLS<unsigned int>::Vix const &) const"
-
-    test_demangling_exact "gnu: __t10ListS_link1ZUiRCUiPT0" \
-       "ListS_link<unsigned int>::ListS_link(unsigned int const &, ListS_link<unsigned int> *)"
-
-    test_demangling_exact "gnu: __t10ListS_link1ZUiRCt10ListS_link1ZUi" \
-       "ListS_link<unsigned int>::ListS_link(ListS_link<unsigned int> const &)"
-
-    test_demangling_exact "gnu: __t5ListS1ZUiRCt5ListS1ZUi" \
-       "ListS<unsigned int>::ListS(ListS<unsigned int> const &)"
-
-    test_demangling_exact "gnu: next__Ct5ListS1ZUiRQ2t5ListS1ZUi3Vix" \
-       "ListS<unsigned int>::next(ListS<unsigned int>::Vix &) const"
-
-    test_demangling_exact "gnu: __ne__FPvRCQ2t5SetLS1ZUi3Vix" \
-       "operator!=(void *, SetLS<unsigned int>::Vix const &)"
-    test_demangling_exact "gnu: __t8ListElem1Z5LabelRt4List1Z5Label" \
-       "ListElem<Label>::ListElem(List<Label> &)"
-    test_demangling_exact "gnu: __t8BDDHookV1ZPcRCPc" \
-       "BDDHookV<char *>::BDDHookV(char *const &)"
-
-    test_demangling_exact "gnu: _vt\$t8BDDHookV1ZPc" "BDDHookV<char *> virtual table"
-
-    test_demangling_exact "gnu: __ne__FPvRCQ211BDDFunction4VixB" \
-       "operator!=(void *, BDDFunction::VixB const &)"
-    test_demangling_exact "gnu: __eq__FPvRCQ211BDDFunction4VixB" \
-       "operator==(void *, BDDFunction::VixB const &)"
-
-    test_demangling_exact "gnu: relativeId__CQ36T_phi210T_preserve8FPC_nextRCQ26T_phi210T_preserveRC10Parameters" \
-        "T_phi2::T_preserve::FPC_next::relativeId(T_phi2::T_preserve const &, Parameters const &) const"
-
-    test_demangling_exact "gnu: _Utf390_1__1_9223372036854775807__9223372036854775" \
-           "Can't demangle \"_Utf390_1__1_9223372036854775807__9223372036854775\""
-    test_demangling_exact "gnu: foo__I40" "foo(int64_t)"
-    test_demangling_exact "gnu: foo__I_200_" "foo(int512_t)"
-    test_demangling_exact "gnu: foo__I_200" "Can't demangle \"foo__I_200\""
-
-    ## Buffer overrun.  Should make GDB crash.  Woo hoo!
-    test_demangling_exact "gnu: foo__I_4000000000000000000000000000000000000000000000000000000000000000000000000" "Can't demangle \"foo__I_4000000000000000000000000000000000000000000000000000000000000000000000000\""
-
-    ## 1999-04-19: "Fix from Dale Hawkins".  Shouldn't segfault.
-    # Accept even a dubious demangling; the string is ambiguous.
-    send_gdb "maintenance demangle __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator\n"
-    gdb_expect {
-       -re "virtual function thunk \\(delta:-64\\) for CosNaming::_proxy_NamingContext::_0RL__list\\(unsigned long, _CORBA_Unbounded_Sequence<CosNaming::Binding> \\*\\&, CosNaming::BindingIterator \\*\\&\\)\r\n$gdb_prompt $" {
-               pass "gnu: __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator"
-       }
-       -re ".*Can't demangle \"__thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator\"\r\n$gdb_prompt $" {
-               pass "gnu: __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator"
-       }
-       -re ".*$gdb_prompt $" {
-               fail "gnu: __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator"
-       }
-       timeout {
-               fail "gnu: __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator (timeout)"
-       }
-    }
-}
-
-#
-#  Test lucid style name demangling
-#
-
-proc test_lucid_style_demangling {} {
-    test_demangling_exact "lucid: WS__FR7istream" "WS(istream &)"
-    test_demangling_exact "lucid: __aa__3fooFR3foo" "foo::operator&&(foo &)"
-    test_demangling_exact "lucid: __aad__3fooFR3foo" "foo::operator&=(foo &)"
-    test_demangling_exact "lucid: __ad__3fooFR3foo" "foo::operator&(foo &)"
-    test_demangling_exact "lucid: __adv__3fooFR3foo" "foo::operator/=(foo &)"
-    test_demangling_exact "lucid: __adv__7complexF7complex" "complex::operator/=(complex)"
-    test_demangling_exact "lucid: __aer__3fooFR3foo" "foo::operator^=(foo &)"
-    test_demangling_exact "lucid: __als__3fooFR3foo" "foo::operator<<=(foo &)"
-    test_demangling_exact "lucid: __amd__3fooFR3foo" "foo::operator%=(foo &)"
-    test_demangling_exact "lucid: __ami__3fooFR3foo" "foo::operator-=(foo &)"
-    test_demangling_exact "lucid: __amu__3fooFR3foo" "foo::operator*=(foo &)"
-    test_demangling_exact "lucid: __amu__7complexF7complex" "complex::operator*=(complex)"
-    test_demangling_exact "lucid: __aor__3fooFR3foo" "foo::operator|=(foo &)"
-    test_demangling_exact "lucid: __apl__3fooFR3foo" "foo::operator+=(foo &)"
-    test_demangling_exact "lucid: __ars__3fooFR3foo" "foo::operator>>=(foo &)"
-    test_demangling_exact "lucid: __as__18istream_withassignFP9streambuf" "istream_withassign::operator=(streambuf *)"
-    test_demangling_exact "lucid: __as__18istream_withassignFR7istream" "istream_withassign::operator=(istream &)"
-    test_demangling_exact "lucid: __as__3fooFR3foo" "foo::operator=(foo &)"
-    test_demangling_exact "lucid: __as__3iosFR3ios" "ios::operator=(ios &)"
-    test_demangling_exact "lucid: __cl__3fooFR3foo" "foo::operator()(foo &)"
-    test_demangling_exact "lucid: __cm__3fooFR3foo" "foo::operator, (foo &)"
-
-    test_demangling_exact "lucid: __co__3fooFv" "foo::operator~(void)"
-    test_demangling_exact "lucid: __ct__10istrstreamFPc" "istrstream::istrstream(char *)"
-    test_demangling_exact "lucid: __ct__10istrstreamFPci" "istrstream::istrstream(char *, int)"
-    test_demangling_exact "lucid: __ct__10ostrstreamFPciT2" "ostrstream::ostrstream(char *, int, int)"
-    test_demangling_exact "lucid: __ct__10ostrstreamFv" "ostrstream::ostrstream(void)"
-    test_demangling_exact "lucid: __ct__10smanip_intFPFR3iosi_R3iosi" "smanip_int::smanip_int(ios &(*)(ios &, int), int)"
-    test_demangling "lucid: __ct__11c_exceptionFPcRC7complexT2" "c_exception::c_exception\[(\]+char \[*\]+, (const complex|complex const) &, (const complex|complex const) &\[)\]+"
-    test_demangling "lucid: __ct__11fstreambaseFPCciT2" "fstreambase::fstreambase\[(\]+(const char|char const) \[*\]+, int, int\[)\]+"
-    test_demangling_exact "lucid: __ct__11fstreambaseFi" "fstreambase::fstreambase(int)"
-    test_demangling_exact "lucid: __ct__11fstreambaseFiPcT1" "fstreambase::fstreambase(int, char *, int)"
-    test_demangling_exact "lucid: __ct__11fstreambaseFv" "fstreambase::fstreambase(void)"
-    test_demangling_exact "lucid: __ct__11smanip_longFPFR3iosl_R3iosl" "smanip_long::smanip_long(ios &(*)(ios &, long), long)"
-    test_demangling_exact "lucid: __ct__11stdiostreamFP4FILE" "stdiostream::stdiostream(FILE *)"
-    test_demangling_exact "lucid: __ct__12strstreambufFPFl_PvPFPv_v" "strstreambuf::strstreambuf(void *(*)(long), void (*)(void *))"
-    test_demangling_exact "lucid: __ct__12strstreambufFPUciT1" "strstreambuf::strstreambuf(unsigned char *, int, unsigned char *)"
-    test_demangling_exact "lucid: __ct__12strstreambufFPciT1" "strstreambuf::strstreambuf(char *, int, char *)"
-    test_demangling_exact "lucid: __ct__12strstreambufFi" "strstreambuf::strstreambuf(int)"
-    test_demangling_exact "lucid: __ct__12strstreambufFv" "strstreambuf::strstreambuf(void)"
-    test_demangling_exact "lucid: __ct__13strstreambaseFPciT1" "strstreambase::strstreambase(char *, int, char *)"
-    test_demangling_exact "lucid: __ct__3fooFR3foo" "foo::foo(foo &)"
-
-    test_demangling_exact "lucid: __ct__3fooFi" "foo::foo(int)"
-    test_demangling_exact "lucid: __ct__3fooFiN31" "foo::foo(int, int, int, int)"
-    test_demangling "lucid: __ct__3fooFiPCc" \
-       "foo::foo\[(\]+int, (const char|char const) \[*\]+\[)\]+"
-    test_demangling_exact "lucid: __ct__3fooFiR3fooT1T2T1T2" "foo::foo(int, foo &, int, foo &, int, foo &)"
-    test_demangling_exact "lucid: __ct__3iosFP9streambuf" "ios::ios(streambuf *)"
-    test_demangling_exact "lucid: __ct__7filebufFiPcT1" "filebuf::filebuf(int, char *, int)"
-    test_demangling "lucid: __ct__7fstreamFPCciT2" \
-       "fstream::fstream\[(\]+(const char|char const) \[*\]+, int, int\[)\]+"
-    test_demangling_exact "lucid: __ct__7fstreamFiPcT1" "fstream::fstream(int, char *, int)"
-    test_demangling_exact "lucid: __ct__7istreamFP9streambuf" "istream::istream(streambuf *)"
-    test_demangling_exact "lucid: __ct__7istreamFP9streambufiP7ostream" "istream::istream(streambuf *, int, ostream *)"
-    test_demangling_exact "lucid: __ct__7istreamFiPcT1" "istream::istream(int, char *, int)"
-    test_demangling_exact "lucid: __ct__7istreamFiT1P7ostream" "istream::istream(int, int, ostream *)"
-    test_demangling_exact "lucid: __ct__7ostreamFP9streambuf" "ostream::ostream(streambuf *)"
-    test_demangling_exact "lucid: __ct__7ostreamFiPc" "ostream::ostream(int, char *)"
-    test_demangling "lucid: __ct__8ifstreamFPCciT2" \
-       "ifstream::ifstream\[(\]+(const char|char const) \[*\]+, int, int\[)\]+"
-    test_demangling_exact "lucid: __ct__8ifstreamFiPcT1" "ifstream::ifstream(int, char *, int)"
-
-    test_demangling_exact "lucid: __ct__Q23foo3barFv" "foo::bar::bar(void)"
-    test_demangling_exact "lucid: __ct__Q33foo3bar4bellFv" "foo::bar::bell::bell(void)"
-    test_demangling_exact "lucid: __dl__3fooSFPv" "foo::operator delete(void *) static"
-    test_demangling_exact "lucid: __dl__FPv" "operator delete(void *)"
-    test_demangling_exact "lucid: __dt__10istrstreamFv" "istrstream::~istrstream(void)"
-
-    test_demangling_exact "lucid: __dt__Q23foo3barFv" "foo::bar::~bar(void)"
-    test_demangling_exact "lucid: __dt__Q33foo3bar4bellFv" "foo::bar::bell::~bell(void)"
-    test_demangling_exact "lucid: __dv__3fooFR3foo" "foo::operator/(foo &)"
-    test_demangling_exact "lucid: __dv__F7complexT1" "operator/(complex, complex)"
-    test_demangling_exact "lucid: __eq__3fooFR3foo" "foo::operator==(foo &)"
-    test_demangling_exact "lucid: __er__3fooFR3foo" "foo::operator^(foo &)"
-    test_demangling_exact "lucid: __ge__3fooFR3foo" "foo::operator>=(foo &)"
-    test_demangling_exact "lucid: __gt__3fooFR3foo" "foo::operator>(foo &)"
-    test_demangling_exact "lucid: __le__3fooFR3foo" "foo::operator<=(foo &)"
-    test_demangling_exact "lucid: __ls__3fooFR3foo" "foo::operator<<(foo &)"
-    test_demangling_exact "lucid: __ls__7ostreamFP9streambuf" "ostream::operator<<(streambuf *)"
-
-    test_demangling "lucid: __ls__7ostreamFPCc" \
-       "ostream::operator<<\[(\]+(const char|char const) \[*\]+\[)\]+"
-    test_demangling_exact "lucid: __ls__7ostreamFPFR3ios_R3ios" "ostream::operator<<(ios &(*)(ios &))"
-    test_demangling_exact "lucid: __ls__7ostreamFPv" "ostream::operator<<(void *)"
-    test_demangling_exact "lucid: __ls__7ostreamFUi" "ostream::operator<<(unsigned int)"
-    test_demangling_exact "lucid: __ls__7ostreamFUl" "ostream::operator<<(unsigned long)"
-    test_demangling_exact "lucid: __ls__7ostreamFd" "ostream::operator<<(double)"
-    test_demangling_exact "lucid: __ls__7ostreamFf" "ostream::operator<<(float)"
-    test_demangling_exact "lucid: __ls__7ostreamFi" "ostream::operator<<(int)"
-    test_demangling_exact "lucid: __ls__7ostreamFl" "ostream::operator<<(long)"
-    test_demangling_exact "lucid: __ls__FR7ostream7complex" "operator<<(ostream &, complex)"
-    test_demangling_exact "lucid: __lt__3fooFR3foo" "foo::operator<(foo &)"
-    test_demangling_exact "lucid: __md__3fooFR3foo" "foo::operator%(foo &)"
-    test_demangling_exact "lucid: __mi__3fooFR3foo" "foo::operator-(foo &)"
-    test_demangling_exact "lucid: __ml__3fooFR3foo" "foo::operator*(foo &)"
-    test_demangling_exact "lucid: __ml__F7complexT1" "operator*(complex, complex)"
-    test_demangling_exact "lucid: __mm__3fooFi" "foo::operator--(int)"
-    test_demangling_exact "lucid: __ne__3fooFR3foo" "foo::operator!=(foo &)"
-    test_demangling_exact "lucid: __nt__3fooFv" "foo::operator!(void)"
-    test_demangling_exact "lucid: __nw__3fooSFi" "foo::operator new(int) static"
-    test_demangling_exact "lucid: __nw__FUi" "operator new(unsigned int)"
-    test_demangling_exact "lucid: __nw__FUiPv" "operator new(unsigned int, void *)"
-    test_demangling_exact "lucid: __oo__3fooFR3foo" "foo::operator||(foo &)"
-    test_demangling_exact "lucid: __opPc__3fooFv" "foo::operator char *(void)"
-    test_demangling_exact "lucid: __opi__3fooFv" "foo::operator int(void)"
-    test_demangling_exact "lucid: __or__3fooFR3foo" "foo::operator|(foo &)"
-
-    test_demangling_exact "lucid: __pl__3fooFR3foo" "foo::operator+(foo &)"
-    test_demangling_exact "lucid: __pp__3fooFi" "foo::operator++(int)"
-    test_demangling_exact "lucid: __pt__3fooFv" "foo::operator->(void)"
-    test_demangling_exact "lucid: __rm__3fooFR3foo" "foo::operator->*(foo &)"
-    test_demangling_exact "lucid: __rs__3fooFR3foo" "foo::operator>>(foo &)"
-    test_demangling_exact "lucid: __rs__7istreamFP9streambuf" "istream::operator>>(streambuf *)"
-    test_demangling_exact "lucid: __rs__7istreamFPFR3ios_R3ios" "istream::operator>>(ios &(*)(ios &))"
-    test_demangling_exact "lucid: __rs__7istreamFPFR7istream_R7istream" "istream::operator>>(istream &(*)(istream &))"
-    test_demangling_exact "lucid: __rs__7istreamFPUc" "istream::operator>>(unsigned char *)"
-    test_demangling_exact "lucid: __rs__7istreamFPc" "istream::operator>>(char *)"
-    test_demangling_exact "lucid: __rs__7istreamFRUi" "istream::operator>>(unsigned int &)"
-    test_demangling_exact "lucid: __rs__7istreamFRUl" "istream::operator>>(unsigned long &)"
-    test_demangling_exact "lucid: __rs__7istreamFRUs" "istream::operator>>(unsigned short &)"
-    test_demangling_exact "lucid: __rs__7istreamFRd" "istream::operator>>(double &)"
-    test_demangling_exact "lucid: __rs__7istreamFRf" "istream::operator>>(float &)"
-    test_demangling_exact "lucid: __rs__7istreamFRi" "istream::operator>>(int &)"
-    test_demangling_exact "lucid: __rs__7istreamFRl" "istream::operator>>(long &)"
-    test_demangling_exact "lucid: __rs__7istreamFRs" "istream::operator>>(short &)"
-    test_demangling_exact "lucid: __rs__FR7istreamR7complex" "operator>>(istream &, complex &)"
-    test_demangling "lucid: __vc__3fooFR3foo" "foo::operator\\\[\\\]\\(foo &\\)"
-    test_demangling_exact "lucid: __vtbl__10istrstream" "istrstream virtual table"
-    test_demangling_exact "lucid: __vtbl__17ostream__iostream__19iostream_withassign" "iostream_withassign::ostream__iostream virtual table"
-
-    test_demangling_exact "lucid: __vtbl__3ios" "ios virtual table"
-    test_demangling_exact "lucid: __vtbl__3ios__13strstreambase" "strstreambase::ios virtual table"
-
-    # GDB 930414 demangles this as t_cc_main_ (obviously wrong).
-    # GDB 930701 gets into an infinite loop.
-    # GDB 930727 says "Can't demangle".
-    # What is the correct demangling?  FIXME.
-
-    # NOTE: carlton/2003-01-17: No, don't FIXME, just obsolete lucid.
-    # I'm KFAILing this rather than deleting it for form's sake.
-    setup_kfail "gdb/945" "*-*-*"
-    test_demangling_exact "lucid: __vtbl__3foo__vt_cc_main_" ""
-
-    test_demangling_exact "lucid: abs__F7complex" "abs(complex)"
-    test_demangling_exact "lucid: allocate__9streambufFv" "streambuf::allocate(void)"
-    test_demangling_exact "lucid: attach__11fstreambaseFi" "fstreambase::attach(int)"
-    test_demangling_exact "lucid: bitalloc__3iosSFv" "ios::bitalloc(void) static"
-    test_demangling_exact "lucid: chr__FiT1" "chr(int, int)"
-    test_demangling_exact "lucid: complex_error__FR11c_exception" "complex_error(c_exception &)"
-    test_demangling_exact "lucid: complexfunc2__FPFPc_i" "complexfunc2(int (*)(char *))"
-    test_demangling_exact "lucid: complexfunc3__FPFPFPl_s_i" "complexfunc3(int (*)(short (*)(long *)))"
-
-    test_demangling_exact "lucid: complexfunc4__FPFPFPc_s_i" "complexfunc4(int (*)(short (*)(char *)))"
-    test_demangling_exact "lucid: complexfunc5__FPFPc_PFl_i" "complexfunc5(int (*(*)(char *))(long))"
-    test_demangling_exact "lucid: complexfunc6__FPFPi_PFl_i" "complexfunc6(int (*(*)(int *))(long))"
-    test_demangling_exact "lucid: complexfunc7__FPFPFPc_i_PFl_i" "complexfunc7(int (*(*)(int (*)(char *)))(long))"
-    test_demangling_exact "lucid: complicated_put__7ostreamFc" "ostream::complicated_put(char)"
-    test_demangling_exact "lucid: conv10__FlPc" "conv10(long, char *)"
-    test_demangling_exact "lucid: conv16__FUlPc" "conv16(unsigned long, char *)"
-    test_demangling_exact "lucid: dec__FR3ios" "dec(ios &)"
-    test_demangling_exact "lucid: dec__Fli" "dec(long, int)"
-    test_demangling_exact "lucid: dofield__FP7ostreamPciT2T3" "dofield(ostream *, char *, int, char *, int)"
-
-    test_demangling_exact "lucid: flags__3iosFl" "ios::flags(long)"
-    test_demangling_exact "lucid: flags__3iosFv" "ios::flags(void)"
-    test_demangling_exact "lucid: foo__FiN31" "foo(int, int, int, int)"
-    test_demangling_exact "lucid: foo__FiR3fooT1T2T1T2" "foo(int, foo &, int, foo &, int, foo &)"
-    test_demangling_exact "lucid: foo___3barFl" "bar::foo_(long)"
-    test_demangling "lucid: form__FPCce" "form\[(\]+(const char|char const) \[*\]+,...\[)\]+"
-    test_demangling_exact "lucid: get__7istreamFPcic" "istream::get(char *, int, char)"
-    test_demangling_exact "lucid: get__7istreamFR9streambufc" "istream::get(streambuf &, char)"
-    test_demangling_exact "lucid: get_complicated__7istreamFRUc" "istream::get_complicated(unsigned char &)"
-    test_demangling_exact "lucid: get_complicated__7istreamFRc" "istream::get_complicated(char &)"
-    test_demangling_exact "lucid: getline__7istreamFPUcic" "istream::getline(unsigned char *, int, char)"
-    test_demangling_exact "lucid: getline__7istreamFPcic" "istream::getline(char *, int, char)"
-
-    test_demangling_exact "lucid: ignore__7istreamFiT1" "istream::ignore(int, int)"
-    test_demangling_exact "lucid: init__12strstreambufFPciT1" "strstreambuf::init(char *, int, char *)"
-    test_demangling_exact "lucid: init__3iosFP9streambuf" "ios::init(streambuf *)"
-    test_demangling_exact "lucid: initcount__13Iostream_init" "Iostream_init::initcount"
-    test_demangling_exact "lucid: ipfx__7istreamFi" "istream::ipfx(int)"
-    test_demangling_exact "lucid: ls_complicated__7ostreamFUc" "ostream::ls_complicated(unsigned char)"
-    test_demangling_exact "lucid: ls_complicated__7ostreamFc" "ostream::ls_complicated(char)"
-    test_demangling "lucid: open__11fstreambaseFPCciT2" \
-       "fstreambase::open\[(\]+(const char|char const) \[*\]+, int, int\[)\]+"
-    test_demangling "lucid: open__7filebufFPCciT2" \
-       "filebuf::open\[(\]+(const char|char const) \[*\]+, int, int\[)\]+"
-
-    test_demangling_exact "lucid: overload1arg__FSc" "overload1arg(signed char)"
-    test_demangling_exact "lucid: overload1arg__FUc" "overload1arg(unsigned char)"
-    test_demangling_exact "lucid: overload1arg__FUi" "overload1arg(unsigned int)"
-    test_demangling_exact "lucid: overload1arg__FUl" "overload1arg(unsigned long)"
-    test_demangling_exact "lucid: overload1arg__FUs" "overload1arg(unsigned short)"
-    test_demangling_exact "lucid: overload1arg__Fc" "overload1arg(char)"
-    test_demangling_exact "lucid: overload1arg__Fd" "overload1arg(double)"
-    test_demangling_exact "lucid: overload1arg__Ff" "overload1arg(float)"
-    test_demangling_exact "lucid: overload1arg__Fi" "overload1arg(int)"
-    test_demangling_exact "lucid: overload1arg__Fl" "overload1arg(long)"
-    test_demangling_exact "lucid: overload1arg__Fs" "overload1arg(short)"
-    test_demangling_exact "lucid: overload1arg__Fv" "overload1arg(void)"
-    test_demangling_exact "lucid: overloadargs__FiN21" "overloadargs(int, int, int)"
-    test_demangling_exact "lucid: overloadargs__FiN31" "overloadargs(int, int, int, int)"
-    test_demangling_exact "lucid: overloadargs__FiN41" "overloadargs(int, int, int, int, int)"
-    test_demangling_exact "lucid: overloadargs__FiN51" "overloadargs(int, int, int, int, int, int)"
-    test_demangling_exact "lucid: overloadargs__FiN61" "overloadargs(int, int, int, int, int, int, int)"
-
-    test_demangling_exact "lucid: overloadargs__FiN71" "overloadargs(int, int, int, int, int, int, int, int)"
-    test_demangling_exact "lucid: overloadargs__FiN81" "overloadargs(int, int, int, int, int, int, int, int, int)"
-    test_demangling_exact "lucid: overloadargs__FiN91" "overloadargs(int, int, int, int, int, int, int, int, int, int)"
-    test_demangling_exact "lucid: overloadargs__FiN91N11" "overloadargs(int, int, int, int, int, int, int, int, int, int, int)"
-    test_demangling_exact "lucid: overloadargs__FiT1" "overloadargs(int, int)"
-    test_demangling_exact "lucid: polar__FdT1" "polar(double, double)"
-    test_demangling_exact "lucid: pow__F7complexT1" "pow(complex, complex)"
-    test_demangling_exact "lucid: pow__F7complexd" "pow(complex, double)"
-    test_demangling_exact "lucid: pow__F7complexi" "pow(complex, int)"
-    test_demangling_exact "lucid: pow__Fd7complex" "pow(double, complex)"
-    test_demangling_exact "lucid: pstart__FPciT2" "pstart(char *, int, int)"
-    test_demangling_exact "lucid: put__7ostreamFc" "ostream::put(char)"
-
-    test_demangling_exact "lucid: read__7istreamFPci" "istream::read(char *, int)"
-    test_demangling_exact "lucid: resetiosflags__FR3iosl" "resetiosflags(ios &, long)"
-    test_demangling_exact "lucid: restore_errno__FRi" "restore_errno(int &)"
-    test_demangling_exact "lucid: rs_complicated__7istreamFRUc" "istream::rs_complicated(unsigned char &)"
-    test_demangling_exact "lucid: rs_complicated__7istreamFRc" "istream::rs_complicated(char &)"
-    test_demangling_exact "lucid: seekg__7istreamFl8seek_dir" "istream::seekg(long, seek_dir)"
-    test_demangling_exact "lucid: seekoff__12strstreambufFl8seek_diri" "strstreambuf::seekoff(long, seek_dir, int)"
-    test_demangling_exact "lucid: seekoff__9streambufFlQ2_3ios12ios_seek_diri" "streambuf::seekoff(long, ios::ios_seek_dir, int)"
-    test_demangling_exact "lucid: seekpos__9streambufFli" "streambuf::seekpos(long, int)"
-    test_demangling_exact "lucid: set_new_handler__FPFv_v" "set_new_handler(void (*)(void))"
-    test_demangling_exact "lucid: setb__9streambufFPcT1i" "streambuf::setb(char *, char *, int)"
-
-    test_demangling_exact "lucid: setb__FR3iosi" "setb(ios &, int)"
-    test_demangling_exact "lucid: setbuf__11fstreambaseFPci" "fstreambase::setbuf(char *, int)"
-    test_demangling_exact "lucid: setbuf__9streambufFPUci" "streambuf::setbuf(unsigned char *, int)"
-    test_demangling_exact "lucid: setbuf__9streambufFPciT2" "streambuf::setbuf(char *, int, int)"
-    test_demangling_exact "lucid: setf__3iosFlT1" "ios::setf(long, long)"
-    test_demangling_exact "lucid: setfill__FR3iosi" "setfill(ios &, int)"
-    test_demangling_exact "lucid: setg__9streambufFPcN21" "streambuf::setg(char *, char *, char *)"
-    test_demangling_exact "lucid: setp__9streambufFPcT1" "streambuf::setp(char *, char *)"
-
-    test_demangling "lucid: sputn__9streambufFPCci" \
-       "streambuf::sputn\[(\]+(const char|char const) \[*\]+, int\[)\]+"
-    test_demangling "lucid: str__FPCci" \
-       "str\[(\]+(const char|char const) \[*\]+, int\[)\]+"
-    test_demangling_exact "lucid: tie__3iosFP7ostream" "ios::tie(ostream *)"
-    test_demangling_exact "lucid: uconv10__FUlPc" "uconv10(unsigned long, char *)"
-
-    test_demangling "lucid: write__7ostreamFPCci" \
-       "ostream::write\[(\]+(const char|char const) \[*\]+, int\[)\]+"
-    test_demangling_exact "lucid: xget__7istreamFPc" "istream::xget(char *)"
-    test_demangling_exact "lucid: xsgetn__9streambufFPci" "streambuf::xsgetn(char *, int)"
-    test_demangling "lucid: xsputn__9streambufFPCci" \
-       "streambuf::xsputn\[(\]+(const char|char const) \[*\]+, int\[)\]+"
-
-    test_demangling_exact "lucid: _Utf390_1__1_9223372036854775807__9223372036854775" \
-           "Can't demangle \"_Utf390_1__1_9223372036854775807__9223372036854775\""
-}
-
-#
-#  Test arm style name demangling
-#
-
-proc test_arm_style_demangling {} {
-    test_demangling_exact "arm: __dt__21T5__pt__11_PFiPPdPv_iFv" "T5<int (*)(int, double **, void *)>::~T5(void)"
-
-    test_demangling_exact "arm: __ct__1cFi" "c::c(int)"
-
-    test_demangling_exact "arm: __dt__11T5__pt__2_iFv" "T5<int>::~T5(void)"
-
-    test_demangling_exact "arm: __dt__11T5__pt__2_cFv" "T5<char>::~T5(void)"
-
-    test_demangling_exact "arm: __ct__2T2Fi" "T2::T2(int)"
-    test_demangling_exact "arm: __dt__2T1Fv" "T1::~T1(void)"
-
-    test_demangling_exact "arm: __dt__12T5__pt__3_1xFv" "T5<x>::~T5(void)"
-
-    test_demangling_exact "arm: __dt__17T5__pt__8_PFcPv_iFv" "T5<int (*)(char, void *)>::~T5(void)"
-
-    test_demangling "arm: g__FP1cPC1cT1" \
-       "g\[(\]+c *\[*\]+, (const c|c const) *\[*\]+, c *\[*\]+\[)\]+"
-    test_demangling "arm: g__FPUlPCUlT1" \
-       "g\[(\]+unsigned long \[*\]+, (const unsigned long|unsigned long const) \[*\]+, unsigned long \[*\]+\[)\]+"
-    test_demangling "arm: g__FPUiPCUiT1" \
-       "g\[(\]+unsigned int \[*\]+, (const unsigned int|unsigned int const) \[*\]+, unsigned int \[*\]+\[)\]+"
-    test_demangling "arm: g__FPUsPCUsT1" \
-       "g\[(\]+unsigned short \[*\]+, (const unsigned short|unsigned short const) \[*\]+, unsigned short \[*\]+\[)\]+"
-    test_demangling "arm: g__FPUcPCUcT1" \
-       "g\[(\]+unsigned char \[*\]+, (const unsigned char|unsigned char const) \[*\]+, unsigned char \[*\]+\[)\]+"
-    test_demangling "arm: g__F1TPlPClT2" \
-       "g\[(\]+T, long \[*\]+, (const long|long const) \[*\]+, long \[*\]+\[)\]+"
-    test_demangling "arm: g__F1RRlRClT2" \
-       "g\[(\]+R, long &, (const long|long const) &, long &\[)\]+"
-    test_demangling "arm: g__F1TPiPCiT2" \
-       "g\[(\]+T, int \[*\]+, (const int|int const) \[*\]+, int \[*\]+\[)\]+"
-    test_demangling "arm: g__F1RRiRCiT2" \
-       "g\[(\]+R, int &, (const int|int const) &, int &\[)\]+"
-    test_demangling "arm: g__F1TPsPCsT2" \
-       "g\[(\]+T, short \[*\]+, (const short|short const) \[*\]+, short \[*\]+\[)\]+"
-    test_demangling "arm: g__F1RRsRCsT2" \
-       "g\[(\]+R, short &, (const short|short const) &, short &\[)\]+"
-    test_demangling "arm: g__F1TPcPCcT2" \
-       "g\[(\]+T, char \[*\]+, (const char|char const) \[*\]+, char \[*\]+\[)\]+"
-    test_demangling "arm: g__F1RRcRCcT2" \
-       "g\[(\]+R, char &, (const char|char const) &, char &\[)\]+"
-
-    test_demangling_exact "arm: __ct__21T5__pt__11_PFiPPdPv_iFi" "T5<int (*)(int, double **, void *)>::T5(int)"
-
-    test_demangling "arm: __gt__FRC2T2c" \
-       "operator>\[(\]+(const T2|T2 const) &, char\[)\]+"
-    test_demangling "arm: __ge__FRC2T2c" \
-       "operator>=\[(\]+(const T2|T2 const) &, char\[)\]+"
-    test_demangling "arm: __lt__FRC2T2c" \
-       "operator<\[(\]+(const T2|T2 const) &, char\[)\]+"
-
-    test_demangling "arm: __le__FRC2T2c" \
-       "operator<=\[(\]+(const T2|T2 const) &, char\[)\]+"
-    test_demangling "arm: __ne__FRC2T2c" \
-       "operator!=\[(\]+(const T2|T2 const) &, char\[)\]+"
-    test_demangling "arm: __eq__FRC2T2c" \
-       "operator==\[(\]+(const T2|T2 const) &, char\[)\]+"
-    test_demangling_exact "arm: __amd__FR2T2i" "operator%=(T2 &, int)"
-    test_demangling_exact "arm: __adv__FR2T2i" "operator/=(T2 &, int)"
-    test_demangling_exact "arm: __amu__FR2T2i" "operator*=(T2 &, int)"
-    test_demangling_exact "arm: __ami__FR2T2i" "operator-=(T2 &, int)"
-    test_demangling_exact "arm: __apl__FR2T2i" "operator+=(T2 &, int)"
-    test_demangling_exact "arm: __nw__2T1SFUi" "T1::operator new(unsigned int) static"
-    test_demangling_exact "arm: __dl__2T1SFPv" "T1::operator delete(void *) static"
-    test_demangling_exact "arm: put__2T7SFi" "T7::put(int) static"
-
-    test_demangling_exact "arm: __dl__12T5__pt__3_1xSFPv" "T5<x>::operator delete(void *) static"
-
-    test_demangling_exact "arm: h__FUc" "h(unsigned char)"
-    test_demangling_exact "arm: f__Fic" "f(int, char)"
-    test_demangling_exact "arm: h__FUi" "h(unsigned int)"
-    test_demangling_exact "arm: h__Fci" "h(char, int)"
-    test_demangling_exact "arm: h__FUl" "h(unsigned long)"
-    test_demangling_exact "arm: h__Fcl" "h(char, long)"
-    test_demangling_exact "arm: h__FUs" "h(unsigned short)"
-    test_demangling_exact "arm: h__Fcs" "h(char, short)"
-    test_demangling "arm: __amd__FR2T2RC2T2" \
-       "operator%=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
-    test_demangling "arm: __adv__FR2T2RC2T2" \
-       "operator/=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
-    test_demangling "arm: __amu__FR2T2RC2T2" \
-       "operator\[*\]+=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
-    test_demangling "arm: __ami__FR2T2RC2T2" \
-       "operator-=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
-    test_demangling "arm: __apl__FR2T2RC2T2" \
-       "operator\[+\]+=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
-
-    test_demangling "arm: g__F1SRPUlRPCUlT2" \
-       "g\[(\]+S, unsigned long \[*\]+&, (const unsigned long|unsigned long const) \[*\]+&, unsigned long \[*\]+&\[)\]+"
-    test_demangling "arm: g__F1SRPUiRPCUiT2" \
-       "g\[(\]+S, unsigned int \[*\]+&, (const unsigned int|unsigned int const) \[*\]+&, unsigned int \[*\]+&\[)\]+"
-    test_demangling "arm: g__F1SRPUsRPCUsT2" \
-       "g\[(\]+S, unsigned short \[*\]+&, (const unsigned short|unsigned short const) \[*\]+&, unsigned short \[*\]+&\[)\]+"
-    test_demangling "arm: g__F1SRPUcRPCUcT2" \
-       "g\[(\]+S, unsigned char \[*\]+&, (const unsigned char|unsigned char const) \[*\]+&, unsigned char \[*\]+&\[)\]+"
-    test_demangling "arm: g__F1T1SRPlRPClT3" \
-       "g\[(\]+T, S, long \[*\]+&, (const long|long const) \[*\]+&, long \[*\]+&\[)\]+"
-    test_demangling "arm: g__F1T1SRPiRPCiT3" \
-       "g\[(\]+T, S, int \[*\]+&, (const int|int const) \[*\]+&, int \[*\]+&\[)\]+"
-    test_demangling "arm: g__F1T1SRPcRPCcT3" \
-       "g\[(\]+T, S, char \[*\]+&, (const char|char const) \[*\]+&, char \[*\]+&\[)\]+"
-
-    test_demangling_exact "arm: X__12T5__pt__3_1x" "T5<x>::X"
-
-    test_demangling_exact "arm: __ct__11T5__pt__2_iFi" "T5<int>::T5(int)"
-
-    test_demangling_exact "arm: __ct__11T5__pt__2_cFi" "T5<char>::T5(int)"
-
-    test_demangling "arm: __gt__FRC2T2T1" \
-       "operator>\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
-    test_demangling "arm: __ge__FRC2T2T1" \
-       "operator>=\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
-    test_demangling "arm: __lt__FRC2T2T1" \
-       "operator<\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
-    test_demangling "arm: __le__FRC2T2T1" \
-       "operator<=\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
-    test_demangling "arm: __ne__FRC2T2T1" \
-       "operator!=\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
-    test_demangling "arm: __eq__FRC2T2T1" \
-       "operator==\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
-    test_demangling "arm: g__FcR1cRC1cT2" \
-       "g\[(\]+char, c &, (const c|c const) &, c &\[)\]+"
-    test_demangling "arm: g__FcRPdRPCdT2" \
-       "g\[(\]+char, double *\[*\]+&, (const double|double const) *\[*\]+&, double *\[*\]+&\[)\]+"
-    test_demangling "arm: g__FcRPfRPCfT2" \
-       "g\[(\]+char, float *\[*\]+&, (const float|float const) *\[*\]+&, float *\[*\]+&\[)\]+"
-    test_demangling_exact "arm: h__FcT1" "h(char, char)"
-    test_demangling_exact "arm: f__Ficd" "f(int, char, double)"
-    test_demangling "arm: g__F1T1SdRPsRPCsT4" \
-       "g\[(\]+T, S, double, short \[*\]+&, (const short|short const) \[*\]+&, short \[*\]+&\[)\]+"
-    test_demangling "arm: g__F1cC1cT1" \
-       "g\[(\]+c, (const c|c const), c\[)\]+"
-    test_demangling "arm: g__FPdPCdT1" \
-       "g\[(\]+double *\[*\]+, (const double|double const) *\[*\]+, double *\[*\]+\[)\]+"
-    test_demangling "arm: g__FPfPCfT1" \
-       "g\[(\]+float *\[*\]+, (const float|float const) *\[*\]+, float *\[*\]+\[)\]+"
-
-    test_demangling "arm: g__FUlCUlT1" \
-       "g\[(\]+unsigned long, (const unsigned long|unsigned long const), unsigned long\[)\]+"
-    test_demangling "arm: g__FPlPClT1" \
-       "g\[(\]+long \[*\]+, (const long|long const) \[*\]+, long \[*\]+\[)\]+"
-    test_demangling "arm: g__FUiCUiT1" \
-       "g\[(\]+unsigned int, (const unsigned int|unsigned int const), unsigned int\[)\]+"
-    test_demangling "arm: g__FPiPCiT1" \
-       "g\[(\]+int \[*\]+, (const int|int const) \[*\]+, int \[*\]+\[)\]+"
-    test_demangling "arm: g__FUsCUsT1" \
-       "g\[(\]+unsigned short, (const unsigned short|unsigned short const), unsigned short\[)\]+"
-    test_demangling "arm: g__FPsPCsT1" \
-       "g\[(\]+short \[*\]+, (const short|short const) \[*\]+, short \[*\]+\[)\]+"
-    test_demangling "arm: g__FUcCUcT1" \
-       "g\[(\]+unsigned char, (const unsigned char|unsigned char const), unsigned char\[)\]+"
-    test_demangling "arm: g__FPcPCcT1" \
-       "g\[(\]+char \[*\]+, (const char|char const) \[*\]+, char \[*\]+\[)\]+"
-    test_demangling "arm: g__F1TlClT2" \
-       "g\[(\]+T, long, (const long|long const), long\[)\]+"
-    test_demangling "arm: g__F1TiCiT2" \
-       "g\[(\]+T, int, (const int|int const), int\[)\]+"
-    test_demangling "arm: g__F1TsCsT2" \
-       "g\[(\]+T, short, (const short|short const), short\[)\]+"
-    test_demangling "arm: g__F1TcCcT2" \
-       "g\[(\]+T, char, (const char|char const), char\[)\]+"
-
-    test_demangling_exact "arm: __dl__17T5__pt__8_PFcPv_iSFPv" "T5<int (*)(char, void *)>::operator delete(void *) static"
-
-    test_demangling "arm: printf__FPCce" \
-       "printf\[(\]+(const char|char const) \[*\]+,...\[)\]+"
-
-    test_demangling_exact "arm: X__17T5__pt__8_PFcPv_i" "T5<int (*)(char, void *)>::X"
-
-    test_demangling_exact "arm: __ct__12T5__pt__3_1xFi" "T5<x>::T5(int)"
-
-    test_demangling "arm: g__F1SRUlRCUlT2" \
-       "g\[(\]+S, unsigned long &, (const unsigned long|unsigned long const) &, unsigned long &\[)\]+"
-    test_demangling "arm: g__F1SRPlRPClT2" \
-       "g\[(\]+S, long \[*\]+&, (const long|long const) \[*\]+&, long \[*\]+&\[)\]+"
-    test_demangling "arm: g__F1RRUiRCUiT2" \
-       "g\[(\]+R, unsigned int &, (const unsigned int|unsigned int const) &, unsigned int &\[)\]+"
-    test_demangling "arm: g__F1SRPiRPCiT2" \
-       "g\[(\]+S, int \[*\]+&, (const int|int const) \[*\]+&, int \[*\]+&\[)\]+"
-    test_demangling "arm: g__F1RRUsRCUsT2" \
-       "g\[(\]+R, unsigned short &, (const unsigned short|unsigned short const) &, unsigned short &\[)\]+"
-    test_demangling "arm: g__F1SRPsRPCsT2" \
-       "g\[(\]+S, short \[*\]+&, (const short|short const) \[*\]+&, short \[*\]+&\[)\]+"
-    test_demangling "arm: g__F1RRUcRCUcT2" \
-       "g\[(\]+R, unsigned char &, (const unsigned char|unsigned char const) &, unsigned char &\[)\]+"
-    test_demangling "arm: g__F1SRPcRPCcT2" \
-       "g\[(\]+S, char \[*\]+&, (const char|char const) \[*\]+&, char \[*\]+&\[)\]+"
-    test_demangling "arm: g__F1T1RRlRClT3" \
-       "g\[(\]+T, R, long &, (const long|long const) &, long &\[)\]+"
-    test_demangling "arm: g__F1T1RRiRCiT3" \
-       "g\[(\]+T, R, int &, (const int|int const) &, int &\[)\]+"
-    test_demangling "arm: g__F1T1RRsRCsT3" \
-       "g\[(\]+T, R, short &, (const short|short const) &, short &\[)\]+"
-    test_demangling "arm: g__F1T1RRcRCcT3" \
-       "g\[(\]+T, R, char &, (const char|char const) &, char &\[)\]+"
-
-    test_demangling_exact "arm: __dl__21T5__pt__11_PFiPPdPv_iSFPv" "T5<int (*)(int, double **, void *)>::operator delete(void *) static"
-
-    test_demangling_exact "arm: __std__foo" "global destructors keyed to foo"
-
-    test_demangling_exact "arm: __sti__bar" "global constructors keyed to bar"
-
-    test_demangling_exact "arm: f__FicdPcPFci_v" "f(int, char, double, char *, void (*)(char, int))"
-    test_demangling_exact "arm: f__FicdPcPFic_v" "f(int, char, double, char *, void (*)(int, char))"
-    test_demangling_exact "arm: get__2T7SFv" "T7::get(void) static"
-
-    test_demangling_exact "arm: X__21T5__pt__11_PFiPPdPv_i" "T5<int (*)(int, double **, void *)>::X"
-
-    test_demangling "arm: g__FcRdRCdT2" \
-       "g\[(\]+char, double &, (const double|double const) &, double &\[)\]+"
-    test_demangling "arm: g__FcRfRCfT2" \
-       "g\[(\]+char, float &, (const float|float const) &, float &\[)\]+"
-    test_demangling "arm: __md__FC2T2i" \
-       "operator%\[(\]+(const T2|T2 const), int\[)\]+"
-    test_demangling "arm: __dv__FC2T2i" \
-       "operator/\[(\]+(const T2|T2 const), int\[)\]+"
-    test_demangling "arm: __ml__FC2T2i" \
-       "operator\[*\]+\[(\]+(const T2|T2 const), int\[)\]+"
-    test_demangling "arm: __mi__FC2T2i" \
-       "operator-\[(\]+(const T2|T2 const), int\[)\]+"
-    test_demangling "arm: __pl__FC2T2i" \
-       "operator\[+\]+\[(\]+(const T2|T2 const), int\[)\]+"
-
-    test_demangling_exact "arm: __dl__11T5__pt__2_iSFPv" "T5<int>::operator delete(void *) static"
-
-    test_demangling_exact "arm: __dl__11T5__pt__2_cSFPv" "T5<char>::operator delete(void *) static"
-
-    test_demangling_exact "arm: h__Fc" "h(char)"
-    test_demangling_exact "arm: h__Fd" "h(double)"
-    test_demangling_exact "arm: h__Ff" "h(float)"
-    test_demangling_exact "arm: h__Fi" "h(int)"
-    test_demangling_exact "arm: f__Fi" "f(int)"
-    test_demangling_exact "arm: h__Fl" "h(long)"
-
-    test_demangling_exact "arm: h__Fs" "h(short)"
-    test_demangling "arm: __md__FC2T2RC2T2" \
-       "operator%\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
-    test_demangling "arm: __dv__FC2T2RC2T2" \
-       "operator/\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
-    test_demangling "arm: __ml__FC2T2RC2T2" \
-       "operator\[*\]+\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
-    test_demangling "arm: __mi__FC2T2RC2T2" \
-       "operator-\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
-    test_demangling "arm: __pl__FC2T2RC2T2" \
-       "operator\[+\]+\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
-    test_demangling "arm: g__FcRP1cRPC1cT2" \
-       "g\[(\]+char, c *\[*\]+&, (const c|c const) *\[*\]+&, c *\[*\]+&\[)\]+"
-
-    test_demangling_exact "arm: X__11T5__pt__2_c" "T5<char>::X"
-
-    test_demangling_exact "arm: X__11T5__pt__2_i" "T5<int>::X"
-
-    test_demangling "arm: g__FdCdT1" \
-       "g\[(\]+double, (const double|double const), double\[)\]+"
-    test_demangling "arm: g__FfCfT1" \
-       "g\[(\]+float, (const float|float const), float\[)\]+"
-    test_demangling "arm: g__FlClT1" \
-       "g\[(\]+long, (const long|long const), long\[)\]+"
-    test_demangling "arm: g__FiCiT1" \
-       "g\[(\]+int, (const int|int const), int\[)\]+"
-    test_demangling "arm: g__FsCsT1" \
-       "g\[(\]+short, (const short|short const), short\[)\]+"
-    test_demangling "arm: g__FcCcT1" \
-       "g\[(\]+char, (const char|char const), char\[)\]+"
-
-    test_demangling_exact "arm: __ct__17T5__pt__8_PFcPv_iFi" "T5<int (*)(char, void *)>::T5(int)"
-
-    test_demangling_exact "arm: f__FicdPc" "f(int, char, double, char *)"
-    test_demangling_exact "arm: __nw__FUi" "operator new(unsigned int)"
-    test_demangling_exact "arm: __ct__Q3_2T11a1bSFi" "T1::a::b::b(int) static"
-    test_demangling_exact "arm: __dt__Q3_2T11a1bSFi" "T1::a::b::~b(int) static"
-    test_demangling_exact "arm: put__Q3_2T11a1bSFi" "T1::a::b::put(int) static"
-    test_demangling_exact "arm: get__Q2_2T11aSFv" "T1::a::get(void) static"
-    test_demangling_exact "arm: put__2T1SFi" "T1::put(int) static"
-    test_demangling_exact "arm: put__Q5_2T11a1b1c1dSFi" "T1::a::b::c::d::put(int) static"
-    test_demangling_exact "arm: get__Q4_2T11a1b1cSFv" "T1::a::b::c::get(void) static"
-    test_demangling_exact "arm: put__Q2_2T11aSFi" "T1::a::put(int) static"
-    test_demangling_exact "arm: put__Q4_2T11a1b1cSFi" "T1::a::b::c::put(int) static"
-    test_demangling_exact "arm: get__Q3_2T11a1bSFv" "T1::a::b::get(void) static"
-    test_demangling_exact "arm: get__2T1SFv" "T1::get(void) static"
-    test_demangling_exact "arm: get__Q5_2T11a1b1c1dSFv" "T1::a::b::c::d::get(void) static"
-
-    test_demangling_exact "arm: __dt__11T1__pt__2_cFv" "T1<char>::~T1(void)"
-
-    test_demangling_exact "arm: __dt__12T1__pt__3_1tFv" "T1<t>::~T1(void)"
-
-    test_demangling_exact "arm: __dl__12T1__pt__3_1tSFPv" "T1<t>::operator delete(void *) static"
-
-    test_demangling_exact "arm: __ct__11T1__pt__2_cFi" "T1<char>::T1(int)"
-
-    test_demangling_exact "arm: __ct__11T1__pt__2_cFv" "T1<char>::T1(void)"
-
-    test_demangling_exact "arm: __ct__12T1__pt__3_1tFi" "T1<t>::T1(int)"
-
-    test_demangling_exact "arm: __ct__12T1__pt__3_1tFv" "T1<t>::T1(void)"
-
-    test_demangling_exact "arm: __dl__11T1__pt__2_cSFPv" "T1<char>::operator delete(void *) static"
-
-    test_demangling_exact "arm: bar__3fooFPv"       "foo::bar(void *)"
-    test_demangling "arm: bar__3fooFPCv" \
-            "foo::bar\[(\]+(const void|void const) *\[*\]+\[)\]+"
-    test_demangling_exact "arm: bar__3fooCFPv"      "foo::bar(void *) const"
-    test_demangling "arm: bar__3fooCFPCv" \
-           "foo::bar\[(\]+(const void|void const) *\[*\]+\[)\]+ const"
-    test_demangling_exact "arm: __eq__3fooFR3foo"   "foo::operator==(foo &)"
-    test_demangling "arm: __eq__3fooFRC3foo" \
-        "foo::operator==\[(\]+(const foo|foo const) &\[)\]+"
-    test_demangling_exact "arm: __eq__3fooCFR3foo"  "foo::operator==(foo &) const"
-    test_demangling "arm: __eq__3fooCFRC3foo" \
-       "foo::operator==\[(\]+(const foo|foo const) &\[)\]+ const"
-
-    test_demangling_exact "arm: elem__15vector__pt__2_dFi" "vector<double>::elem(int)"
-
-    test_demangling_exact "arm: elem__15vector__pt__2_iFi" "vector<int>::elem(int)"
-
-    test_demangling_exact "arm: __ct__15vector__pt__2_dFi" "vector<double>::vector(int)"
-
-    test_demangling_exact "arm: __ct__15vector__pt__2_iFi" "vector<int>::vector(int)"
-
-    test_demangling_exact "arm: __ct__25DListNode__pt__9_R6RLabelFR6RLabelP25DListNode__pt__9_R6RLabelT2" \
-       "DListNode<RLabel &>::DListNode(RLabel &, DListNode<RLabel &> *, DListNode<RLabel &> *)"
-
-    test_demangling_exact "arm: bar__3fooFiT16FooBar" "foo::bar(int, int, FooBar)"
-
-    test_demangling_exact "arm: bar__3fooFPiN51PdN37PcN211T1iN215" \
-      "foo::bar(int *, int *, int *, int *, int *, int *, double *, double *, double *, double *, char *, char *, char *, int *, int, int, int)"
-
-    test_demangling_exact "arm: _Utf390_1__1_9223372036854775807__9223372036854775" \
-           "Can't demangle \"_Utf390_1__1_9223372036854775807__9223372036854775\""
-}
-
-proc test_hp_style_demangling {} {
-
-    # HP aCC mangling style is based on ARM for all the basic stuff,
-    # so first we use some of the ARM tests here.  Later we have HP-specific
-    # tests.
-        
-    test_demangling "hp: g__FP1cPC1cT1" \
-       "g\[(\]+c *\[*\]+, (const c|c const) *\[*\]+, c *\[*\]+\[)\]+"
-    test_demangling "hp: g__FPUlPCUlT1" \
-       "g\[(\]+unsigned long \[*\]+, (const unsigned long|unsigned long const) \[*\]+, unsigned long \[*\]+\[)\]+"
-    test_demangling "hp: g__FPUiPCUiT1" \
-       "g\[(\]+unsigned int \[*\]+, (const unsigned int|unsigned int const) \[*\]+, unsigned int \[*\]+\[)\]+"
-    test_demangling "hp: g__FPUsPCUsT1" \
-       "g\[(\]+unsigned short \[*\]+, (const unsigned short|unsigned short const) \[*\]+, unsigned short \[*\]+\[)\]+"
-    test_demangling "hp: g__FPUcPCUcT1" \
-       "g\[(\]+unsigned char \[*\]+, (const unsigned char|unsigned char const) \[*\]+, unsigned char \[*\]+\[)\]+"
-    test_demangling "hp: g__F1TPlPClT2" \
-       "g\[(\]+T, long \[*\]+, (const long|long const) \[*\]+, long \[*\]+\[)\]+"
-    test_demangling "hp: g__F1RRlRClT2" \
-       "g\[(\]+R, long &, (const long|long const) &, long &\[)\]+"
-    test_demangling "hp: g__F1TPiPCiT2" \
-       "g\[(\]+T, int \[*\]+, (const int|int const) \[*\]+, int \[*\]+\[)\]+"
-    test_demangling "hp: g__F1RRiRCiT2" \
-       "g\[(\]+R, int &, (const int|int const) &, int &\[)\]+"
-    test_demangling "hp: g__F1TPsPCsT2" \
-       "g\[(\]+T, short \[*\]+, (const short|short const) \[*\]+, short \[*\]+\[)\]+"
-    test_demangling "hp: g__F1RRsRCsT2" \
-       "g\[(\]+R, short &, (const short|short const) &, short &\[)\]+"
-    test_demangling "hp: g__F1TPcPCcT2" \
-       "g\[(\]+T, char \[*\]+, (const char|char const) \[*\]+, char \[*\]+\[)\]+"
-    test_demangling "hp: g__F1RRcRCcT2" \
-       "g\[(\]+R, char &, (const char|char const) &, char &\[)\]+"
-
-    test_demangling "hp: __gt__FRC2T2c" \
-       "operator>\[(\]+(const T2|T2 const) &, char\[)\]+"
-    test_demangling "hp: __ge__FRC2T2c" \
-       "operator>=\[(\]+(const T2|T2 const) &, char\[)\]+"
-    test_demangling "hp: __lt__FRC2T2c" \
-       "operator<\[(\]+(const T2|T2 const) &, char\[)\]+"
-
-    test_demangling "hp: __le__FRC2T2c" \
-       "operator<=\[(\]+(const T2|T2 const) &, char\[)\]+"
-    test_demangling "hp: __ne__FRC2T2c" \
-       "operator!=\[(\]+(const T2|T2 const) &, char\[)\]+"
-    test_demangling "hp: __eq__FRC2T2c" \
-       "operator==\[(\]+(const T2|T2 const) &, char\[)\]+"
-    test_demangling_exact "hp: __amd__FR2T2i" "operator%=(T2 &, int)"
-    test_demangling_exact "hp: __adv__FR2T2i" "operator/=(T2 &, int)"
-    test_demangling_exact "hp: __amu__FR2T2i" "operator*=(T2 &, int)"
-    test_demangling_exact "hp: __ami__FR2T2i" "operator-=(T2 &, int)"
-    test_demangling_exact "hp: __apl__FR2T2i" "operator+=(T2 &, int)"
-    test_demangling_exact "hp: __nw__2T1SFUi" "T1::operator new(unsigned int) static"
-    test_demangling_exact "hp: __dl__2T1SFPv" "T1::operator delete(void *) static"
-    test_demangling_exact "hp: put__2T7SFi" "T7::put(int) static"
-
-    test_demangling_exact "hp: h__FUc" "h(unsigned char)"
-    test_demangling_exact "hp: f__Fic" "f(int, char)"
-    test_demangling_exact "hp: h__FUi" "h(unsigned int)"
-    test_demangling_exact "hp: h__Fci" "h(char, int)"
-    test_demangling_exact "hp: h__FUl" "h(unsigned long)"
-    test_demangling_exact "hp: h__Fcl" "h(char, long)"
-    test_demangling_exact "hp: h__FUs" "h(unsigned short)"
-    test_demangling_exact "hp: h__Fcs" "h(char, short)"
-    test_demangling "hp: __amd__FR2T2RC2T2" \
-       "operator%=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
-    test_demangling "hp: __adv__FR2T2RC2T2" \
-       "operator/=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
-    test_demangling "hp: __amu__FR2T2RC2T2" \
-       "operator\[*\]+=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
-    test_demangling "hp: __ami__FR2T2RC2T2" \
-       "operator-=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
-    test_demangling "hp: __apl__FR2T2RC2T2" \
-       "operator\[+\]+=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
-
-    test_demangling "hp: g__F1SRPUlRPCUlT2" \
-       "g\[(\]+S, unsigned long \[*\]+&, (const unsigned long|unsigned long const) \[*\]+&, unsigned long \[*\]+&\[)\]+"
-    test_demangling "hp: g__F1SRPUiRPCUiT2" \
-       "g\[(\]+S, unsigned int \[*\]+&, (const unsigned int|unsigned int const) \[*\]+&, unsigned int \[*\]+&\[)\]+"
-    test_demangling "hp: g__F1SRPUsRPCUsT2" \
-       "g\[(\]+S, unsigned short \[*\]+&, (const unsigned short|unsigned short const) \[*\]+&, unsigned short \[*\]+&\[)\]+"
-    test_demangling "hp: g__F1SRPUcRPCUcT2" \
-       "g\[(\]+S, unsigned char \[*\]+&, (const unsigned char|unsigned char const) \[*\]+&, unsigned char \[*\]+&\[)\]+"
-    test_demangling "hp: g__F1T1SRPlRPClT3" \
-       "g\[(\]+T, S, long \[*\]+&, (const long|long const) \[*\]+&, long \[*\]+&\[)\]+"
-    test_demangling "hp: g__F1T1SRPiRPCiT3" \
-       "g\[(\]+T, S, int \[*\]+&, (const int|int const) \[*\]+&, int \[*\]+&\[)\]+"
-    test_demangling "hp: g__F1T1SRPcRPCcT3" \
-       "g\[(\]+T, S, char \[*\]+&, (const char|char const) \[*\]+&, char \[*\]+&\[)\]+"
-
-
-    test_demangling "hp: __gt__FRC2T2T1" \
-       "operator>\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
-    test_demangling "hp: __ge__FRC2T2T1" \
-       "operator>=\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
-    test_demangling "hp: __lt__FRC2T2T1" \
-       "operator<\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
-    test_demangling "hp: __le__FRC2T2T1" \
-       "operator<=\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
-    test_demangling "hp: __ne__FRC2T2T1" \
-       "operator!=\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
-    test_demangling "hp: __eq__FRC2T2T1" \
-       "operator==\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
-    test_demangling "hp: g__FcR1cRC1cT2" \
-       "g\[(\]+char, c &, (const c|c const) &, c &\[)\]+"
-    test_demangling "hp: g__FcRPdRPCdT2" \
-       "g\[(\]+char, double *\[*\]+&, (const double|double const) *\[*\]+&, double *\[*\]+&\[)\]+"
-    test_demangling "hp: g__FcRPfRPCfT2" \
-       "g\[(\]+char, float *\[*\]+&, (const float|float const) *\[*\]+&, float *\[*\]+&\[)\]+"
-    test_demangling_exact "hp: h__FcT1" "h(char, char)"
-    test_demangling_exact "hp: f__Ficd" "f(int, char, double)"
-    test_demangling "hp: g__F1T1SdRPsRPCsT4" \
-       "g\[(\]+T, S, double, short \[*\]+&, (const short|short const) \[*\]+&, short \[*\]+&\[)\]+"
-    test_demangling "hp: g__F1cC1cT1" \
-       "g\[(\]+c, (const c|c const), c\[)\]+"
-    test_demangling "hp: g__FPdPCdT1" \
-       "g\[(\]+double *\[*\]+, (const double|double const) *\[*\]+, double *\[*\]+\[)\]+"
-    test_demangling "hp: g__FPfPCfT1" \
-       "g\[(\]+float *\[*\]+, (const float|float const) *\[*\]+, float *\[*\]+\[)\]+"
-
-    test_demangling "hp: g__FUlCUlT1" \
-       "g\[(\]+unsigned long, (const unsigned long|unsigned long const), unsigned long\[)\]+"
-    test_demangling "hp: g__FPlPClT1" \
-       "g\[(\]+long \[*\]+, (const long|long const) \[*\]+, long \[*\]+\[)\]+"
-    test_demangling "hp: g__FUiCUiT1" \
-       "g\[(\]+unsigned int, (const unsigned int|unsigned int const), unsigned int\[)\]+"
-    test_demangling "hp: g__FPiPCiT1" \
-       "g\[(\]+int \[*\]+, (const int|int const) \[*\]+, int \[*\]+\[)\]+"
-    test_demangling "hp: g__FUsCUsT1" \
-       "g\[(\]+unsigned short, (const unsigned short|unsigned short const), unsigned short\[)\]+"
-    test_demangling "hp: g__FPsPCsT1" \
-       "g\[(\]+short \[*\]+, (const short|short const) \[*\]+, short \[*\]+\[)\]+"
-    test_demangling "hp: g__FUcCUcT1" \
-       "g\[(\]+unsigned char, (const unsigned char|unsigned char const), unsigned char\[)\]+"
-    test_demangling "hp: g__FPcPCcT1" \
-       "g\[(\]+char \[*\]+, (const char|char const) \[*\]+, char \[*\]+\[)\]+"
-    test_demangling "hp: g__F1TlClT2" \
-       "g\[(\]+T, long, (const long|long const), long\[)\]+"
-    test_demangling "hp: g__F1TiCiT2" \
-       "g\[(\]+T, int, (const int|int const), int\[)\]+"
-    test_demangling "hp: g__F1TsCsT2" \
-       "g\[(\]+T, short, (const short|short const), short\[)\]+"
-    test_demangling "hp: g__F1TcCcT2" \
-       "g\[(\]+T, char, (const char|char const), char\[)\]+"
-
-    test_demangling "hp: printf__FPCce" \
-       "printf\[(\]+(const char|char const) \[*\]+,...\[)\]+"
-
-
-    test_demangling "hp: g__F1SRUlRCUlT2" \
-       "g\[(\]+S, unsigned long &, (const unsigned long|unsigned long const) &, unsigned long &\[)\]+"
-    test_demangling "hp: g__F1SRPlRPClT2" \
-       "g\[(\]+S, long \[*\]+&, (const long|long const) \[*\]+&, long \[*\]+&\[)\]+"
-    test_demangling "hp: g__F1RRUiRCUiT2" \
-       "g\[(\]+R, unsigned int &, (const unsigned int|unsigned int const) &, unsigned int &\[)\]+"
-    test_demangling "hp: g__F1SRPiRPCiT2" \
-       "g\[(\]+S, int \[*\]+&, (const int|int const) \[*\]+&, int \[*\]+&\[)\]+"
-    test_demangling "hp: g__F1RRUsRCUsT2" \
-       "g\[(\]+R, unsigned short &, (const unsigned short|unsigned short const) &, unsigned short &\[)\]+"
-    test_demangling "hp: g__F1SRPsRPCsT2" \
-       "g\[(\]+S, short \[*\]+&, (const short|short const) \[*\]+&, short \[*\]+&\[)\]+"
-    test_demangling "hp: g__F1RRUcRCUcT2" \
-       "g\[(\]+R, unsigned char &, (const unsigned char|unsigned char const) &, unsigned char &\[)\]+"
-    test_demangling "hp: g__F1SRPcRPCcT2" \
-       "g\[(\]+S, char \[*\]+&, (const char|char const) \[*\]+&, char \[*\]+&\[)\]+"
-    test_demangling "hp: g__F1T1RRlRClT3" \
-       "g\[(\]+T, R, long &, (const long|long const) &, long &\[)\]+"
-    test_demangling "hp: g__F1T1RRiRCiT3" \
-       "g\[(\]+T, R, int &, (const int|int const) &, int &\[)\]+"
-    test_demangling "hp: g__F1T1RRsRCsT3" \
-       "g\[(\]+T, R, short &, (const short|short const) &, short &\[)\]+"
-    test_demangling "hp: g__F1T1RRcRCcT3" \
-       "g\[(\]+T, R, char &, (const char|char const) &, char &\[)\]+"
-
-
-    test_demangling_exact "hp: f__FicdPcPFci_v" "f(int, char, double, char *, void (*)(char, int))"
-    test_demangling_exact "hp: f__FicdPcPFic_v" "f(int, char, double, char *, void (*)(int, char))"
-    test_demangling_exact "hp: get__2T7SFv" "T7::get(void) static"
-
-
-    test_demangling "hp: g__FcRdRCdT2" \
-       "g\[(\]+char, double &, (const double|double const) &, double &\[)\]+"
-    test_demangling "hp: g__FcRfRCfT2" \
-       "g\[(\]+char, float &, (const float|float const) &, float &\[)\]+"
-    test_demangling "hp: __md__FC2T2i" \
-       "operator%\[(\]+(const T2|T2 const), int\[)\]+"
-    test_demangling "hp: __dv__FC2T2i" \
-       "operator/\[(\]+(const T2|T2 const), int\[)\]+"
-    test_demangling "hp: __ml__FC2T2i" \
-       "operator\[*\]+\[(\]+(const T2|T2 const), int\[)\]+"
-    test_demangling "hp: __mi__FC2T2i" \
-       "operator-\[(\]+(const T2|T2 const), int\[)\]+"
-    test_demangling "hp: __pl__FC2T2i" \
-       "operator\[+\]+\[(\]+(const T2|T2 const), int\[)\]+"
-
-
-    test_demangling_exact "hp: h__Fc" "h(char)"
-    test_demangling_exact "hp: h__Fd" "h(double)"
-    test_demangling_exact "hp: h__Ff" "h(float)"
-    test_demangling_exact "hp: h__Fi" "h(int)"
-    test_demangling_exact "hp: f__Fi" "f(int)"
-    test_demangling_exact "hp: h__Fl" "h(long)"
-
-    test_demangling_exact "hp: h__Fs" "h(short)"
-    test_demangling "hp: __md__FC2T2RC2T2" \
-       "operator%\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
-    test_demangling "hp: __dv__FC2T2RC2T2" \
-       "operator/\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
-    test_demangling "hp: __ml__FC2T2RC2T2" \
-       "operator\[*\]+\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
-    test_demangling "hp: __mi__FC2T2RC2T2" \
-       "operator-\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
-    test_demangling "hp: __pl__FC2T2RC2T2" \
-       "operator\[+\]+\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
-    test_demangling "hp: g__FcRP1cRPC1cT2" \
-       "g\[(\]+char, c *\[*\]+&, (const c|c const) *\[*\]+&, c *\[*\]+&\[)\]+"
-
-
-    test_demangling "hp: g__FdCdT1" \
-       "g\[(\]+double, (const double|double const), double\[)\]+"
-    test_demangling "hp: g__FfCfT1" \
-       "g\[(\]+float, (const float|float const), float\[)\]+"
-    test_demangling "hp: g__FlClT1" \
-       "g\[(\]+long, (const long|long const), long\[)\]+"
-    test_demangling "hp: g__FiCiT1" \
-       "g\[(\]+int, (const int|int const), int\[)\]+"
-    test_demangling "hp: g__FsCsT1" \
-       "g\[(\]+short, (const short|short const), short\[)\]+"
-    test_demangling "hp: g__FcCcT1" \
-       "g\[(\]+char, (const char|char const), char\[)\]+"
-
-
-    test_demangling_exact "hp: f__FicdPc" "f(int, char, double, char *)"
-    test_demangling_exact "hp: __nw__FUi" "operator new(unsigned int)"
-    test_demangling_exact "hp: __ct__Q3_2T11a1bSFi" "T1::a::b::b(int) static"
-    test_demangling_exact "hp: __dt__Q3_2T11a1bSFi" "T1::a::b::~b(int) static"
-    test_demangling_exact "hp: put__Q3_2T11a1bSFi" "T1::a::b::put(int) static"
-    test_demangling_exact "hp: get__Q2_2T11aSFv" "T1::a::get(void) static"
-    test_demangling_exact "hp: put__2T1SFi" "T1::put(int) static"
-    test_demangling_exact "hp: put__Q5_2T11a1b1c1dSFi" "T1::a::b::c::d::put(int) static"
-    test_demangling_exact "hp: get__Q4_2T11a1b1cSFv" "T1::a::b::c::get(void) static"
-    test_demangling_exact "hp: put__Q2_2T11aSFi" "T1::a::put(int) static"
-    test_demangling_exact "hp: put__Q4_2T11a1b1cSFi" "T1::a::b::c::put(int) static"
-    test_demangling_exact "hp: get__Q3_2T11a1bSFv" "T1::a::b::get(void) static"
-    test_demangling_exact "hp: get__2T1SFv" "T1::get(void) static"
-    test_demangling_exact "hp: get__Q5_2T11a1b1c1dSFv" "T1::a::b::c::d::get(void) static"
-
-
-    test_demangling_exact "hp: bar__3fooFPv"       "foo::bar(void *)"
-    test_demangling "hp: bar__3fooFPCv" \
-            "foo::bar\[(\]+(const void|void const) *\[*\]+\[)\]+"
-    test_demangling_exact "hp: bar__3fooCFPv"      "foo::bar(void *) const"
-    test_demangling "hp: bar__3fooCFPCv" \
-           "foo::bar\[(\]+(const void|void const) *\[*\]+\[)\]+ const"
-    test_demangling_exact "hp: __eq__3fooFR3foo"   "foo::operator==(foo &)"
-    test_demangling "hp: __eq__3fooFRC3foo" \
-        "foo::operator==\[(\]+(const foo|foo const) &\[)\]+"
-    test_demangling_exact "hp: __eq__3fooCFR3foo"  "foo::operator==(foo &) const"
-    test_demangling "hp: __eq__3fooCFRC3foo" \
-       "foo::operator==\[(\]+(const foo|foo const) &\[)\]+ const"
-
-    test_demangling_exact "hp: bar__3fooFiT16FooBar" "foo::bar(int, int, FooBar)"
-
-    test_demangling_exact "hp: bar__3fooFPiN51PdN37PcN211T1iN215" \
-      "foo::bar(int *, int *, int *, int *, int *, int *, double *, double *, double *, double *, char *, char *, char *, int *, int, int, int)"
-
-
-    # HP aCC specific tests. HP aCC demangling does not use __pt__ for
-    # template specifications.  There are other differences as well.
-
-    test_demangling_exact "hp: __dt__2T5XTPFiPPdPv_i__Fv" "T5<int (*)(int, double **, void *)>::~T5(void)"
-
-    test_demangling_exact "hp: __ct__1cFi" "c::c(int)"
-
-    test_demangling_exact "hp: __dt__2T5XTi__Fv" "T5<int>::~T5(void)"
-
-    test_demangling_exact "hp: __dt__2T5XTc__Fv" "T5<char>::~T5(void)"
-
-    test_demangling_exact "hp: __ct__2T2Fi" "T2::T2(int)"
-    test_demangling_exact "hp: __dt__2T1Fv" "T1::~T1(void)"
-
-    test_demangling_exact "hp: __dt__2T5XT1x__Fv" "T5<x>::~T5(void)"
-
-    test_demangling_exact "hp: __dt__2T5XTPFcPv_i__Fv" "T5<int (*)(char, void *)>::~T5(void)"
-    
-    test_demangling_exact "hp: __ct__2T5XTPFiPPdPv_i__Fi" "T5<int (*)(int, double **, void *)>::T5(int)"
-
-    test_demangling_exact "hp: __dl__2T5XT1x__SFPv" "T5<x>::operator delete(void *) static"
-    
-    test_demangling_exact "hp: X__2T5XT1x" "T5<x>::X"
-
-    test_demangling_exact "hp: __ct__2T5XTi__Fi" "T5<int>::T5(int)"
-
-    test_demangling_exact "hp: __ct__2T5XTc__Fi" "T5<char>::T5(int)"
-
-    test_demangling_exact "hp: __dl__2T5XTPFcPv_i__SFPv" "T5<int (*)(char, void *)>::operator delete(void *) static"
-
-    test_demangling_exact "hp: X__2T5XTPFcPv_i" "T5<int (*)(char, void *)>::X"
-
-    test_demangling_exact "hp: __ct__2T5XT1x__Fi" "T5<x>::T5(int)"
-
-    test_demangling_exact "hp: __dl__2T5XTPFiPPdPv_i__SFPv" "T5<int (*)(int, double **, void *)>::operator delete(void *) static"
-    test_demangling_exact "hp: X__2T5XTPFiPPdPv_i" "T5<int (*)(int, double **, void *)>::X"
-
-    test_demangling_exact "hp: __dl__2T5XTi__SFPv" "T5<int>::operator delete(void *) static"
-
-    test_demangling_exact "hp: __dl__2T5XTc__SFPv" "T5<char>::operator delete(void *) static"
-
-    test_demangling_exact "hp: X__2T5XTc" "T5<char>::X"
-
-    test_demangling_exact "hp: X__2T5XTi" "T5<int>::X"
-
-    test_demangling_exact "hp: __ct__2T5XTPFcPv_i__Fi" "T5<int (*)(char, void *)>::T5(int)"
-    
-    test_demangling_exact "hp: __dt__2T1XTc__Fv" "T1<char>::~T1(void)"
-
-    test_demangling_exact "hp: __dt__2T1XT1t__Fv" "T1<t>::~T1(void)"
-
-    test_demangling_exact "hp: __dl__2T1XT1t__SFPv" "T1<t>::operator delete(void *) static"
-
-    test_demangling_exact "hp: __ct__2T1XTc__Fi" "T1<char>::T1(int)"
-
-    test_demangling_exact "hp: __ct__2T1XTc__Fv" "T1<char>::T1(void)"
-
-    test_demangling_exact "hp: __ct__2T1XT1t__Fi" "T1<t>::T1(int)"
-
-    test_demangling_exact "hp: __ct__2T1XT1t__Fv" "T1<t>::T1(void)"
-
-    test_demangling_exact "hp: __dl__2T1XTc__SFPv" "T1<char>::operator delete(void *) static"
-
-    test_demangling_exact "hp: elem__6vectorXTd__Fi" "vector<double>::elem(int)"
-
-    test_demangling_exact "hp: elem__6vectorXTi__Fi" "vector<int>::elem(int)"
-
-    test_demangling_exact "hp: __ct__6vectorXTd__Fi" "vector<double>::vector(int)"
-
-    test_demangling_exact "hp: __ct__6vectorXTi__Fi" "vector<int>::vector(int)"
-
-    test_demangling_exact "hp: __ct__9DListNodeXTR6RLabel__FR6RLabelP9DListNodeXTR6RLabel_T2" \
-       "DListNode<RLabel &>::DListNode(RLabel &, DListNode<RLabel &> *, DListNode<RLabel &> *)"
-
-
-    # Absolute integer constants in template args
-
-    test_demangling_exact "hp: elem__6vectorXTiUP34__Fi" "vector<int,34U>::elem(int)"
-    test_demangling_exact "hp: elem__6vectorXUP2701Td__Fi" "vector<2701U,double>::elem(int)"
-    test_demangling_exact "hp: elem__6vectorXTiSP334__Fi" "vector<int,334>::elem(int)"
-    test_demangling_exact "hp: elem__6vectorXTiSN67__Fi" "vector<int,-67>::elem(int)"
-    test_demangling_exact "hp: elem__6vectorXTiSM__SCFPPd" "vector<int,-2147483648>::elem(double **) static const"
-    test_demangling_exact "hp: elem__6vectorXTiSN67UP4000TRs__Fi" "vector<int,-67,4000U,short &>::elem(int)"
-    test_demangling_exact "hp: elem__6vectorXTiSN67TRdTFPv_i__Fi" "vector<int,-67,double &,int (void *)>::elem(int)"
-    test_demangling_exact "hp: X__6vectorXTiSN67TdTPvUP5TRs" "vector<int,-67,double,void *,5U,short &>::X"
-
-    # Named constants in template args
-
-    test_demangling_exact "hp: elem__6vectorXTiA3foo__Fi" "vector<int,&foo>::elem(int)"
-    test_demangling_exact "hp: elem__6vectorXTiA3fooTPvA5Label__FiPPvT2" "vector<int,&foo,void *,&Label>::elem(int, void **, void **)"
-    test_demangling_exact "hp: elem__6vectorXTiSN42A3foo__Fi" "vector<int,-42,&foo>::elem(int)"
-
-    # Alternate entry points for functions
-
-    test_demangling_exact "hp: __ct__2T5XTPFcPv_i__Fi_2" "T5<int (*)(char, void *)>::T5(int)"
-    test_demangling_exact "hp: __ct__2T5XTPFcPv_i__Fi_19" "T5<int (*)(char, void *)>::T5(int)"
-    test_demangling_exact "hp: f__FicdPcPFci_v_34" "f(int, char, double, char *, void (*)(char, int))"
-
-
-    # Template partial specializations
-
-# FIXME!  The # characters don't go through expect, and backslashes don't seem to work.
-#    test_demangling_exact "hp: spec__13Spec<#1,#1.*>XTiTPi_FPi" "Spec<int,int *>::spec(int *)"
-#    test_demangling_exact "hp: spec__16Spec<#1,#1.&,#1>XTiTRiTi_FPi" "Spec<int,int &, int>::spec(int *)"
-# Fake test -- replace # with %
-    test_demangling_exact "hp: spec__13Spec<%1,%1.*>XTiTPi_FPi" "Spec<int,int *>::spec(int *)"
-    test_demangling_exact "hp: spec__16Spec<%1,%1.&,%1>XTiTRiTi_FPi" "Spec<int,int &,int>::spec(int *)"
-
-    # Global template functions
-
-    test_demangling_exact "hp: add__XTc_FcT1" "add<char>(char, char)"
-    test_demangling_exact "hp: add__XTcSP9A5label_FcPPlT1" "add<char,9,&label>(char, long **, char)"
-    test_demangling_exact "hp: add__XTPfTFPd_f_FcT1" "add<float *,float (double *)>(char, char)"
-
-    # Template for template arg
-
-    test_demangling_exact "hp: unLink__12basic_stringXTcT18string_char_traitsXTc_T9allocator_Fv" "basic_string<char,string_char_traits<char>,allocator>::unLink(void)"
-
-    test_demangling_exact "hp: _Utf390_1__1_9223372036854775807__9223372036854775" \
-           "Can't demangle \"_Utf390_1__1_9223372036854775807__9223372036854775\""
-}
-
-
-proc catch_demangling_errors {command} {
-    if {[catch $command result]} {
-       puts "ERROR: demangle.exp: while running $command: $result"
-    }
-}
-
-# Test support for different demangling styles.  Note that this does
-# not depend upon running the test program and does not depend upon
-# gdb being able to lookup any C++ symbols.  It simply calls the 
-# internal demangler with synthesized strings and tests the results.
-
-proc do_tests {} {
-    global prms_id
-    global bug_id
-    global subdir
-    global gdb_prompt
-
-    set prms_id 0
-    set bug_id 0
-
-    # Start with a fresh gdb.
-
-    gdb_exit
-    gdb_start
-
-    send_gdb "set language c++\n"
-    gdb_expect -re "$gdb_prompt $"
-    send_gdb "set width 0\n"
-    gdb_expect -re "$gdb_prompt $"
-
-    # Using catch_demangling_errors this way ensures that, if one of
-    # the functions raises a Tcl error, then it'll get reported, and
-    # the rest of the functions will still run.
-    catch_demangling_errors test_lucid_style_demangling
-    catch_demangling_errors test_gnu_style_demangling
-    catch_demangling_errors test_arm_style_demangling
-    catch_demangling_errors test_hp_style_demangling
-}
-
-do_tests
diff --git a/gdb/testsuite/gdb.c++/derivation.cc b/gdb/testsuite/gdb.c++/derivation.cc
deleted file mode 100644 (file)
index f6d42e7..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-class A {
-public:
-    int a;
-    int aa;
-
-    A()
-    {
-        a=1;
-        aa=2;
-    }
-    int afoo();
-    int foo();
-    
-};
-
-
-
-class B {
-public:
-    int b;
-    int bb;
-
-    B()
-    {
-        b=3;
-        bb=4;
-    }
-    int bfoo();
-    int foo();
-    
-};
-
-
-
-class C {
-public:
-    int c;
-    int cc;
-
-    C()
-    {
-        c=5;
-        cc=6;
-    }
-    int cfoo();
-    int foo();
-    
-};
-
-
-
-class D : private A, public B, protected C {
-public:
-    int d;
-    int dd;
-
-    D()
-    {
-        d =7;
-        dd=8;
-    }
-    int dfoo();
-    int foo();
-    
-};
-
-
-class E : public A, B, protected C {
-public:
-    int e;
-    int ee;
-
-    E()
-    {
-        e =9;
-        ee=10;
-    }
-    int efoo();
-    int foo();
-    
-};
-
-
-class F : A, public B, C {
-public:
-    int f;
-    int ff;
-
-    F()
-    {
-        f =11;
-        ff=12;
-    }
-    int ffoo();
-    int foo();
-    
-};
-
-class G : private A, public B, protected C {
-public:
-    int g;
-    int gg;
-    int a;
-    int b;
-    int c;
-
-    G()
-    {
-        g =13;
-        gg =14;
-        a=15;
-        b=16;
-        c=17;
-        
-    }
-    int gfoo();
-    int foo();
-    
-};
-
-
-
-
-int A::afoo() {
-    return 1;
-}
-
-int B::bfoo() {
-    return 2;
-}
-
-int C::cfoo() {
-    return 3;
-}
-
-int D::dfoo() {
-    return 4;
-}
-
-int E::efoo() {
-    return 5;
-}
-
-int F::ffoo() {
-    return 6;
-}
-
-int G::gfoo() {
-    return 77;
-}
-
-int A::foo()
-{
-    return 7;
-    
-}
-
-int B::foo()
-{
-    return 8;
-    
-}
-
-int C::foo()
-{
-    return 9;
-    
-}
-
-int D::foo()
-{
-    return 10;
-    
-}
-
-int E::foo()
-{
-    return 11;
-    
-}
-
-int F::foo()
-{
-    return 12;
-    
-}
-
-int G::foo()
-{
-    return 13;
-    
-}
-
-
-void marker1()
-{
-}
-
-
-int main(void)
-{
-
-    A a_instance;
-    B b_instance;
-    C c_instance;
-    D d_instance;
-    E e_instance;
-    F f_instance;
-    G g_instance;
-    
-    #ifdef usestubs
-       set_debug_traps();
-       breakpoint();
-    #endif
-    
-
-    marker1(); // marker1-returns-here
-    
-    a_instance.a = 20; // marker1-returns-here
-    a_instance.aa = 21;
-    b_instance.b = 22;
-    b_instance.bb = 23;
-    c_instance.c = 24;
-    c_instance.cc = 25;
-    d_instance.d = 26;
-    d_instance.dd = 27;
-    e_instance.e = 28;
-    e_instance.ee =29;
-    f_instance.f =30;
-    f_instance.ff =31;
-    
-    
-    
-
-    return 0;
-    
-}
-
-    
-    
diff --git a/gdb/testsuite/gdb.c++/derivation.exp b/gdb/testsuite/gdb.c++/derivation.exp
deleted file mode 100644 (file)
index 38a46a2..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-# Copyright 1998, 1999, 2000, 2001, 2002 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 inheritance, with several derivations types combinations (private,
-# public, protected) 
-# classes have simple members and member functions.
-# 
-
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "derivation"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-# Create and source the file that provides information about the compiler
-# used to compile the test case.
-
-if [get_compiler_info ${binfile} "c++"] {
-    return -1
-}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-#
-# set it up at a breakpoint so we can play with the variable values
-#
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-if ![runto 'marker1'] then {
-    perror "couldn't run to marker1"
-    continue
-}
-
-gdb_test "up" ".*main.*" "up from marker1"
-
-
-
-send_gdb "print a_instance\n"
-gdb_expect {
-    -re ".\[0-9\]* = \{a = 1, aa = 2\}\r\n$gdb_prompt $" {
-        pass "print value of a_instance"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of a_instance" }
-    timeout           { fail "(timeout) print value of a_instance" }
-  }
-
-
-send_gdb "ptype a_instance\n"
-gdb_expect {
-    -re "type = class A \{\r\n\[\t \]*public:\r\n\[\t \]*int a;\r\n\[\t \]*int aa;\[\r\n\t ]+A & operator=\\(A const ?&\\);\[\r\n\t ]+A\\((A const|const A) ?&\\);\[\r\n\t ]+A\\((void|)\\);\r\n\[\t \]*int afoo\\((void|)\\);\r\n\[\t \]*int foo\\((void|)\\);\r\n\}.*$gdb_prompt $"  { pass "ptype a_instance (with synth ops)" }
-    -re "type = class A \{\r\n\[\t \]*public:\r\n\[\t \]*int a;\r\n\[\t \]*int aa;\[\r\n\t \]+A\\(void\\);\r\n\[\t \]*int afoo\\((void|)\\);\r\n\[\t \]*int foo\\((void|)\\);\r\n\}.*$gdb_prompt $"  { pass "ptype a_instance (no synth ops)" }
-    -re ".*$gdb_prompt $"   {  fail "ptype a_instance" }
-    timeout             { fail "(timeout) ptype a_instance" }
-}
-
-
-send_gdb "print d_instance\n"
-gdb_expect {
-    -re ".\[0-9\]* = \{<A> = \{a = 1, aa = 2\}, <B> = \{b = 3, bb = 4\}, <C> = \{c = 5, cc = 6\}, d = 7, dd = 8\}\r\n$gdb_prompt $" {
-        pass "print value of d_instance"
-      }
-    -re ".\[0-9\]* = \{<class A> = \{a = 1, aa = 2\}, <class B> = \{b = 3, bb = 4\}, <class C> = \{c = 5, cc = 6\}, d = 7, dd = 8\}\r\n$gdb_prompt $" {
-        pass "print value of d_instance"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of d_instance" }
-    timeout           { fail "(timeout) print value of d_instance" }
-  }
-
-  if {$gcc_compiled} then {
-      send_gdb "ptype d_instance\n"
-      gdb_expect {
-         -re "type = class D : private A, public B, (protected|private) C \{\r\n\[\t \]*public:\r\n\[\t \]*int d;\r\n\[\t \]*int dd;\[\r\n\t ]+D & operator=\\(D const ?&\\);\[\r\n\t ]+D\\((D const|const D) ?&\\);\[\r\n\t \]+D\\((void|)\\);\r\n\[\t \]*int dfoo\\((void|)\\);\r\n\[\t \]*int foo\\((void|)\\);\r\n\}.*$gdb_prompt $"  { pass "ptype d_instance" }
-         -re "type = class D : private A, public B, (protected|private) C \{\r\n\[\t \]*public:\r\n\[\t \]*int d;\r\n\[\t \]*int dd;\[\r\n\t ]+D & operator=\\(D const ?&\\);\[\r\n\t ]+D\\((D const|const D) ?&\\);\[\r\n\t \]+D\\((void|)\\);\r\n\[\t \]*int dfoo\\((void|)\\);\r\n\[\t \]*int foo\\((void|)\\);\r\n\}.*$gdb_prompt $"  { pass "ptype d_instance" }
-          -re "type = class D : private A, public B, (protected|private) C \{\r\n\[\t \]*public:\r\n\[\t \]*int d;\r\n\[\t \]*int dd;\[\r\n\t \]+D\\(void\\);\r\n\[\t \]*int dfoo\\((void|)\\);\r\n\[\t \]*int foo\\((void|)\\);\r\n\}.*$gdb_prompt $"  { pass "ptype d_instance" }
-         -re ".*$gdb_prompt $"   {  fail "ptype d_instance" }
-         timeout             { fail "(timeout) ptype d_instance" }
-      }
-  } else {
-      send_gdb "ptype d_instance\n"
-      gdb_expect {
-         -re "type = class D : private A, public B, protected C \{\r\n\[\t \]*public:\r\n\[\t \]*int d;\r\n\[\t \]*int dd;\[\r\n\t \]+D\\(void\\);\r\n\[\t \]*int dfoo\\((void|)\\);\r\n\[\t \]*int foo\\((void|)\\);\r\n\}.*$gdb_prompt $"  { pass "ptype d_instance" }
-         -re ".*$gdb_prompt $"   {  fail "ptype d_instance" }
-         timeout             { fail "(timeout) ptype d_instance" }
-      }
-  }
-
-
-send_gdb "print e_instance\n"
-gdb_expect {
-    -re ".\[0-9\]* = \{<A> = \{a = 1, aa = 2\}, <B> = \{b = 3, bb = 4\}, <C> = \{c = 5, cc = 6\}, e = 9, ee = 10\}\r\n$gdb_prompt $" {
-        pass "print value of e_instance"
-      }
-    -re ".\[0-9\]* = \{<class A> = \{a = 1, aa = 2\}, <class B> = \{b = 3, bb = 4\}, <class C> = \{c = 5, cc = 6\}, e = 9, ee = 10\}\r\n$gdb_prompt $" {
-        pass "print value of e_instance"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of e_instance" }
-    timeout           { fail "(timeout) print value of e_instance" }
-  }
-
-  if {$gcc_compiled} {
-      send_gdb "ptype e_instance\n"
-      gdb_expect {
-         -re "type = class E : public A, private B, (protected|private) C \{\r\n\[\t \]*public:\r\n\[\t \]*int e;\r\n\[\t \]*int ee;\[\r\n\t ]+E & operator=\\(E const ?&\\);\[\r\n\t ]+E\\((E const|const E) ?&\\);\[\r\n\t \]+E\\((void|)\\);\r\n\[\t \]*int efoo\\((void|)\\);\r\n\[\t \]*int foo\\((void|)\\);\r\n\}.*$gdb_prompt $"  { pass "ptype e_instance" }
-          -re "type = class E : public A, private B, (protected|private) C \{\r\n\[\t \]*public:\r\n\[\t \]*int e;\r\n\[\t \]*int ee;\[\r\n\t \]+E\\((void|)\\);\r\n\[\t \]*int efoo\\((void|)\\);\r\n\[\t \]*int foo\\((void|)\\);\r\n\}.*$gdb_prompt $"  { pass "ptype e_instance" }
-         -re ".*$gdb_prompt $"   {  fail "ptype e_instance" }
-         timeout             { fail "(timeout) ptype e_instance" }
-      }
-  } else {
-      send_gdb "ptype e_instance\n"
-      gdb_expect {
-         -re "type = class E : public A, private B, protected C \{\r\n\[\t \]*public:\r\n\[\t \]*int e;\r\n\[\t \]*int ee;\[\r\n\t \]+E\\((void|)\\);\r\n\[\t \]*int efoo\\((void|)\\);\r\n\[\t \]*int foo\\((void|)\\);\r\n\}.*$gdb_prompt $"  { pass "ptype e_instance" }
-         -re ".*$gdb_prompt $"   {  fail "ptype e_instance" }
-         timeout             { fail "(timeout) ptype e_instance" }
-      }
-  }
-
-
-send_gdb "print f_instance\n"
-gdb_expect {
-    -re ".\[0-9\]* = \{<A> = \{a = 1, aa = 2\}, <B> = \{b = 3, bb = 4\}, <C> = \{c = 5, cc = 6\}, f = 11, ff = 12\}\r\n$gdb_prompt $" {
-        pass "print value of f_instance"
-      }
-    -re ".\[0-9\]* = \{<class A> = \{a = 1, aa = 2\}, <class B> = \{b = 3, bb = 4\}, <class C> = \{c = 5, cc = 6\}, f = 11, ff = 12\}\r\n$gdb_prompt $" {
-        pass "print value of f_instance"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of f_instance" }
-    timeout           { fail "(timeout) print value of f_instance" }
-  }
-
-send_gdb "ptype f_instance\n"
-gdb_expect {
-    -re "type = class F : private A, public B, private C \{\r\n\[\t \]*public:\r\n\[\t \]*int f;\r\n\[\t \]*int ff;\[\r\n\t ]+F & operator=\\(F const ?&\\);\[\r\n\t ]+F\\((F const|const F) ?&\\);\[\r\n\t \]+F\\((void|)\\);\r\n\[\t \]*int ffoo\\((void|)\\);\r\n\[\t \]*int foo\\((void|)\\);\r\n\}.*$gdb_prompt $"  { pass "ptype f_instance" }
-    -re "type = class F : private A, public B, private C \{\r\n\[\t \]*public:\r\n\[\t \]*int f;\r\n\[\t \]*int ff;\[\r\n\t \]+F\\((void|)\\);\r\n\[\t \]*int ffoo\\((void|)\\);\r\n\[\t \]*int foo\\((void|)\\);\r\n\}.*$gdb_prompt $"  { pass "ptype f_instance" }
-    -re ".*$gdb_prompt $"   {  fail "ptype f_instance" }
-    timeout             { fail "(timeout) ptype f_instance" }
-}
-
-
-
-send_gdb "print d_instance.a\n"
-gdb_expect {
-    -re ".\[0-9\]* = 1.*$gdb_prompt $" {
-        pass "print value of d_instance.a"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of d_instance.a" }
-    timeout           { fail "(timeout) print value of d_instance.a" }
-  }
-
-send_gdb "print d_instance.aa\n"
-gdb_expect {
-    -re ".\[0-9\]* = 2.*$gdb_prompt $" {
-        pass "print value of d_instance.aa"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of d_instance.aa" }
-    timeout           { fail "(timeout) print value of d_instance.aa" }
-  }
-
-send_gdb "print d_instance.b\n"
-gdb_expect {
-    -re ".\[0-9\]* = 3.*$gdb_prompt $" {
-        pass "print value of d_instance.b"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of d_instance.b" }
-    timeout           { fail "(timeout) print value of d_instance.b" }
-  }
-
-send_gdb "print d_instance.bb\n"
-gdb_expect {
-    -re ".\[0-9\]* = 4.*$gdb_prompt $" {
-        pass "print value of d_instance.bb"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of d_instance.bb" }
-    timeout           { fail "(timeout) print value of d_instance.bb" }
-  }
-
-send_gdb "print d_instance.c\n"
-gdb_expect {
-    -re ".\[0-9\]* = 5.*$gdb_prompt $" {
-        pass "print value of d_instance.c"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of d_instance.c" }
-    timeout           { fail "(timeout) print value of d_instance.c" }
-  }
-
-send_gdb "print d_instance.cc\n"
-gdb_expect {
-    -re ".\[0-9\]* = 6.*$gdb_prompt $" {
-        pass "print value of d_instance.cc"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of d_instance.cc" }
-    timeout           { fail "(timeout) print value of d_instance.cc" }
-  }
-
-send_gdb "print d_instance.d\n"
-gdb_expect {
-    -re ".\[0-9\]* = 7.*$gdb_prompt $" {
-        pass "print value of d_instance.d"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of d_instance.d" }
-    timeout           { fail "(timeout) print value of d_instance.d" }
-  }
-
-send_gdb "print d_instance.dd\n"
-gdb_expect {
-    -re ".\[0-9\]* = 8.*$gdb_prompt $" {
-        pass "print value of d_instance.dd"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of d_instance.dd" }
-    timeout           { fail "(timeout) print value of d_instance.dd" }
-  }
-
-send_gdb "print g_instance.a\n"
-gdb_expect {
-    -re "warning.*$gdb_prompt $" {
-       # The compiler doesn't think this is ambiguous.
-       fail "print value of g_instance.a"
-    }
-    -re ".\[0-9\]* = 15.*$gdb_prompt $" {
-        pass "print value of g_instance.a"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of g_instance.a" }
-    timeout           { fail "(timeout) print value of g_instance.a" }
-  }
-
-send_gdb "print g_instance.b\n"
-gdb_expect {
-    -re "warning.*$gdb_prompt $" {
-       # The compiler doesn't think this is ambiguous.
-       fail "print value of g_instance.b"
-    }
-    -re ".\[0-9\]* = 16.*$gdb_prompt $" {
-        pass "print value of g_instance.b"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of g_instance.b" }
-    timeout           { fail "(timeout) print value of g_instance.b" }
-  }
-
-send_gdb "print g_instance.c\n"
-gdb_expect {
-    -re "warning.*$gdb_prompt $" {
-       # The compiler doesn't think this is ambiguous.
-       fail "print value of g_instance.c"
-    }
-    -re ".\[0-9\]* = 17.*$gdb_prompt $" {
-        pass "print value of g_instance.c"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of g_instance.c" }
-    timeout           { fail "(timeout) print value of g_instance.c" }
-  }
-
-send_gdb "print g_instance.afoo()\n"
-gdb_expect {
-    -re ".\[0-9\]* = 1.*$gdb_prompt $" {
-        pass "print value of g_instance.afoo()"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of g_instance.afoo()" }
-    timeout           { fail "(timeout) print value of g_instance.afoo()" }
-  }
-
-
-# If GDB fails to restore the selected frame properly after the
-# inferior function call above (see GDB PR 1155 for an explanation of
-# why this might happen), all the subsequent tests will fail.  We
-# should detect report that failure, but let the marker call finish so
-# that the rest of the tests can run undisturbed.
-gdb_test_multiple "frame" "re-selected 'main' frame after inferior call" {
-    -re "#0  marker1.*$gdb_prompt $" {
-        setup_kfail "gdb/1155" s390-*-linux-gnu
-        fail "re-selected 'main' frame after inferior call"
-        gdb_test "finish" ".*main.*at .*derivation.cc:.*// marker1-returns-here.*" \
-            "finish call to marker1"
-    }
-    -re "#1  ($hex in )?main.*$gdb_prompt $" {
-        pass "re-selected 'main' frame after inferior call"
-    }
-}
-        
-send_gdb "print g_instance.bfoo()\n"
-gdb_expect {
-    -re ".\[0-9\]* = 2.*$gdb_prompt $" {
-        pass "print value of g_instance.bfoo()"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of g_instance.bfoo()" }
-    timeout           { fail "(timeout) print value of g_instance.bfoo()" }
-  }
-
-send_gdb "print g_instance.cfoo()\n"
-gdb_expect {
-    -re ".\[0-9\]* = 3.*$gdb_prompt $" {
-        pass "print value of g_instance.cfoo()"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of g_instance.cfoo()" }
-    timeout           { fail "(timeout) print value of g_instance.cfoo()" }
-  }
diff --git a/gdb/testsuite/gdb.c++/hang.H b/gdb/testsuite/gdb.c++/hang.H
deleted file mode 100644 (file)
index 26fec87..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-struct A
-{
-  struct B *b_ptr_in_a;
-};
-
-struct C
-{
-  struct B
-  {
-    int member_of_B_in_C;
-  };
-};
diff --git a/gdb/testsuite/gdb.c++/hang.exp b/gdb/testsuite/gdb.c++/hang.exp
deleted file mode 100644 (file)
index 4c117a1..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-#   Copyright (C) 2002 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-if $tracelevel then {
-       strace $tracelevel
-}
-
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile hang
-set binfile ${objdir}/${subdir}/${testfile}
-
-foreach file {hang1 hang2 hang3} {
-    if {[gdb_compile "${srcdir}/${subdir}/${file}.C" "${file}.o" object {c++ debug}] != ""} {
-        gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-    }
-}
-
-if {[gdb_compile "hang1.o hang2.o hang3.o" ${binfile} 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 ${binfile}
-
-
-# As of May 1, 2002, GDB hangs trying to read the debug info for the
-# `hang2.o' compilation unit from the executable `hang', when compiled
-# by g++ 2.96 with STABS debugging info.  Here's what's going on, as
-# best as I can tell.
-#
-# The definition of `struct A' in `hang.H' refers to `struct B' as an
-# incomplete type.  The stabs declare type number (1,3) to be a cross-
-# reference type, `xsB:'.
-#
-# The definition of `struct C' contains a nested definition for
-# `struct B' --- or more properly, `struct C::B'.  However, the stabs
-# fail to qualify the structure tag: it just looks like a definition
-# for `struct B'.  I think this is a compiler bug, but perhaps GCC
-# doesn't emit qualified names for a reason.
-#
-# `hang.H' gets #included by both `hang1.C' and `hang2.C'.  So the
-# stabs for `struct A', the incomplete `struct B', and `struct C'
-# appear in both hang1.o's and hang2.o's stabs.
-#
-# When those two files are linked together, since hang2.o appears
-# later in the command line, its #inclusion of `hang.H' gets replaced
-# with an N_EXCL stab, referring back to hang1.o's stabs for the
-# header file.
-#
-# When GDB builds psymtabs for the executable hang, it notes that
-# hang2.o's stabs contain an N_EXCL referring to a header that appears
-# in full in hang1.o's stabs.  So hang2.o's psymtab lists a dependency
-# on hang1.o's psymtab.
-#
-# When the user types the command `print var_in_b', GDB scans the
-# psymtabs for a symbol by that name, and decides to read full symbols
-# for `hang2.o'.
-#
-# Since `hang2.o''s psymtab lists `hang1.o' as a dependency, GDB first
-# reads `hang1.o''s symbols.  When GDB sees `(1,3)=xsB:', it creates a
-# type object for `struct B', sets its TYPE_FLAG_STUB flag, and
-# records it as type number `(1,3)'.
-#
-# When GDB finds the definition of `struct C::B', since the stabs
-# don't indicate that the type is nested within C, it treats it as
-# a definition of `struct B'.
-#
-# When GDB is finished reading `hang1.o''s symbols, it calls
-# `cleanup_undefined_types'.  This function mistakes the definition of
-# `struct C::B' for a definition for `struct B', and overwrites the
-# incomplete type object for the real `struct B', using `memcpy'.  Now
-# stabs type number `(1,3)' refers to this (incorrect) complete type.
-# Furthermore, the `memcpy' simply copies the original's `cv_type'
-# field to the target, giving the target a corrupt `cv_type' ring: the
-# chain does not point back to the target type.
-#
-# Having satisfied `hang2.o''s psymtab's dependencies, GDB begins to
-# read `hang2.o''s symbols.  These contain the true definition for
-# `struct B', which refers to type number `(1,3)' as the type it's
-# defining.  GDB looks up type `(1,3)', and finds the (incorrect)
-# complete type established by the call to `cleanup_undefined_types'
-# above.  However, it doesn't notice that the type is already defined,
-# and passes it to `read_struct_type', which then writes the new
-# definition's size, field list, etc. into the type object which
-# already has those fields initialized.  Adding insult to injury,
-# `read_struct_type' then calls `finish_cv_type'; since the `memcpy'
-# in `cleanup_undefined_types' corrupted the target type's `cv_type'
-# ring, `finish_cv_type' enters an infinite loop.
-
-# This checks that GDB recognizes when a structure is about to be
-# overwritten, and refuses, with a complaint.
-gdb_test "print var_in_b" " = 1729" "doesn't overwrite struct type"
-
-# This checks that cleanup_undefined_types doesn't create corrupt
-# cv_type chains.  Note that var_in_hang3 does need to be declared in
-# a separate compilation unit, whose psymtab depends on hang1.o's
-# psymtab.  Otherwise, GDB won't call cleanup_undefined_types (as it
-# finishes hang1.o's symbols) before it calls make_cv_type (while
-# reading hang3.o's symbols).
-#
-# The bug only happens when you compile with -gstabs+; Otherwise, GCC
-# won't include the `const' qualifier on `const_B_ptr' in `hang3.o''s
-# STABS, so GDB won't try to create a const variant of the smashed
-# struct type, and get caught by the corrupted cv_type chain.
-gdb_test "print var_in_hang3" " = 42" "doesn't corrupt cv_type chain"
diff --git a/gdb/testsuite/gdb.c++/hang1.C b/gdb/testsuite/gdb.c++/hang1.C
deleted file mode 100644 (file)
index 4b04d77..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "hang.H"
-
-int main (int argc, char **argv) { return 0; }
diff --git a/gdb/testsuite/gdb.c++/hang2.C b/gdb/testsuite/gdb.c++/hang2.C
deleted file mode 100644 (file)
index 59732f8..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "hang.H"
-
-struct B
-{
-  int member_of_B;
-};
-
-int var_in_b = 1729;
diff --git a/gdb/testsuite/gdb.c++/hang3.C b/gdb/testsuite/gdb.c++/hang3.C
deleted file mode 100644 (file)
index 92c82fa..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "hang.H"
-
-const struct B *const_B_ptr;
-int var_in_hang3 = 42;
diff --git a/gdb/testsuite/gdb.c++/inherit.exp b/gdb/testsuite/gdb.c++/inherit.exp
deleted file mode 100644 (file)
index 993bfb1..0000000
+++ /dev/null
@@ -1,1018 +0,0 @@
-# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# This file was written by Fred Fish. (fnf@cygnus.com)
-
-set ws "\[\r\n\t \]+"
-set nl "\[\r\n\]+"
-
-# The format of a g++ virtual base pointer.
-set vbptr "(_vb\[$.\]|__vb_)\[0-9\]?"
-
-if $tracelevel then {
-       strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-# Note - create separate "inherit" executable from misc.cc
-
-set testfile "inherit"
-set srcfile misc.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-
-# Create and source the file that provides information about the compiler
-# used to compile the test case.
-
-if [get_compiler_info ${binfile} "c++"] {
-    return -1
-}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-#
-# Single inheritance, print individual members.
-#
-
-proc test_print_si_members {} {
-    # Print all members of g_A using fully qualified form.
-
-    gdb_test "print g_A.A::a" ".* = 1" "print g_A.A::a"
-
-    gdb_test "print g_A.A::x" ".* = 2" "print g_A.A::x"
-
-    # Print members of g_A using nonambiguous compact form.
-
-    gdb_test "print g_A.a" ".* = 1" "print g_A.a"
-
-    gdb_test "print g_A.x" ".* = 2" "print g_A.x"
-
-    # Print all members of g_B using fully qualified form.
-
-    gdb_test "print g_B.A::a" ".* = 3" "print g_B.A::a"
-
-    gdb_test "print g_B.A::x" ".* = 4" "print g_B.A::x"
-
-    gdb_test "print g_B.B::b" ".* = 5" "print g_B.B::b"
-
-    gdb_test "print g_B.B::x" ".* = 6" "print g_B.B::x"
-
-    # Print members of g_B using nonambiguous compact form.
-
-    gdb_test "print g_B.a" ".* = 3" "print g_B.a"
-
-    gdb_test "print g_B.b" ".* = 5" "print g_B.b"
-
-    gdb_test "print g_B.x" ".* = 6" "print g_B.x"
-
-    # Print all members of g_C using fully qualified form.
-
-    gdb_test "print g_C.A::a" ".* = 7" "print g_C.A::a"
-
-    gdb_test "print g_C.A::x" ".* = 8" "print g_C.A::x"
-
-    gdb_test "print g_C.C::c" ".* = 9" "print g_C.C::c"
-
-    gdb_test "print g_C.C::x" ".* = 10" "print g_C.C::x"
-
-    # Print members of g_C using nonambiguous compact form.
-
-    gdb_test "print g_C.a" ".* = 7" "print g_C.a"
-
-    gdb_test "print g_C.c" ".* = 9" "print g_C.c"
-
-    gdb_test "print g_C.x" ".* = 10" "print g_C.x"
-}
-
-#
-# Single inheritance, print type definitions.
-#
-
-proc test_ptype_si {} {
-    global gdb_prompt
-    global ws
-    global nl
-    global hp_aCC_compiler
-
-    # Print class A as a type.
-
-    send_gdb "ptype A\n"
-    gdb_expect {
-       -re "type = class A \{$nl.*\[ \]*int a;$nl\[ \]*int x;$nl.*\[ \]*\}$nl$gdb_prompt $" {
-           pass "ptype A (FIXME)"
-       }
-       -re "type = struct A \{$nl\[ \]*int a;$nl\[ \]*int x;$nl\[ \]*\}$nl$gdb_prompt $" {
-           setup_xfail "*-*-*"
-           fail "ptype A (FIXME)"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype A" }
-       timeout { fail "ptype A (timeout)" ; return }
-    }
-
-    # Print class A as an explicit class.
-
-    send_gdb "ptype class A\n"
-    gdb_expect {
-       -re "type = class A \{$nl.*\[ \]*int a;$nl\[ \]*int x;$nl.*\[ \]*\}$nl$gdb_prompt $" {
-           pass "ptype class A (FIXME)"
-       }
-       -re "type = struct A \{$nl\[ \]*int a;$nl\[ \]*int x;$nl\[ \]*\}$nl$gdb_prompt $" {
-            if {!$hp_aCC_compiler} {setup_xfail "*-*-*"}
-           fail "ptype class A (FIXME)"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype class A" }
-       timeout { fail "ptype class A (timeout)" ; return }
-    }
-
-    # Print type of an object of type A.
-
-    send_gdb "ptype g_A\n"
-    gdb_expect {
-       -re "type = class A \{$nl.*\[ \]*int a;$nl\[ \]*int x;$nl.*\[ \]*\}$nl$gdb_prompt $" {
-           pass "ptype g_A (FIXME)"
-       }
-       -re "type = struct A \{$nl\[ \]*int a;$nl\[ \]*int x;$nl\[ \]*\}$nl$gdb_prompt $" {
-            if {!$hp_aCC_compiler} {setup_xfail "*-*-*"}
-           fail "ptype g_A (FIXME)"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype g_A" }
-       timeout { fail "ptype g_A (timeout)" ; return }
-    }
-
-    # Print class B as a type.
-
-    gdb_test "ptype B" "type = class B : public A \{$nl\[ \]*public:$nl\[ \]*int b;$nl\[ \]*int x;$nl.*\}" "ptype B"
-
-    # Print class B as an explicit class.
-
-    gdb_test "ptype class B" "type = class B : public A \{$nl\[ \]*public:$nl\[ \]*int b;$nl\[ \]*int x;$nl.*\}" "ptype class B"
-
-    # Print type of an object of type B.
-
-    gdb_test "ptype g_B" "type = class B : public A \{$nl\[ \]*public:$nl\[ \]*int b;$nl\[ \]*int x;$nl.*\}" "ptype g_B"
-
-    # Print class C as a type.
-
-    gdb_test "ptype C" "type = class C : public A \{$nl\[ \]*public:$nl\[ \]*int c;$nl\[ \]*int x;$nl.*\}" "ptype C"
-
-    # Print class C as an explicit class.
-
-    gdb_test "ptype class C" "type = class C : public A \{$nl\[ \]*public:$nl\[ \]*int c;$nl\[ \]*int x;$nl.*\}" "ptype class C"
-
-    # Print type of an object of type g_C.
-
-    gdb_test "ptype g_C" "type = class C : public A \{$nl\[ \]*public:$nl\[ \]*int c;$nl\[ \]*int x;$nl.*\}" "ptype g_C"
-
-    # gcc cygnus-2.3.3 (Q1) has this bug, but it was fixed as of
-    # cygnus-2.3.3-930417.  PR 2819.
-    send_gdb "ptype tagless_struct\n"
-    gdb_expect {
-       -re "type = class \{${ws}public:${ws}int one;${ws}int two;${ws}tagless_struct & operator=\\(tagless_struct (const ?)?&\\);${ws}tagless_struct\\(tagless_struct (const ?)?&\\);${ws}tagless_struct\\(\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype tagless struct"
-       }
-       -re "type = class \{${ws}public:${ws}int one;${ws}int two;;${ws}\}$nl$gdb_prompt $" {
-           pass "ptype tagless struct"
-       }
-       -re "type = (struct|class).*\{.*int one;.*int two;.*\}$nl$gdb_prompt $" {
-           pass "ptype tagless struct (obsolete gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype tagless struct"
-       }
-       timeout {
-           fail "ptype tagless struct (timeout)"
-       }
-    }
-
-    send_gdb "ptype v_tagless\n"
-    gdb_expect {
-       -re "type = class \{${ws}public:${ws}int one;${ws}int two;${ws}tagless_struct & operator=\\(tagless_struct (const ?)?&\\);${ws}tagless_struct\\(tagless_struct (const ?)?&\\);${ws}tagless_struct\\(\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype variable of type tagless struct"
-       }
-       -re "type = class \{${ws}public:${ws}int one;${ws}int two;;${ws}\}$nl$gdb_prompt $" {
-           pass "ptype tagless struct"
-       }
-       -re "type = (struct|class).*\{.*int one;.*int two;.*\}$nl$gdb_prompt $" {
-           pass "ptype variable of type tagless struct (obsolete gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype variable of type tagless struct"
-       }
-       timeout {
-           fail "ptype variable of type tagless struct (timeout)"
-       }
-    }
-}
-
-#
-# Single inheritance, print complete classes.
-#
-
-proc test_print_si_classes {} {
-    # Print all members of g_A.
-
-    gdb_test "print g_A" ".* = \{a = 1, x = 2\}" "print g_A"
-
-    # Print all members of g_B.
-
-    gdb_test "print g_B" ".* = \{\<(class |)A\> = \{a = 3, x = 4\}, b = 5, x = 6\}" "print g_B"
-
-    # Print all members of g_C.
-
-    gdb_test "print g_C" ".* = \{\<(class |)A\> = \{a = 7, x = 8\}, c = 9, x = 10\}" "print g_C"
-}
-
-#
-# Single inheritance, print anonymous unions.
-# GDB versions prior to 4.14 entered an infinite loop when printing
-# the type of a class containing an anonymous union, and they were also
-# incapable of printing the member of an anonymous union.
-# We test the printing of the member first, and perform the other tests
-# only if the test succeeds, to avoid the infinite loop.
-#
-
-proc test_print_anon_union {} {
-    global gdb_prompt
-    global ws
-    global nl
-
-    gdb_test "print g_anon_union.a" ".* = 2" "print anonymous union member"
-    send_gdb "print g_anon_union\n"
-    gdb_expect {
-       -re ".* = \{one = 1, ( = |)\{a = 2, b = 2\}\}$nl$gdb_prompt $" {
-           pass "print variable of type anonymous union"
-       }
-       -re ".* = .*\{one = 1, ( = |)\{a = 2, b = .*\}\}$nl$gdb_prompt $" {
-           pass "print variable of type anonymous union (obsolete gcc or gdb)"
-       }
-       -re ".*$nl$gdb_prompt $" {
-           fail "print variable of type anonymous union"
-       }
-       timeout {
-           fail "print variableof type anonymous union (timeout)"
-       }
-    }
-    send_gdb "ptype g_anon_union\n"
-    gdb_expect {
-       -re "type = class class_with_anon_union \{${ws}public:${ws}int one;${ws}union \{${ws}public:${ws}int a;${ws}long int b;${ws}union \{\.\.\.\} & operator=\\(union \{\.\.\.\} &\\);${ws}\\\$_0 \\(union \{\.\.\.\} &\\);${ws}\\\$_0 \\(\\);${ws}\};${ws}class_with_anon_union & operator=\\(class_with_anon_union const &\\);${ws}class_with_anon_union\\(class_with_anon_union const &\\);${ws}class_with_anon_union\\(void\\);${ws}\}$nl$gdb_prompt $" {
-           pass "print type of anonymous union"
-       }
-       -re "type = class class_with_anon_union \{${ws}public:${ws}int one;${ws}union \{${ws}int a;${ws}long int b;${ws}\};${ws}class_with_anon_union & operator=\\(class_with_anon_union const ?&\\);${ws}class_with_anon_union\\(class_with_anon_union const ?&\\);${ws}class_with_anon_union\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "print type of anonymous union"
-       }
-       -re "type = class class_with_anon_union \{${ws}public:${ws}int one;${ws}union \{${ws}int a;${ws}long int b;${ws}\};${ws}\}$nl$gdb_prompt $" {
-           pass "print type of anonymous union"
-       }
-       -re "type = (struct|class).*\{.*int one;.*union \{.*int a;.*(long|long int|int) b;.*\};.*\}$nl$gdb_prompt $" {
-           pass "print type of anonymous union (obsolete gcc or gdb)"
-       }
-       -re ".*$nl$gdb_prompt $" {
-           fail "print type of anonymous union"
-       }
-       timeout {
-           fail "print type of anonymous union (timeout)"
-       }
-    }
-}
-
-#
-# Multiple inheritance, print individual members.
-#
-
-proc test_print_mi_members {} {
-    global gdb_prompt
-    global nl
-    global hp_aCC_compiler
-
-    # Print all members of g_A.
-
-    gdb_test "print g_A.A::a" ".* = 1" "print g_A.A::a"
-    
-    gdb_test "print g_A.A::x" ".* = 2" "print g_A.A::x"
-
-    # Print all members of g_B.
-
-    gdb_test "print g_B.A::a" ".* = 3" "print g_B.A::a"
-
-    gdb_test "print g_B.A::x" ".* = 4" "print g_B.A::x"
-
-    gdb_test "print g_B.B::b" ".* = 5" "print g_B.B::b"
-
-    gdb_test "print g_B.B::x" ".* = 6" "print g_B.B::x"
-
-    # Print all members of g_C.
-
-    gdb_test "print g_C.A::a" ".* = 7" "print g_C.A::a"
-
-    gdb_test "print g_C.A::x" ".* = 8" "print g_C.A::x"
-
-    gdb_test "print g_C.C::c" ".* = 9" "print g_C.C::c"
-
-    gdb_test "print g_C.C::x" ".* = 10" "print g_C.C::x"
-
-    # Print all members of g_D.
-
-    # The following is ambiguous, and gdb should detect this.
-    # For now, accept gdb's behavior as an expected failure if it
-    # simply prints either member correctly.
-
-    send_gdb "print g_D.A::a\n"
-    gdb_expect {       
-       -re "warning: A ambiguous; using D::C::A. Use a cast to disambiguate.$nl\\$\[0-9\]* = 15$nl$gdb_prompt $" {
-           pass "print g_D.A::a"
-       }
-       -re "warning: A ambiguous; using D::B::A. Use a cast to disambiguate.$nl\\$\[0-9\]* = 11$nl$gdb_prompt $" {
-           pass "print g_D.A::a (using B)"
-       }
-       -re ".* = 15$nl$gdb_prompt $" {
-           kfail "gdb/68" "print g_D.A::a"
-       }
-       -re ".* = 11$nl$gdb_prompt $" {
-           kfail "gdb/68" "print g_D.A::a"
-       }
-       -re ".*$gdb_prompt $" { fail "print g_D.A::a" }
-       timeout { fail "print g_D.A::a (timeout)" ; return }
-    }
-
-    # The following is ambiguous, and gdb should detect this.
-    # For now, accept gdb's behavior as an expected failure if it
-    # simply prints either member correctly.
-
-    send_gdb "print g_D.A::x\n"
-    gdb_expect {
-       -re "warning: A ambiguous; using D::C::A. Use a cast to disambiguate.$nl\\$\[0-9\]* = 16$nl$gdb_prompt $" {
-           pass "print g_D.A::x"
-       }
-       -re "warning: A ambiguous; using D::B::A. Use a cast to disambiguate.$nl\\$\[0-9\]* = 12$nl$gdb_prompt $" {
-           pass "print g_D.A::x (using B)"
-       }
-       -re ".* = 16$nl$gdb_prompt $" {
-           kfail "gdb/68" "print g_D.A::x"
-       }
-       -re ".* = 12$nl$gdb_prompt $" {
-           kfail "gdb/68" "print g_D.A::x"
-       }
-       -re ".*$gdb_prompt $" { fail "print g_D.A::x" }
-       timeout { fail "print g_D.A::x (timeout)" ; return }
-    }
-
-    gdb_test "print g_D.B::b" ".* = 13" "print g_D.B::b"
-
-    gdb_test "print g_D.B::x" ".* = 14" "print g_D.B::x"
-
-    gdb_test "print g_D.C::c" ".* = 17" "print g_D.C::c"
-
-    gdb_test "print g_D.C::x" ".* = 18" "print g_D.C::x"
-
-    gdb_test "print g_D.D::d" ".* = 19" "print g_D.D::d"
-
-    gdb_test "print g_D.D::x" ".* = 20" "print g_D.D::x"
-
-    # Print all members of g_E.
-
-    # The following is ambiguous, and gdb should detect this.
-    # For now, accept gdb's behavior as an expected failure if it
-    # simply prints either member correctly.
-
-    send_gdb "print g_E.A::a\n"
-    gdb_expect {
-       -re ".* = 21$nl$gdb_prompt $" {
-           kfail "gdb/68" "print g_E.A::a"
-       }
-       -re ".* = 25$nl$gdb_prompt $" {
-           kfail "gdb/68" "print g_E.A::a"
-       }
-       -re ".*$gdb_prompt $" { fail "print g_E.A::a" }
-       timeout { fail "print g_E.A::a (timeout)" ; return }
-    }
-
-    # The following is ambiguous, and gdb should detect this.
-    # For now, accept gdb's behavior as an expected failure if it
-    # simply prints either member correctly.
-
-    send_gdb "print g_E.A::x\n"
-    gdb_expect {
-       -re "warning: A ambiguous; using E::D::C::A. Use a cast to disambiguate.$nl\\$\[0-9\]* = 26$nl$gdb_prompt $" {
-           pass "print g_E.A::x"
-       }
-       -re "warning: A ambiguous; using E::D::B::A. Use a cast to disambiguate.$nl\\$\[0-9\]* = 22$nl$gdb_prompt $" {
-           pass "print g_E.A::x (using B)"
-       }
-       -re ".* = 26$nl$gdb_prompt $" {
-           kfail "gdb/68" "print g_E.A::x"
-       }
-       -re ".* = 22$nl$gdb_prompt $" {
-           kfail "gdb/68" "print g_E.A::x"
-       }
-       -re ".*$gdb_prompt $" { fail "print g_E.A::x" }
-       timeout { fail "print g_E.A::x (timeout)" ; return }
-    }
-
-    gdb_test "print g_E.B::b" ".* = 23" "print g_E.B::b"
-
-    gdb_test "print g_E.B::x" ".* = 24" "print g_E.B::x"
-
-    gdb_test "print g_E.C::c" ".* = 27" "print g_E.C::c"
-
-    gdb_test "print g_E.C::x" ".* = 28" "print g_E.C::x"
-
-    gdb_test "print g_E.D::d" ".* = 29" "print g_E.D::d"
-
-    gdb_test "print g_E.D::x" ".* = 30" "print g_E.D::x"
-
-    gdb_test "print g_E.E::e" ".* = 31" "print g_E.E::e"
-
-    gdb_test "print g_E.E::x" ".* = 32" "print g_E.E::x"
-}
-
-#
-# Multiple inheritance, print type definitions.
-#
-
-proc test_ptype_mi {} {
-    global nl
-
-    gdb_test "ptype D" "type = class D : public B, public C \{$nl\[ \]*public:$nl\[ \]*int d;$nl\[ \]*int x;$nl.*\}" "ptype D"
-
-    gdb_test "ptype class D" "type = class D : public B, public C \{$nl\[ \]*public:$nl\[ \]*int d;$nl\[ \]*int x;$nl.*\}" "ptype class D"
-
-    gdb_test "ptype g_D" "type = class D : public B, public C \{$nl\[ \]*public:$nl\[ \]*int d;$nl\[ \]*int x;$nl.*\}" "ptype g_D"
-
-    gdb_test "ptype E" "type = class E : public D \{$nl\[ \]*public:$nl\[ \]*int e;$nl\[ \]*int x;$nl.*\}" "ptype E"
-
-    gdb_test "ptype class E" "type = class E : public D \{$nl\[ \]*public:$nl\[ \]*int e;$nl\[ \]*int x;$nl.*\}" "ptype class E"
-
-    gdb_test "ptype g_E" "type = class E : public D \{$nl\[ \]*public:$nl\[ \]*int e;$nl\[ \]*int x;$nl.*\}" "ptype g_E"
-}
-
-#
-# Multiple inheritance, print complete classes.
-#
-
-proc test_print_mi_classes {} {
-    # Print all members of g_D.
-
-    gdb_test "print g_D" ".* = \{\<(class |)B\> = \{\<(class |)A\> = \{a = 11, x = 12\}, b = 13, x = 14\}, \<(class |)C\> = \{\<(class |)A\> = \{a = 15, x = 16\}, c = 17, x = 18\}, d = 19, x = 20\}" "print g_D"
-
-    # Print all members of g_E.
-
-    gdb_test "print g_E" ".* = \{\<(class |)D\> = \{\<(class |)B\> = \{\<(class |)A\> = \{a = 21, x = 22\}, b = 23, x = 24\}, \<(class |)C\> = \{\<(class |)A\> = \{a = 25, x = 26\}, c = 27, x = 28\}, d = 29, x = 30\}, e = 31, x = 32\}" "print g_E"
-}
-
-#
-# Single virtual inheritance, print individual members.
-#
-
-proc test_print_svi_members {} {
-    global gdb_prompt
-    global decimal
-    global nl
-
-    # Print all members of g_vA.
-
-    gdb_test "print g_vA.vA::va" ".* = 1" "print g_vA.vA::va"
-
-    gdb_test "print g_vA.vA::vx" ".* = 2" "print g_vA.vA::vx"
-
-    # Print members of g_vA using compact form.
-
-    gdb_test "print g_vA.va" ".* = 1" "print g_vA.va"
-
-    gdb_test "print g_vA.vx" ".* = 2" "print g_vA.vx"
-
-    # Print all members of g_vB.
-
-    send_gdb "print g_vB.vA::va\n"
-    gdb_expect {
-       -re ".* = 3$nl$gdb_prompt $" { pass "print g_vB.vA::va" }
-       -re ".*virtual baseclass botch.*$gdb_prompt $" {
-           # Does not happen with gcc cygnus-2.4.5-930828
-           fail "print g_vB.vA::va (known bug with gcc cygnus-2.4.5-930417)"
-           # Many of the rest of these tests have the same problem.
-           return 0
-       }
-       -re ".*$gdb_prompt $" { fail "print g_vB.vA::va" }
-       timeout { fail "print g_vB.vA::va (timeout)" ; return }
-    }
-
-    gdb_test "print g_vB.vA::vx" ".* = 4" "print g_vB.vA::vx"
-
-    gdb_test "print g_vB.vB::vb" ".* = 5" "print g_vB.vB::vb"
-
-    gdb_test "print g_vB.vB::vx" ".* = 6" "print g_vB.vB::vx"
-
-    # Print members of g_vB using compact form.
-
-    gdb_test "print g_vB.va" ".* = 3" "print g_vB.va"
-
-    gdb_test "print g_vB.vb" ".* = 5" "print g_vB.vb"
-
-    gdb_test "print g_vB.vx" ".* = 6" "print g_vB.vx"
-
-    # Print all members of g_vC.
-
-    gdb_test "print g_vC.vA::va" ".* = 7" "print g_vC.vA::va"
-
-    gdb_test "print g_vC.vA::vx" ".* = 8" "print g_vC.vA::vx"
-
-    gdb_test "print g_vC.vC::vc" ".* = 9" "print g_vC.vC::vc"
-
-    gdb_test "print g_vC.vC::vx" ".* = 10" "print g_vC.vC::vx"
-
-    # Print members of g_vC using compact form.
-
-    gdb_test "print g_vC.va" ".* = 7" "print g_vC.va"
-
-    gdb_test "print g_vC.vc" ".* = 9" "print g_vC.vc"
-
-    gdb_test "print g_vC.vx" ".* = 10" "print g_vC.vx"
-}
-
-#
-# Single virtual inheritance, print type definitions.
-#
-
-proc test_ptype_vi {} {
-    global gdb_prompt
-    global ws
-    global nl
-    global vbptr
-
-    # This class does not use any C++-specific features, so it's fine for
-    # it to print as "struct".
-    send_gdb "ptype vA\n"
-    gdb_expect {
-       -re "type = class vA \{$nl\[ \]*public:$nl\[ \]*int va;$nl\[ \]*int vx;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype vA"
-       }
-       -re "type = struct vA \{$nl\[ \]*int va;$nl\[ \]*int vx;$nl\}$nl$gdb_prompt $" {
-           pass "ptype vA"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype vA" }
-       timeout { fail "ptype vA (timeout)" ; return }
-    }
-
-    # This class does not use any C++-specific features, so it's fine for
-    # it to print as "struct".
-    send_gdb "ptype class vA\n"
-    gdb_expect {
-       -re "type = class vA \{$nl\[ \]*public:$nl\[ \]*int va;$nl\[ \]*int vx;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype class vA"
-       }
-       -re "type = struct vA \{$nl\[ \]*int va;$nl\[ \]*int vx;$nl\}$nl$gdb_prompt $" {
-           pass "ptype class vA"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype class vA" }
-       timeout { fail "ptype class vA (timeout)" ; return }
-    }
-
-    # This class does not use any C++-specific features, so it's fine for
-    # it to print as "struct".
-    send_gdb "ptype g_vA\n"
-    gdb_expect {
-       -re "type = class vA \{$nl\[ \]*public:$nl\[ \]*int va;$nl\[ \]*int vx;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype g_vA"
-       }
-       -re "type = struct vA \{$nl\[ \]*int va;$nl\[ \]*int vx;$nl\}$nl$gdb_prompt $" {
-           pass "ptype g_vA"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype g_vA" }
-       timeout { fail "ptype g_vA (timeout)" ; return }
-    }
-
-    send_gdb "ptype vB\n"
-    gdb_expect {
-       -re "ptype vB${nl}type = class vB : public virtual vA \{$nl  private:${ws}vA \\*${vbptr}vA;$nl  public:${ws}int vb;${ws}int vx;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype vB"
-       }
-       -re "ptype vB${nl}type = class vB : public virtual vA \{$nl  public:${ws}int vb;${ws}int vx;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype vB (aCC)"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype vB" }
-       timeout { fail "ptype vB (timeout)" }
-    }
-
-    send_gdb "ptype class vB\n"
-    gdb_expect {
-       -re "type = class vB : public virtual vA \{$nl\[ \]*private:$nl\[ \]*vA \\*${vbptr}vA;$nl\[ \]*public:$nl\[ \]*int vb;$nl\[ \]*int vx;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype class vB"
-       }
-       -re "type = class vB : public virtual vA \{$nl\[ \]*public:$nl\[ \]*int vb;$nl\[ \]*int vx;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype class vB (aCC)"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype class vB" }
-       timeout { fail "ptype class vB (timeout)" }
-    }
-
-    send_gdb "ptype g_vB\n"
-    gdb_expect {
-       -re "type = class vB : public virtual vA \{$nl\[ \]*private:$nl\[ \]*vA \\*${vbptr}vA;$nl\[ \]*public:$nl\[ \]*int vb;$nl\[ \]*int vx;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype g_vB"
-       }
-       -re "type = class vB : public virtual vA \{$nl\[ \]*public:$nl\[ \]*int vb;$nl\[ \]*int vx;$nl.*\}$nl$gdb_prompt $" {
-           pass "ptype g_vB (aCC)"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype g_vB" }
-       timeout { fail "ptype g_vB (timeout)" }
-    }
-
-    send_gdb "ptype vC\n"
-    gdb_expect {
-       -re "type = class vC : public virtual vA \{$nl\[ \]*private:$nl\[ \]*vA \\*${vbptr}vA;$nl\[ \]*public:$nl\[ \]*int vc;$nl\[ \]*int vx;$nl.*\}$nl$gdb_prompt $" {
-            pass "ptype vC"
-       }
-       -re "type = class vC : public virtual vA \{$nl\[ \]*public:$nl\[ \]*int vc;$nl\[ \]*int vx;$nl.*\}$nl$gdb_prompt $" {
-            pass "ptype vC (aCC)"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype vC" }
-       timeout { fail "ptype vC (timeout)" }
-    }
-
-    send_gdb "ptype class vC\n"
-    gdb_expect {
-       -re "type = class vC : public virtual vA \{$nl\[ \]*private:$nl\[ \]*vA \\*${vbptr}vA;$nl\[ \]*public:$nl\[ \]*int vc;$nl\[ \]*int vx;$nl.*\}$nl$gdb_prompt $" {
-            pass "ptype class vC"
-       }
-       -re "type = class vC : public virtual vA \{$nl\[ \]*public:$nl\[ \]*int vc;$nl\[ \]*int vx;$nl.*\}$nl$gdb_prompt $" {
-            pass "ptype class vC (aCC)"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype class vC" }
-       timeout { fail "ptype class vC (timeout)" }
-    }
-
-    send_gdb "ptype g_vC\n"
-    gdb_expect {
-       -re "type = class vC : public virtual vA \{$nl\[ \]*private:$nl\[ \]*vA \\*${vbptr}vA;$nl\[ \]*public:$nl\[ \]*int vc;$nl\[ \]*int vx;$nl.*\}$nl$gdb_prompt $" {
-            pass "ptype g_vC"
-       }
-       -re "type = class vC : public virtual vA \{$nl\[ \]*public:$nl\[ \]*int vc;$nl\[ \]*int vx;$nl.*\}$nl$gdb_prompt $" {
-            pass "ptype g_vC (aCC)"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype g_vC" }
-       timeout { fail "ptype g_vC (timeout)" }
-    }
-}
-
-#
-# Single virtual inheritance, print complete classes.
-#
-
-proc test_print_svi_classes {} {
-    global gdb_prompt
-    global hex
-    global decimal
-    global nl
-    global vbptr
-
-    # Print all members of g_vA.
-
-    gdb_test "print g_vA" ".* = \{va = 1, vx = 2\}" "print g_vA"
-
-    # Print all members of g_vB.
-
-    send_gdb "print g_vB\n"
-    gdb_expect {
-       -re ".* = \{\<class vA\> = \{va = 3, vx = 4\}, vb = 5, vx = 6, Virtual table at $hex\}$nl$gdb_prompt $" {
-           pass "print g_vB (aCC)"
-       }
-       -re ".* = \{\<class vA\> = \{va = 3, vx = 4\}, vb = 5, vx = 6, __vfp = $hex\}$nl$gdb_prompt $" {
-           pass "print g_vB (aCC)"
-       }
-       -re ".* = \{\<vA\> = \{va = 3, vx = 4\}, ${vbptr}vA = $hex, vb = 5, vx = 6\}$nl$gdb_prompt $" {
-           pass "print g_vB"
-       }
-       -re ".* = \{\<vA\> = \{va = 3, vx = 4\}, _vptr.vB = $hex, vb = 5, vx = 6\}$nl$gdb_prompt $" {
-           pass "print g_vB (FIXME v3 vtbl ptr)"
-       }
-       -re ".* = \{\<vA\> = \{va = 3, vx = 4\}, _vptr.vB = $hex <VTT for vB>, vb = 5, vx = 6\}$nl$gdb_prompt $" {
-           # Happens with gcc 3.3 -gstabs+
-           # Does not happen with gcc 3.2.3 -gstabs+.
-           # Does not happen gcc HEAD%20030624 (pre-3.4) -gstabs+.
-           # -- chastain 2003-06-29
-           pass "print g_vB"
-       }
-
-       -re ".*invalid address 0x0.*$gdb_prompt $" {
-           # Does not happen with gcc cygnus-2.4.5-930828
-           fail "print g_vB (known bug with gcc cygnus-2.4.5-930417)"
-           # Many of the rest of these tests have the same problem.
-           return 0
-       }
-       -re ".*$gdb_prompt $" { fail "print g_vB" }
-       timeout { fail "print g_vB (timeout)" ; return }
-    }
-
-    # Print all members of g_vC.
-
-    send_gdb "print g_vC\n"
-    gdb_expect {
-       -re ".* = \{\<class vA\> = \{va = 7, vx = 8\}, vc = 9, vx = 10, Virtual table at $hex\}$nl$gdb_prompt $" {
-           pass "print g_vC (aCC)"
-       }
-       -re ".* = \{\<class vA\> = \{va = 7, vx = 8\}, vc = 9, vx = 10, __vfp = $hex\}$nl$gdb_prompt $" {
-           pass "print g_vC (aCC)"
-       }
-       -re ".* = \{\<vA\> = \{va = 7, vx = 8\}, ${vbptr}vA = $hex, vc = 9, vx = 10\}$nl$gdb_prompt $" {
-           pass "print g_vC"
-       }
-       -re ".* = \{\<vA\> = \{va = 7, vx = 8\}, _vptr.vC = $hex, vc = 9, vx = 10\}$nl$gdb_prompt $" {
-           pass "print g_vC (FIXME v3 vtbl ptr)"
-       }
-       -re ".* = \{\<vA\> = \{va = 7, vx = 8\}, _vptr.vC = $hex <VTT for vC>, vc = 9, vx = 10\}$nl$gdb_prompt $" {
-           # Happens with gcc 3.3 -gstabs+
-           # Does not happen with gcc 3.2.3 -gstabs+.
-           # Does not happen gcc HEAD%20030624 (pre-3.4) -gstabs+.
-           # -- chastain 2003-06-29
-           pass "print g_vC"
-       }
-       -re ".*$gdb_prompt $" { fail "print g_vC" }
-       timeout { fail "print g_vC (timeout)" }
-    }
-}
-
-#
-# Multiple virtual inheritance, print individual members.
-#
-
-proc test_print_mvi_members {} {
-    global gdb_prompt
-    global decimal
-    global nl
-
-    # Print all members of g_vD.
-
-    send_gdb "print g_vD.vA::va\n"
-    gdb_expect {
-       -re ".* = 19$nl$gdb_prompt $" { pass "print g_vD.vA::va" }
-       -re ".*virtual baseclass botch.*$gdb_prompt $" {
-           # Does not happen with gcc cygnus-2.4.5-930828
-           fail "print g_vD.vA::va (known bug with gcc cygnus-2.4.5-930417)"
-           # Many of the rest of these tests have the same problem.
-           return 0
-       }
-       -re ".*$gdb_prompt $" { fail "print g_vD.vA::va" }
-       timeout { fail "print g_vD.vA::va (timeout)" ; return }
-    }
-
-    gdb_test "print g_vD.vA::vx" ".* = 20" "print g_vD.vA::vx"
-
-    gdb_test "print g_vD.vB::vb" ".* = 21" "print g_vD.vB::vb"
-
-    gdb_test "print g_vD.vB::vx" ".* = 22" "print g_vD.vB::vx"
-
-    gdb_test "print g_vD.vC::vc" ".* = 23" "print g_vD.vC::vc"
-
-    gdb_test "print g_vD.vC::vx" ".* = 24" "print g_vD.vC::vx"
-
-    gdb_test "print g_vD.vD::vd" ".* = 25" "print g_vD.vD::vd"
-
-    gdb_test "print g_vD.vD::vx" ".* = 26" "print g_vD.vD::vx"
-
-    # Print all members of g_vE.
-
-    gdb_test "print g_vE.vA::va" ".* = 0" "print g_vE.vA::va"
-
-    gdb_test "print g_vE.vA::vx" ".* = 0" "print g_vE.vA::vx"
-
-    gdb_test "print g_vE.vB::vb" ".* = 0" "print g_vE.vB::vb"
-
-    gdb_test "print g_vE.vB::vx" ".* = 0" "print g_vE.vB::vx"
-
-    gdb_test "print g_vE.vC::vc" ".* = 0" "print g_vE.vC::vc"
-
-    gdb_test "print g_vE.vC::vx" ".* = 0" "print g_vE.vC::vx"
-
-    gdb_test "print g_vE.vD::vd" ".* = 0" "print g_vE.vD::vd"
-
-    gdb_test "print g_vE.vD::vx" ".* = 0" "print g_vE.vD::vx"
-
-    gdb_test "print g_vE.vE::ve" ".* = 27" "print g_vE.vE::ve"
-
-    gdb_test "print g_vE.vE::vx" ".* = 28" "print g_vE.vE::vx"
-}
-
-#
-# Multiple virtual inheritance, print type definitions.
-#
-
-proc test_ptype_mvi {} {
-    global gdb_prompt
-    global ws
-    global nl
-    global vbptr
-
-    send_gdb "ptype vD\n"
-    gdb_expect {
-       -re "type = class vD : public virtual vB, public virtual vC \{${ws}private:${ws}vC \\*${vbptr}vC;${ws}vB \\*${vbptr}vB;${ws}public:${ws}int vd;${ws}int vx;$nl.*\}.*$gdb_prompt $" {
-           pass "ptype vD"
-       }
-        -re ".*class vD : public virtual vB, public virtual vC \{${ws}public:${ws}int vd;${ws}int vx;.*\}.*$gdb_prompt $" {
-           pass "ptype vD"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype vD" }
-       timeout { fail "(timeout) ptype vD" }
-    }
-
-    send_gdb "ptype class vD\n"
-    gdb_expect {
-       -re "type = class vD : public virtual vB, public virtual vC \{${ws}private:${ws}vC \\*${vbptr}vC;${ws}vB \\*${vbptr}vB;${ws}public:${ws}int vd;${ws}int vx;$nl.*\}.*$gdb_prompt $" {
-           pass "ptype class vD"
-       }
-       -re ".*class vD : public virtual vB, public virtual vC \{${ws}public:${ws}int vd;${ws}int vx;.*\}.*$gdb_prompt $" {
-           pass "ptype class vD"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype class vD" }
-       timeout { fail "(timeout) ptype class vD" }
-    }
-
-    send_gdb "ptype g_vD\n"
-    gdb_expect {
-       -re "type = class vD : public virtual vB, public virtual vC \{${ws}private:${ws}vC \\*${vbptr}vC;${ws}vB \\*${vbptr}vB;${ws}public:${ws}int vd;${ws}int vx;$nl.*\}.*$gdb_prompt $" {
-           pass "ptype g_vD"
-       }
-       -re ".*class vD : public virtual vB, public virtual vC \{${ws}public:${ws}int vd;${ws}int vx;\r\n.*\}.*$gdb_prompt $" {
-           pass "ptype g_vD"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype g_vD" }
-       timeout { fail "(timeout) ptype g_vD" }
-    }
-
-    send_gdb "ptype vE\n"
-    gdb_expect {
-       -re "type = class vE : public virtual vD \{${ws}private:${ws}vD \\*${vbptr}vD;${ws}public:${ws}int ve;${ws}int vx;$nl.*\}.*$gdb_prompt $" {
-           pass "ptype vE"
-       }
-       -re ".*class vE : public virtual vD \{${ws}public:${ws}int ve;${ws}int vx;\r\n.*\}.*$gdb_prompt $" {
-           pass "ptype vE"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype vE" }
-       timeout { fail "(timeout) ptype vE" }
-    }
-
-    send_gdb "ptype class vE\n"
-    gdb_expect {
-       -re "type = class vE : public virtual vD \{${ws}private:${ws}vD \\*${vbptr}vD;${ws}public:${ws}int ve;${ws}int vx;$nl.*\}.*$gdb_prompt $" {
-           pass "ptype class vE"
-       }
-       -re "type = class vE : public virtual vD \{${ws}public:${ws}int ve;${ws}int vx;\r\n.*\}.*$gdb_prompt $" {
-           pass "ptype class vE"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype class vE" }
-       timeout { fail "(timeout) ptype class vE" }
-    }
-
-    send_gdb "ptype g_vE\n"
-    gdb_expect {
-       -re "type = class vE : public virtual vD \{${ws}private:${ws}vD \\*${vbptr}vD;${ws}public:${ws}int ve;${ws}int vx;$nl.*\}.*$gdb_prompt $" {
-           pass "ptype g_vE"
-       }
-       -re "type = class vE : public virtual vD \{${ws}public:${ws}int ve;${ws}int vx;\r\n.*\}.*$gdb_prompt $" {
-           pass "ptype g_vE"
-       }
-       -re ".*$gdb_prompt $" { fail "ptype g_vE" }
-       timeout { fail "(timeout) ptype g_vE" }
-    }
-}
-
-#
-# Multiple virtual inheritance, print complete classes.
-#
-
-proc test_print_mvi_classes {} {
-    global gdb_prompt
-    global hex
-    global decimal
-    global nl
-    global vbptr
-
-    # Print all members of g_vD.
-
-    send_gdb "print g_vD\n"
-    gdb_expect {
-       -re ".* = \{\<class vB\> = \{\<class vA\> = \{va = 19, vx = 20\}, vb = 21, vx = 22, Virtual table at $hex\}, \<class vC\> = \{vc = 23, vx = 24, Virtual table at $hex\}, vd = 25, vx = 26, Virtual table at $hex\}$nl$gdb_prompt $" {
-           pass "print g_vD (aCC)"
-       }
-       -re ".* = \{\<class vB\> = \{\<class vA\> = \{va = 19, vx = 20\}, vb = 21, vx = 22, __vfp = $hex\}, \<class vC\> = \{vc = 23, vx = 24, __vfp = $hex\}, vd = 25, vx = 26, __vfp = $hex\}$nl$gdb_prompt $" {
-           pass "print g_vD (aCC)"
-       }
-       -re ".* = \{\<vB\> = \{\<vA\> = \{va = 19, vx = 20\}, ${vbptr}vA = $hex, vb = 21, vx = 22\}, \<vC\> = \{${vbptr}vA = $hex, vc = 23, vx = 24\}, ${vbptr}vC = $hex, ${vbptr}vB = $hex, vd = 25, vx = 26\}$nl$gdb_prompt $" {
-           pass "print g_vD"
-       }
-       -re ".* = \{\<vB\> = \{\<vA\> = \{va = 19, vx = 20\}, _vptr.vB = $hex, vb = 21, vx = 22\}, \<vC\> = \{_vptr.vC = $hex, vc = 23, vx = 24\}, _vptr.vD = $hex, vd = 25, vx = 26\}$nl$gdb_prompt $" {
-           pass "print g_vD (FIXME v3 vtbl ptr)"
-       }
-       -re ".* = \{\<vB\> = \{\<vA\> = \{va = 19, vx = 20\}, _vptr.vB = $hex, vb = 21, vx = 22\}, \<vC\> = \{_vptr.vC = $hex <VTT for vD>, vc = 23, vx = 24\}, _vptr.vD = $hex, vd = 25, vx = 26\}$nl$gdb_prompt $" {
-           # Happens with gcc 3.3 -gstabs+
-           # Does not happen with gcc 3.2.3 -gstabs+.
-           # Does not happen gcc HEAD%20030624 (pre-3.4) -gstabs+.
-           # -- chastain 2003-06-29
-           pass "print g_vD"
-       }
-       -re ".*invalid address 0x0.*$gdb_prompt $" {
-           # Does not happen with gcc cygnus-2.4.5-930828
-           fail "print g_vD (known bug with gcc cygnus-2.4.5-930417)"
-           # Many of the rest of these tests have the same problem.
-           return 0
-       }
-       -re ".*$gdb_prompt $" { fail "print g_vD" }
-       timeout { fail "print g_vD (timeout)" ; return }
-    }
-
-    # Print all members of g_vE.
-
-    send_gdb "print g_vE\n"
-    gdb_expect {
-       -re ".* = \{\<class vD\> = \{\<class vB\> = \{\<class vA\> = \{va = 0, vx = 0\}, vb = 0, vx = 0, Virtual table at $hex\}, \<class vC\> = \{vc = 0, vx = 0, Virtual table at $hex\}, vd = 0, vx = 0, Virtual table at $hex\}, ve = 27, vx = 28, Virtual table at $hex\}$nl$gdb_prompt $" {
-           pass "print g_vE (aCC)"
-       }
-       -re ".* = \{\<class vD\> = \{\<class vB\> = \{\<class vA\> = \{va = 0, vx = 0\}, vb = 0, vx = 0, __vfp = $hex\}, \<class vC\> = \{vc = 0, vx = 0, __vfp = $hex\}, vd = 0, vx = 0, __vfp = $hex\}, ve = 27, vx = 28, __vfp = $hex\}$nl$gdb_prompt $" {
-           pass "print g_vE (aCC)"
-       }
-       -re ".* = \{\<vD\> = \{\<vB\> = \{\<vA\> = \{va = 0, vx = 0\}, ${vbptr}vA = $hex, vb = 0, vx = 0\}, \<vC\> = \{${vbptr}vA = $hex, vc = 0, vx = 0\}, ${vbptr}vC = $hex, ${vbptr}vB = $hex, vd = 0, vx = 0\}, ${vbptr}vD = $hex, ve = 27, vx = 28\}$nl$gdb_prompt $" {
-           pass "print g_vE"
-       }
-       -re ".* = \{\<vD\> = \{\<vB\> = \{\<vA\> = \{va = 0, vx = 0\}, _vptr.vB = $hex *(\<VTT for vD\>)?, vb = 0, vx = 0\}, \<vC\> = \{_vptr.vC = $hex *(\<VTT for vD\>)?, vc = 0, vx = 0\}, _vptr.vD = $hex, vd = 0, vx = 0\}, _vptr.vE = $hex, ve = 27, vx = 28\}$nl$gdb_prompt $" {
-           pass "print g_vE (FIXME v3 vtbl ptr)"
-       }
-       -re ".*$gdb_prompt $" { fail "print g_vE" }
-       timeout { fail "print g_vE (timeout)" }
-    }
-}
-
-proc do_tests {} {
-    global prms_id
-    global bug_id
-    global subdir
-    global objdir
-    global srcdir
-    global binfile
-
-    set prms_id 0
-    set bug_id 0
-
-    # Start with a fresh gdb.
-
-    gdb_exit
-    gdb_start
-    gdb_reinitialize_dir $srcdir/$subdir
-    gdb_load $binfile
-
-    gdb_test "set language c++" ""
-    gdb_test "set width 0" ""
-
-    # Get the debug format for the compiled test case.
-
-    if { ![ runto_main] } {
-       gdb_suppress_tests;
-    }
-
-    test_ptype_si
-    test_ptype_mi
-    test_ptype_vi
-    test_ptype_mvi
-
-    gdb_stop_suppressing_tests;
-    
-    if { ![ runto 'inheritance2' ] } {
-       gdb_suppress_tests;
-    }
-
-    test_print_si_members
-    test_print_si_classes
-    test_print_mi_members
-    test_print_mi_classes
-    test_print_anon_union
-
-    gdb_stop_suppressing_tests;
-
-    if { ![ runto 'inheritance4' ] } {
-       gdb_suppress_tests;
-    }
-
-    test_print_svi_members
-    test_print_svi_classes
-    test_print_mvi_members
-    test_print_mvi_classes
-}
-
-do_tests
diff --git a/gdb/testsuite/gdb.c++/local.cc b/gdb/testsuite/gdb.c++/local.cc
deleted file mode 100644 (file)
index 85fd6e1..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-// Tests for local types
-
-void marker1 (void)
-{ 
-}
-
-void marker2 (void)
-{
-}
-  
-int foobar (int x)
-{
-  class Local {
-  public:
-    int loc1;
-    char loc_foo (char c)
-    {
-      return c + 3;
-    }
-  };
-
-  Local l;
-  static Local l1;
-  char  c;
-
-  marker1 ();
-
-  l.loc1 = 23;
-
-  c = l.loc_foo('x');
-  return c + 2;
-}
-
-int main()
-{
-  int c;
-  
-  c = foobar (31);
-  
- { // inner block
-   class InnerLocal {
-   public:
-     char ilc;
-     int * ip;
-     int il_foo (unsigned const char & uccr)
-     {
-       return uccr + 333;
-     }
-     class NestedInnerLocal {
-     public:
-       int nil;
-       int nil_foo (int i)
-       {
-         return i * 27;
-       }
-     };
-     NestedInnerLocal nest1;
-   };
-
-   InnerLocal il;
-
-   il.ilc = 'b';
-   il.ip = &c;
-   marker2();
- }
-}
diff --git a/gdb/testsuite/gdb.c++/local.exp b/gdb/testsuite/gdb.c++/local.exp
deleted file mode 100644 (file)
index 21ceb7a..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-# Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# tests for local variables
-# Written by Satish Pai <pai@apollo.hp.com> 1997-07-08
-# Cleaned by Michael Chastain <mec@shout.net> 2002-04-08
-
-
-# This file is part of the gdb testsuite
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "local"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-if [get_compiler_info $binfile "c++"] {
-  return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-#
-# set it up at a breakpoint so we can play with the variable values
-#
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-if ![runto 'marker1'] then {
-    perror "couldn't run to marker1"
-    continue
-}
-
-gdb_test "up" ".*foobar.*" "up from marker1"
-
-# Local classes in g++ get names like "main.1::InnerLocal", just like local
-# static variables.  Some targets use "___" instead of ".".
-
-# ---
-# Pattern 1:
-# PASS
-#   dwarf-2
-#     gcc 2.95.3
-#
-# Pattern 2:
-# FAIL
-# This has a duplicate "char loc_foo" line.  This is a bug.
-# Historically this has been an XFAIL.
-#   dwarf-2
-#     gcc 2.96-rh, 3.0.4, gcc-3_1-branch, HEAD
-#
-# Pattern 3:
-# PASS
-#   stabs+
-#     gcc 2.95.3, 2.96-rh, 3.0.4, gcc-3_1-branch, HEAD
-#
-# Pattern 4:
-# This an old pattern from the hppa aCC version of this file.
-# I left it alone.
-#
-# chastain 2002-04-08
-
-set sep "(\[.\]|___)\[0-9\]"
-
-send_gdb "ptype Local\n"
-gdb_expect {
-  -re "type = class Local \{\[\r\n\t \]*public:\[\r\n\t \]*int loc1;\[\r\n\t \]*char loc_foo\\((const *|)char\\);\[\r\n\t \]*\}.*$gdb_prompt $" { pass "ptype Local" }
-  -re "type = class Local \{\[\r\n\t \]*public:\[\r\n\t \]*int loc1;\[\r\n\t \]*char loc_foo\\((const *|)char\\);\[\r\n\t \]*char loc_foo\\((const *|)char\\);\[\r\n\t \]*\}.*$gdb_prompt $" {
-    kfail "gdb/483" "ptype Local"
-  }
-  -re "type = class Local \{\[\r\n\t \]*public:\[\r\n\t \]*int loc1;\[\r\n\t \]*Local & operator *=\\((foobar__Fi${sep}::|)Local const *&\\);\[\r\n\t \]*Local\\((foobar__Fi${sep}::|)Local const *&\\);\[\r\n\t \]*Local\\((void|)\\);\[\r\n\t \]*char loc_foo\\(char\\);\[\r\n\t \]*\}.*$gdb_prompt $" { pass "ptype Local" }
-  -re "type = class Local \{\r\n\[\t \]*public:\r\n\[\t \]*int loc1;\r\n\r\n\[\t \]*char loc_foo\\(char\\);\r\n\[\t \]*\\(Local at.*local\\.cc:\[0-9\]*\\)\r\n\}.*$gdb_prompt $" { xpass "ptype Local (old aCC)" }
-  -re ".*$gdb_prompt $"   {  fail "ptype Local" }
-  timeout             { fail "(timeout) ptype Local" }
-}
-
-gdb_test "break marker2"
-gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, marker2.*" \
-    "continuing to marker2"
-
-gdb_test "up" ".*main.*" "up from marker2"
-
-# Make sure that `Local' isn't in scope here; it's local to foobar.
-# setup_kfail "gdb/825"
-send_gdb "ptype Local\n"
-set eol "\[\t \]*\[\r\n\]+\[\t \]*"
-gdb_expect {
-    -re "No symbol \"Local\" in current context.*${gdb_prompt} $" {
-        pass "Local out of scope"
-    }
-    -re "ptype Local${eol}type = class Local {${eol}  public:${eol}    int loc1;${eol}.*${eol}    char loc_foo\\(char\\);${eol}}${eol}${gdb_prompt} " {
-        # GCC emits STABS debugging information in a way that doesn't
-        # properly preserve the scoping of local classes.  I think
-        # we'd need to start using Sun's extensions to stabs to get
-        # this right.
-        kfail gdb/825 "Local out of scope"
-    }
-    -re ".*${gdb_prompt} $" {
-        fail "Local out of scope"
-    }
-    timeout {
-        fail "Local out of scope (timeout)"
-    }
-}
-        
-
-# DTS CLLbs14316 and CLLbs17058
-# coulter - I added a clause for HP's aCC compiler.  We print out the type
-#   as xx instead of const unsigned char, but we still have an expected failure
-#   because of two reasons:
-#   There is a number at the end of InnerLocal4 which should not be there,
-#       DTS CLLbs14316
-#   The line number for the class 
-# setup_xfail "hppa*-*-*" CLLbs14316
-
-# ---
-# Pattern 1:
-# PASS
-#   dwarf-2
-#     2.95.3, 2.96-rh, 3.0.4, 3.1, gcc-3_1-branch, HEAD
-#
-# Pattern 2:
-# PASS
-#   stabs+
-#     2.95.3, 2.96-rh, 3.0.4, 3.1, gcc-3_1-branch, HEAD
-#
-# Pattern 3:
-# Old hppa pattern.
-#
-# Pattern 4:
-# Old hppa pattern.
-#
-# chastain 2002-05-27
-
-send_gdb "ptype InnerLocal\n"
-gdb_expect {
-  -re "type = class InnerLocal \{\[\r\n\t \]*public:\[\r\n\t \]*char ilc;\[\r\n\t \]*int \\* *ip;\[\r\n\t \]*(InnerLocal::|)NestedInnerLocal nest1;\[\r\n\t \]*int il_foo\\((unsigned char const|const unsigned char) *&\\);\[\r\n\t \]*\}.*$gdb_prompt $" { pass "ptype InnerLocal (pattern 1)" }
-  -re "type = class InnerLocal \{\[\r\n\t \]*public:\[\r\n\t \]*char ilc;\[\r\n\t \]*int \\* *ip;\[\r\n\t \]*(InnerLocal::|)NestedInnerLocal nest1;\[\r\n\t \]*InnerLocal *& operator *=\\((main${sep}::|)InnerLocal const *&\\);\[\r\n\t \]*InnerLocal\\((main${sep}::|)InnerLocal const *&\\);\[\r\n\t \]*InnerLocal\\((void|)\\);\[\r\n\t \]*int il_foo\\(unsigned char const *&\\);\[\r\n\t \]*\}.*$gdb_prompt $" { pass "ptype InnerLocal (pattern 2)" }
-  -re "type = class InnerLocal \{\r\n\[\t \]*public:\r\n\[\t \]*char ilc;\r\n\[\t \]*int \\*ip;\r\n\[\t \]*InnerLocal::NestedInnerLocal nest1;\r\n\r\n\[\t \]*.int il_foo\\(unsigned char const &\\);\r\n\[\t \]*\}\[\t \]*\\(Local at.*local\\.cc:36\\).*$gdb_prompt $" { pass "ptype InnerLocal (old HP aCC)" }
-  -re "type = class InnerLocal \{\r\n\[\t \]*public:\r\n\[\t \]*char ilc;\r\n\[\t \]*int \\*ip;\r\n\[\t \]*class InnerLocal4::NestedInnerLocal nest1;\r\n\r\n\[\t \]*int il_foo\\(unsigned char const &\\);\r\n\[\t \]*\\(Local at.*local\.cc:\[0-9\]+\\)\r\n\}.*$gdb_prompt $" { pass "ptype InnerLocal (old HP aCC)" }
-  -re ".*$gdb_prompt $"   {  fail "ptype InnerLocal" }
-  timeout             { fail "(timeout) ptype InnerLocal" }
-}
-
-#---
-# Pattern 1:
-# PASS
-#   dwarf-2
-#     gcc 2.95.3, 2.96-rh, 3.0.4, gcc-3_1-branch, HEAD
-#
-# Pattern 2:
-# PASS
-#   stabs+
-#     gcc 2.95.3, 2.96-rh, 3.0.4, gcc-3_1-branch, HEAD
-#
-# chastain 2002-04-08
-
-send_gdb "ptype NestedInnerLocal\n"
-gdb_expect {
-  -re "type = class NestedInnerLocal \{\[\r\n\t \]*public:\[\r\n\t \]*int nil;\[\r\n\t \]*int nil_foo\\(int\\);\[\r\n\t \]*\}.*$gdb_prompt $" { pass "ptype NestedInnerLocal" }
-  -re "type = class NestedInnerLocal \{\[\r\n\t \]*public:\[\r\n\t \]*int nil;\[\r\n\t \]*NestedInnerLocal *& *operator *= *\\((main${sep}::|)InnerLocal::NestedInnerLocal const *&\\);\[\r\n\t \]*NestedInnerLocal\\((main${sep}::|)InnerLocal::NestedInnerLocal const *&\\);\[\r\n\t \]*NestedInnerLocal\\((void|)\\);\[\r\n\t \]*int nil_foo\\(int\\);\[\r\n\t \]*\}.*$gdb_prompt $" { pass "ptype NestedInnerLocal" }
-  -re ".*$gdb_prompt $"   {  fail "ptype NestedInnerLocal" }
-  timeout             { fail "(timeout) ptype NestedInnerLocal" }
-}
-
-# gdb incorrectly interprets the NestedInnerLocal in
-# InnerLocal::NestedInnerLocal as field name instead of a type name;
-# See CLLbs14784.
-
-#---
-# Pattern 3:
-# FAIL
-# The comment above, about CLLbs14784, is still correct.
-#   dwarf-2
-#     gcc 2.95.3, 2.96-rh, 3.0.4, gcc-3_1-branch, HEAD
-#   stabs+
-#     gcc 2.95.3, 2.96-rh, 3.0.4, gcc-3_1-branch, HEAD
-#
-# chastain 2002-04-08
-
-send_gdb "ptype InnerLocal::NestedInnerLocal\n"
-gdb_expect {
-  -re "type = class InnerLocal::NestedInnerLocal \{\[\r\n\t \]*public:\[\r\n\t \]*int nil;\[\r\n\t \]*int nil_foo\\(int\\);\[\r\n\t \]*\}.*$gdb_prompt $" { pass "ptype InnerLocal::NestedInnerLocal" }
-  -re "type = class InnerLocal::NestedInnerLocal \{\[\r\n\t \]*public:\[\r\n\t \]*int nil;\[\r\n\t \]*NestedInnerLocal *& *operator *= *\\((main${sep}::|)InnerLocal::NestedInnerLocal const *&\\);\[\r\n\t \]*NestedInnerLocal\\((main${sep}::|)InnerLocal::NestedInnerLocal const *&\\);\[\r\n\t \]*NestedInnerLocal\\((void|)\\);\[\r\n\t \]*int nil_foo\\(int\\);\[\r\n\t \]*\}.*$gdb_prompt $" { pass "ptype InnerLocal::NestedInnerLocal" }
-  -re "There is no field named NestedInnerLocal.*$gdb_prompt $" {
-    setup_kfail "gdb/482" *-*-*
-    fail "ptype InnerLocal::NestedInnerLocal"
-  }
-  -re "No symbol .*NestedInnerLocal.* in current context.*$gdb_prompt $" { fail "ptype InnerLocal::NestedInnerLocal (bogus symbol lookup)" }
-  -re ".*$gdb_prompt $"   {  fail "ptype InnerLocal::NestedInnerLocal" }
-  timeout             { fail "(timeout) ptype InnerLocal::NestedInnerLocal" }
-}
diff --git a/gdb/testsuite/gdb.c++/m-data.cc b/gdb/testsuite/gdb.c++/m-data.cc
deleted file mode 100644 (file)
index c97e719..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-// 2002-05-13
-
-enum region { oriental, egyptian, greek, etruscan, roman };
-
-// Test one.
-class gnu_obj_1
-{
-protected:
-  typedef region antiquities;
-  const bool           test;
-  const int            key1;
-  long                 key2;
-
-  antiquities  value;
-
-public:
-  gnu_obj_1(antiquities a, long l): test(true), key1(5), key2(l), value(a) {}
-};
-
-// Test two.
-template<typename T>
-class gnu_obj_2: public virtual gnu_obj_1
-{
-protected:
-  antiquities  value_derived;
-      
-public:
-  gnu_obj_2(antiquities b): gnu_obj_1(oriental, 7), value_derived(b) { }
-}; 
-
-// Test three.
-template<typename T>
-class gnu_obj_3
-{
-protected:
-  typedef region antiquities;
-  gnu_obj_2<int>       data;
-      
-public:
-  gnu_obj_3(antiquities b): data(etruscan) { }
-}; 
-
-int shadow = 0;
-
-class C
-{
-public:
-  C (int x) : shadow (x) {}
-  void marker () {}
-private:
-  int shadow;
-};
-
-int main()
-{
-  gnu_obj_1            test1(egyptian, 4589);
-  gnu_obj_2<long>      test2(roman);
-  gnu_obj_3<long>      test3(greek);
-
-  C theC (1);                          // breakpoint: first-constructs-done
-  theC.marker ();
-  
-  return 0;
-}
diff --git a/gdb/testsuite/gdb.c++/m-data.exp b/gdb/testsuite/gdb.c++/m-data.exp
deleted file mode 100644 (file)
index 85adb5e..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-# Copyright 2002 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.  
-
-# Tests for member data
-# 2002-05-13  Benjamin Kosnik  <bkoz@redhat.com>
-
-# This file is part of the gdb testsuite
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-if { [skip_cplus_tests] } { continue }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-set testfile "m-data"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-if [get_compiler_info ${binfile} "c++"] {
-    return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-# First, run to after we've constructed all the gnu_obj_N's:
-
-gdb_breakpoint [gdb_get_line_number "first-constructs-done"]
-gdb_continue_to_breakpoint "end of first constructors"
-
-# One.
-
-# simple object, const bool
-gdb_test "print test1.test" "\\$\[0-9\]* = true" "simple object, const bool"
-
-# simple object, const int
-gdb_test "print test1.key1" "\\$\[0-9\]* = 5" "simple object, const int"
-
-# simple object, long
-gdb_test "print test1.key2" "\\$\[0-9\]* = 4589" "simple object, long"
-
-# simple object, enum
-gdb_test "print test1.value" "\\$\[0-9\]* = egyptian" "simple object, enum"
-
-# Two.
-
-# derived template object, base const bool
-gdb_test "print test2.test" "\\$\[0-9\]* = true" "derived template object, base const bool"
-
-# derived template object, base const int
-gdb_test "print test2.key1" "\\$\[0-9\]* = 5" "derived template object, base const int"
-
-# derived template object, base long
-gdb_test "print test2.key2" "\\$\[0-9\]* = 7" "derived template object, base long"
-
-# derived template object, base enum
-gdb_test "print test2.value" "\\$\[0-9\]* = oriental" "derived template object, base enum"
-
-# derived template object, enum
-gdb_test "print test2.value_derived" "\\$\[0-9\]* = roman" "derived template object, derived enum"
-
-# Three.
-
-# template object, derived template data member's base const bool
-gdb_test "print test3.data.test" "\\$\[0-9\]* = true" "template object, const bool"
-
-# template object, derived template data member's base const int
-gdb_test "print test3.data.key1" "\\$\[0-9\]* = 5" "template object, const int"
-
-# template object, derived template data member's base long
-gdb_test "print test3.data.key2" "\\$\[0-9\]* = 7" "template object, long"
-
-# template object, derived template data member's base enum
-gdb_test "print test3.data.value" "\\$\[0-9\]* = oriental" "template object, base enum"
-
-# template object, derived template data member's enum
-gdb_test "print test3.data.value_derived" "\\$\[0-9]\* = etruscan" "template object, derived enum"
-
-# Now some tests for shadowing (see PR gdb/804):
-
-gdb_breakpoint "C::marker"
-gdb_continue_to_breakpoint "continue to shadow breakpoint"
-
-gdb_test "print shadow" "\\$\[0-9]\* = 1" "shadowing member"
-gdb_test "print ::shadow" "\\$\[0-9]\* = 0" "shadowed global variable"
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.c++/m-static.cc b/gdb/testsuite/gdb.c++/m-static.cc
deleted file mode 100644 (file)
index 6d08cb0..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// 2002-05-13
-
-enum region { oriental, egyptian, greek, etruscan, roman };
-
-// Test one.
-class gnu_obj_1
-{
-protected:
-  typedef region antiquities;
-  static const bool    test = true;
-  static const int     key1 = 5;
-  static long          key2;
-
-  static antiquities   value;
-
-public:
-  gnu_obj_1(antiquities a, long l) {}
-};
-
-const bool gnu_obj_1::test;
-const int gnu_obj_1::key1;
-long gnu_obj_1::key2 = 77;
-gnu_obj_1::antiquities gnu_obj_1::value = oriental;
-
-
-// Test two.
-template<typename T>
-class gnu_obj_2: public virtual gnu_obj_1
-{
-public:
-  static antiquities   value_derived;
-      
-public:
-  gnu_obj_2(antiquities b): gnu_obj_1(oriental, 7) { }
-}; 
-
-template<typename T>
-typename gnu_obj_2<T>::antiquities gnu_obj_2<T>::value_derived = etruscan;
-
-// Test three.
-template<typename T>
-class gnu_obj_3
-{
-public:
-  typedef region antiquities;
-  static gnu_obj_2<int> data;
-      
-public:
-  gnu_obj_3(antiquities b) { }
-}; 
-
-template<typename T>
-gnu_obj_2<int> gnu_obj_3<T>::data(etruscan);
-
-// 2002-08-16
-// Test four.
-#include "m-static.h"
-
-// instantiate templates explicitly so their static members will exist
-template class gnu_obj_2<int>;
-template class gnu_obj_2<long>;
-template class gnu_obj_3<long>;
-
-int main()
-{
-  gnu_obj_1            test1(egyptian, 4589);
-  gnu_obj_2<long>      test2(roman);
-  gnu_obj_3<long>      test3(greek);
-  gnu_obj_4            test4;
-
-  return 0;                            // breakpoint: constructs-done
-}
diff --git a/gdb/testsuite/gdb.c++/m-static.exp b/gdb/testsuite/gdb.c++/m-static.exp
deleted file mode 100644 (file)
index d291135..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-# Copyright 2002 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.  
-
-# Tests for member static data
-# 2002-05-13  Benjamin Kosnik  <bkoz@redhat.com>
-# 2002-08-22  David Carlton <carlton@math.stanford.edu>
-
-# This file is part of the gdb testsuite
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-if { [skip_cplus_tests] } { continue }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-set testfile "m-static"
-set srcfile ${testfile}.cc
-set srcfile1 ${testfile}1.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile} ${srcdir}/${subdir}/${srcfile1}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-if [get_compiler_info ${binfile} "c++"] {
-    return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-# First, run to after we've constructed all the objects:
-
-gdb_breakpoint [gdb_get_line_number "constructs-done"]
-gdb_continue_to_breakpoint "end of constructors"
-
-
-# One.
-
-# simple object, static const bool
-gdb_test "print test1.test" "\\$\[0-9\]* = true" "simple object, static const bool"
-
-# simple object, static const int
-gdb_test "print test1.key1" "\\$\[0-9\]* = 5" "simple object, static const int"
-
-# simple object, static long
-gdb_test "print test1.key2" "\\$\[0-9\]* = 77" "simple object, static long"
-
-# simple object, static enum
-gdb_test "print test1.value" "\\$\[0-9\]* = oriental" "simple object, static enum"
-
-# Two.
-
-# derived template object, base static const bool
-gdb_test "print test2.test" "\\$\[0-9\]* = true" "derived template object, base static const bool"
-
-# derived template object, base static const int
-gdb_test "print test2.key1" "\\$\[0-9\]* = 5" "derived template object, base static const int"
-
-# derived template object, base static long
-gdb_test "print test2.key2" "\\$\[0-9\]* = 77" "derived template object, base static long"
-
-# derived template object, base static enum
-gdb_test "print test2.value" "\\$\[0-9\].* = oriental" "derived template object, base static enum"
-
-# derived template object, static enum
-gdb_test "print test2.value_derived" "\\$\[0-9\].* = etruscan" "derived template object, static enum"
-
-# Three.
-
-# template object, static derived template data member's base static const bool
-gdb_test "print test3.data.test" "\\$\[0-9\].* = true" "template object, static const bool"
-
-# template object, static derived template data member's base static const int
-gdb_test "print test3.data.key1" "\\$\[0-9\].* = 5" "template object, static const int"
-
-# template object, static derived template data member's base static long
-gdb_test "print test3.data.key2" "\\$\[0-9\].* = 77" "template object, static long"
-
-# template object, static derived template data member's base static enum
-gdb_test "print test3.data.value" "\\$\[0-9\].* = oriental" "template object, static enum"
-
-#  template object, static derived template data member's static enum
-gdb_test "print test3.data.value_derived" "\\$\[0-9\].* = etruscan" "template object, static derived enum"
-
-# 2002-08-16
-# Four.
-
-# static const int initialized in another file.
-gdb_test "print test4.elsewhere" "\\$\[0-9\].* = 221" "static const int initialized elsewhere"
-
-# static const int that nobody initializes.  From PR gdb/635.
-gdb_test "print test4.nowhere" "field nowhere is nonexistent or has been optimised out" "static const int initialized nowhere"
-
-# Perhaps at some point test4 should also include a test for a static
-# const int that was initialized in the header file.  But I'm not sure
-# that GDB's current behavior in such situations is either consistent
-# across platforms or optimal, so I'm not including one now.
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.c++/m-static.h b/gdb/testsuite/gdb.c++/m-static.h
deleted file mode 100644 (file)
index 137d3b7..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-// 2002-08-16
-
-class gnu_obj_4
-{
- public:
-  static const int elsewhere;
-  static const int nowhere;
-  // At some point, perhaps:
-  // static const int everywhere = 317;
-};
-
diff --git a/gdb/testsuite/gdb.c++/m-static1.cc b/gdb/testsuite/gdb.c++/m-static1.cc
deleted file mode 100644 (file)
index 302a5ad..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-// 2002-08-16
-
-#include "m-static.h"
-
-const int gnu_obj_4::elsewhere = 221;
diff --git a/gdb/testsuite/gdb.c++/maint.exp b/gdb/testsuite/gdb.c++/maint.exp
deleted file mode 100644 (file)
index 710e14a..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-# Copyright 2003 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 tests C++-specific maintenance commands and help on those.
-
-# Currently, no source file is used.
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-# Test the help messages.
-
-proc test_help {} {
-    set first_component_help "Print the first class/namespace component of NAME"
-    set namespace_help "Print the list of possible C\\+\\+ namespaces"
-
-    set multiple_help_body "List of maintenance cplus subcommands:\r\n\r\nmaintenance cplus first_component -- ${first_component_help}\r\nmaintenance cplus namespace -- ${namespace_help}\r\n\r\nType \"help maintenance cplus\" followed by maintenance cplus subcommand name for full documentation.\r\nCommand name abbreviations are allowed if unambiguous."
-
-    set help_maint_cp "C\\+\\+ maintenance commands.\r\n\r\n${multiple_help_body}"
-
-    gdb_test "help maintenance cplus" "${help_maint_cp}"
-    gdb_test "help maint cp" "${help_maint_cp}"
-    gdb_test "maint cp" "\"maintenance cplus\" must be followed by the name of a command.\r\n${multiple_help_body}"
-
-    gdb_test "help maint cp first_component" "${first_component_help}."
-    gdb_test "help maint cp namespace" "${namespace_help}."
-}
-
-# This is used when NAME should contain only a single component.  Be
-# careful to make sure that parentheses get escaped properly.
-proc test_single_component {name} {
-    set matchname [string_to_regexp "$name"]
-    gdb_test "maint cp first_component $name" "$matchname"
-}
-
-# This is used when NAME is invalid.
-proc test_invalid_name {name} {
-    set matchname [string_to_regexp "$name"]
-    gdb_test "maint cp first_component $name" \
-       "During symbol reading, unexpected demangled name '$matchname'.\r\n$matchname"
-}
-
-proc test_first_component {} {
-    # The function in question might complain; make sure that we see
-    # all complaints.
-
-    gdb_test "set complaints -1" ""
-
-    test_single_component "foo"
-    test_single_component "operator<<"
-    test_single_component "operator>>"
-    test_single_component "operator ->"
-    test_single_component "operator()"
-    test_single_component "operator>"
-    test_single_component "operator<"
-    test_single_component "operator ->"
-    test_single_component "operator  ->"
-
-    test_single_component "foo()"
-    test_single_component "foo(int)"
-    test_single_component "foo(X::Y)"
-    test_single_component "foo(X::Y, A::B)"
-    test_single_component "foo(std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >)"
-    test_single_component "operator>(X::Y)"
-
-    # Operator names can show up in weird places.
-
-    test_single_component "int operator<< <char>()"
-    test_single_component "T<Cooperator>"
-
-    # NOTE: carlton/2003-04-23: I've only seen the first of these
-    # produced by the demangler, but I'm including two more just to be
-    # on the safe side.
-    test_single_component "int foo<&(operator<<(C, C))>()"
-    test_single_component "int foo<&operator<<(C, C)>()"
-    test_single_component "int foo<operator<<(C, C)>()"
-
-    gdb_test "maint cp first_component foo::bar" "foo"
-    gdb_test "maint cp first_component foo::bar::baz" "foo"
-    gdb_test "maint cp first_component C<A>::bar" "C<A>"
-    gdb_test "maint cp first_component C<std::basic_streambuf<wchar_t,std::char_traits<wchar_t> > >::bar" "C<std::basic_streambuf<wchar_t,std::char_traits<wchar_t> > >"
-
-    # Make sure we behave appropriately on invalid input.
-
-    # NOTE: carlton/2003-06-25: As of today, the demangler can in fact
-    # produce examples like the third case below: there really should
-    # be a space between the two <'s.  See PR gdb/1245.
-
-    test_invalid_name "foo<"
-    test_invalid_name "foo("
-    test_invalid_name "bool operator<<char>"
-}
-
-proc test_namespace {} {
-    # There's not a lot we can do to test this.
-
-    gdb_test "maint cp namespace" "Possible namespaces:"
-}
-
-gdb_exit
-gdb_start
-
-test_help
-test_first_component
-test_namespace
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.c++/member-ptr.cc b/gdb/testsuite/gdb.c++/member-ptr.cc
deleted file mode 100644 (file)
index 4beb926..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-extern "C" {
-#include <stdio.h>
-}
-
-
-class A {
-public:
-  A();
-  int foo (int x);
-  int bar (int y);
-  virtual int baz (int z);
-  char c;
-  int  j;
-  int  jj;
-  static int s;
-};
-
-class B {
-public:
-  static int s;
-};
-
-int A::s = 10;
-int B::s = 20;
-
-A::A()
-{
-  c = 'x';
-  j = 5;
-}
-
-int A::foo (int dummy)
-{
-  j += 3;
-  return j + dummy;
-}
-
-int A::bar (int dummy)
-{
-  int r;
-  j += 13;
-  r = this->foo(15);
-  return r + j + 2 * dummy;
-}
-
-int A::baz (int dummy)
-{
-  int r;
-  j += 15;
-  r = this->foo(15);
-  return r + j + 12 * dummy;
-}
-
-int fum (int dummy)
-{
-  return 2 + 13 * dummy;
-}
-
-typedef int (A::*PMF)(int);
-
-typedef int A::*PMI;
-
-int main ()
-{
-  A a;
-  A * a_p;
-  PMF pmf;
-
-  PMF * pmf_p;
-  PMI pmi;
-
-  a.j = 121;
-  a.jj = 1331;
-  
-  int k;
-
-  a_p = &a;
-
-  pmi = &A::j;
-  pmf = &A::bar;
-  pmf_p = &pmf;
-
-  pmi = NULL;
-  
-  k = (a.*pmf)(3);
-
-  pmi = &A::jj;
-  pmf = &A::foo;
-  pmf_p = &pmf;
-
-  k = (a.*pmf)(4);
-
-  k = (a.**pmf_p)(5);
-
-  k = a.*pmi;
-  
-
-  k = a.bar(2);
-
-  k += fum (4);
-
-  B b;
-
-  k += b.s;
-  
-}
diff --git a/gdb/testsuite/gdb.c++/member-ptr.exp b/gdb/testsuite/gdb.c++/member-ptr.exp
deleted file mode 100644 (file)
index f21cd15..0000000
+++ /dev/null
@@ -1,549 +0,0 @@
-# Copyright 1998, 1999 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-# Tests for pointer-to-member support
-# Written by Satish Pai <pai@apollo.hp.com> 1997-08-19
-
-# This file is part of the gdb testsuite
-
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-if { [skip_cplus_tests] } { continue }
-
-#
-# test running programs
-#
-
-# Start with a fresh gdb
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-
-set prms_id 0
-set bug_id 0
-
-set testfile "member-ptr"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-# Create and source the file that provides information about the compiler
-# used to compile the test case.
-
-if [get_compiler_info ${binfile} "c++"] {
-    return -1
-}
-
-# Nearly all of these tests fail when compiled with G++, so just give up
-# until GDB gets enhanced. -sts 1999-06-22
-
-if {$gcc_compiled} {
-    continue 
-}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-send_gdb "break 83\n"
-gdb_expect {
-   -re "Breakpoint \[0-9\]*.*line 83\\.\r\n$gdb_prompt $" {
-      pass "set break at 83"
-    }
-    -re ".*$gdb_prompt $" { fail "set break at 83" }
-    timeout { fail "(timeout) set break at 83" }
-}
-
-send_gdb "continue\n"
-gdb_expect {
-   -re "Continuing\\.\r\n\r\nBreakpoint.*at.*member-ptr\\.cc:83\r\n83\[ \t]*pmi = NULL;\r\n$gdb_prompt $" {
-      pass "continue to 83"
-    }
-    -re ".*$gdb_prompt $" { fail "continue to 83" }
-    timeout { fail "(timeout) continue to 83" }
-}
-
-# ptype on pointer to data member
-
-send_gdb "ptype pmi\n"
-gdb_expect {
-   -re "type = int \\( A::\\*\\)\r\n$gdb_prompt $" {
-      pass "ptype pmi"
-    }
-    -re ".*$gdb_prompt $" { fail "ptype pmi" }
-    timeout { fail "(timeout) ptype pmi" }
-}
-
-# print pointer to data member
-
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print pmi\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \\(int \\( A::\\*\\)\\) &A::j\r\n$gdb_prompt $" {
-      pass "print pmi"
-    }
-    -re ".*$gdb_prompt $" { fail "print pmi" }
-    timeout { fail "(timeout) print pmi" }
-}
-
-
-# print dereferenced pointer to data member
-
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print a.*pmi\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 121\r\n$gdb_prompt $" {
-      pass "print a.*pmi"
-    }
-    -re ".*$gdb_prompt $" { fail "print a.*pmi" }
-    timeout { fail "(timeout) print a.*pmi" }
-}
-
-# print dereferenced pointer to data member
-# this time, dereferenced through a pointer
-
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print a_p->*pmi\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 121\r\n$gdb_prompt $" {
-      pass "print a->*pmi"
-    }
-    -re ".*$gdb_prompt $" { fail "print a->*pmi" }
-    timeout { fail "(timeout) print a->*pmi" }
-}
-
-
-# set the pointer to data member
-
-send_gdb "set var pmi = &A::jj\n"
-gdb_expect {
-   -re "$gdb_prompt $" {
-      pass "set var (not really a pass)"
-    }
-    timeout { fail "(timeout) " }
-}
-
-# Now print the pointer again
-
-send_gdb "print pmi\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \\(int \\( A::\\*\\)\\) &A::jj\r\n$gdb_prompt $" {
-      pass "print pmi after setting"
-    }
-    -re ".*$gdb_prompt $" { fail "print pmi after setting" }
-    timeout { fail "(timeout) print pmi after setting" }
-}
-
-# print dereferenced pointer to data member again
-
-send_gdb "print a.*pmi\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 1331\r\n$gdb_prompt $" {
-      pass "print a.*pmi after setting"
-    }
-    -re ".*$gdb_prompt $" { fail "print a.*pmi after setting" }
-    timeout { fail "(timeout) print a.*pmi after setting" }
-}
-
-# set the pointer to data member back to A::j
-
-send_gdb "set var pmi = &A::j\n"
-gdb_expect {
-   -re "$gdb_prompt $" {
-      pass "set var back to A::j (not really a pass)"
-    }
-    timeout { fail "(timeout) set var pmi" }
-}
-
-# print dereferenced pointer to data member yet again (extra check, why not)
-
-send_gdb "print a.*pmi\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 121\r\n$gdb_prompt $" {
-      pass "print a.*pmi after resetting"
-    }
-    -re ".*$gdb_prompt $" { fail "print a.*pmi after resetting" }
-    timeout { fail "(timeout) print a.*pmi after resetting" }
-}
-
-# Set the data member pointed to.
-
-send_gdb "print a.*pmi = 33\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 33\r\n$gdb_prompt $" {
-      pass "print command to set"
-    }
-    -re ".*$gdb_prompt $" { fail "print command to set" }
-    timeout { fail "(timeout) print command to set" }
-}
-
-# Now check that the data really was changed
-send_gdb "print a.*pmi\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 33\r\n$gdb_prompt $" {
-      pass "print a.*pmi after setting member pointed to"
-    }
-    -re ".*$gdb_prompt $" { fail "print a.*pmi after setting member pointed to" }
-    timeout { fail "(timeout) print a.*pmi after setting member pointed to" }
-}
-
-# Double-check by printing a.
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print a\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \{c = 120 'x', j = 33, jj = 1331, static s = 10, Virtual table at $hex\}\r\n$gdb_prompt $" {
-      pass "print a after setting member pointed to by pmi"
-    }
-    -re ".*$gdb_prompt $" { fail "print a after setting member pointed to by pmi" }
-    timeout { fail "(timeout) print a after setting member pointed to by pmi" }
-}
-
-
-# Set the data member pointed to, using ->*
-
-send_gdb "print a_p->*pmi = 44\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 44\r\n$gdb_prompt $" {
-      pass "print command to set (->)"
-    }
-    -re ".*$gdb_prompt $" { fail "print command to set (->)" }
-    timeout { fail "(timeout) print command to set (->)" }
-}
-
-# Now check that the data really was changed
-send_gdb "print a_p->*pmi\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 44\r\n$gdb_prompt $" {
-      pass "print a_p->*pmi after setting member pointed to"
-    }
-    -re ".*$gdb_prompt $" { fail "print a_p->*pmi after setting member pointed to" }
-    timeout { fail "(timeout) print a_p->*pmi after setting member pointed to" }
-}
-
-# Double-check by printing a.
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print a\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \{c = 120 'x', j = 44, jj = 1331, static s = 10, Virtual table at $hex\}\r\n$gdb_prompt $" {
-      pass "print a after setting member pointed to by pmi (->) "
-    }
-    -re ".*$gdb_prompt $" { fail "print a after setting member pointed to by pmi (->) " }
-    timeout { fail "(timeout) print a after setting member pointed to by pmi (->) " }
-}
-
-
-# Do a ptype on the dereferenced pointer to member
-# pai/1997-08-20 Doesn't work
-
-# send_gdb "ptype a.*pmi\n"
-# gdb_expect {
-#   -re "type = int\r\n$gdb_prompt $" {
-#      pass "ptype a.*pmi"
-#    }
-#    -re ".*$gdb_prompt $" { fail "ptype a.*pmi" }
-#    timeout { fail "(timeout) ptype a.*pmi" }
-#}
-
-# Try to dereference the pointer to data member without any object
-
-send_gdb "print *pmi\n"
-gdb_expect {
-   -re "Attempt to dereference pointer to member without an object\r\n$gdb_prompt $" {
-      pass "attempt to print ptr to member without object"
-    }
-    -re ".*$gdb_prompt $" { fail "attempt to print ptr to member without object" }
-    timeout { fail "(timeout) attempt to print ptr to member without object" }
-}
-
-# Try to ptype a dereference of the pointer to data member without any object
-
-send_gdb "ptype *pmi\n"
-gdb_expect {
-   -re "Attempt to dereference pointer to member without an object\r\n$gdb_prompt $" {
-      pass "attempt to ptype ptr to member without object"
-    }
-    -re ".*$gdb_prompt $" { fail "attempt to ptype ptr to member without object" }
-    timeout { fail "(timeout) attempt to ptype ptr to member without object" }
-}
-
-# Ptype a pointer to a method.
-
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "ptype pmf\n"
-gdb_expect {
-   -re "type = int \\( A::\\*\\)\\(\\.\\.\\.\\)\r\n$gdb_prompt $" {
-      pass "ptype pmf"
-    }
-    -re ".*$gdb_prompt $" { fail "ptype pmf" }
-    timeout { fail "(timeout) ptype pmf" }
-}
-
-# print a pointer to a method
-
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print pmf\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \\(int \\( A::\\*\\)\\(\\.\\.\\.\\)\\) \\?\\? <not supported with HP aCC>\r\n$gdb_prompt $" {
-      pass "print pmf"
-    }
-    -re ".*$gdb_prompt $" { fail "print pmf" }
-    timeout { fail "(timeout) print pmf" }
-}
-
-
-# Ptype a pointer to a pointer to a method
-
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "ptype pmf_p\n"
-gdb_expect {
-   -re "type = int \\( A::\\*\\*\\)\\(\\.\\.\\.\\)\r\n$gdb_prompt $" {
-      pass "ptype pmf_p"
-    }
-    -re ".*$gdb_prompt $" { fail "ptype pmf_p" }
-    timeout { fail "(timeout) ptype pmf_p" }
-}
-
-# print a pointer to a pointer to a method
-
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print pmf_p\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \\(int \\( A::\\*\\*\\)\\(\\.\\.\\.\\)\\) $hex\r\n$gdb_prompt $" {
-      pass "print pmf_p"
-    }
-    -re ".*$gdb_prompt $" { fail "print pmf_p" }
-    timeout { fail "(timeout) print pmf_p" }
-}
-
-# print dereferenced pointer to method
-
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print a.*pmf\n"
-gdb_expect {
-   -re "Pointers to methods not supported with HP aCC\r\n$gdb_prompt $" {
-      pass "print a.*pmf (known aCC limitation)"
-    }
-    -re ".*$gdb_prompt $" { fail "print a.*pmf" }
-    timeout { fail "(timeout) print a.*pmf" }
-}
-
-# print dereferenced pointer to method, using ->*
-
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print a_p->*pmf\n"
-gdb_expect {
-   -re "Pointers to methods not supported with HP aCC\r\n$gdb_prompt $" {
-      pass "print a_p->*pmf (known aCC limitation)"
-    }
-    -re ".*$gdb_prompt $" { fail "print a_p->*pmf" }
-    timeout { fail "(timeout) print a_p->*pmf" }
-}
-
-# set the pointer to data member
-
-setup_xfail "hppa*-*-*"
-send_gdb "set var pmf = &A::foo\n"
-gdb_expect {
-   -re "Assignment to pointers to methods not implemented with HP aCC\r\n$gdb_prompt $" {
-      pass "set var pmf (known aCC limitation)"
-    }
-    -re ".*$gdb_prompt $" { fail "set var pmf" }
-    timeout { fail "(timeout) set var pmf" }
-}
-
-# Try to dereference the pointer to method without any object
-
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print *pmf\n"
-gdb_expect {
-   -re "Attempt to dereference pointer to member without an object\r\n$gdb_prompt $" {
-      pass "attempt to print  ptr to method without object"
-    }
-    -re ".*$gdb_prompt $" { fail "attempt to print ptr to method without object" }
-    timeout { fail "(timeout) attempt to print ptr to method without object" }
-}
-
-# Try to ptype a dereference of the pointer to method without any object
-
-send_gdb "ptype *pmi\n"
-gdb_expect {
-   -re "Attempt to dereference pointer to member without an object\r\n$gdb_prompt $" {
-      pass "attempt to ptype ptr to member without object"
-    }
-    -re ".*$gdb_prompt $" { fail "attempt to ptype ptr to member without object" }
-    timeout { fail "(timeout) attempt to ptype ptr to member without object" }
-}
-
-# Check cast of pointer to member to integer
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print (int) pmi\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 8\r\n$gdb_prompt $" {
-      pass "casting pmi to int"
-    }
-    -re ".*$gdb_prompt $" { fail "casting pmi to int" }
-    timeout { fail "(timeout) casting pmi to int" }
-}
-
-# Check cast of pointer to method to integer
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print (int) pmf\n"
-gdb_expect {
-   -re "Pointers to methods not supported with HP aCC\r\n$gdb_prompt $" {
-      pass "casting pmf to int (known aCC limitation)"
-    }
-    -re ".*$gdb_prompt $" { fail "casting pmf to int" }
-    timeout { fail "(timeout) casting pmf to int" }
-}
-
-# Try to invoke a function through a pointer to data member
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print (a.*pmi)(3)\n"
-gdb_expect {
-   -re "Not implemented: function invocation through pointer to method with HP aCC\r\n$gdb_prompt $" {
-      pass "print (a.*pmi)(3) -- error message should be different"
-    }
-    -re ".*$gdb_prompt $" { fail "print (a.*pmi)(3)" }
-    timeout { fail "(timeout) print (a.*pmi)(3)" }
-}
-
-# Try to invoke a function through a pointer to a method
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print (a.*pmf)(3)\n"
-gdb_expect {
-   -re "Not implemented: function invocation through pointer to method with HP aCC\r\n$gdb_prompt $" {
-      pass "print (a.*pmi)(3) -- known aCC limitation"
-    }
-    -re ".*$gdb_prompt $" { fail "print (a.*pmf)(3)" }
-    timeout { fail "(timeout) print (a.*pmf)(3)" }
-}
-
-
-# Go past assignment of NULL to pmi
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "next\n"
-gdb_expect {
-   -re "\r\n85\[ \t\]*k = \\(a.\\*pmf\\)\\(3\\);\r\n$gdb_prompt $" {
-      pass "next past 83"
-    }
-    -re ".*$gdb_prompt $" { fail "next past 83" }
-    timeout { fail "(timeout) next past 83" }
-}
-
-#send_gdb "print pmi\n"
-#gdb_expect {
-#   -re "Attempted dereference of null pointer-to-member\r\n$gdb_prompt $" {
-#      pass ""
-#    }
-#    -re ".*$gdb_prompt $" { fail "" }
-#    timeout { fail "(timeout) " }
-#}
-
-# Dereference the null pointer to member
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print a.*pmi\n"
-gdb_expect {
-   -re "Attempted dereference of null pointer-to-member\r\n$gdb_prompt $" {
-      pass "print a.*NULL"
-    }
-    -re ".*$gdb_prompt $" { fail "print a.*NULL" }
-    timeout { fail "(timeout) print a.*NULL" }
-}
-
-
-# Go to another part of the program
-send_gdb "break 91\n"
-gdb_expect {
-   -re "Breakpoint \[0-9\]*.*line 91\\.\r\n$gdb_prompt $" {
-      pass "set break at 91"
-    }
-    -re ".*$gdb_prompt $" { fail "set break at 91" }
-    timeout { fail "(timeout) set break at 91" }
-}
-
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "continue\n"
-gdb_expect {
-   -re "Continuing\\.\r\n\r\nBreakpoint.*at.*member-ptr\\.cc:91\r\n91\[ \t]*k = \\(a.\\*pmf\\)\\(4\\);\r\n$gdb_prompt $" {
-      pass "continue to 91"
-    }
-    -re ".*$gdb_prompt $" { fail "continue to 91" }
-    timeout { fail "(timeout) continue to 91" }
-}
-
-
-# Now check again that pmi works even when not set to
-# something that's at the beginning of the object
-
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print pmi\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \\(int \\( A::\\*\\)\\) &A::jj\r\n$gdb_prompt $" {
-      pass "print pmi (2)"
-    }
-    -re ".*$gdb_prompt $" { fail "print pmi (2)" }
-    timeout { fail "(timeout) print pmi (2)" }
-}
-
-
-# print dereferenced pointer to data member
-
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print a.*pmi\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 1331\r\n$gdb_prompt $" {
-      pass "print a.*pmi (2)"
-    }
-    -re ".*$gdb_prompt $" { fail "print a.*pmi (2)" }
-    timeout { fail "(timeout) print a.*pmi (2)" }
-}
-
-# print dereferenced pointer to data member
-# this time, dereferenced through a pointer
-
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "print a_p->*pmi\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 1331\r\n$gdb_prompt $" {
-      pass "print a->*pmi"
-    }
-    -re ".*$gdb_prompt $" { fail "print a->*pmi (2)" }
-    timeout { fail "(timeout) print a->*pmi (2)" }
-}
-
-
-# p a.*pmf - fail
-
-# p pmi
-
-# p a.*pmi
-
diff --git a/gdb/testsuite/gdb.c++/method.cc b/gdb/testsuite/gdb.c++/method.cc
deleted file mode 100644 (file)
index 949b027..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-// Class funk has a constructor and an ordinary method
-// Test for CHFts23426
-
-class funk
-{
-public:
-  funk();
-  void getFunky(int a, int b);
-  int data_;
-};
-
-funk::funk()
-  : data_(33)
-{
-}
-
-void funk::getFunky(int a, int b)
-{
-  int res;
-  res = a + b - data_;
-  data_ = res;
-}
-
-// Class A has const and volatile methods
-
-class A {
-public:
-  int x;
-  int y;
-  int foo (int arg);
-  int bar (int arg) const;
-  int baz (int arg, char c) volatile;
-  int qux (int arg, float f) const volatile;
-};
-
-int A::foo (int arg)
-{
-  x += arg;
-  return arg *2;
-}
-
-int A::bar (int arg) const
-{
-  return arg + 2 * x;
-}
-
-int A::baz (int arg, char c) volatile
-{
-  return arg - 2 * x + c;
-}
-
-int A::qux (int arg, float f) const volatile
-{
-  if (f > 0)
-    return 2 * arg - x;
-  else
-    return 2 * arg + x;
-}
-
-
-int main()
-{
-  A a;
-  int k;
-
-  k = 10;
-  a.x = k * 2;
-
-  k = a.foo(13);
-  
-  k += a.bar(15);
-
-  // Test for CHFts23426 follows
-  funk f;
-  f.getFunky(1, 2);
-  return 0;
-}
-
-
-
diff --git a/gdb/testsuite/gdb.c++/method.exp b/gdb/testsuite/gdb.c++/method.exp
deleted file mode 100644 (file)
index a085b14..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-# Copyright 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# tests for misc. C++ method stuff
-# Written by Satish Pai <pai@apollo.hp.com> 1997-07-08
-
-# This file is part of the gdb testsuite
-
-# This tests:
-# 0. method arguments are correct
-# 1. access to class data members inside method scopes
-# 2. correct param types for methods in ptype.
-# 3. const and volatile methods
-
-# (#0 and #1 above relate to an HP specific problem -- GDB must correctly
-# integrate FPARAM symbols in HP debug info into the local var list
-# for the function or method's block.)
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "method"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-if [get_compiler_info $binfile "c++"] {
-  return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-#
-# set it up at a breakpoint so we can play with the variable values
-#
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-gdb_test "break A::foo" \
-  "Breakpoint \[0-9\]* at $hex.*file .*method.cc, line 38\\."
-
-gdb_test "continue" \
-  "Continuing\\.\r\n\r\nBreakpoint \[0-9\]*, A::foo(\\(int\\)|) \\(this=$hex, arg=13\\) at .*method\\.cc:38\r\n38\[\t \]*x \\+= arg;" \
-  "continue to A::foo"
-
-# Check ability to access this-relative stuff.
-
-gdb_test "print x" \
-   "\\$\[0-9\]* = 20" \
-   "print x in A::foo"
-
-# Check access to this pointer       
-
-gdb_test "print this" \
-   "\\$\[0-9\]* = \\((class |)A *\\* *(const|)\\) $hex" \
-   "print this in A::foo"
-
-# Now do everything over again for A::bar, because sometimes processing one method
-# (the first one) is fine, but the second one's debug info gets munged beyond recognition.
-
-gdb_test "break A::bar" \
-  "Breakpoint \[0-9\]* at $hex.*file .*method.cc, line 44\\."
-
-gdb_test "continue" \
-  "Continuing\\.\r\n\r\nBreakpoint \[0-9\]*, A::bar(\\(int\\) const|) \\(this=$hex, arg=15\\) at .*method\\.cc:44\r\n44\[\t \]*return arg \\+ 2 \\* x;" \
-  "continue to A::bar"
-
-# Check ability to access this-relative stuff.
-
-gdb_test "print x" \
-  "\\$\[0-9\]* = 33" \
-  "print x in A::bar"
-
-# Check access to this pointer       
-
-get_debug_format
-
-send_gdb "print this\n"
-gdb_expect {
-  -re "\\$\[0-9\]* = \\(const (class |)A *\\* *(const|)\\) $hex\r\n$gdb_prompt $" {
-    pass "print this in A::bar"
-  }
-  -re "\\$\[0-9\]* = \\((class |)A *\\* *(const|)\\) $hex\r\n$gdb_prompt $" {
-    # gcc versions up to 3.0.4 with -gstabs+ do not emit "const" indicators,
-    # so the output is "A *".  It should be "const A *" or "const A * const".
-    setup_xfail_format "stabs"
-    fail "print this in A::bar (missing const)"
-  }
-  -re "\\$\[0-9\]* = \\(const (class |)\{\\.\\.\\.\} *\\* *(const|)\\) $hex\r\n$gdb_prompt $" {
-    # gcc versions gcc-3_1-branch%20020404 and HEAD%20020404 with -gstabs+
-    # produce good stabs, but gdb prints "const class {...} *" const.
-    # This is PR gdb/277.
-    # setup_kfail "gdb/277"
-    fail "print this in A::bar (gdb/277)"
-  }
-  -re ".*$gdb_prompt $" { fail "print this in A::bar" }
-  timeout { fail "(timeout) print this in A::bar" }
-}
-
-# Check again with funk::getFunky (this is the original test case
-# for CHFts23426); sometimes having a constructor with no arguments
-# will nuke the debug info read in for other methods in the class.
-
-gdb_test "break 21" \
-  "Breakpoint \[0-9\]* at $hex.*file .*method.cc, line 21\\."
-
-gdb_test "continue" \
-  "Continuing\\.\r\n\r\nBreakpoint \[0-9\]*, funk::getFunky(\\(int, int\\)|) \\(this=$hex, a=1, b=2\\) at .*method\\.cc:21\r\n21\[\t \]*data_ = res;" \
-  "continue to 21"
-
-# Check ability to access this-relative stuff.
-
-gdb_test "print data_" \
-  "\\$\[0-9\]* = 33" \
-  "print data_ in funk::getFunky"
-
-# Check access to this pointer       
-
-gdb_test "print this" \
-  "\\$\[0-9\]* = \\((class |)funk *\\* *(const|)\\) $hex" \
-  "print this in funk::getFunky"
-
-# Check access to local variable
-
-gdb_test "print res" \
-  "\\$\[0-9\]* = -30" \
-   "print res in funk::getFunky"
-
-# Check ptype of class -- should show const/volatile methods
-
-send_gdb "ptype A\n"
-gdb_expect {
-   -re "type = class A \{\r\n\[ \]*public:\r\n\[ \]*int x;\r\n\[ \]*int y;\r\n\r\n\[ \]*int foo\\(int\\);\r\n\[ \]*int bar\\(int\\) const;\r\n\[ \]*int baz\\(int, char\\) volatile;\r\n\[ \]*int qux\\(int, float\\) (const volatile|volatile const);\r\n\}\r\n$gdb_prompt $" {
-      pass "ptype A"
-   }
-   -re "type = class A \{\r\n\[ \]*public:\r\n\[ \]*int x;\r\n\[ \]*int y;\r\n\r\n\[ \]*A & operator=\\(A const ?&\\);\r\n\[ \]*A\\(A const ?&\\);\r\n\[ \]*A\\((void|)\\);\r\n\[ \]*int foo\\(int\\);\r\n\[ \]*int bar\\(int\\) const;\r\n\[ \]*int baz\\(int, char\\) volatile;\r\n\[ \]*int qux\\(int, float\\) (const volatile|volatile const);\r\n\}\r\n$gdb_prompt $" {
-      pass "ptype A"
-   }
-   -re "type = class A \{\r\n\[ \]*public:\r\n\[ \]*int x;\r\n\[ \]*int y;\r\n\r\n\[ \]*int foo\\(int\\);\r\n\[ \]*int bar\\(int\\) const;\r\n\[ \]*int baz\\(int, char\\);\r\n\[ \]*int qux\\(int, float\\) const;\r\n\}\r\n$gdb_prompt $" {
-      pass "ptype A (HP aCC bug -- volatile not indicated)"
-   }
-   -re "type = class A \{\r\n\[ \]*public:\r\n\[ \]*int x;\r\n\[ \]*int y;\r\n\r\n\[ \]*int foo\\(int\\);\r\n\[ \]*int bar\\(int\\) const;\r\n\[ \]*int baz\\(int, char\\) volatile;\r\n\[ \]*int qux\\(int, float\\) const volatile;\r\n\}\r\n$gdb_prompt $" {
-      pass "ptype A"
-   }
-   -re ".*$gdb_prompt $" { fail "ptype A" }
-   timeout { fail "(timeout) ptype A" }
-}
-
-send_gdb "cont\n"
-gdb_expect {
-    -re "Continuing.\r\n\r\nProgram exited normally.*$gdb_prompt $" {
-       pass "finish program"
-    }
-    -re "Continuing.* EXIT code 0.*Program exited normally.*$gdb_prompt $" {
-       pass "finish program (exit wrapper)" 
-    }
-    -re ".*$gdb_prompt $" { fail "finish program" }
-    default:{               fail "finish program (timeout)" }
-}
-
diff --git a/gdb/testsuite/gdb.c++/misc.cc b/gdb/testsuite/gdb.c++/misc.cc
deleted file mode 100644 (file)
index 286c02b..0000000
+++ /dev/null
@@ -1,587 +0,0 @@
-// Test various -*- C++ -*- things.
-
-// ====================== basic C++ types  =======================
-bool            v_bool;
-bool            v_bool_array[2];
-
-typedef struct fleep fleep;
-struct fleep { int a; } s;
-
-// ====================== simple class structures  =======================
-
-struct default_public_struct {
- // defaults to public:
-  int a;
-  int b;
-};
-
-struct explicit_public_struct {
- public:
-  int a;
-  int b;
-};
-
-struct protected_struct {
- protected:
-  int a;
-  int b;
-};
-
-struct private_struct {
- private:
-  int a;
-  int b;
-};
-
-struct mixed_protection_struct {
- public:
-  int a;
-  int b;
- private:
-  int c;
-  int d;
- protected:
-  int e;
-  int f;
- public:
-  int g;
- private:
-  int h;
- protected:
-  int i;
-};
-
-class public_class {
- public:
-  int a;
-  int b;
-};
-
-class protected_class {
- protected:
-  int a;
-  int b;
-};
-
-class default_private_class {
- // defaults to private:
-  int a;
-  int b;
-};
-
-class explicit_private_class {
- private:
-  int a;
-  int b;
-};
-
-class mixed_protection_class {
- public:
-  int a;
-  int b;
- private:
-  int c;
-  int d;
- protected:
-  int e;
-  int f;
- public:
-  int g;
- private:
-  int h;
- protected:
-  int i;
-};
-
-class const_vol_method_class {
-public:
-  int a;
-  int b;
-  int foo (int &) const;
-  int bar (int &) volatile;
-  int baz (int &) const volatile;
-};
-
-int const_vol_method_class::foo (int & ir) const
-{
-  return ir + 3;
-}
-int const_vol_method_class::bar (int & ir) volatile
-{
-  return ir + 4;
-}
-int const_vol_method_class::baz (int & ir) const volatile
-{
-  return ir + 5;
-}
-
-// ========================= simple inheritance ==========================
-
-class A {
- public:
-  int a;
-  int x;
-};
-
-A g_A;
-
-class B : public A {
- public:
-  int b;
-  int x;
-};
-
-B g_B;
-
-class C : public A {
- public:
-  int c;
-  int x;
-};
-
-C g_C;
-
-class D : public B, public C {
- public:
-  int d;
-  int x;
-};
-
-D g_D;
-
-class E : public D {
- public:
-  int e;
-  int x;
-};
-
-E g_E;
-
-class class_with_anon_union
-{
- public:
-  int one;
-  union
-  {
-    int a;
-    long b;
-  };
-};
-
-class_with_anon_union g_anon_union;
-
-void inheritance2 (void)
-{
-}
-
-void inheritance1 (void)
-{
-  int ival;
-  int *intp;
-
-  // {A::a, A::x}
-
-  g_A.A::a = 1;
-  g_A.A::x = 2;
-
-  // {{A::a,A::x},B::b,B::x}
-
-  g_B.A::a = 3;
-  g_B.A::x = 4;
-  g_B.B::b = 5;
-  g_B.B::x = 6;
-
-  // {{A::a,A::x},C::c,C::x}
-
-  g_C.A::a = 7;
-  g_C.A::x = 8;
-  g_C.C::c = 9;
-  g_C.C::x = 10;
-
-  // {{{A::a,A::x},B::b,B::x},{{A::a,A::x},C::c,C::x},D::d,D::x}
-
-  // The following initialization code is non-portable, but allows us
-  // to initialize all members of g_D until we can fill in the missing
-  // initialization code with legal C++ code.
-
-  for (intp = (int *) &g_D, ival = 11;
-       intp < ((int *) &g_D + sizeof (g_D) / sizeof (int));
-       intp++, ival++)
-    {
-      *intp = ival;
-    }
-
-  // Overlay the nonportable initialization with legal initialization.
-
-  // ????? = 11;  (g_D.A::a = 11; is ambiguous)
-  // ????? = 12;  (g_D.A::x = 12; is ambiguous)
-/* djb 6-3-2000
-
-       This should take care of it. Rather than try to initialize using an ambiguous
-       construct, use 2 unambiguous ones for each. Since the ambiguous a/x member is
-       coming from C, and B, initialize D's C::a, and B::a, and D's C::x and B::x.
- */
-  g_D.C::a = 15;
-  g_D.C::x = 12;
-  g_D.B::a = 11;
-  g_D.B::x = 12;
-  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 ();     
-}
-
-// ======================== static member functions =====================
-
-class Static {
-public:
-  static void ii(int, int);
-};
-void Static::ii (int, int) { }
-
-// ======================== 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 ClassWithEnum {
-public:
-  enum PrivEnum { red, green, blue, yellow = 42 };
-  PrivEnum priv_enum;
-  int x;
-};
-
-void enums2 (void)
-{
-}
-
-/* classes.exp relies on statement order in this function for testing
-   enumeration fields.  */
-
-void enums1 ()
-{
-  ClassWithEnum obj_with_enum;
-  obj_with_enum.priv_enum = ClassWithEnum::red;
-  obj_with_enum.x = 0;
-  enums2 ();
-  obj_with_enum.priv_enum = ClassWithEnum::green;
-}
-
-class ClassParam {
-public:
-  int Aptr_a (A *a) { return a->a; }
-  int Aptr_x (A *a) { return a->x; }
-  int Aref_a (A &a) { return a.a; }
-  int Aref_x (A &a) { return a.x; }
-  int Aval_a (A a) { return a.a; }
-  int Aval_x (A a) { return a.x; }
-};
-
-ClassParam class_param;
-
-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;
-}
-
-void dummy()
-{
-  v_bool = true;
-  v_bool_array[0] = false;
-  v_bool_array[1] = v_bool;
-}
-
-void use_methods ()
-{
-  /* Refer to methods so that they don't get optimized away. */
-  int i;
-  i = class_param.Aptr_a (&g_A);
-  i = class_param.Aptr_x (&g_A);
-  i = class_param.Aref_a (g_A);
-  i = class_param.Aref_x (g_A);
-  i = class_param.Aval_a (g_A);
-  i = class_param.Aval_x (g_A);
-}
-
-
-int
-main()
-{
-#ifdef usestubs
-  set_debug_traps();
-  breakpoint();
-#endif
-  dummy();
-  inheritance1 ();
-  inheritance3 ();
-  enums1 ();
-  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;
-
-  use_methods ();
-
-  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;
diff --git a/gdb/testsuite/gdb.c++/misc.exp b/gdb/testsuite/gdb.c++/misc.exp
deleted file mode 100644 (file)
index a2d122f..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-# Copyright 1992, 1994, 1995, 1996, 1997, 1999, 2002 Free Software
-# Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# This file was written by Fred Fish. (fnf@cygnus.com)
-
-if $tracelevel then {
-       strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "misc"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-#
-# Deduce language of main()
-#
-
-proc deduce_language_of_main {} {
-    global gdb_prompt
-
-    # See what language gdb thinks main() is, prior to reading full symbols.
-    # I think this fails for COFF targets.
-    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
-       }
-    }
-
-    runto_main
-
-    # See if our idea of the language has changed.
-
-    send_gdb "show language\n"
-    gdb_expect {
-       -re ".* source language is \"auto; currently c\[+\]+\".*$gdb_prompt $" {
-           pass "deduced language is C++, after full symbols"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "source language not correct for C++ (full symbols)"
-           return
-       }
-       timeout {
-           fail "can't show language (timeout)"
-           return
-       }
-    }
-}
-
-proc test_expr { args } {
-    if { [llength $args] % 2 } {
-       warning "an even # of arguments should be passed to test_expr"
-    }
-    set last_ent [expr [llength $args] - 1];
-    set testname [lindex $args $last_ent];
-    if [gdb_test [lindex $args 0] "" "$testname (setup)"] {
-       gdb_suppress_tests;
-    }
-    for {set x 1} {$x < $last_ent} {set x [expr $x + 2]} {
-       if [gdb_test [lindex $args $x] [lindex $args [expr $x + 1]] "$testname ([lindex $args $x])"] {
-           gdb_suppress_tests;
-       }
-    }
-    gdb_stop_suppressing_tests;
-}
-
-proc do_tests {} {
-    global prms_id
-    global bug_id
-    global subdir
-    global objdir
-    global srcdir
-    global binfile
-    global gdb_prompt
-
-    set prms_id 0
-    set bug_id 0
-
-    # Start with a fresh gdb.
-
-    gdb_exit
-    gdb_start
-    gdb_reinitialize_dir $srcdir/$subdir
-    gdb_load $binfile
-
-    deduce_language_of_main
-    # Check for fixes for PRs 8916 and 8630
-    gdb_test "print s.a" ".* = 0" "print s.a for foo struct (known gcc 2.7.2 and earlier bug)"
-}
-
-do_tests
-
-test_expr "set language c++" \
-    "print 1 == 1" "print.*\\$\[0-9\]* = true" \
-    "print 1 == 2" "print.*\\$\[0-9\]* = false" \
-    "print as bool"
-
-# Test bool type printing, etc.
-# Note: Language is already set to C++ above! 
-gdb_test "print v_bool" "\\$\[0-9\]* = false" "print a bool var"
-
-# set a bool variable
-test_expr "set variable v_bool = true" \
-    "print v_bool" "\\$\[0-9\]* = true" \
-    "set a bool var"
-
-# next print an array of bool
-gdb_test "print v_bool_array" "\\$\[0-9\]* = \\{false, false\\}" "print a bool array"
-
-# set elements of a bool array
-test_expr "set variable v_bool_array\[1\] = true" \
-    "print v_bool_array" "\\$\[0-9\]* = \\{false, true\\}" \
-    "set a bool array elem"
-
-# bool constants
-gdb_test "print true" "\\$\[0-9\]* = true" "print true"
-gdb_test "print false" "\\$\[0-9\]* = false" "print false"
-
-# arithmetic conversions
-gdb_test "print 1 + true" "\\$\[0-9\]* = 2" "1 + true"
-gdb_test "print 3 + false" "\\$\[0-9\]* = 3" "3 + false"
-gdb_test "print 1 < 2 < 3" "\\$\[0-9\]* = true" "1 < 2 < 3"
-gdb_test "print 2 < 1 > 4" "\\$\[0-9\]* = false" "2 < 1 > 4"
-gdb_test "print (bool)43" "\\$\[0-9\]* = true" "(bool)43"
-gdb_test "print (bool)0" "\\$\[0-9\]* = false" "(bool)0"
-gdb_test "print (bool)17.93" "\\$\[0-9\]* = true" "(bool)17.93"
-gdb_test "print (bool)0.0" "\\$\[0-9\]* = false" "(bool)0.0"
-gdb_test "print (int)true" "\\$\[0-9\]* = 1" "(int)true"
-gdb_test "print (int)false" "\\$\[0-9\]* = 0" "(int)false"
diff --git a/gdb/testsuite/gdb.c++/namespace.cc b/gdb/testsuite/gdb.c++/namespace.cc
deleted file mode 100644 (file)
index ad2d982..0000000
+++ /dev/null
@@ -1,254 +0,0 @@
-namespace AAA {
-  char c;
-  int i;
-  int A_xyzq (int);
-  char xyzq (char);
-  class inA {
-  public:
-    int xx;
-    int fum (int);
-  };
-};
-
-int AAA::inA::fum (int i)
-{
-  return 10 + i;
-}
-
-namespace BBB {
-  char c;
-  int i;
-  int B_xyzq (int);
-  char xyzq (char);
-
-  namespace CCC {
-    char xyzq (char);
-  };
-
-  class Class {
-  public:
-    char xyzq (char);
-    int dummy;
-  };
-};
-
-int AAA::A_xyzq (int x)
-{
-  return 2 * x;
-}
-
-char AAA::xyzq (char c)
-{
-  return 'a';
-}
-
-
-int BBB::B_xyzq (int x)
-{
-  return 3 * x;
-}
-
-char BBB::xyzq (char c)
-{
-  return 'b';
-}
-
-char BBB::CCC::xyzq (char c)
-{
-  return 'z';
-}
-
-char BBB::Class::xyzq (char c)
-{
-  return 'o';
-}
-
-void marker1(void)
-{
-  return;
-}
-
-namespace
-{
-  int X = 9;
-
-  namespace G
-  {
-    int Xg = 10;
-
-    namespace
-    {
-      int XgX = 11;
-    }
-  }
-}
-
-namespace H
-{
-  int h = 14;
-}
-
-namespace I = H;
-
-namespace J
-{
-  int j = 15;
-}
-
-using namespace J;
-
-namespace K
-{
-  int k = 16;
-}
-
-namespace L
-{
-  using namespace K;
-}
-
-namespace O
-{
-  int o = 18;
-}
-
-namespace P
-{
-  using namespace O;
-}
-
-namespace Q
-{
-  using namespace P;
-}
-
-namespace R
-{
-  int r1 = 19;
-  int r2 = 20;
-}
-
-using R::r1;
-
-namespace C
-{
-  int c = 1;
-  int shadow = 12;
-
-  class CClass {
-  public:
-    int x;
-    class NestedClass {
-    public:
-      int y;
-    };
-  };
-
-  namespace
-  {
-    int cX = 6;
-    
-    namespace F
-    {
-      int cXf = 7;
-
-      namespace
-      {
-       int cXfX = 8;
-      }
-    }
-  }
-
-  namespace C
-  {
-    int cc = 2;
-  }
-
-  namespace E
-  {
-    int ce = 4;
-  }
-
-  namespace D
-  {
-    int cd = 3;
-    int shadow = 13;
-
-    namespace E
-    {
-      int cde = 5;
-    }
-
-    namespace M
-    {
-      int cdm = 17;
-    }
-
-    using namespace M;
-
-    void marker2 (void)
-    {
-      // NOTE: carlton/2003-04-23: I'm listing the expressions that I
-      // plan to have GDB try to print out, just to make sure that the
-      // compiler and I agree which ones should be legal!  It's easy
-      // to screw up when testing the boundaries of namespace stuff.
-      c;
-      //cc;
-      C::cc;
-      cd;
-      //C::D::cd;
-      E::cde;
-      shadow;
-      //E::ce;
-      cX;
-      F::cXf;
-      F::cXfX;
-      X;
-      G::Xg;
-      //cXOtherFile;
-      //XOtherFile;
-      G::XgX;
-      I::h;
-      j;
-      L::k;
-      //k;
-      cdm;
-      Q::o;
-      //o;
-      r1;
-      //r2;
-
-      return;
-    }
-
-  }
-}
-
-int main ()
-{
-  using AAA::inA;
-  char c1;
-
-  using namespace BBB;
-  
-  c1 = xyzq ('x');
-  c1 = AAA::xyzq ('x');
-  c1 = BBB::CCC::xyzq ('m');
-  
-  inA ina;
-
-  ina.xx = 33;
-
-  int y;
-
-  y = AAA::A_xyzq (33);
-  y += B_xyzq (44);
-
-  BBB::Class cl;
-
-  c1 = cl.xyzq('e');
-
-  marker1();
-  
-  C::D::marker2 ();
-}
diff --git a/gdb/testsuite/gdb.c++/namespace.exp b/gdb/testsuite/gdb.c++/namespace.exp
deleted file mode 100644 (file)
index 5bf976b..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-# Copyright 1997, 1998, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# tests for namespaces
-# Originally written by Satish Pai <pai@apollo.hp.com> 1997-07-23
-
-# This file is part of the gdb testsuite
-
-# Note: The original tests were geared to the HP aCC compiler,
-# which has an idiosyncratic way of emitting debug info
-# for namespaces.
-# Note: As of 2000-06-03, they passed under g++ - djb
-
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "namespace"
-set srcfile ${testfile}.cc
-set objfile ${objdir}/${subdir}/${testfile}.o
-set srcfile1 ${testfile}1.cc
-set objfile1 ${objdir}/${subdir}/${testfile}1.o
-set binfile ${objdir}/${subdir}/${testfile}
-
-if [get_compiler_info ${binfile}] {
-    return -1;
-}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile1}" "${objfile1}" object {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-if  { [gdb_compile "${objfile} ${objfile1}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-#
-# set it up at a breakpoint so we can play with the variable values
-#
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-if ![runto 'marker1'] then {
-    perror "couldn't run to marker1"
-    continue
-}
-
-gdb_test "up" ".*main.*" "up from marker1"
-
-# Access a data item inside a namespace using colons and
-# single quotes. :-(
-
-# NOTE: carlton/2002-11-24: the quotes are becoming less necessary (or
-# even desirable.)  For tests where it should still work with quotes,
-# I'm including versions both with and without quotes; for tests that
-# shouldn't work with quotes, I'm only including one version.
-
-send_gdb "print 'AAA::c'\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 0 '\\\\(0|000)'\r\n$gdb_prompt $" { pass "print 'AAA::c'" }
-   -re ".*$gdb_prompt $" { fail "print 'AAA::c'" }
-   timeout { fail "(timeout) print 'AAA::c'" }
-}
-
-send_gdb "print AAA::c\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 0 '\\\\(0|000)'\r\n$gdb_prompt $" { pass "print AAA::c" }
-   -re ".*$gdb_prompt $" { fail "print AAA::c" }
-   timeout { fail "(timeout) print AAA::c" }
-}
-
-# An object declared using "using".
-
-send_gdb "print ina\n"
-gdb_expect {
-   -re "\\$\[0-9\]+ = {xx = 33}.*$gdb_prompt $" {
-      pass "print ina"
-   }
-   -re ".*$gdb_prompt $" { fail "print ina" }
-   timeout { fail "(timeout) print ina" }
-}
-
-send_gdb "ptype ina\n"
-gdb_expect {
-   -re "type = class (AAA::|)inA \{\r\n\[ \]*public:\r\n\[ \]*int xx;\r\n\[ \]*\r\n\[ \]*.*int fum\\(int\\);\r\n\}\r\n$gdb_prompt $" {
-       pass "ptype ina"
-   }
-   -re ".*$gdb_prompt $" { fail "ptype ina" }
-   timeout { fail "(timeout) ptype ina" }
-}
-
-# Check all functions are known to GDB
-
-setup_xfail hppa*-*-*11* CLLbs14869
-send_gdb "info func xyzq\n"
-gdb_expect {
-   -re "All functions.*File.*namespace.cc:\r\nint AAA::A_xyzq\\(int\\);\r\nint BBB::B_xyzq\\(int\\);\r\nchar AAA::xyzq\\(char\\);\r\nchar BBB::xyzq\\(char\\);\r\nchar BBB::CCC::xyzq\\(char\\);\r\nchar BBB::Class::xyzq\\(char\\);\r\n$gdb_prompt $" {
-       pass "info func xyzq"
-   }    
-   -re "All functions.*File.*namespace.cc:\r\nint AAA::A_xyzq\\(int\\);\r\nchar AAA::xyzq\\(char\\);\r\nint BBB::B_xyzq\\(int\\);\r\nchar BBB::CCC::xyzq\\(char\\);\r\nchar BBB::Class::xyzq\\(char\\);\r\nchar BBB::xyzq\\(char\\);\r\n$gdb_prompt $" {
-       pass "info func xyzq"
-   }    
-   -re ".*$gdb_prompt $" { fail "info func xyzq" }
-   timeout { fail "(timeout) info func xyzq" }
-}
-
-# Call a function in a namespace
-
-send_gdb "print 'AAA::xyzq'('x')\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 97 'a'\r\n$gdb_prompt $" {
-       pass "print 'AAA::xyzq'('x')"
-   }
-   -re ".*$gdb_prompt $" { fail "print 'AAA::xyzq'('x')" }
-   timeout { fail "(timeout) print 'AAA::xyzq'('x')" }
-}
-       
-send_gdb "print AAA::xyzq('x')\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 97 'a'\r\n$gdb_prompt $" {
-       pass "print AAA::xyzq('x')"
-   }
-   -re ".*$gdb_prompt $" { fail "print AAA::xyzq('x')" }
-   timeout { fail "(timeout) print AAA::xyzq('x')" }
-}
-       
-# Break on a function in a namespace
-
-send_gdb "break AAA::xyzq\n"
-gdb_expect {
-    -re "Breakpoint.*at $hex: file.*namespace.cc, line 42\\.\r\n$gdb_prompt $" {
-         pass "break AAA::xyzq"
-    }    
-   -re ".*$gdb_prompt $" { fail "break AAA::xyzq" }
-   timeout { fail "(timeout) break AAA::xyzq" }
-}
-
-# Call a function in a nested namespace
-
-send_gdb "print 'BBB::CCC::xyzq'('x')\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 122 'z'\r\n$gdb_prompt $" {
-       pass "print 'BBB::CCC::xyzq'('x')"
-   }
-   -re ".*$gdb_prompt $" { fail "print 'BBB::CCC::xyzq'('x')" }
-   timeout { fail "(timeout) print 'BBB::CCC::xyzq'('x')" }
-}
-       
-send_gdb "print BBB::CCC::xyzq('x')\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = 122 'z'\r\n$gdb_prompt $" {
-       pass "print BBB::CCC::xyzq('x')"
-   }
-   -re ".*$gdb_prompt $" { fail "print BBB::CCC::xyzq('x')" }
-   timeout { fail "(timeout) print BBB::CCC::xyzq('x')" }
-}
-       
-# Break on a function in a nested namespace
-
-send_gdb "break BBB::CCC::xyzq\n"
-gdb_expect {
-    -re "Breakpoint.*at $hex: file.*namespace.cc, line 58\\.\r\n$gdb_prompt $" {
-         pass "break BBB::CCC::xyzq"
-    }    
-   -re ".*$gdb_prompt $" { fail "break BBB::CCC::xyzq" }
-   timeout { fail "(timeout) break BBB::CCC::xyzq" }
-}
-
-# Print address of a function in a class in a namespace
-
-send_gdb "print 'BBB::Class::xyzq'\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \{char \\((BBB::|)Class \\*( const|), (char|int)\\)\} $hex <BBB::Class::xyzq\\(char\\)>\r\n$gdb_prompt $" {
-       pass "print 'BBB::Class::xyzq'"
-   }
-   -re ".*$gdb_prompt $" { fail "print 'BBB::Class::xyzq'" }
-   timeout { fail "(timeout) print 'BBB::Class::xyzq'" }
-}
-
-send_gdb "print BBB::Class::xyzq\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \{char \\((BBB::|)Class \\*( const|), (char|int)\\)\} $hex <BBB::Class::xyzq\\(char\\)>\r\n$gdb_prompt $" {
-       pass "print BBB::Class::xyzq"
-   }
-   -re ".*$gdb_prompt $" { fail "print BBB::Class::xyzq" }
-   timeout { fail "(timeout) print BBB::Class::xyzq" }
-}
-
-# Break on a function in a class in a namespace
-
-send_gdb "break BBB::Class::xyzq\n"
-gdb_expect {
-    -re "Breakpoint.*at $hex: file.*namespace.cc, line 63\\.\r\n$gdb_prompt $" {
-         pass "break BBB::Class::xyzq"
-    }    
-   -re ".*$gdb_prompt $" { fail "break BBB::Class::xyzq" }
-   timeout { fail "(timeout) break BBB::Class::xyzq" }
-}
-
-# Test to see if the appropriate namespaces are in scope when trying
-# to print out stuff from within a function defined within a
-# namespace.
-
-if ![runto "C::D::marker2"] then {
-    perror "couldn't run to marker2"
-    continue
-}
-
-gdb_test "print c" "\\$\[0-9\].* = 1"
-gdb_test "print cc" "No symbol \"cc\" in current context."
-gdb_test "print 'C::cc'" "\\$\[0-9\].* = 2"
-gdb_test "print C::cc" "\\$\[0-9\].* = 2"
-gdb_test "print cd" "\\$\[0-9\].* = 3"
-gdb_test "print C::D::cd" "No type \"D\" within class or namespace \"C::C\"."
-gdb_test "print 'E::cde'" "\\$\[0-9\].* = 5"
-gdb_test "print E::cde" "\\$\[0-9\].* = 5"
-gdb_test "print shadow" "\\$\[0-9\].* = 13"
-gdb_test "print E::ce" "No symbol \"ce\" in namespace \"C::D::E\"."
-gdb_test "ptype C" "type = namespace C::C"
-gdb_test "ptype E" "type = namespace C::D::E"
-
-gdb_test "ptype CClass" "type = class C::CClass \{\r\n  public:\r\n    int x;\r\n\}"
-gdb_test "ptype CClass::NestedClass" "type = class C::CClass::NestedClass \{\r\n  public:\r\n    int y;\r\n\}"
-gdb_test "ptype NestedClass" "No symbol \"NestedClass\" in current context."
-gdb_test "ptype ::C::CClass" "type = class C::CClass \{\r\n  public:\r\n    int x;\r\n\}"
-gdb_test "ptype ::C::CClass::NestedClass" "type = class C::CClass::NestedClass \{\r\n  public:\r\n    int y;\r\n\}"
-gdb_test "ptype ::C::NestedClass" "No symbol \"NestedClass\" in namespace \"C\"."
-gdb_test "ptype C::CClass" "No symbol \"CClass\" in namespace \"C::C\"."
-gdb_test "ptype C::CClass::NestedClass" "No type \"CClass\" within class or namespace \"C::C\"."
-gdb_test "ptype C::NestedClass" "No symbol \"NestedClass\" in namespace \"C::C\"."
-
-# Tests involving multiple files
-
-gdb_test "print cOtherFile" "\\$\[0-9\].* = 316"
-gdb_test "ptype OtherFileClass" "type = class C::OtherFileClass \{\r\n  public:\r\n    int z;\r\n\}"
-gdb_test "ptype ::C::OtherFileClass" "type = class C::OtherFileClass \{\r\n  public:\r\n    int z;\r\n\}"
-gdb_test "ptype C::OtherFileClass" "No symbol \"OtherFileClass\" in namespace \"C::C\"."
-
-# Some anonymous namespace tests.
-
-gdb_test "print cX" "\\$\[0-9\].* = 6"
-gdb_test "print 'F::cXf'" "\\$\[0-9\].* = 7"
-gdb_test "print F::cXf" "\\$\[0-9\].* = 7"
-gdb_test "print F::cXfX" "\\$\[0-9\].* = 8"
-gdb_test "print X" "\\$\[0-9\].* = 9"
-gdb_test "print 'G::Xg'" "\\$\[0-9\].* = 10"
-gdb_test "print G::Xg" "\\$\[0-9\].* = 10"
-gdb_test "print G::XgX" "\\$\[0-9\].* = 11"
-gdb_test "print cXOtherFile" "No symbol \"cXOtherFile\" in current context."
-gdb_test "print XOtherFile" "No symbol \"XOtherFile\" in current context."
-
-# Test namespace renaming.
-
-setup_kfail "c++/830" "*-*-*"
-gdb_test "print I::h" "\\$\[0-9\].* = 14"
-
-# Test using directives.
-
-# NOTE: carlton/2002-10-17: Some of these are easy, but some of these
-# have unfortunate interactions with namespace scope issues.  As of
-# this writing, some of these pass, but they pass for the wrong reasons.
-
-setup_kfail "c++/829" "*-*-*"
-gdb_test "print j" "\\$\[0-9\].* = 15"
-setup_kfail "c++/829" "*-*-*"
-gdb_test "print L::k" "\\$\[0-9\].* = 16"
-setup_kfail "c++/829" "*-*-*"
-gdb_test "print k" "No symbol \"k\" in current context."
-setup_kfail "c++/829" "*-*-*"
-gdb_test "print cdm" "\\$\[0-9\].* = 17"
-setup_kfail "c++/829" "*-*-*"
-gdb_test "print Q::o" "\\$\[0-9\].* = 18"
-setup_kfail "c++/829" "*-*-*"
-gdb_test "print o" "No symbol \"o\" in current context."
-
-# Test using declarations.  I should probably test these more.
-
-setup_kfail "c++/831" "*-*-*"
-gdb_test "print r1" "\\$\[0-9\].* = 19"
-setup_kfail "c++/831" "*-*-*"
-gdb_test "print r2" "No symbol \"r2\" in current context."
diff --git a/gdb/testsuite/gdb.c++/namespace1.cc b/gdb/testsuite/gdb.c++/namespace1.cc
deleted file mode 100644 (file)
index 15b3429..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2003 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  */
-
-namespace C
-{
-  class OtherFileClass {
-  public:
-    int z;
-  };
-
-  namespace {
-    int cXOtherFile = 29;
-  };
-
-  int cOtherFile = 316;
-}
-
-namespace {
-  int XOtherFile = 317;
-}
diff --git a/gdb/testsuite/gdb.c++/overload.cc b/gdb/testsuite/gdb.c++/overload.cc
deleted file mode 100644 (file)
index a41e14d..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-#include <stddef.h>
-
-class foo {
-public:
-  foo  (int);
-  foo  (int, const char *);
-  foo  (foo&);
-  ~foo ();
-  void foofunc (int);
-  void foofunc (int, signed char *);
-  int ifoo;
-  const char *ccpfoo;
-
-int overload1arg (void);
-int overload1arg (char);         
-int overload1arg (signed char);
-int overload1arg (unsigned char);
-int overload1arg (short);
-int overload1arg (unsigned short);
-int overload1arg (int);
-int overload1arg (unsigned int);
-int overload1arg (long);
-int overload1arg (unsigned long);
-int overload1arg (float);
-int overload1arg (double);
-
-int overloadfnarg (void);
-int overloadfnarg (int);
-int overloadfnarg (int, int (*) (int));
-
-int overloadargs (int a1);
-int overloadargs (int a1, int a2);
-int overloadargs (int a1, int a2, int a3);
-int overloadargs (int a1, int a2, int a3, int a4);
-int overloadargs (int a1, int a2, int a3, int a4, int a5);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
-                   int a8, int a9, int a10);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
-                   int a8, int a9, int a10, int a11);
-
-
-};
-
-int intToChar (char c)
-{
-  return 297;
-}
-
-void marker1()
-{}
-
-// Now test how overloading and namespaces interact.
-
-class dummyClass {};
-
-dummyClass dummyInstance;
-
-int overloadNamespace(int i)
-{
-  return 1;
-}
-
-int overloadNamespace(dummyClass d)
-{
-  return 2;
-}
-
-namespace XXX {
-  int overloadNamespace (char c)
-  {
-    return 3;
-  }
-
-  void marker2() {}
-}
-
-int main () 
-{
-    char arg2 = 2;
-    signed char arg3 =3;
-    unsigned char arg4 =4;
-    short arg5 =5;
-    unsigned short arg6 =6;
-    int arg7 =7;
-    unsigned int arg8 =8;
-    long arg9 =9;
-    unsigned long arg10 =10;
-    float arg11 =100.0;
-    double arg12 = 200.0;
-
-    char *str = (char *) "A";
-    foo foo_instance1(111);
-    foo foo_instance2(222, str);
-    foo foo_instance3(foo_instance2);
-
-    #ifdef usestubs
-       set_debug_traps();
-       breakpoint();
-    #endif
-
-    // Verify that intToChar should work:
-    intToChar(1);
-
-    marker1(); // marker1-returns-here
-    XXX::marker2(); // marker1-returns-here
-    return 0;
-}
-
-foo::foo  (int i)                  { ifoo = i; ccpfoo = NULL; }
-foo::foo  (int i, const char *ccp) { ifoo = i; ccpfoo = ccp; }
-foo::foo  (foo& afoo)              { ifoo = afoo.ifoo; ccpfoo = afoo.ccpfoo;}
-foo::~foo ()                       {}
-
-
-/* Some functions to test overloading by varying one argument type. */
-
-int foo::overload1arg (void)                {  return 1; }
-int foo::overload1arg (char arg)            { arg = 0; return 2;}
-int foo::overload1arg (signed char arg)     { arg = 0; return 3;}
-int foo::overload1arg (unsigned char arg)   { arg = 0; return 4;}
-int foo::overload1arg (short arg)           { arg = 0; return 5;}
-int foo::overload1arg (unsigned short arg)  { arg = 0; return 6;}
-int foo::overload1arg (int arg)             { arg = 0; return 7;}
-int foo::overload1arg (unsigned int arg)    { arg = 0; return 8;}
-int foo::overload1arg (long arg)            { arg = 0; return 9;}
-int foo::overload1arg (unsigned long arg)   { arg = 0; return 10;}
-int foo::overload1arg (float arg)           { arg = 0; return 11;}
-int foo::overload1arg (double arg)          { arg = 0; return 12;}
-
-/* Test to see that we can explicitly request overloaded functions
-   with function pointers in the prototype. */
-
-int foo::overloadfnarg (void) { return ifoo * 20; }
-int foo::overloadfnarg (int arg) { arg = 0; return 13;}
-int foo::overloadfnarg (int arg, int (*foo) (int))    { return foo(arg); } 
-
-/* Some functions to test overloading by varying argument count. */
-
-int foo::overloadargs (int a1)                 
-{ a1 = 0; 
-return 1;}
-
-int foo::overloadargs (int a1, int a2)          
-{ a1 = a2 = 0; 
-return 2;}
-
-int foo::overloadargs (int a1, int a2, int a3)              
-{ a1 = a2 = a3 = 0; 
-return 3;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4)
-{ a1 = a2 = a3 = a4 = 0; 
-return 4;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5)
-{ a1 = a2 = a3 = a4 = a5 = 0; 
-return 5;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6)
-{ a1 = a2 = a3 = a4 = a5 = a6 = 0; 
-return 6;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7)
-{ a1 = a2 = a3 = a4 = a5 = a6 = a7 = 0; 
-return 7;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
-                   int a8)
-{ a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = 0; 
-return 8;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
-                   int a8, int a9)
-{ 
-  a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = 0; 
-  return 9;
-}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
-                   int a8, int a9, int a10)
-                        { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 =
-                          a10 = 0; return 10;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
-                   int a8, int a9, int a10, int a11)
-                        { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 =
-                          a10 = a11 = 0; return 11;}
-
-
-
diff --git a/gdb/testsuite/gdb.c++/overload.exp b/gdb/testsuite/gdb.c++/overload.exp
deleted file mode 100644 (file)
index 7a2ecb4..0000000
+++ /dev/null
@@ -1,417 +0,0 @@
-# Copyright 1998, 1999, 2000, 2001, 2002, 2003 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
-
-# written by Elena Zannoni (ezannoni@cygnus.com)
-
-# This file is part of the gdb testsuite
-#
-# tests for overloaded member functions. Command Line calls
-#
-
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "overload"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-if [get_compiler_info ${binfile} "c++"] {
-    return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-# set it up at a breakpoint so we can play with the variable values
-#
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-if ![runto 'marker1'] then {
-    perror "couldn't run to marker1"
-    continue
-}
-
-gdb_test "up" ".*main.*" "up from marker1"
-
-send_gdb "print foo_instance1\n"
-gdb_expect {
-    -re ".\[0-9\]* = \{ifoo = 111, ccpfoo = 0x0\}\r\n$gdb_prompt $" {
-        pass "print foo_instance1"
-      }
-    -re ".*$gdb_prompt $" { fail "print foo_instance1" }
-    timeout           { fail "(timeout) print foo_instance1" }
-  }
-
-
-setup_xfail "hppa*-*-*" CLLbs16901
-send_gdb "ptype foo_instance1\n"
-gdb_expect {
-  -re "type = class foo \{.*public:.*int ifoo;.*const char \\*ccpfoo;.*foo\\(int\\);.*foo\\(int, (const char|char const) \\*\\);.*foo\\(foo &\\);.*~foo\\(void\\);.*void foofunc\\(int\\);.*void foofunc\\(int, signed char \\*\\);.*int overload1arg\\(void\\);.*int overload1arg\\(char\\);.*int overload1arg\\(signed char\\);.*int overload1arg\\(unsigned char\\);.*int overload1arg\\(short\\);.*int overload1arg\\(unsigned short\\);.*int overload1arg\\(int\\);.*int overload1arg\\(unsigned int\\);.*int overload1arg\\(long\\);.*int overload1arg\\(unsigned long\\);.*int overload1arg\\(float\\);.*int overload1arg\\(double\\);.*int overloadargs\\(int\\);.*int overloadargs\\(int, int\\);.*int overloadargs\\(int, int, int\\);.*int overloadargs\\(int, int, int, int\\);.*int overloadargs\\(int, int, int, int, int\\);.*int overloadargs\\(int, int, int, int, int, int\\);.*int overloadargs\\(int, int, int, int, int, int, int\\);.*int overloadargs\\(int, int, int, int, int, int, int, int\\);.*int overloadargs\\(int, int, int, int, int, int, int, int, int\\);.*int overloadargs\\(int, int, int, int, int, int, int, int, int, int\\);.*int overloadargs\\(int, int, int, int, int, int, int, int, int, int, int\\);\r\n\}\r\n$gdb_prompt $" {
-        pass "ptype foo_instance1 (HP aCC -- known quirk with ~foo parameter list)"
-      }
-    -re "type = class foo .*int overloadargs\\(int, int, int, int, int, int, int, int, int, int, int\\);\r\n\}\r\n$gdb_prompt $" {
-       pass "ptype foo_instance1 (shorter match)"
-    }
-    -re ".*$gdb_prompt $" { fail "ptype foo_instance1" }
-    timeout           { fail "(timeout) ptype foo_instance1" }
-  }
-
-send_gdb "print foo_instance2\n"
-gdb_expect {
-    -re ".\[0-9\]* = \{ifoo = 222, ccpfoo = $hex \"A\"\}\r\n$gdb_prompt $" {
-        pass "print foo_instance2"
-      }
-    -re ".*$gdb_prompt $" { fail "print foo_instance2" }
-    timeout           { fail "(timeout) print foo_instance2" }
-  }
-
-send_gdb "print foo_instance3\n"
-gdb_expect {
-    -re ".\[0-9\]* = \{ifoo = 222, ccpfoo = $hex \"A\"\}\r\n$gdb_prompt $" {
-        pass "print foo_instance3"
-      }
-    -re ".*$gdb_prompt $" { fail "print foo_instance3" }
-    timeout           { fail "(timeout) print foo_instance3" }
-  }
-
-
-send_gdb "print foo_instance1.overloadargs(1)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 1\r\n$gdb_prompt $" {
-        pass "print call overloaded func 1 arg"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func 1 arg" }
-    timeout           { fail "(timeout) print call overloaded func 1 arg" }
-  }
-
-
-# If GDB fails to restore the selected frame properly after the
-# inferior function call above (see GDB PR 1155 for an explanation of
-# why this might happen), all the subsequent tests will fail.  We
-# should detect and report that failure, but let the marker call
-# finish so that the rest of the tests can run undisturbed.
-gdb_test_multiple "frame" "re-selected 'main' frame after inferior call" {
-    -re "#0  marker1.*$gdb_prompt $" {
-        setup_kfail "gdb/1155" s390-*-linux-gnu
-        fail "re-selected 'main' frame after inferior call"
-        gdb_test "finish" ".*main.*at .*overload.cc:.*// marker1-returns-here.*" \
-            "finish call to marker1"
-    }
-    -re "#1  ($hex in )?main.*$gdb_prompt $" {
-        pass "re-selected 'main' frame after inferior call"
-    }
-}
-
-
-send_gdb "print foo_instance1.overloadargs(1, 2)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 2\r\n$gdb_prompt $" {
-        pass "print call overloaded func 2 args"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func 2 args" }
-    timeout           { fail "(timeout) print call overloaded func 2  args" }
-  }
-
-
-send_gdb "print foo_instance1.overloadargs(1, 2, 3)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 3\r\n$gdb_prompt $" {
-        pass "print call overloaded func 3 args"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func 3 args" }
-    timeout           { fail "(timeout) print call overloaded func 3 args" }
-  }
-
-
-send_gdb "print foo_instance1.overloadargs(1, 2, 3, 4)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 4\r\n$gdb_prompt $" {
-        pass "print call overloaded func 4 args"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func 4 args" }
-    timeout           { fail "(timeout) print call overloaded func 4 args" }
-  }
-
-
-send_gdb "print foo_instance1.overloadargs(1, 2, 3, 4, 5)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 5\r\n$gdb_prompt $" {
-        pass "print call overloaded func 5 args"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func 5 args" }
-    timeout           { fail "(timeout) print call overloaded func 5 args" }
-  }
-
-
-send_gdb "print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 6\r\n$gdb_prompt $" {
-        pass "print call overloaded func 6 args"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func 6 args" }
-    timeout           { fail "(timeout) print call overloaded func 6 args" }
-  }
-
-
-send_gdb "print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 7\r\n$gdb_prompt $" {
-        pass "print call overloaded func 7 args"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func 7 args" }
-    timeout           { fail "(timeout) print call overloaded func 7 args" }
-  }
-
-
-send_gdb "print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 8\r\n$gdb_prompt $" {
-        pass "print call overloaded func 8 args"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func 8 args" }
-    timeout           { fail "(timeout) print call overloaded func 8 args" }
-  }
-
-
-send_gdb "print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8, 9)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 9\r\n$gdb_prompt $" {
-        pass "print call overloaded func 9 args"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func 9 args" }
-    timeout           { fail "(timeout) print call overloaded func 9 args" }
-  }
-
-
-send_gdb "print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 10\r\n$gdb_prompt $" {
-        pass "print call overloaded func 10 args"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func 10 args" }
-    timeout           { fail "(timeout) print call overloaded func 10 args" }
-  }
-
-
-send_gdb "print foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 11\r\n$gdb_prompt $" {
-        pass "print call overloaded func 11 args"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func 11 args" }
-    timeout           { fail "(timeout) print call overloaded func 11 args" }
-  }
-
-
-send_gdb "print foo_instance1.overload1arg()\n"
-gdb_expect {
-    -re ".\[0-9\]* = 1\r\n$gdb_prompt $" {
-        pass "print call overloaded func void arg"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func void arg" }
-    timeout           { fail "(timeout) print call overloaded func void arg" }
-  }
-
-
-send_gdb "print foo_instance1.overload1arg((char)arg2)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 2\r\n$gdb_prompt $" {
-        pass "print call overloaded func char arg"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func char arg" }
-    timeout           { fail "(timeout) print call overloaded func char arg" }
-  }
-
-
-send_gdb "print foo_instance1.overload1arg((signed char)arg3)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 3\r\n$gdb_prompt $" {
-        pass "print call overloaded func signed char arg"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func signed char arg" }
-    timeout           { fail "(timeout) print call overloaded func signed char arg" }
-  }
-
-
-send_gdb "print foo_instance1.overload1arg((unsigned char)arg4)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 4\r\n$gdb_prompt $" {
-        pass "print call overloaded func unsigned char arg"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func unsigned char arg" }
-    timeout           { fail "(timeout) print call overloaded func unsigned char arg" }
-  }
-
-
-send_gdb "print foo_instance1.overload1arg((short)arg5)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 5\r\n$gdb_prompt $" {
-        pass "print call overloaded func short arg"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func short arg" }
-    timeout           { fail "(timeout) print call overloaded func short arg" }
-  }
-
-
-send_gdb "print foo_instance1.overload1arg((unsigned short)arg6)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 6\r\n$gdb_prompt $" {
-        pass "print call overloaded func unsigned short arg"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func unsigned short  arg" }
-    timeout           { fail "(timeout) print call overloaded func unsigned short arg" }
-  }
-
-
-send_gdb "print foo_instance1.overload1arg((int)arg7)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 7\r\n$gdb_prompt $" {
-        pass "print call overloaded func int arg"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func int arg" }
-    timeout           { fail "(timeout) print call overloaded func int arg" }
-  }
-
-
-send_gdb "print foo_instance1.overload1arg((unsigned int)arg8)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 8\r\n$gdb_prompt $" {
-        pass "print call overloaded func unsigned int arg"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func unsigned int arg" }
-    timeout           { fail "(timeout) print call overloaded func unsigned int arg" }
-  }
-
-
-send_gdb "print foo_instance1.overload1arg((long)arg9)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 9\r\n$gdb_prompt $" {
-        pass "print call overloaded func long arg"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func long arg" }
-    timeout           { fail "(timeout) print call overloaded func long arg" }
-  }
-
-
-send_gdb "print foo_instance1.overload1arg((unsigned long)arg10)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 10\r\n$gdb_prompt $" {
-        pass "print call overloaded func unsigned long arg"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func unsigned long arg" }
-    timeout           { fail "(timeout) print call overloaded func unsigned long arg" }
-  }
-
-
-send_gdb "print foo_instance1.overload1arg((float)arg11)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 11\r\n$gdb_prompt $" {
-        pass "print call overloaded func float arg"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func float arg" }
-    timeout           { fail "(timeout) print call overloaded func float arg" }
-  }
-
-
-send_gdb "print foo_instance1.overload1arg((double)arg12)\n"
-gdb_expect {
-    -re ".\[0-9\]* = 12\r\n$gdb_prompt $" {
-        pass "print call overloaded func double arg"
-      }
-    -re ".*$gdb_prompt $" { fail "print call overloaded func double arg" }
-    timeout           { fail "(timeout) print call overloaded func double arg" }
-  }
-
-# Now some tests to see if we can list overloaded functions properly:
-
-gdb_test "set listsize 1" "" ""
-# send_gdb "set listsize 1\n"
-# gdb_expect -re ".*$gdb_prompt $"
-
-#
-# Decide whether to use "()" or "(void)"
-#
-
-send_gdb "info func overloadfnarg\n" 
-gdb_expect {
-    -re ".*overloadfnarg\\(void\\).*$gdb_prompt $" {
-       gdb_test "list foo::overloadfnarg(void)"\
-               ".*int foo::overloadfnarg.*\\(void\\).*" \
-               "list overloaded function with no args"
-    }
-    -re ".*overloadfnarg\\(\\).*$gdb_prompt $" {
-       gdb_test "list foo::overloadfnarg()"\
-               ".*int foo::overloadfnarg.*\\(void\\).*" \
-               "list overloaded function with no args"
-    }
-    -re ".*$gdb_prompt $" {
-       fail "list overloaded function with no args (no matching symbol)"
-    }
-}
-
-gdb_test "list foo::overloadfnarg(int)"\
-    "int foo::overloadfnarg.*\\(int arg\\).*" \
-   "list overloaded function with int arg"
-
-gdb_test "list foo::overloadfnarg(int, int (*)(int))" \
-   "int foo::overloadfnarg.*\\(int arg, int \\(\\*foo\\) \\(int\\)\\).*" \
-   "list overloaded function with function ptr args"
-
-gdb_test "list \"foo::overloadfnarg(int, int (*)(int))\"" \
-   "int foo::overloadfnarg.*\\(int arg, int \\(\\*foo\\) \\(int\\)\\).*" \
-   "list overloaded function with function ptr args - quotes around argument"
-
-gdb_test "print intToChar(1)" ".\[0-9\]* = 297"
-
-# Now some tests to see how overloading and namespaces interact.
-
-# FIXME: carlton/2003-01-24: It would be nice to throw using
-# declarations into the mix, once GDB handles them.
-
-gdb_test "print overloadNamespace(1)" ".\[0-9\]* = 1"
-gdb_test "print overloadNamespace('a')" ".\[0-9\]* = 1"
-gdb_test "print overloadNamespace(dummyInstance)" ".\[0-9\]* = 2"
-
-if ![runto 'XXX::marker2'] then {
-    perror "couldn't run to XXX::marker2"
-    continue
-}
-
-gdb_test "print overloadNamespace(1)" ".\[0-9\]* = 3" "print overloadNamespace(1) in XXX"
-gdb_test "print overloadNamespace('a')" ".\[0-9\]* = 3" "print overloadNamespace('a') in XXX"
-gdb_test "print overloadNamespace(dummyInstance)" ".\[0-9\]* = 2" "print overloadNamespace(dummyInstance) in XXX"
diff --git a/gdb/testsuite/gdb.c++/ovldbreak.cc b/gdb/testsuite/gdb.c++/ovldbreak.cc
deleted file mode 100644 (file)
index 9a5b5cb..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-#include <stddef.h>
-
-class foo {
-public:
-  foo  (int);
-  foo  (int, const char *);
-  foo  (foo&);
-  ~foo ();
-  void foofunc (int);
-  void foofunc (int, signed char *);
-  int ifoo;
-  const char *ccpfoo;
-
-int overload1arg (void);
-int overload1arg (char);         
-int overload1arg (signed char);
-int overload1arg (unsigned char);
-int overload1arg (short);
-int overload1arg (unsigned short);
-int overload1arg (int);
-int overload1arg (unsigned int);
-int overload1arg (long);
-int overload1arg (unsigned long);
-int overload1arg (float);
-int overload1arg (double);
-
-int overloadargs (int a1);
-int overloadargs (int a1, int a2);
-int overloadargs (int a1, int a2, int a3);
-int overloadargs (int a1, int a2, int a3, int a4);
-int overloadargs (int a1, int a2, int a3, int a4, int a5);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
-                   int a8, int a9, int a10);
-int overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
-                   int a8, int a9, int a10, int a11);
-
-
-};
-
-void marker1()
-{}
-
-int main () 
-{
-    char arg2 = 2;
-    signed char arg3 =3;
-    unsigned char arg4 =4;
-    short arg5 =5;
-    unsigned short arg6 =6;
-    int arg7 =7;
-    unsigned int arg8 =8;
-    long arg9 =9;
-    unsigned long arg10 =10;
-    float arg11 =100.0;
-    double arg12 = 200.0;
-
-    char ch='A';
-    foo foo_instance1(111);
-    foo foo_instance2(222, &ch);
-    foo foo_instance3(foo_instance2);
-
-    foo_instance1.overload1arg();
-    foo_instance1.overload1arg(arg2);
-    foo_instance1.overload1arg(arg3);
-    foo_instance1.overload1arg(arg4);
-    foo_instance1.overload1arg(arg5);
-    foo_instance1.overload1arg(arg6);
-    foo_instance1.overload1arg(arg7);
-    foo_instance1.overload1arg(arg8);
-    foo_instance1.overload1arg(arg9);
-    foo_instance1.overload1arg(arg10);
-    foo_instance1.overload1arg(arg11);
-    foo_instance1.overload1arg(arg12);
-
-    foo_instance1.overloadargs(1);
-    foo_instance1.overloadargs(1, 2);
-    foo_instance1.overloadargs(1, 2, 3);
-    foo_instance1.overloadargs(1, 2, 3, 4);
-    foo_instance1.overloadargs(1, 2, 3, 4, 5);
-    foo_instance1.overloadargs(1, 2, 3, 4, 5, 6);
-    foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7);
-    foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8);
-    foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8, 9);
-    foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-    foo_instance1.overloadargs(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);
-   
-
-    #ifdef usestubs
-       set_debug_traps();
-       breakpoint();
-    #endif
-
-
-    marker1();
-    return 0; 
-}
-
-foo::foo  (int i)                  { ifoo = i;}
-foo::foo  (int i, const char *ccp) { ifoo = i; ccpfoo = ccp; }
-foo::foo  (foo& afoo)              { ifoo = afoo.ifoo; ccpfoo = afoo.ccpfoo;}
-foo::~foo ()                       {}
-
-
-/* Some functions to test overloading by varying one argument type. */
-
-int foo::overload1arg (void)                {  return 1; }
-int foo::overload1arg (char arg)            { arg = 0; return 2;}
-int foo::overload1arg (signed char arg)     { arg = 0; return 3;}
-int foo::overload1arg (unsigned char arg)   { arg = 0; return 4;}
-int foo::overload1arg (short arg)           { arg = 0; return 5;}
-int foo::overload1arg (unsigned short arg)  { arg = 0; return 6;}
-int foo::overload1arg (int arg)             { arg = 0; return 7;}
-int foo::overload1arg (unsigned int arg)    { arg = 0; return 8;}
-int foo::overload1arg (long arg)            { arg = 0; return 9;}
-int foo::overload1arg (unsigned long arg)   { arg = 0; return 10;}
-int foo::overload1arg (float arg)           { arg = 0; return 11;}
-int foo::overload1arg (double arg)          { arg = 0; return 12;}
-
-
-/* Some functions to test overloading by varying argument count. */
-
-int foo::overloadargs (int a1)                 
-{ a1 = 0; 
-return 1;}
-
-int foo::overloadargs (int a1, int a2)          
-{ a1 = a2 = 0; 
-return 2;}
-
-int foo::overloadargs (int a1, int a2, int a3)              
-{ a1 = a2 = a3 = 0; 
-return 3;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4)
-{ a1 = a2 = a3 = a4 = 0; 
-return 4;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5)
-{ a1 = a2 = a3 = a4 = a5 = 0; 
-return 5;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6)
-{ a1 = a2 = a3 = a4 = a5 = a6 = 0; 
-return 6;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7)
-{ a1 = a2 = a3 = a4 = a5 = a6 = a7 = 0; 
-return 7;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
-                   int a8)
-{ a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = 0; 
-return 8;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
-                   int a8, int a9)
-{ 
-  a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = 0; 
-  return 9;
-}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
-                   int a8, int a9, int a10)
-                        { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 =
-                          a10 = 0; return 10;}
-
-int foo::overloadargs (int a1, int a2, int a3, int a4, int a5, int a6, int a7,
-                   int a8, int a9, int a10, int a11)
-                        { a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 =
-                          a10 = a11 = 0; return 11;}
-
-
-
diff --git a/gdb/testsuite/gdb.c++/ovldbreak.exp b/gdb/testsuite/gdb.c++/ovldbreak.exp
deleted file mode 100644 (file)
index 043243d..0000000
+++ /dev/null
@@ -1,360 +0,0 @@
-# Copyright (C) 1998, 1999, 2001 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
-
-# written by Elena Zannoni (ezannoni@cygnus.com)
-# modified by Michael Chastain (chastain@redhat.com)
-
-# This file is part of the gdb testsuite
-#
-# tests for overloaded member functions. Set breakpoints on
-# overloaded member functions
-#
-
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "ovldbreak"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will 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
-}
-
-
-
-# When I ask gdb to set a breakpoint on an overloaded function,
-# gdb gives me a choice menu.  I might get stuck in that choice menu
-# (for example, if C++ name mangling is not working properly).
-#
-# This procedure issues a command that works at either the menu
-# prompt or the command prompt to get back to the command prompt.
-#
-# Note that an empty line won't do it (it means 'repeat the previous command'
-# at top level).  A line with a single space in it works nicely.
-
-proc take_gdb_out_of_choice_menu {} {
-    global gdb_prompt
-    send_gdb " \n"
-    gdb_expect {
-        -re ".*$gdb_prompt $" {
-        }
-        timeout {
-            perror "could not resynchronize to command prompt (timeout)"
-            continue
-        }
-    }
-}
-
-
-
-# This procedure sets an overloaded breakpoint.
-# When I ask for such a breakpoint, gdb gives me a menu of 'cancel' 'all'
-# and a bunch of choices.  I then choose from that menu by number.
-
-proc set_bp_overloaded {name expectedmenu mychoice bpnumber linenumber} {
-    global gdb_prompt hex srcfile
-
-    # Get into the overload menu.
-    send_gdb "break $name\n"
-    gdb_expect {
-        -re "$expectedmenu" {
-            pass "bp menu for $name choice $mychoice"
-
-            # Choose my choice.
-            send_gdb "$mychoice\n"
-            gdb_expect {
-                -re "Breakpoint $bpnumber at $hex: file.*$srcfile, line $linenumber.\r\n$gdb_prompt $" {
-                    pass "set bp $bpnumber on $name $mychoice line $linenumber"
-                }
-                -re ".*$gdb_prompt $" {
-                    fail "set bp $bpnumber on $name $mychoice line $linenumber (bad bp)"
-                }
-                timeout {
-                    fail "set bp $bpnumber on $name $mychoice line $linenumber (timeout)"
-                    take_gdb_out_of_choice_menu
-                }
-            }
-        }
-        -re ".*\r\n> " {
-            fail "bp menu for $name choice $mychoice (bad menu)"
-            take_gdb_out_of_choice_menu
-        }
-        -re ".*$gdb_prompt $" {
-            fail "bp menu for $name choice $mychoice (no menu)"
-        }
-        timeout {
-            fail "bp menu for $name choice $mychoice (timeout)"
-            take_gdb_out_of_choice_menu
-        }
-    }
-}
-
-# This is the expected menu for overload1arg.
-# Note the arg type variations on lines 6 and 13.
-# This accommodates different versions of g++.
-
-set menu_overload1arg "\\\[0\\\] cancel\r\n\\\[1\\\] all\r\n\\\[2\\\] foo::overload1arg\\(double\\) at.*$srcfile:121\r\n\\\[3\\\] foo::overload1arg\\(float\\) at.*$srcfile:120\r\n\\\[4\\\] foo::overload1arg\\(unsigned long\\) at.*$srcfile:119\r\n\\\[5\\\] foo::overload1arg\\(long\\) at.*$srcfile:118\r\n\\\[6\\\] foo::overload1arg\\((unsigned int|unsigned)\\) at.*$srcfile:117\r\n\\\[7\\\] foo::overload1arg\\(int\\) at.*$srcfile:116\r\n\\\[8\\\] foo::overload1arg\\(unsigned short\\) at.*$srcfile:115\r\n\\\[9\\\] foo::overload1arg\\(short\\) at.*$srcfile:114\r\n\\\[10\\\] foo::overload1arg\\(unsigned char\\) at.*$srcfile:113\r\n\\\[11\\\] foo::overload1arg\\(signed char\\) at.*$srcfile:112\r\n\\\[12\\\] foo::overload1arg\\(char\\) at.*$srcfile:111\r\n\\\[13\\\] foo::overload1arg\\((void|)\\) at.*$srcfile:110\r\n> $"
-
-
-
-# Set breakpoints on foo::overload1arg, one by one.
-
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg" 12    2 111
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg" 11    3 112
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg" 10    4 113
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg"  9    5 114
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg"  8    6 115
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg"  7    7 116
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg"  6    8 117
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg"  5    9 118
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg"  4   10 119
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg"  3   11 120
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg"  2   12 121
-set_bp_overloaded "foo::overload1arg" "$menu_overload1arg" 13   13 110
-
-
-
-# Verify the breakpoints.
-
-gdb_test "info break" \
-    "Num Type\[\t \]+Disp Enb Address\[\t \]+What.*
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in main at.*$srcfile:49\r
-\[\t \]+breakpoint already hit 1 time\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(char\\) at.*$srcfile:111\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(signed char\\) at.*$srcfile:112\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned char\\) at.*$srcfile:113\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(short\\) at.*$srcfile:114\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned short\\) at.*$srcfile:115\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(int\\) at.*$srcfile:116\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\((unsigned|unsigned int)\\) at.*$srcfile:117\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(long\\) at.*$srcfile:118\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned long\\) at.*$srcfile:119\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(float\\) at.*$srcfile:120\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(double\\) at.*$srcfile:121\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\((void|)\\) at.*$srcfile:110" \
-    "breakpoint info (after setting one-by-one)"
-
-
-
-# Test choice "cancel".
-# This is copy-and-paste from set_bp_overloaded.
-
-send_gdb "break foo::overload1arg\n" 
-gdb_expect {
-    -re "$menu_overload1arg" {
-        pass "bp menu for foo::overload1arg choice cancel"
-        # Choose cancel.
-        send_gdb "0\n"
-        gdb_expect {
-            -re "canceled\r\n$gdb_prompt $" {
-                pass "set bp on overload1arg canceled"
-            }
-           -re "cancelled\r\n$gdb_prompt $" {
-               pass "set bp on overload1arg canceled"
-           }
-            -re ".*$gdb_prompt $" {
-                fail "set bp on overload1arg canceled (bad message)"
-            }
-            timeout {
-                fail "set bp on overload1arg canceled (timeout)"
-                take_gdb_out_of_choice_menu
-            }
-        }
-    }
-    -re ".*\r\n> " {
-        fail "bp menu for foo::overload1arg choice cancel (bad menu)"
-        take_gdb_out_of_choice_menu
-    }
-    -re ".*$gdb_prompt $" {
-        fail "bp menu for foo::overload1arg choice cancel (no menu)"
-    }
-    timeout {
-        fail "bp menu for foo::overload1arg choice cancel (timeout)"
-        take_gdb_out_of_choice_menu
-    }
-}
-
-gdb_test "info break" \
-    "Num Type\[\t \]+Disp Enb Address\[\t \]+What.*
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in main at.*$srcfile:49\r
-\[\t \]+breakpoint already hit 1 time\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(char\\) at.*$srcfile:111\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(signed char\\) at.*$srcfile:112\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned char\\) at.*$srcfile:113\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(short\\) at.*$srcfile:114\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned short\\) at.*$srcfile:115\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(int\\) at.*$srcfile:116\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\((unsigned|unsigned int)\\) at.*$srcfile:117\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(long\\) at.*$srcfile:118\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned long\\) at.*$srcfile:119\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(float\\) at.*$srcfile:120\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(double\\) at.*$srcfile:121\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\((void|)\\) at.*$srcfile:110" \
-    "breakpoint info (after cancel)"
-
-
-
-# Delete these breakpoints.
-
-send_gdb "delete breakpoints\n"
-gdb_expect {
-    -re "Delete all breakpoints.* $" {
-        send_gdb "y\n"
-        gdb_expect {
-            -re ".*$gdb_prompt $" {
-                pass "delete all breakpoints"
-            }
-            timeout {
-                fail "delete all breakpoints (timeout)"
-            }
-        }
-    }
-    timeout {
-        fail "delete all breakpoints (timeout)"
-    }
-}
-
-gdb_test "info breakpoints" "No breakpoints or watchpoints." "breakpoint info (after delete)"
-
-
-
-# Test choice "all".
-# This is copy-and-paste from set_bp_overloaded.
-
-send_gdb "break foo::overload1arg\n" 
-gdb_expect {
-    -re "$menu_overload1arg" {
-        pass "bp menu for foo::overload1arg choice all"
-        # Choose all.
-        send_gdb "1\n"
-        gdb_expect {
-            -re "Breakpoint $decimal at $hex: file.*$srcfile, line 121.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 120.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 119.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 118.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 117.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 116.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 115.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 114.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 113.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 112.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 111.\r\nBreakpoint $decimal at $hex: file.*$srcfile, line 110.\r\nwarning: Multiple breakpoints were set.\r\nwarning: Use the .delete. command to delete unwanted breakpoints.\r\n$gdb_prompt $" {
-                pass "set bp on overload1arg all"
-            }
-            -re ".*$gdb_prompt $" {
-                fail "set bp on overload1arg all (bad message)"
-            }
-            timeout {
-                fail "set bp on overload1arg all (timeout)"
-                take_gdb_out_of_choice_menu
-            }
-        }
-    }
-    -re ".*\r\n> " {
-        fail "bp menu for foo::overload1arg choice all (bad menu)"
-        take_gdb_out_of_choice_menu
-    }
-    -re ".*$gdb_prompt $" {
-        fail "bp menu for foo::overload1arg choice all (no menu)"
-    }
-    timeout {
-        fail "bp menu for foo::overload1arg choice all (timeout)"
-        take_gdb_out_of_choice_menu
-    }
-}
-
-gdb_test "info break" \
-    "Num Type\[\t \]+Disp Enb Address\[\t \]+What.*
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(double\\) at.*$srcfile:121\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(float\\) at.*$srcfile:120\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned long\\) at.*$srcfile:119\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(long\\) at.*$srcfile:118\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\((unsigned|unsigned int)\\) at.*$srcfile:117\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(int\\) at.*$srcfile:116\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned short\\) at.*$srcfile:115\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(short\\) at.*$srcfile:114\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(unsigned char\\) at.*$srcfile:113\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(signed char\\) at.*$srcfile:112\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(char\\) at.*$srcfile:111\r
-\[0-9\]+\[\t \]+breakpoint     keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\((void|)\\) at.*$srcfile:110" \
-    "breakpoint info (after setting on all)"
-
-
-
-# Run through each breakpoint.
-
-# NOTE: carlton/2003-02-03: I'm seeing failures on some of the tests,
-# with the wrong arg being printed out.  Michael Chastain sees
-# failures at times, too, albeit fewer than I do.
-
-proc continue_to_bp_overloaded {might_kfail bpnumber argtype actuals} {
-    global gdb_prompt hex decimal srcfile 
-
-    send_gdb "continue\n"
-    gdb_expect {
-       -re "Continuing.\r\n\r\nBreakpoint ${bpnumber}, (${hex} in )?foo::overload1arg(\\(${argtype}\\))? \\(this=${hex}(, )?${actuals}\\) at.*${srcfile}:${decimal}\r\n${decimal}\[\t \]+int foo::overload1arg \\(${argtype}( arg)?\\).*\r\n.*$gdb_prompt $" {
-           pass "continue to bp overloaded : ${argtype}"
-       }
-       -re "Continuing.\r\n\r\nBreakpoint ${bpnumber}, (${hex} in )?foo::overload1arg(\\(${argtype}\\))? \\(this=${hex}, arg=.*\\) at.*${srcfile}:${decimal}\r\n${decimal}\[\t \]+int foo::overload1arg \\(${argtype}( arg)?\\).*\r\n.*$gdb_prompt $" {
-           if $might_kfail {
-               kfail "gdb/1025" "continue to bp overloaded : ${argtype}"
-           } else {
-               fail "continue to bp overloaded : ${argtype}"
-           }
-       }
-        -re ".*$gdb_prompt $" {
-           fail "continue to bp overloaded : ${argtype}" 
-       }
-        timeout {
-           fail "continue to bp overloaded : ${argtype} (timeout)"
-       }
-    }
-}
-
-continue_to_bp_overloaded 0 25 "(void|)" ""
-continue_to_bp_overloaded 1 24 "char" "arg=2 \\'\\\\002\\'"
-continue_to_bp_overloaded 1 23 "signed char" "arg=3 \\'\\\\003\\'"
-continue_to_bp_overloaded 1 22 "unsigned char" "arg=4 \\'\\\\004\\'"
-continue_to_bp_overloaded 1 21 "short" "arg=5"
-continue_to_bp_overloaded 1 20 "unsigned short" "arg=6"
-continue_to_bp_overloaded 0 19 "int" "arg=7"
-continue_to_bp_overloaded 0 18 "(unsigned|unsigned int)" "arg=8"
-continue_to_bp_overloaded 0 17 "long" "arg=9"
-continue_to_bp_overloaded 0 16 "unsigned long" "arg=10"
-continue_to_bp_overloaded 0 15 "float" "arg=100"
-continue_to_bp_overloaded 1 14 "double" "arg=200"
-
-
-
-# That's all, folks.
-
-gdb_continue_to_end "finish program"
diff --git a/gdb/testsuite/gdb.c++/pr-1023.cc b/gdb/testsuite/gdb.c++/pr-1023.cc
deleted file mode 100644 (file)
index 7583084..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-class myClass
-{
-  public:
-    myClass() {};
-    ~myClass() {};
-    void performUnblocking( short int cell_index );
-    void performBlocking( int cell_index );
-};
-
-void myClass::performUnblocking( short int cell_index ) {}
-
-void myClass::performBlocking( int cell_index ) {}
-
-int main ()
-{
-  myClass mc;
-  mc.performBlocking (0);
-  mc.performUnblocking (0);
-}
-
diff --git a/gdb/testsuite/gdb.c++/pr-1023.exp b/gdb/testsuite/gdb.c++/pr-1023.exp
deleted file mode 100644 (file)
index c8c9802..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright 2003 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.  
-
-# Tests for PR gdb/1023.
-# 2003-02-03  Michael Chastain <mec@shout.net>
-
-# This file is part of the gdb testsuite.
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-if { [skip_cplus_tests] } { continue }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-set testfile "pr-1023"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-if [get_compiler_info ${binfile} "c++"] {
-    return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-send_gdb "break myClass::performBlocking\n"
-gdb_expect {
-    -re "Breakpoint $decimal at $hex: file .*$srcfile, line 12.*$gdb_prompt $" {
-       pass "break myClass::performBlocking"
-    }
-    -re "the class myClass does not have any method named performBlocking.*$gdb_prompt $" {
-       # fails with gcc 2.95.3 -gstabs+, native i686-pc-linux-gnu
-       # -- chastain 2003-02-03
-       kfail "gdb/1023" "break myClass::performBlocking"
-    }
-    -re ".*$gdb_prompt $" {
-       fail "break myClass::performBlocking"
-    }
-    timeout {
-       fail "break myClass::performBlocking (timeout)"
-    }
-}
-
-gdb_test \
-  "break myClass::performUnblocking" \
-  "Breakpoint $decimal at $hex: file .*$srcfile, line 10.*"
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.c++/pr-1210.cc b/gdb/testsuite/gdb.c++/pr-1210.cc
deleted file mode 100644 (file)
index 5747e5d..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-class A
-{
-};
-
-class B : virtual public A
-{
-};
-
-class C : public A
-{
-     protected:
-         B myB;
-};
-
-int main()
-{
-     C *obj = new C();
-     return 0;
-}
diff --git a/gdb/testsuite/gdb.c++/pr-1210.exp b/gdb/testsuite/gdb.c++/pr-1210.exp
deleted file mode 100644 (file)
index 3ff850d..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright 2003 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.  
-
-# Tests for PR gdb/1210.
-
-# This file is part of the gdb testsuite.
-
-if $tracelevel then {
-       strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-set testfile "pr-1210"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-    gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-if [get_compiler_info ${binfile} "c++"] {
-    return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-gdb_test "next" ".*return 0;" "step past initialization"
-
-gdb_test_multiple "print *obj" "" {
-  -re "Cannot access memory.*$gdb_prompt $" {
-    fail "print *obj"
-  }
-  -re " = {<A> = {<No data fields>}, myB = {<A> = {<No data fields>}.*}}\r\n$gdb_prompt $" {
-    pass "print *obj"
-  }
-}
-
-gdb_test_multiple "print obj->myB" "" {
-  -re "Cannot access memory.*$gdb_prompt $" {
-    fail "print obj->myB"
-  }
-  -re " = {<A> = {<No data fields>}.*}\r\n$gdb_prompt $" {
-    pass "print obj->myB"
-  }
-}
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.c++/pr-574.cc b/gdb/testsuite/gdb.c++/pr-574.cc
deleted file mode 100644 (file)
index eb06b61..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
-  An attempt to replicate PR gdb/574 with a shorter program.
-
-  Printing out *theB failed if the program was compiled with GCC 2.95.
-*/
-
-class A {
-public:
-  virtual void foo() {};               // Stick in a virtual function.
-  int a;                               // Stick in a data member.
-};
-
-class B : public A {
-  static int b;                                // Stick in a static data member.
-};
-
-int main()
-{
-  B *theB = new B;
-
-  return 0;                            // breakpoint: constructs-done
-}
diff --git a/gdb/testsuite/gdb.c++/pr-574.exp b/gdb/testsuite/gdb.c++/pr-574.exp
deleted file mode 100644 (file)
index 5beacd1..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright 2002 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.  
-
-# Tests for the bug mentioned in PR gdb/574.  It's a bit
-# idiosyncratic, so I gave it its own file.
-
-# 2002-08-16  David Carlton <carlton@math.stanford.edu>
-
-# This file is part of the gdb testsuite
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-if { [skip_cplus_tests] } { continue }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-set testfile "pr-574"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-if [get_compiler_info ${binfile} "c++"] {
-    return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-# First, run to after we've constructed the object:
-
-gdb_breakpoint [gdb_get_line_number "constructs-done"]
-gdb_continue_to_breakpoint "end of constructors"
-
-# This failed, as long as the code was compiled with GCC v. 2.
-
-# Different compilers order the data for <A> differently, so I'm not
-# matching the result exactly.
-
-gdb_test "print *theB" "\\$\[0-9\]* = {<A> = {\[^}\]*}, static b = <optimized out>}" "PR gdb/574"
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.c++/printmethod.cc b/gdb/testsuite/gdb.c++/printmethod.cc
deleted file mode 100644 (file)
index d32e1b1..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Create some objects, and try to print out their methods.  */
-
-class A {
-public:
-  virtual void virt() {};
-  void nonvirt() {};
-};
-
-int main()
-{
-  A *theA = new A;
-
-  return 0;                            // breakpoint: constructs-done
-}
diff --git a/gdb/testsuite/gdb.c++/printmethod.exp b/gdb/testsuite/gdb.c++/printmethod.exp
deleted file mode 100644 (file)
index a45393f..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright 2002, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# This tries to print out methods of classes.
-
-# 2002-08-16  David Carlton <carlton@math.stanford.edu>
-
-# This file is part of the gdb testsuite
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-if { [skip_cplus_tests] } { continue }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-set testfile "printmethod"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-if [get_compiler_info ${binfile} "c++"] {
-    return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-# First, run to after we've constructed the object:
-
-gdb_breakpoint [gdb_get_line_number "constructs-done"]
-gdb_continue_to_breakpoint "end of constructors"
-
-# The first of these is for PR gdb/653.
-
-gdb_test "print theA->virt" "\\$\[0-9\]* = &A::virt\\((void|)\\)" "print virtual method."
-gdb_test "print theA->nonvirt" "Cannot take address of a method" "print nonvirtual method."
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.c++/ref-types.cc b/gdb/testsuite/gdb.c++/ref-types.cc
deleted file mode 100644 (file)
index 23cc510..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-int main2(void);
-
-void marker1 (void)
-{
-    
-}
-
-
-
-int main(void)
-{
-    short s;
-    short &rs = s;
-    short *ps;
-    short *&rps = ps;
-    short as[4];
-    short (&ras)[4] = as;
-    s = -1;
-    ps = &s;
-    as[0] = 0;
-    as[1] = 1;
-    as[2] = 2;
-    as[3] = 3;
-
-   #ifdef usestubs
-       set_debug_traps();
-       breakpoint();
-    #endif
-    marker1();
-
-    main2();
-
-    return 0;
-}
-
-int f()
-{
-    int f1;
-    f1 = 1;
-    return f1;
-}
-
-int main2(void)
-{
-    char C;
-    unsigned char UC;
-    short S;
-    unsigned short US;
-    int I;
-    unsigned int UI;
-    long L;
-    unsigned long UL;
-    float F;
-    double D;
-    char &rC = C;
-    unsigned char &rUC = UC;
-    short &rS = S;
-    unsigned short &rUS = US;
-    int &rI = I;
-    unsigned int &rUI = UI;
-    long &rL = L;
-    unsigned long &rUL = UL;
-    float &rF = F;
-    double &rD = D;
-    C = 'A';
-    UC = 21;
-    S = -14;
-    US = 7;
-    I = 102;
-    UI = 1002;
-    L = -234;
-    UL = 234;
-    F = 1.25E10;
-    D = -1.375E-123;
-    I = f();
-
-    return 0;
-    
-}
diff --git a/gdb/testsuite/gdb.c++/ref-types.exp b/gdb/testsuite/gdb.c++/ref-types.exp
deleted file mode 100644 (file)
index dd06f02..0000000
+++ /dev/null
@@ -1,663 +0,0 @@
-# Tests for reference types with short type variables in GDB.
-# Copyright 1998, 1999, 2000 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
-
-# written by Elena Zannoni (ezannoni@cygnus.com)
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "ref-types"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will 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
-}
-
-if ![runto 'marker1'] then {
-    perror "couldn't run to marker1"
-    continue
-}
-
-gdb_test "up" ".*main.*" "up from marker1 1"
-
-proc gdb_start_again {} {
-    global srcdir
-    global subdir
-    global binfile
-    global gdb_prompt
-    global decimal
-
-    gdb_start
-    gdb_reinitialize_dir $srcdir/$subdir
-    gdb_load ${binfile}
-
-    source ${binfile}.ci
-
-    #
-    # 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
-    }
-
-    if ![runto 'marker1'] then {
-       perror "couldn't run to marker1"
-       continue
-    }
-
-    gdb_test "up" ".*main.*" "up from marker1 2"
-}
-
-
-
-send_gdb "print s\n"
-gdb_expect {
-    -re ".\[0-9\]* = -1.*$gdb_prompt $" {
-        pass "print value of s"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of s" }
-    timeout           { fail "(timeout) print value of s" }
-  }
-
-
-send_gdb "ptype s\n"
-gdb_expect {
-    -re "type = short.*$gdb_prompt $"  { pass "ptype s" }
-    -re ".*$gdb_prompt $"   {  fail "ptype s" }
-    timeout             { fail "(timeout) ptype s" }
-}
-
-
-send_gdb "print *ps\n"
-gdb_expect {
-    -re ".\[0-9\]* = -1.*$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 ".*$gdb_prompt $"   {  fail "ptype ps" }
-    timeout             { fail "(timeout) ptype ps" }
-}
-
-send_gdb "print as\[0\]\n"
-gdb_expect {
-    -re ".\[0-9\]* = 0.*$gdb_prompt $" {
-        pass "print value of as\[0\]"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of as\[0\]" }
-    timeout           { fail "(timeout) print value of as\[0\]" }
-  }
-
-
-send_gdb "ptype as\n"
-gdb_expect {
-    -re "type = short \\\[4\\\].*$gdb_prompt $"  { pass "ptype as" }
-    -re "type = short int \\\[4\\\].*$gdb_prompt $"  { pass "ptype as" }
-    -re ".*$gdb_prompt $"   {  fail "ptype as" }
-    timeout             { fail "(timeout) ptype as" }
-}
-
-send_gdb "print as\[1\]\n"
-gdb_expect {
-    -re ".\[0-9\]* = 1.*$gdb_prompt $" {
-        pass "print value of as\[1\]"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of as\[1\]" }
-    timeout           { fail "(timeout) print value of as\[1\]" }
-  }
-
-send_gdb "print as\[2\]\n"
-gdb_expect {
-    -re ".\[0-9\]* = 2.*$gdb_prompt $" {
-        pass "print value of as\[2\]"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of as\[2\]" }
-    timeout           { fail "(timeout) print value of as\[2\]" }
-  }
-
-send_gdb "print as\[3\]\n"
-gdb_expect {
-    -re ".\[0-9\]* = 3.*$gdb_prompt $" {
-        pass "print value of as\[3\]"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of as\[3\]" }
-    timeout           { fail "(timeout) print value of as\[3\]" }
-  }
-
-send_gdb "print rs\n"
-gdb_expect {
-    -re ".\[0-9\]* = \\(short &\\) @$hex: -1.*$gdb_prompt $" {
-        pass "print value of rs"
-    }
-    -re ".\[0-9\]* = \\(short int &\\) @$hex: -1.*$gdb_prompt $" {
-        pass "print value of rs"
-    }
-    -re ".*$gdb_prompt $" { fail "print value of rs" }
-    timeout           { fail "(timeout) print value of rs" }
-    eof { fail "print rs ($GDB dumped core) (FIXME)" ; gdb_start_again ; }
-
-  }
-
-send_gdb "ptype rs\n"
-gdb_expect {
-    -re "type = short &.*$gdb_prompt $"  { pass "ptype rs" }
-    -re "type = short int &.*$gdb_prompt $"  { pass "ptype rs" }
-    -re ".*$gdb_prompt $"   {  fail "ptype rs" }
-    timeout             { fail "(timeout) ptype rs" }
-}
-
-
-send_gdb "print *rps\n"
-gdb_expect {
-    -re ".\[0-9\]* = -1.*$gdb_prompt $" {
-        pass "print value of *rps"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of *rps" }
-    timeout           { fail "(timeout) print value of *rps" }
-  }
-
-
-send_gdb "ptype rps\n"
-gdb_expect {
-    -re "type = short \\*&.*$gdb_prompt $"  { pass "ptype rps" }
-    -re "type = short int \\*&.*$gdb_prompt $"  { pass "ptype rps" }
-    -re ".*$gdb_prompt $"   {  fail "ptype rps" }
-    timeout             { fail "(timeout) ptype rps" }
-}
-
-
-
-send_gdb "print ras\[0\]\n"
-gdb_expect {
-    -re ".\[0-9\]* = 0.*$gdb_prompt $" {
-        pass "print value of ras\[0\]"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of ras\[0\]" }
-    timeout           { fail "(timeout) print value of ras\[0\]" }
-  }
-
-
-send_gdb "ptype ras\n"
-gdb_expect {
-    -re "type = short \\\(&\\\)\\\[4\\\].*$gdb_prompt $"  { pass "ptype ras" }
-    -re "type = short int \\\(&\\\)\\\[4\\\].*$gdb_prompt $"  { pass "ptype ras" }
-    -re ".*$gdb_prompt $"   {  fail "ptype ras" }
-    timeout             { fail "(timeout) ptype ras" }
-}
-
-send_gdb "print ras\[1\]\n"
-gdb_expect {
-    -re ".\[0-9\]* = 1.*$gdb_prompt $" {
-        pass "print value of ras\[1\]"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of ras\[1\]" }
-    timeout           { fail "(timeout) print value of ras\[1\]" }
-  }
-
-send_gdb "print ras\[2\]\n"
-gdb_expect {
-    -re ".\[0-9\]* = 2.*$gdb_prompt $" {
-        pass "print value of ras\[2\]"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of ras\[2\]" }
-    timeout           { fail "(timeout) print value of ras\[2\]" }
-  }
-
-send_gdb "print ras\[3\]\n"
-gdb_expect {
-    -re ".\[0-9\]* = 3.*$gdb_prompt $" {
-        pass "print value of ras\[3\]"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of ras\[3\]" }
-    timeout           { fail "(timeout) print value of ras\[3\]" }
-  }
-
-
-if ![runto 'f'] then {
-    perror "couldn't run to f"
-    continue
-}
-
-gdb_test "up" ".main2.*" "up from f"
-
-send_gdb "print C\n"
-gdb_expect {
-    -re ".\[0-9\]* = 65 \'A\'.*$gdb_prompt $" {
-        pass "print value of C"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of C" }
-    timeout           { fail "(timeout) print value of C" }
-  }
-
-
-send_gdb "ptype C\n"
-gdb_expect {
-    -re "type = char.*$gdb_prompt $"  { pass "ptype C" }
-    -re ".*$gdb_prompt $"   {  fail "ptype C" }
-    timeout             { fail "(timeout) ptype C" }
-}
-
-
-send_gdb "print UC\n"
-gdb_expect {
-    -re ".\[0-9\]* = 21 '\.025'\.*$gdb_prompt $" {
-        pass "print value of UC"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of UC" }
-    timeout           { fail "(timeout) print value of UC" }
-  }
-
-
-send_gdb "ptype UC\n"
-gdb_expect {
-    -re "type = unsigned char.*$gdb_prompt $"  { pass "ptype UC" }
-    -re ".*$gdb_prompt $"   {  fail "ptype UC" }
-    timeout             { fail "(timeout) ptype UC" }
-}
-
-
-send_gdb "print S\n"
-gdb_expect {
-    -re ".\[0-9\]* = -14.*$gdb_prompt $" {
-        pass "print value of S"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of S" }
-    timeout           { fail "(timeout) print value of S" }
-  }
-
-
-send_gdb "ptype S\n"
-gdb_expect {
-    -re "type = short.*$gdb_prompt $"  { pass "ptype S" }
-    -re ".*$gdb_prompt $"   {  fail "ptype S" }
-    timeout             { fail "(timeout) ptype S" }
-}
-
-
-send_gdb "print US\n"
-gdb_expect {
-    -re ".\[0-9\]* = 7.*$gdb_prompt $" {
-        pass "print value of US"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of US" }
-    timeout           { fail "(timeout) print value of US" }
-  }
-
-
-send_gdb "ptype US\n"
-gdb_expect {
-    -re "type = unsigned short.*$gdb_prompt $"  { pass "ptype US" }
-    -re "type = short unsigned.*$gdb_prompt $"  { pass "ptype US" }
-    -re ".*$gdb_prompt $"   {  fail "ptype US" }
-    timeout             { fail "(timeout) ptype US" }
-}
-
-
-send_gdb "print I\n"
-gdb_expect {
-    -re ".\[0-9\]* = 102.*$gdb_prompt $" {
-        pass "print value of I"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of I" }
-    timeout           { fail "(timeout) print value of I" }
-  }
-
-
-send_gdb "ptype I\n"
-gdb_expect {
-    -re "type = int.*$gdb_prompt $"  { pass "ptype I" }
-    -re ".*$gdb_prompt $"   {  fail "ptype I" }
-    timeout             { fail "(timeout) ptype I" }
-}
-
-
-send_gdb "print UI\n"
-gdb_expect {
-    -re ".\[0-9\]* = 1002.*$gdb_prompt $" {
-        pass "print value of UI"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of UI" }
-    timeout           { fail "(timeout) print value of UI" }
-  }
-
-
-send_gdb "ptype UI\n"
-gdb_expect {
-    -re "type = unsigned int.*$gdb_prompt $"  { pass "ptype UI" }
-    -re ".*$gdb_prompt $"   {  fail "ptype UI" }
-    timeout             { fail "(timeout) ptype UI" }
-}
-
-
-send_gdb "print L\n"
-gdb_expect {
-    -re ".\[0-9\]* = -234.*$gdb_prompt $" {
-        pass "print value of L"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of L" }
-    timeout           { fail "(timeout) print value of L" }
-  }
-
-
-send_gdb "ptype L\n"
-gdb_expect {
-    -re "type = long.*$gdb_prompt $"  { pass "ptype L" }
-    -re ".*$gdb_prompt $"   {  fail "ptype L" }
-    timeout             { fail "(timeout) ptype L" }
-}
-
-
-send_gdb "print UL\n"
-gdb_expect {
-    -re ".\[0-9\]* = 234.*$gdb_prompt $" {
-        pass "print value of UL"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of UL" }
-    timeout           { fail "(timeout) print value of UL" }
-  }
-
-
-send_gdb "ptype UL\n"
-gdb_expect {
-    -re "type = unsigned long.*$gdb_prompt $"  { pass "ptype UL" }
-    -re "type = long unsigned.*$gdb_prompt $"  { pass "ptype UL" }
-    -re ".*$gdb_prompt $"   {  fail "ptype UL" }
-    timeout             { fail "(timeout) ptype UL" }
-}
-
-
-send_gdb "print F\n"
-gdb_expect {
-    -re ".\[0-9\]* = 1.2\[0-9\]*e\\+10.*$gdb_prompt $" {
-        pass "print value of F"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of F" }
-    timeout           { fail "(timeout) print value of F" }
-  }
-
-
-
-send_gdb "ptype F\n"
-gdb_expect {
-    -re "type = float.*$gdb_prompt $"  { pass "ptype F" }
-    -re ".*$gdb_prompt $"   {  fail "ptype F" }
-    timeout             { fail "(timeout) ptype F" }
-}
-
-
-send_gdb "print D\n"
-gdb_expect {
-    -re ".\[0-9\]* = -1.375e-123.*$gdb_prompt $" {
-        pass "print value of D"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of D" }
-    timeout           { fail "(timeout) print value of D" }
-  }
-
-
-send_gdb "ptype D\n"
-gdb_expect {
-    -re "type = double.*$gdb_prompt $"  { pass "ptype D" }
-    -re ".*$gdb_prompt $"   {  fail "ptype D" }
-    timeout             { fail "(timeout) ptype D" }
-}
-
-
-
-#
-# test reference types
-#
-
-
-
-
-send_gdb "ptype rC\n"
-gdb_expect {
-    -re "type = char &.*$gdb_prompt $"  { pass "ptype rC" }
-    -re ".*$gdb_prompt $"   {  fail "ptype rC" }
-    timeout             { fail "(timeout) ptype rC" }
-}
-
-
-
-
-send_gdb "ptype rUC\n"
-gdb_expect {
-    -re "type = unsigned char &.*$gdb_prompt $"  { pass "ptype rUC" }
-    -re ".*$gdb_prompt $"   {  fail "ptype rUC" }
-    timeout             { fail "(timeout) ptype rUC" }
-}
-
-
-
-send_gdb "ptype rS\n"
-gdb_expect {
-    -re "type = short &.*$gdb_prompt $"  { pass "ptype rS" }
-    -re "type = short int &.*$gdb_prompt $"  { pass "ptype rS" }
-    -re ".*$gdb_prompt $"   {  fail "ptype rS" }
-    timeout             { fail "(timeout) ptype rS" }
-}
-
-
-
-send_gdb "ptype rUS\n"
-gdb_expect {
-    -re "type = unsigned short &.*$gdb_prompt $"  { pass "ptype rUS" }
-    -re "type = short unsigned int &.*$gdb_prompt $"  { pass "ptype rUS" }
-    -re ".*$gdb_prompt $"   {  fail "ptype rUS" }
-    timeout             { fail "(timeout) ptype rUS" }
-}
-
-
-send_gdb "ptype rI\n"
-gdb_expect {
-    -re "type = int &.*$gdb_prompt $"  { pass "ptype rI" }
-    -re ".*$gdb_prompt $"   {  fail "ptype rI" }
-    timeout             { fail "(timeout) ptype rI" }
-}
-
-
-
-send_gdb "ptype rUI\n"
-gdb_expect {
-    -re "type = unsigned int &.*$gdb_prompt $"  { pass "ptype rUI" }
-    -re ".*$gdb_prompt $"   {  fail "ptype rUI" }
-    timeout             { fail "(timeout) ptype rUI" }
-}
-
-
-
-send_gdb "ptype rL\n"
-gdb_expect {
-    -re "type = long &.*$gdb_prompt $"  { pass "ptype rL" }
-    -re "type = long int &.*$gdb_prompt $"  { pass "ptype rL" }
-    -re ".*$gdb_prompt $"   {  fail "ptype rL" }
-    timeout             { fail "(timeout) ptype rL" }
-}
-
-
-send_gdb "ptype rUL\n"
-gdb_expect {
-    -re "type = unsigned long &.*$gdb_prompt $"  { pass "ptype rUL" }
-    -re "type = long unsigned int &.*$gdb_prompt $"  { pass "ptype rUL" }
-    -re ".*$gdb_prompt $"   {  fail "ptype rUL" }
-    timeout             { fail "(timeout) ptype rUL" }
-}
-
-
-send_gdb "ptype rF\n"
-gdb_expect {
-    -re "type = float &.*$gdb_prompt $"  { pass "ptype rF" }
-    -re ".*$gdb_prompt $"   {  fail "ptype rF" }
-    timeout             { fail "(timeout) ptype rF" }
-}
-
-
-send_gdb "ptype rD\n"
-gdb_expect {
-    -re "type = double &.*$gdb_prompt $"  { pass "ptype rD" }
-    -re ".*$gdb_prompt $"   {  fail "ptype rD" }
-    timeout             { fail "(timeout) ptype rD" }
-}
-
-
-send_gdb "print rC\n"
-gdb_expect {
-    -re ".\[0-9\]* = \\(char &\\) @$hex: 65 \'A\'.*$gdb_prompt $" {
-        pass "print value of rC"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of rC" }
-    timeout           { fail "(timeout) print value of rC" }
-  }
-
-
-send_gdb "print rUC\n"
-gdb_expect {
-    -re ".\[0-9\]* = \\(unsigned char &\\) @$hex: 21 \'.025\'.*$gdb_prompt $" {
-        pass "print value of rUC"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of rUC" }
-    timeout           { fail "(timeout) print value of rUC" }
-  }
-
-
-send_gdb "print rS\n"
-gdb_expect {
-    -re ".\[0-9\]* = \\(short &\\) @$hex: -14.*$gdb_prompt $" {
-        pass "print value of rS"
-    }
-    -re ".\[0-9\]* = \\(short int &\\) @$hex: -14.*$gdb_prompt $" {
-        pass "print value of rS"
-    }
-    -re ".*$gdb_prompt $" { fail "print value of rS" }
-    timeout           { fail "(timeout) print value of rS" }
-  }
-
-
-send_gdb "print rUS\n"
-gdb_expect {
-    -re ".\[0-9\]* = \\(unsigned short &\\) @$hex: 7.*$gdb_prompt $" {
-        pass "print value of rUS"
-    }
-    -re ".\[0-9\]* = \\(short unsigned int &\\) @$hex: 7.*$gdb_prompt $" {
-        pass "print value of rUS"
-    }
-    -re ".*$gdb_prompt $" { fail "print value of rUS" }
-    timeout           { fail "(timeout) print value of rUS" }
-  }
-
-
-send_gdb "print rI\n"
-gdb_expect {
-    -re ".\[0-9\]* = \\(int &\\) @$hex: 102.*$gdb_prompt $" {
-        pass "print value of rI"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of rI" }
-    timeout           { fail "(timeout) print value of rI" }
-  }
-
-
-send_gdb "print rUI\n"
-gdb_expect {
-    -re ".\[0-9\]* = \\(unsigned int &\\) @$hex: 1002.*$gdb_prompt $" {
-        pass "print value of UI"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of rUI" }
-    timeout           { fail "(timeout) print value of rUI" }
-  }
-
-
-send_gdb "print rL\n"
-gdb_expect {
-    -re ".\[0-9\]* = \\(long &\\) @$hex: -234.*$gdb_prompt $" {
-        pass "print value of rL"
-    }
-    -re ".\[0-9\]* = \\(long int &\\) @$hex: -234.*$gdb_prompt $" {
-        pass "print value of rL"
-    }
-    -re ".*$gdb_prompt $" { fail "print value of rL" }
-    timeout           { fail "(timeout) print value of rL" }
-  }
-
-
-
-send_gdb "print rUL\n"
-gdb_expect {
-    -re ".\[0-9\]* = \\(unsigned long &\\) @$hex: 234.*$gdb_prompt $" {
-        pass "print value of rUL"
-    }
-    -re ".\[0-9\]* = \\(long unsigned int &\\) @$hex: 234.*$gdb_prompt $" {
-        pass "print value of rUL"
-    }
-    -re ".*$gdb_prompt $" { fail "print value of rUL" }
-    timeout           { fail "(timeout) print value of rUL" }
-  }
-
-
-send_gdb "print rF\n"
-gdb_expect {
-    -re ".\[0-9\]* = \\(float &\\) @$hex: 1.2\[0-9\]*e\\+10.*$gdb_prompt $" {
-        pass "print value of rF"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of rF" }
-    timeout           { fail "(timeout) print value of rF" }
-  }
-
-
-send_gdb "print rD\n"
-gdb_expect {
-    -re ".\[0-9\]* = \\(double &\\) @$hex: -1.375e-123.*$gdb_prompt $" {
-        pass "print value of rD"
-      }
-    -re ".*$gdb_prompt $" { fail "print value of rD" }
-    timeout           { fail "(timeout) print value of rD" }
-  }
-
diff --git a/gdb/testsuite/gdb.c++/rtti.exp b/gdb/testsuite/gdb.c++/rtti.exp
deleted file mode 100644 (file)
index 3eba24b..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-# Copyright 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# This file is part of the gdb testsuite.
-
-# This contains tests for GDB's use of RTTI information.  This stems
-# from a bug reported in PR gdb/488 and other places, which leads to
-# statements like 'warning: can't find class named 'C::D', as given by
-# C++ RTTI'.  It arises from GDB not knowing about classes that are
-# defined in namespaces.
-
-# NOTE: carlton/2003-05-16: I suspect it could arise from nested class
-# issues, too, and even once we fix that, there might be situations
-# (involving templates, in particular) where this problem triggers
-# because GDB and GCC have different ideas what a class is called.
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-if { [skip_cplus_tests] } { continue }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-set testfile "rtti"
-set srcfile1 "${srcdir}/${subdir}/${testfile}1.cc"
-set objfile1 "${objdir}/${subdir}/${testfile}1.o"
-set srcfile2 "${srcdir}/${subdir}/${testfile}2.cc"
-set objfile2 "${objdir}/${subdir}/${testfile}2.o"
-set binfile ${objdir}/${subdir}/${testfile}
-
-# gdb_get_line_number needs this to be called srcfile.
-set srcfile "${srcfile1}"
-
-if  { [gdb_compile "${srcfile1}" "${objfile1}" object {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-if  { [gdb_compile "${srcfile2}" "${objfile2}" object {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-if  { [gdb_compile "${objfile1} ${objfile2}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-if [get_compiler_info ${binfile} "c++"] {
-    return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-# First, run to after we've constructed the object:
-
-gdb_breakpoint [gdb_get_line_number "constructs-done"]
-gdb_continue_to_breakpoint "end of constructors"
-
-gdb_test_multiple "print *e1" "print *e1" {
-    -re "warning: can't find class named `n1::D1', as given by C\\+\\+ RTTI.*$gdb_prompt $" {
-       #kfail "gdb/488" "print *e1"
-       fail "print *e1"
-    }
-    -re "\\$\[0-9\]* = {<n1::Base1> = .*}\r\n$gdb_prompt $" {
-       pass "print *e1"
-    }
-}
-
-# NOTE: carlton/2003-05-16: This test fails on my branch with an
-# "<incomplete type>" message because, within rtt1.cc, GDB has no way
-# of knowing that the class is called 'n2::D2' instead of just 'D2'.
-# This is an artifical test case, though: if we were using these
-# classes in a more substantial way, G++ would emit more debug info.
-# As is, I don't think there's anything that GDB can do about this
-# case until G++ starts emitting DW_TAG_namespace info; when that part
-# of the branch gets merged in, then we'll probably want to convert
-# that fail branch to an xfail.
-
-gdb_test_multiple "print *e2" "print *e2" {
-    -re "warning: can't find class named `n2::D2', as given by C\\+\\+ RTTI.*$gdb_prompt $" {
-       #kfail "gdb/488" "print *e2"
-       fail "print *e2"
-    }
-    -re "\\$\[0-9\]* = <incomplete type>\r\n$gdb_prompt $" {
-       kfail "gdb/TBA" "print *e2"
-    }
-    -re "\\$\[0-9\]* = {<n2::Base2> = .*}\r\n$gdb_prompt $" {
-       pass "print *e2"
-    }
-}
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.c++/rtti.h b/gdb/testsuite/gdb.c++/rtti.h
deleted file mode 100644 (file)
index 879896d..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Code to go along with tests in rtti.exp.
-   
-   Copyright 2003 Free Software Foundation, Inc.
-
-   Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
-   Inc.
-
-   This file is part of GDB.
-
-   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.  */
-
-namespace n2 {
-
-  class C2;
-
-  class Base2 {
-  public:
-    virtual ~Base2() { }
-  };
-
-
-  class C2: public Base2 {
-  public:
-  };
-
-  class D2 : public C2{
-  public:
-    D2(C2 *, C2 *);
-    
-    C2* expr_1_;
-    C2* expr_2_;
-  };
-
-  extern C2 *create2();
-}
diff --git a/gdb/testsuite/gdb.c++/rtti1.cc b/gdb/testsuite/gdb.c++/rtti1.cc
deleted file mode 100644 (file)
index 6e9d862..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Code to go along with tests in rtti.exp.
-   
-   Copyright 2003 Free Software Foundation, Inc.
-
-   Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
-   Inc.
-
-   This file is part of GDB.
-
-   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.  */
-
-#include "rtti.h"
-
-namespace n1 {
-
-  class C1;
-
-  class Base1 {
-  public:
-    virtual ~Base1() { }
-  };
-
-
-  class C1: public Base1 {
-  public:
-  };
-
-  class D1 : public C1{
-  public:
-    D1(C1 *, C1 *);
-    
-    C1* expr_1_;
-    C1* expr_2_;
-  };
-  
-  D1::D1(C1 *expr_1, C1 *expr_2)
-    : expr_1_(expr_1), expr_2_(expr_2) { }
-
-  C1 *create1() {
-    return new D1(0, 0);
-  }
-
-} // n1
-
-int main()
-{
-    using namespace n1;
-    using namespace n2;
-
-    C1 *e1 = create1();
-    C2 *e2 = create2();
-
-    return 0;                          // constructs-done
-}
diff --git a/gdb/testsuite/gdb.c++/rtti2.cc b/gdb/testsuite/gdb.c++/rtti2.cc
deleted file mode 100644 (file)
index 8bb1ed6..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Code to go along with tests in rtti.exp.
-   
-   Copyright 2003 Free Software Foundation, Inc.
-
-   Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
-   Inc.
-
-   This file is part of GDB.
-
-   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.  */
-
-#include "rtti.h"
-
-namespace n2 {
-  
-  D2::D2(C2 *expr_1, C2 *expr_2)
-    : expr_1_(expr_1), expr_2_(expr_2) { }
-
-  C2 *create2() {
-    return new D2(0, 0);
-  }
-
-}
diff --git a/gdb/testsuite/gdb.c++/templates.cc b/gdb/testsuite/gdb.c++/templates.cc
deleted file mode 100644 (file)
index c13f18b..0000000
+++ /dev/null
@@ -1,785 +0,0 @@
-/* This test code is from Wendell Baker (wbaker@comet.berkeley.edu) */
-
-#include <stddef.h>
-
-int a_i;
-char a_c;
-double a_d;
-
-typedef void *Pix;
-
-int
-f(int i)
-{ return 0; }
-
-int
-f(int i, char c)
-{ return 0; }
-
-int
-f(int i, char c, double d)
-{ return 0; }
-
-int
-f(int i, char c, double d, char *cs)
-{ return 0; }
-
-int
-f(int i, char c, double d, char *cs, void (*fig)(int, char))
-{ return 0; }
-
-int
-f(int i, char c, double d, char *cs, void (*fig)(char, int))
-{ return 0; }
-
-class R {
-public:
-    int i;
-};
-class S {
-public:
-    int i;
-};
-class T {
-public:
-    int i;
-};
-
-char g(char, const char, volatile char)
-{ return 'c'; }
-char g(R, char&, const char&, volatile char&)
-{ return 'c'; }
-char g(char*, const char*, volatile char*)
-{ return 'c'; }
-char g(S, char*&, const char*&, volatile char*&)
-{ return 'c'; }
-
-signed char g(T,signed char, const signed char, volatile signed char)
-{ return 'c'; }
-signed char g(T, R, signed char&, const signed char&, volatile signed char&)
-{ return 'c'; }
-signed char g(T, signed char*, const signed char*, volatile signed char*)
-{ return 'c'; }
-signed char g(T, S, signed char*&, const signed char*&, volatile signed char*&)
-{ return 'c'; }
-
-unsigned char g(unsigned char, const unsigned char, volatile unsigned char)
-{ return 'c'; }
-unsigned char g(R, unsigned char&, const unsigned char&, volatile unsigned char&)
-{ return 'c'; }
-unsigned char g(unsigned char*, const unsigned char*, volatile unsigned char*)
-{ return 'c'; }
-unsigned char g(S, unsigned char*&, const unsigned char*&, volatile unsigned char*&)
-{ return 'c'; }
-
-short g(short, const short, volatile short)
-{ return 0; }
-short g(R, short&, const short&, volatile short&)
-{ return 0; }
-short g(short*, const short*, volatile short*)
-{ return 0; }
-short g(S, short*&, const short*&, volatile short*&)
-{ return 0; }
-
-signed short g(T, signed short, const signed short, volatile signed short)
-{ return 0; }
-signed short g(T, R, signed short&, const signed short&, volatile signed short&)
-{ return 0; }
-signed short g(T, signed short*, const signed short*, volatile signed short*)
-{ return 0; }
-signed short g(T, S, double, signed short*&, const signed short*&, volatile signed short*&)
-{ return 0; }
-
-unsigned short g(unsigned short, const unsigned short, volatile unsigned short)
-{ return 0; }
-unsigned short g(R, unsigned short&, const unsigned short&, volatile unsigned short&)
-{ return 0; }
-unsigned short g(unsigned short*, const unsigned short*, volatile unsigned short*)
-{ return 0; }
-unsigned short g(S, unsigned short*&, const unsigned short*&, volatile unsigned short*&)
-{ return 0; }
-
-int g(int, const int, volatile int)
-{ return 0; }
-int g(R, int&, const int&, volatile int&)
-{ return 0; }
-int g(int*, const int*, volatile int*)
-{ return 0; }
-int g(S, int*&, const int*&, volatile int*&)
-{ return 0; }
-
-signed int g(T, signed int, const signed int, volatile signed int)
-{ return 0; }
-signed int g(T, R, signed int&, const signed int&, volatile signed int&)
-{ return 0; }
-signed int g(T, signed int*, const signed int*, volatile signed int*)
-{ return 0; }
-signed int g(T, S, signed int*&, const signed int*&, volatile signed int*&)
-{ return 0; }
-
-unsigned int g(unsigned int, const unsigned int, volatile unsigned int)
-{ return 0; }
-unsigned int g(R, unsigned int&, const unsigned int&, volatile unsigned int&)
-{ return 0; }
-unsigned int g(unsigned int*, const unsigned int*, volatile unsigned int*)
-{ return 0; }
-unsigned int g(S, unsigned int*&, const unsigned int*&, volatile unsigned int*&)
-{ return 0; }
-
-long g(long, const long, volatile long)
-{ return 0; }
-long g(R, long&, const long&, volatile long&)
-{ return 0; }
-long g(long*, const long*, volatile long*)
-{ return 0; }
-long g(S, long*&, const long*&, volatile long*&)
-{ return 0; }
-
-signed long g(T, signed long, const signed long, volatile signed long)
-{ return 0; }
-signed long g(T, R, signed long&, const signed long&, volatile signed long&)
-{ return 0; }
-signed long g(T, signed long*, const signed long*, volatile signed long*)
-{ return 0; }
-signed long g(T, S, signed long*&, const signed long*&, volatile signed long*&)
-{ return 0; }
-
-unsigned long g(unsigned long, const unsigned long, volatile unsigned long)
-{ return 0; }
-unsigned long g(S, unsigned long&, const unsigned long&, volatile unsigned long&)
-{ return 0; }
-unsigned long g(unsigned long*, const unsigned long*, volatile unsigned long*)
-{ return 0; }
-unsigned long g(S, unsigned long*&, const unsigned long*&, volatile unsigned long*&)
-{ return 0; }
-
-#ifdef __GNUC__
-long long g(long long, const long long, volatile long long)
-{ return 0; }
-long long g(S, long long&, const long long&, volatile long long&)
-{ return 0; }
-long long g(long long*, const long long*, volatile long long*)
-{ return 0; }
-long long g(R, long long*&, const long long*&, volatile long long*&)
-{ return 0; }
-
-signed long long g(T, signed long long, const signed long long, volatile signed long long)
-{ return 0; }
-signed long long g(T, R, signed long long&, const signed long long&, volatile signed long long&)
-{ return 0; }
-signed long long g(T, signed long long*, const signed long long*, volatile signed long long*)
-{ return 0; }
-signed long long g(T, S, signed long long*&, const signed long long*&, volatile signed long long*&)
-{ return 0; }
-
-unsigned long long g(unsigned long long, const unsigned long long, volatile unsigned long long)
-{ return 0; }
-unsigned long long g(R, unsigned long long*, const unsigned long long*, volatile unsigned long long*)
-{ return 0; }
-unsigned long long g(unsigned long long&, const unsigned long long&, volatile unsigned long long&)
-{ return 0; }
-unsigned long long g(S, unsigned long long*&, const unsigned long long*&, volatile unsigned long long*&)
-{ return 0; }
-#endif
-
-float g(float, const float, volatile float)
-{ return 0; }
-float g(char, float&, const float&, volatile float&)
-{ return 0; }
-float g(float*, const float*, volatile float*)
-{ return 0; }
-float g(char, float*&, const float*&, volatile float*&)
-{ return 0; }
-
-double g(double, const double, volatile double)
-{ return 0; }
-double g(char, double&, const double&, volatile double&)
-{ return 0; }
-double g(double*, const double*, volatile double*)
-{ return 0; }
-double g(char, double*&, const double*&, volatile double*&)
-{ return 0; }
-
-#ifdef __GNUC__
-long double g(long double, const long double, volatile long double)
-{ return 0; }
-long double g(char, long double&, const long double&, volatile long double&)
-{ return 0; }
-long double g(long double*, const long double*, volatile long double*)
-{ return 0; }
-long double g(char, long double*&, const long double*&, volatile long double*&)
-{ return 0; }
-#endif
-
-class c {
-public:
-    c(int) {};
-    int i;
-};
-
-class c g(c, const c, volatile c)
-{ return 0; }
-c g(char, c&, const c&, volatile c&)
-{ return 0; }
-c g(c*, const c*, volatile c*)
-{ return 0; }
-c g(char, c*&, const c*&, volatile c*&)
-{ return 0; }
-
-/*
-void h(char = 'a')
-{ }
-void h(char, signed char = 'a')
-{ }
-void h(unsigned char = 'a')
-{ }
-*/
-/*
-void h(char = (char)'a')
-{ }
-void h(char, signed char = (signed char)'a')
-{ }
-void h(unsigned char = (unsigned char)'a')
-{ }
-
-
-void h(short = (short)43)
-{ }
-void h(char, signed short = (signed short)43)
-{ }
-void h(unsigned short = (unsigned short)43)
-{ }
-
-void h(int = (int)43)
-{ }
-void h(char, signed int = (signed int)43)
-{ }
-void h(unsigned int = (unsigned int)43)
-{ }
-
-
-void h(long = (long)43)
-{ }
-void h(char, signed long = (signed long)43)
-{ }
-void h(unsigned long = (unsigned long)43)
-{ }
-
-#ifdef __GNUC__
-void h(long long = 43)
-{ }
-void h(char, signed long long = 43)
-{ }
-void h(unsigned long long = 43)
-{ }
-#endif
-
-void h(float = 4.3e-10)
-{ }
-void h(double = 4.3)
-{ }
-#ifdef __GNUC__
-void h(long double = 4.33e33)
-{ }
-#endif
-*/
-
-/* An unneeded printf() definition - actually, just a stub - used to occupy
-   this space.  It has been removed and replaced with this comment which
-   exists to occupy some lines so that templates.exp won't need adjustment.  */
-
-class T1 {
-public:
-    static void* operator new(size_t) throw ();
-    static void operator delete(void *pointer);
-
-    void operator=(const T1&);
-    T1& operator=(int);
-
-    int operator==(int) const;
-    int operator==(const T1&) const;
-    int operator!=(int) const;
-    int operator!=(const T1&) const;
-
-    int operator<=(int) const;
-    int operator<=(const T1&) const;
-    int operator<(int) const;
-    int operator<(const T1&) const;
-    int operator>=(int) const;
-    int operator>=(const T1&) const;
-    int operator>(int) const;
-    int operator>(const T1&) const;
-
-    void operator+(int) const;
-    T1& operator+(const T1&) const;
-    void operator+=(int) const;
-    T1& operator+=(const T1&) const;
-
-    T1& operator++() const;
-
-    void operator-(int) const;
-    T1& operator-(const T1&) const;
-    void operator-=(int) const;
-    T1& operator-=(const T1&) const;
-
-    T1& operator--() const;
-
-    void operator*(int) const;
-    T1& operator*(const T1&) const;
-    void operator*=(int) const;
-    T1& operator*=(const T1&) const;
-
-    void operator/(int) const;
-    T1& operator/(const T1&) const;
-    void operator/=(int) const;
-    T1& operator/=(const T1&) const;
-
-    void operator%(int) const;
-    T1& operator%(const T1&) const;
-    void operator%=(int) const;
-    T1& operator%=(const T1&) const;
-
-    void operator&&(int) const;
-    T1& operator&&(const T1&) const;
-
-    void operator||(int) const;
-    T1& operator||(const T1&) const;
-
-    void operator&(int) const;
-    T1& operator&(const T1&) const;
-    void operator&=(int) const;
-    T1& operator&=(const T1&) const;
-
-    void operator|(int) const;
-    T1& operator|(const T1&) const;
-    void operator|=(int) const;
-    T1& operator|=(const T1&) const;
-
-    void operator^(int) const;
-    T1& operator^(const T1&) const;
-    void operator^=(int) const;
-    T1& operator^=(const T1&) const;
-
-    T1& operator!() const;
-    T1& operator~() const;
-};
-
-void* 
-T1::operator new(size_t) throw ()
-{ return 0; }
-
-void
-T1::operator delete(void *pointer)
-{ }
-
-class T2 {
-public:
-    T2(int i): integer(i)
-       { }
-    int integer;
-};
-
-int operator==(const T2&, const T2&)
-{ return 0; }
-int operator==(const T2&, char)
-{ return 0; }
-int operator!=(const T2&, const T2&)
-{ return 0; }
-int operator!=(const T2&, char)
-{ return 0; }
-
-int operator<=(const T2&, const T2&)
-{ return 0; }
-int operator<=(const T2&, char)
-{ return 0; }
-int operator<(const T2&, const T2&)
-{ return 0; }
-int operator<(const T2&, char)
-{ return 0; }
-int operator>=(const T2&, const T2&)
-{ return 0; }
-int operator>=(const T2&, char)
-{ return 0; }
-int operator>(const T2&, const T2&)
-{ return 0; }
-int operator>(const T2&, char)
-{ return 0; }
-
-T2 operator+(const T2 t, int i)
-{ return t.integer + i; }
-T2 operator+(const T2 a, const T2& b)
-{ return a.integer + b.integer; }
-T2& operator+=(T2& t, int i)
-{ t.integer += i; return t; }
-T2& operator+=(T2& a, const T2& b)
-{ a.integer += b.integer; return a; }
-
-T2 operator-(const T2 t, int i)
-{ return t.integer - i; }
-T2 operator-(const T2 a, const T2& b)
-{ return a.integer - b.integer; }
-T2& operator-=(T2& t, int i)
-{ t.integer -= i; return t; }
-T2& operator-=(T2& a, const T2& b)
-{ a.integer -= b.integer; return a; }
-
-T2 operator*(const T2 t, int i)
-{ return t.integer * i; }
-T2 operator*(const T2 a, const T2& b)
-{ return a.integer * b.integer; }
-T2& operator*=(T2& t, int i)
-{ t.integer *= i; return t; }
-T2& operator*=(T2& a, const T2& b)
-{ a.integer *= b.integer; return a; }
-
-T2 operator/(const T2 t, int i)
-{ return t.integer / i; }
-T2 operator/(const T2 a, const T2& b)
-{ return a.integer / b.integer; }
-T2& operator/=(T2& t, int i)
-{ t.integer /= i; return t; }
-T2& operator/=(T2& a, const T2& b)
-{ a.integer /= b.integer; return a; }
-
-T2 operator%(const T2 t, int i)
-{ return t.integer % i; }
-T2 operator%(const T2 a, const T2& b)
-{ return a.integer % b.integer; }
-T2& operator%=(T2& t, int i)
-{ t.integer %= i; return t; }
-T2& operator%=(T2& a, const T2& b)
-{ a.integer %= b.integer; return a; }
-
-template<class T>
-class T5 {
-public:
-    T5(int);
-    T5(const T5<T>&);
-    ~T5();
-    static void* operator new(size_t) throw ();
-    static void operator delete(void *pointer);
-    int value();
-    
-    static T X;
-    T x;
-    int val;
-};
-
-template<class T>
-T5<T>::T5(int v)
-{ val = v; }
-
-template<class T>
-T5<T>::T5(const T5<T>&)
-{}
-
-template<class T>
-T5<T>::~T5()
-{}
-
-template<class T>
-void*
-T5<T>::operator new(size_t) throw ()
-{ return 0; }
-
-template<class T>
-void
-T5<T>::operator delete(void *pointer)
-{ }
-
-template<class T>
-int
-T5<T>::value()
-{ return val; }
-
-
-#if ! defined(__GNUC__) || defined(GCC_BUG)
-template<class T>
-T T5<T>::X;
-#endif
-
-
-
-
-T5<char> t5c(1);
-T5<int> t5i(2);
-T5<int (*)(char, void *)> t5fi1(3);
-T5<int (*)(int, double **, void *)> t5fi2(4);
-
-
-
-
-
-class x {
-public:
-    int (*manage[5])(double,
-                    void *(*malloc)(unsigned size),
-                    void (*free)(void *pointer));
-    int (*device[5])(int open(const char *, unsigned mode, unsigned perms, int extra), 
-                    int *(*read)(int fd, void *place, unsigned size),
-                    int *(*write)(int fd, void *place, unsigned size),
-                    void (*close)(int fd));
-};
-T5<x> t5x(5);
-
-#if !defined(__GNUC__) || (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6)
-template class T5<char>;
-template class T5<int>;
-template class T5<int (*)(char, void *)>;
-template class T5<int (*)(int, double **, void *)>;
-template class T5<x>;
-#endif
-
-class T7 {
-public:
-    static int get();
-    static void put(int);
-};
-
-int
-T7::get()
-{ return 1; }
-
-void
-T7::put(int i)
-{
-    // nothing
-}
-
-// More template kinds.  GDB 4.16 didn't handle these, but
-// Wildebeest does.  Note: Assuming HP aCC is used to compile
-// this file; with g++ or HP cfront or other compilers the
-// demangling may not get done correctly.
-
-// Ordinary template, to be instantiated with different types
-template<class T>
-class Foo {
-public:
-  int x;
-  T t;
-  T foo (int, T);
-};
-
-
-template<class T> T Foo<T>::foo (int i, T tt)
-{
-  return tt;
-}
-
-// Template with int parameter
-
-template<class T, int sz>
-class Bar {
-public:
-  int x;
-  T t;
-  T bar (int, T);
-};
-
-
-template<class T, int sz> T Bar<T, sz>::bar (int i, T tt)
-{
-  if (i < sz)
-    return tt;
-  else
-    return 0;
-}
-
-// function template with int parameter
-template<class T> int dummy (T tt, int i)
-{
-  return tt;
-}
-
-// Template with partial specializations
-template<class T1, class T2>
-class Spec {
-public:
-  int x;
-  T1 spec (T2);
-};
-
-template<class T1, class T2>
-T1 Spec<T1, T2>::spec (T2 t2)
-{
-  return 0;
-}
-
-template<class T>
-class Spec<T, T*> {
-public:
-  int x;
-  T spec (T*);
-};
-
-template<class T>
-T Spec<T, T*>::spec (T * tp)
-{
-  return *tp;
-}
-
-// Template with char parameter
-template<class T, char sz>
-class Baz {
-public:
-  int x;
-  T t;
-  T baz (int, T);
-};
-
-template<class T, char sz> T Baz<T, sz>::baz (int i, T tt)
-{
-  if (i < sz)
-    return tt;
-  else
-    return 0;
-}
-
-// Template with char * parameter
-template<class T, char * sz>
-class Qux {
-public:
-  int x;
-  T t;
-  T qux (int, T);
-};
-
-template<class T, char * sz> T Qux<T, sz>::qux (int i, T tt)
-{
-  if (sz[0] == 'q')
-    return tt;
-  else
-    return 0;
-}
-
-// Template with a function pointer parameter
-template<class T, int (*f)(int) >
-class Qux1 {
-public:
-  int x;
-  T t;
-  T qux (int, T);
-};
-
-template<class T, int (*f)(int)> T Qux1<T, f>::qux (int i, T tt)
-{
-  if (f != 0)
-    return tt;
-  else
-    return 0;
-}
-
-// Some functions to provide as arguments to template
-int gf1 (int a) {
-  return a * 2 + 13;
-}
-int gf2 (int a) {
-  return a * 2 + 26;
-}
-
-char string[3];
-
-
-// Template for nested instantiations
-
-template<class T>
-class Garply {
-public:
-  int x;
-  T t;
-  T garply (int, T);
-};
-
-template<class T> T Garply<T>::garply (int i, T tt)
-{
-  if (i > x)
-    return tt;
-  else
-    {
-      x += i;
-      return tt;
-    }
-}
-
-
-int main()
-{
-    int i;
-#ifdef usestubs
-    set_debug_traps();
-    breakpoint();
-#endif
-    i = i + 1;
-
-    // New tests added here
-
-  Foo<int> fint={0,0};
-  Foo<char> fchar={0,0};
-  Foo<volatile char *> fvpchar = {0, 0};
-
-  Bar<int, 33> bint;
-  Bar<int, (4 > 3)> bint2;
-
-  Baz<int, 's'> bazint;
-  Baz<char, 'a'> bazint2;
-
-  Qux<char, string> quxint2;
-  Qux<int, string> quxint;
-
-  Qux1<int, gf1> qux11;
-
-  int x = fint.foo(33, 47);
-  char c = fchar.foo(33, 'x');
-  volatile char * cp = fvpchar.foo(33, 0);
-  
-  int y = dummy<int> (400, 600);
-
-  int z = bint.bar(55, 66);
-  z += bint2.bar(55, 66);
-
-  c = bazint2.baz(4, 'y');
-  c = quxint2.qux(4, 'z');
-  
-  y = bazint.baz(4,3);
-  y = quxint.qux(4, 22);
-  y += qux11.qux(4, 22);
-
-  y *= gf1(y) - gf2(y);
-  
-  Spec<int, char> sic;
-  Spec<int, int *> siip;
-
-  sic.spec ('c');
-  siip.spec (&x);
-
-  Garply<int> f;
-  Garply<char> fc;
-  f.x = 13;
-
-  Garply<Garply<char> > nf;
-  nf.x = 31;
-  
-  x = f.garply (3, 4);
-  
-  fc = nf.garply (3, fc);
-
-  y = x + fc.x;
-  
-
-  return 0;
-    
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/gdb/testsuite/gdb.c++/templates.exp b/gdb/testsuite/gdb.c++/templates.exp
deleted file mode 100644 (file)
index 0b8357d..0000000
+++ /dev/null
@@ -1,517 +0,0 @@
-# Copyright 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2002, 2003
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# This file was written by Fred Fish. (fnf@cygnus.com)
-
-set ws "\[\r\n\t \]+"
-
-if $tracelevel then {
-       strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "templates"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-# Create and source the file that provides information about the compiler
-# used to compile the test case.
-if [get_compiler_info ${binfile} "c++"] {
-    return -1
-}
-source ${binfile}.ci
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-#
-#  Test printing of the types of templates.
-#
-
-proc test_ptype_of_templates {} {
-    global gdb_prompt
-    global ws
-
-    send_gdb "ptype T5<int>\n"
-    gdb_expect {
-       -re "type = class T5<int> \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;${ws}T5<int> & operator=\\(T5<int> const ?&\\);${ws}T5\\(int\\);${ws}T5\\((T5<int> const|const T5<int>) ?&\\);${ws}~T5\\((void|)\\);${ws}static void \\* operator new\\(unsigned( int| long)?\\);${ws}static void operator delete\\(void ?\\*\\);${ws}int value\\((void|)\\);${ws}\}\r\n$gdb_prompt $" {
-           pass "ptype T5<int>"
-       }
-       -re "type = class T5<int> \\{${ws}public:${ws}static int X;${ws}int x;${ws}int val;${ws}${ws}T5 \\(int\\);${ws}T5 \\(const class T5<int> &\\);${ws}void ~T5 \\(int\\);${ws}static void \\* new \\(unsigned int\\);${ws}static void delete \\(void ?\\*\\);${ws}int value \\((void|)\\);${ws}\\}${ws}$gdb_prompt $" { pass "ptype T5<int> -- new with unsigned int" }
-       -re "type = class T5<int> \\{.*public:.*static int X;.*int x;.*int val;.*T5 \\(int\\);.*T5 \\(const class T5<int> &\\);.*void ~T5 \\(int\\);.*static void \\* new \\(unsigned long\\);.*static void delete \\(void ?\\*\\);.*int value \\((void|)\\);.*\\}\r\n$gdb_prompt $" { pass "ptype T5<int> -- new with unsigned long" }
-       -re "type = class T5<int> \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;((${ws}T5<int> & operator=\\(T5<int> const ?&\\);)|(${ws}T5\\(int\\);)|(${ws}T5\\((T5<int> const|const T5<int>) ?&\\);)|(${ws}~T5\\((void|)\\);)|(${ws}static void \\* operator new\\(unsigned( int| long)?\\);)|(${ws}static void operator delete\\(void ?\\*\\);)|(${ws}int value\\((void|)\\);))*${ws}\}\r\n$gdb_prompt $" {
-           pass "ptype T5<int> (obsolescent gcc or gdb)"
-       }
-       -re "type = class T5<int> \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;${ws}void T5\\(int\\);${ws}void T5\\((T5<int> const|const T5<int>) ?&\\);${ws}~T5\\(int\\);${ws}static void \\* operator new\\(unsigned( long|)\\);${ws}static void operator delete\\(void ?\\*\\);${ws}int value\\((void|)\\);${ws}\}\r\n$gdb_prompt $" {
-           # This also triggers gdb/1113...
-           kfail "gdb/1111" "ptype T5<int>"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype T5<int>"
-       }
-       timeout {
-           fail "ptype T5<int> (timeout)"
-       }
-    }
-
-    send_gdb "ptype t5i\n"
-    gdb_expect {
-        -re "type = class T5<int> \\{${ws}public:${ws}static int X;${ws}int x;${ws}int val;\r\n${ws}T5\\(int\\);${ws}T5\\(T5<int> const ?&\\);${ws}~T5\\((void|)\\);${ws}static void \\* operator new\\(unsigned( int| long)?\\);${ws}static void operator delete\\(void ?\\*\\);${ws}int value\\((void|)\\);${ws}\\}\r\n$gdb_prompt $" { pass "ptype T5<int> -- with several fixes from 4.17" }
-        -re "type = class T5<int> \\{${ws}public:${ws}static int X;${ws}int x;${ws}int val;\r\n${ws}T5 \\(int\\);${ws}T5 \\(const class T5<int> &\\);${ws}void ~T5 \\(int\\);${ws}static void \\* new \\(unsigned int\\);${ws}static void delete \\(void ?\\*\\);${ws}int value \\((void|)\\);${ws}\\}\r\n$gdb_prompt $" { pass "ptype t5i<int> -- new with unsigned int" }
-        -re "type = class T5<int> \\{${ws}public:${ws}static int X;${ws}int x;${ws}int val;\r\n${ws}T5 \\(int\\);${ws}T5 \\(const class T5<int> &\\);${ws}void ~T5 \\(int\\);${ws}static void \\* new \\(unsigned long\\);${ws}static void delete \\(void ?\\*\\);${ws}int value \\((void|)\\);${ws}\\}\r\n$gdb_prompt $" { pass "ptype t5i<int> -- new with unsigned long" }
-        -re "type = class T5<int> \{.*public:.*static int X;.*int x;.*int val;.*.*T5 \\(int\\);.*.*void ~T5 \\(int\\).*.*.*int value \\((void|)\\);.*\}.*$gdb_prompt $" { 
-            pass "ptype t5i"
-        }
-       -re "type = class T5<int> \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;${ws}T5<int> & operator=\\(T5<int> const ?&\\);${ws}T5\\(int\\);${ws}T5\\((T5<int> const|const T5<int>) ?&\\);${ws}~T5\\((void|)\\);${ws}static void \\* operator new\\(unsigned( int| long)?\\);${ws}static void operator delete\\(void ?\\*\\);${ws}int value\\((void|)\\);${ws}\}\r\n$gdb_prompt $" {
-           pass "ptype t5i"
-       }
-       -re "type = class T5<int> \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;((${ws}T5<int> & operator=\\(T5<int> const ?&\\);)|(${ws}T5\\(int\\);)|(${ws}T5\\(T5<int> const ?&\\);)|(${ws}~T5\\((void|)\\);)|(${ws}static void \\* operator new\\(unsigned( int| long)?\\);)|(${ws}static void operator delete\\(void ?\\*\\);)|(${ws}int value\\((void|)\\);))*${ws}\}\r\n$gdb_prompt $" {
-           pass "ptype t5i (obsolescent gcc or gdb)"
-       }
-       -re "type = class T5<int> \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;${ws}void T5\\(int\\);${ws}void T5\\((T5<int> const|const T5<int>) ?&\\);${ws}~T5\\(int\\);${ws}static void \\* operator new\\(unsigned( long|)\\);${ws}static void operator delete\\(void ?\\*\\);${ws}int value\\((void|)\\);${ws}\}\r\n$gdb_prompt $" {
-           # This also triggers gdb/1113...
-           kfail "gdb/1111" "ptype T5<int>"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype t5i"
-       }
-       timeout {
-           fail "ptype t5i (timeout)"
-       }
-    }
-}
-
-#
-#  Test breakpoint setting on template methods.
-#
-
-proc test_template_breakpoints {} {
-    global gdb_prompt
-    global testfile
-    global srcdir
-    global hp_aCC_compiler
-
-    send_gdb "break T5<int>::T5\n"
-    gdb_expect {
-       -re "0. cancel.*\[\r\n\]*.1. all.*\[\r\n\]*.2. T5<int>::T5\\(int\\) at .*\[\r\n\]*.3. T5<int>::T5\\((T5<int> const|const T5<int>) ?&\\) at .*\[\r\n\]*> $" {
-           gdb_test "0" \
-               "canceled" \
-               "constructor breakpoint (obsolete format!)"
-       }
-       -re ".0. cancel\[\r\n\]*.1. all\[\r\n\]*.2. T5<int>::T5\\((T5<int> const|const T5<int>) ?&\\) at .*templates.cc:.*\[\r\n\]*.3. T5<int>::T5\\(int\\) at .*templates.cc:.*\[\r\n\]*> $" {
-           gdb_test "0" \
-               "canceled" \
-               "constructor breakpoint"
-       }
-       -re "0. cancel.*\[\r\n\]*.1. all.*\[\r\n\]*.2. T5 at .*\[\r\n\]*.3. T5 at .*\[\r\n\]*> $" {
-           setup_kfail "gdb/1062" "*-*-*"
-           gdb_test "0" \
-               "nonsense intended to insure that this test fails" \
-               "constructor breakpoint"
-       }
-        -re ".*\n> $" {
-           gdb_test "0" \
-                   "nonsense intended to insure that this test fails" \
-                   "constructor breakpoint (bad menu choices)"
-       }
-       -re ".*$gdb_prompt $" { fail "constructor breakpoint" }
-       default { fail "constructor breakpoint (timeout)" }
-    }
-    
-# See CLLbs14792
-    if {$hp_aCC_compiler} {setup_xfail hppa*-*-* CLLbs14792}
-
-    gdb_test_multiple "break T5<int>::~T5" "destructor_breakpoint" {
-       -re "Breakpoint.*at.* file .*${testfile}.cc, line.*$gdb_prompt $"
-       {
-           pass "destructor breakpoint"
-       }
-       -re "the class `T5<int>' does not have destructor defined\r\nHint: try 'T5<int>::~T5<TAB> or 'T5<int>::~T5<ESC-\\?>\r\n\\(Note leading single quote.\\)\r\n$gdb_prompt $"
-       {
-           kfail "gdb/1112" "destructor breakpoint"
-       }
-    }
-    
-    gdb_test "break T5<int>::value" \
-       "Breakpoint.*at.* file .*${testfile}.cc, line.*" \
-       "value method breakpoint"
-
-    delete_breakpoints
-}
-
-#
-#  Test calling of template methods.
-#
-
-proc test_template_calls {} {
-    global gdb_prompt
-    global hp_aCC_compiler
-
-    if [target_info exists gdb,cannot_call_functions] {
-       setup_xfail "*-*-*" 2416
-       fail "This target can not call functions"
-       return
-    }
-
-    if {!$hp_aCC_compiler} {setup_xfail hppa*-*-*}
-    send_gdb "print t5i.value()\n"
-    gdb_expect {
-       -re ".* = 2\[\r\n\]*$gdb_prompt $" { pass "print t5i.value()" }
-       -re "Cannot invoke functions on this machine.*$gdb_prompt $" {
-           fail "print t5i.value()"
-       }
-        -re "Cannot resolve .* to any overloaded instance.*$gdb_prompt $" {
-           setup_xfail hppa*-*-* CLLbs16899
-            xfail "print t5i.value"
-       }
-       -re ".*$gdb_prompt $" { fail "print t5i.value()" }
-       timeout { fail "print t5i.value() (timeout)" }
-    }
-}
-
-
-proc do_tests {} {
-    global prms_id
-    global bug_id
-    global subdir
-    global objdir
-    global srcdir
-    global binfile
-    global gdb_prompt
-    global supports_template_debugging
-
-    set prms_id 0
-    set bug_id 0
-
-    # Start with a fresh gdb.
-
-    gdb_exit
-    gdb_start
-    gdb_reinitialize_dir $srcdir/$subdir
-    gdb_load $binfile
-
-    if { !$supports_template_debugging } {
-       warning "compiler lacks debugging info for templates; tests suppressed." 0
-       return
-    }
-
-    runto_main
-
-    test_ptype_of_templates
-    test_template_breakpoints
-
-    if [ runto_main] {
-       test_template_calls
-    }
-}
-
-do_tests
-
-
-# More tests for different kinds of template parameters,
-# templates with partial specializations, nested templates, etc.
-# These have been tested only with HP aCC.  They probably won't
-# work with other compilers because of differences in mangling
-# schemes. 
-# Added by Satish Pai <pai@apollo.hp.com> 1997-09-25 
-# As of 2000-06-03, C++ support has been improved to the point that g++ can
-# pass all of theses, excluding what appears to be one that exposes a stabs bug. - djb
-
-# I don't know how HP could be passing these tests without this. They
-# weren't breakpointing past a point where the below expressions were
-# initialized in the actual source. - djb
-
-send_gdb "b 770\n"
-gdb_expect {
-               -re ".*$gdb_prompt $"
-}
-send_gdb "c\n"
-gdb_expect {
-               -re ".*$gdb_prompt $"
-}
-send_gdb "print fint\n"   
-gdb_expect {   
-   -re "\\$\[0-9\]* = \\{x = 0, t = 0\\}\r\n$gdb_prompt $" { pass "print fint" }
-   -re "$gdb_prompt $"                     { fail "print fint" }
-   timeout                             { fail "(timeout) print fint" }
-}
-
-send_gdb "print fvpchar\n"   
-gdb_expect {   
-   -re "\\$\[0-9\]* = \\{x = 0, t = 0x0\\}\r\n$gdb_prompt $" { pass "print fvpchar" }
-   -re "$gdb_prompt $"                     { fail "print fvpchar" }
-   timeout                             { fail "(timeout) print fvpchar" }
-}
-
-# Template Foo<T>
-
-# Neither stabs nor DWARF-2 contains type information about templates
-# (as opposed to instantiations of templates), so in those
-# circumstances we expect GDB to not find a symbol.  HP has a debug
-# format that contains more info, though, so it's also correct to
-# print out template info.  (This affects several subsequent tests as
-# well.)
-
-# NOTE: carlton/2003-02-26: However, because of a bug in the way GDB
-# handles nested types, we don't get this right in the DWARF-2 case.
-
-send_gdb "ptype Foo\n"   
-gdb_expect {   
-    -re "type = template <(class |)T> (class |)Foo \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\ntemplate instantiations:\r\n\[ \t\]*(class |)Foo<volatile char \\*>\r\n\[ \t\]*(class |)Foo<char>\r\n\[ \t\]*(class |)Foo<int>\r\n$gdb_prompt $" { pass "ptype Foo" }
-    -re "type = template <(class |)T> (class |)Foo \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\n$gdb_prompt $" { xfail "ptype Foo" }
-    -re "type = class Foo<int> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int foo\\(int, int\\);\r\n\\}\r\n$gdb_prompt $"
-    { # GCC 3.1, DWARF-2 output.
-       kfail "gdb/57" "ptype Foo" }
-    -re "No symbol \"Foo\" in current context.\r\n$gdb_prompt $"
-    { # GCC 2.95.3, stabs+ output.
-       pass "ptype Foo" }
-    -re "$gdb_prompt $"                     { fail "ptype Foo" }
-    timeout                             { fail "(timeout) ptype Foo" }
-}
-#    -re "type = class Foo<int> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int foo(int, int);\r\n\\}\r\n$gdb_prompt $"
-
-# ptype Foo<int>
-
-send_gdb "ptype fint\n"   
-gdb_expect {   
-   -re "type = (class |)Foo<int> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int foo\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype fint" }
-   -re "$gdb_prompt $"                     { fail "ptype fint" }
-   timeout                             { fail "(timeout) ptype fint" }
-}
-
-# ptype Foo<char>
-
-send_gdb "ptype fchar\n"   
-gdb_expect {   
-   -re "type = (class |)Foo<char> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*char t;\r\n\r\n\[ \t\]*.*char foo\\(int, char\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype fchar" }
-   -re "$gdb_prompt $"                     { fail "ptype fchar" }
-   timeout                             { fail "(timeout) ptype fchar" }
-}
-
-# ptype Foo<volatile char *>
-
-send_gdb "ptype fvpchar\n"   
-gdb_expect {   
-   -re "type = (class |)Foo<volatile char ?\\*> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*.*char.*\\*t;\r\n\r\n\[ \t\]*.*char \\* foo\\(int,.*char.*\\*\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype fvpchar" }
-   -re "type = class Foo<char volatile\\*> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*.*char.*\\*t;\r\n\r\n\[ \t\]*.*char \\* foo\\(int,.*char.*\\*\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype fvpchar" }
-   -re "$gdb_prompt $"                     { fail "ptype fvpchar" }
-   timeout                             { fail "(timeout) ptype fvpchar" }
-}
-
-# print a function from Foo<volatile char *>
-
-# This test is sensitive to whitespace matching, so we'll do it twice,
-# varying the spacing, because of PR gdb/33.
-
-send_gdb "print Foo<volatile char *>::foo\n"   
-gdb_expect {   
-    -re "\\$\[0-9\]* = \\{.*char \\*\\((class |)Foo<volatile char ?\\*> \\*(| const), int, .*char \\*\\)\\} $hex <Foo<.*char.*\\*>::foo\\(int, .*char.*\\*\\)>\r\n$gdb_prompt $" { pass "print Foo<volatile char *>::foo" }
-    -re "No symbol \"Foo<volatile char \\*>\" in current context.\r\n$gdb_prompt $"
-    {
-       # This used to be a kfail gdb/33, but it shouldn't occur any more now.
-       fail "print Foo<volatile char *>::foo"
-    }
-    -re "$gdb_prompt $"                     { fail "print Foo<volatile char *>::foo" }
-    timeout                             { fail "(timeout) print Foo<volatile char *>::foo" }
-}
-
-send_gdb "print Foo<volatile char*>::foo\n"   
-gdb_expect {   
-    -re "\\$\[0-9\]* = \\{.*char \\*\\((class |)Foo<volatile char ?\\*> \\*(| const), int, .*char \\*\\)\\} $hex <Foo<.*char.*\\*>::foo\\(int, .*char.*\\*\\)>\r\n$gdb_prompt $" { pass "print Foo<volatile char*>::foo" }
-    -re "No symbol \"Foo<volatile char\\*>\" in current context.\r\n$gdb_prompt $"
-    {
-       # This used to be a kfail gdb/33, but it shouldn't occur any more now.
-       fail "print Foo<volatile char *>::foo"
-    }
-    -re "$gdb_prompt $"                     { fail "print Foo<volatile char*>::foo" }
-    timeout                             { fail "(timeout) print Foo<volatile char*>::foo" }
-}
-
-# Template Bar<T, int>
-
-# same as Foo for g++
-send_gdb "ptype Bar\n"   
-gdb_expect {   
-    -re "type = template <(class |)T, (class |)sz> (class |)Bar \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\ntemplate instantiations:\r\n\[ \t\]*(class |)Bar<int,(\\(int\\)|)1>\r\n\[ \t\]*(class |)Bar<int,(\\(int\\)|)33>\r\n$gdb_prompt $" { pass "ptype Bar" }
-    -re "type = <(class |)T, (class |)sz> (class |)Bar \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\n$gdb_prompt $" { xfail "ptype Bar" }
-    -re "ptype Bar\r\ntype = class Bar<int, ?33> {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int bar\\(int, int\\);\r\n}\r\n$gdb_prompt $"
-    { # GCC 3.1, DWARF-2 output.
-       kfail "gdb/57" "ptype Bar" }
-    -re "No symbol \"Bar\" in current context.\r\n$gdb_prompt $"
-    { # GCC 2.95.3, stabs+ output.
-       pass "ptype Bar" }
-    -re "$gdb_prompt $"                     { fail "ptype Bar" }
-    timeout                             { fail "(timeout) ptype Bar" }
-}
-
-
-# ptype Bar<int,33>
-
-send_gdb "ptype bint\n"   
-gdb_expect {   
-   -re "type = (class |)Bar<int, ?(\\(int\\)|)33> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int bar\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bint" }
-   -re "$gdb_prompt $"                     { fail "ptype bint" }
-   timeout                             { fail "(timeout) ptype bint" }
-}
-
-# ptype Bar<int, (4>3)>
-
-send_gdb "ptype bint2\n"   
-gdb_expect {   
-   -re "type = (class |)Bar<int, ?(\\(int\\)|)1> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int bar\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bint2" }
-   -re "$gdb_prompt $"                     { fail "ptype bint2" }
-   timeout                             { fail "(timeout) ptype bint2" }
-}
-
-# Template Baz<T, char>
-
-# Same as Foo, for g++
-send_gdb "ptype Baz\n"   
-gdb_expect {   
-    -re "type = template <(class |)T, (class |)sz> (class |)Baz \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\ntemplate instantiations:\r\n\[ \t\]*(class |)Baz<char,(\\(char\\)|)97>\r\n\[ \t\]*(class |)Baz<int,(\\(char\\)|)115>\r\n$gdb_prompt $" { pass "ptype Baz" }
-    -re "type = <(class |)T, (class |)sz> (class |)Baz \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\n$gdb_prompt $" { xfail "ptype Baz" }
-    -re "type = class Baz<int,'s'> {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int baz\\(int, int\\);\r\n}\r\n$gdb_prompt $"
-    { # GCC 3.1, DWARF-2 output.
-       kfail "gdb/57" "ptype Baz" }
-    -re "No symbol \"Baz\" in current context.\r\n$gdb_prompt $"
-    { # GCC 2.95.3, stabs+ output.
-       pass "ptype Baz" }
-    -re "$gdb_prompt $"                     { fail "ptype Baz" }
-    timeout                             { fail "(timeout) ptype Baz" }
-}
-
-
-# ptype Baz<int, 's'>
-
-send_gdb "ptype bazint\n"   
-gdb_expect {   
-   -re "type = (class |)Baz<int, ?(\\(char\\)|)(115|\\'s\\')> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int baz\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bazint" }
-   -re "$gdb_prompt $"                     { fail "ptype bazint" }
-   timeout                             { fail "(timeout) ptype bazint" }
-}
-
-# ptype Baz<char, 'a'>
-
-send_gdb "ptype bazint2\n"   
-gdb_expect {   
-   -re "type = (class |)Baz<char, ?(\\(char\\)|)(97|\\'a\\')> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*char t;\r\n\r\n\[ \t\]*.*char baz\\(int, char\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bazint2" }
-   -re "$gdb_prompt $"                     { fail "ptype bazint2" }
-   timeout                             { fail "(timeout) ptype bazint2" }
-}
-
-# Template Qux<T, int (*f)(int) >
-# Same as Foo for g++
-send_gdb "ptype Qux\n"   
-gdb_expect {   
-    -re "type = template <(class |)T, (class |)sz> (class |)Qux \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\ntemplate instantiations:\r\n\[ \t\]*(class |)Qux<int,&string>\r\n\[ \t\]*(class |)Qux<char,&string>\r\n$gdb_prompt $" { pass "ptype Qux" }
-    -re ".*type = template <(class |)T.*, (class |)sz> (class |)Qux \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}.*$gdb_prompt $" { pass "ptype Qux" }
-    -re "type = class Qux<char,&string> {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*char t;\r\n\r\n\[ \t\]*char qux\\(int, char\\);\r\n}\r\n$gdb_prompt $"
-    { # GCC 3.1, DWARF-2 output.
-       kfail "gdb/57" "ptype Qux" }
-    -re "No symbol \"Qux\" in current context.\r\n$gdb_prompt $"
-    { # GCC 2.95.3, stabs+ output.
-       pass "ptype Qux" }
-    -re "$gdb_prompt $"                     { fail "ptype Qux" }
-    timeout                             { fail "(timeout) ptype Qux" }
-}
-
-# pt Qux<int,&string>
-
-send_gdb "ptype quxint\n"   
-gdb_expect {   
-   -re "type = class Qux<int, ?&\\(?string\\)?> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int qux\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype quxint" }
-   -re "$gdb_prompt $"                     { fail "ptype quxint" }
-   timeout                             { fail "(timeout) ptype quxint" }
-}
-
-# pt Qux<char,0>
-
-# commented out this as quxint2 declaration was commented out in
-# templates.exp -- ovidiu
-# send_gdb "ptype quxint2\n"   
-# gdb_expect {   
-#    -re "type = class Qux<char,&string> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*char t;\r\n\r\n\[ \t\]*char qux\\(int, char\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype quxint2" }
-#    -re "$gdb_prompt $"                     { fail "ptype quxint2" }
-#    timeout                             { fail "(timeout) ptype quxint2" }
-# }
-
-# Template Spec<T1, T2>
-
-# Same as Foo for g++
-send_gdb "ptype Spec\n"   
-gdb_expect {   
-    -re "type = template <(class |)T1, (class |)T2> (class |)Spec \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\\}\r\ntemplate instantiations:\r\n\[ \t\]*(class |)Spec<int,int \\*>\r\n\[ \t\]*(class |)Spec<int,char>\r\n$gdb_prompt $" { pass "ptype Spec" }
-    -re "type = <(class |)T1, (class |)T2> (class |)Spec \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\\}\r\n$gdb_prompt $" { xfail "ptype Spec" }
-    -re "type = class Spec<int, ?char> {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\r\n\[ \t\]*int spec\\(char\\);\r\n}\r\n$gdb_prompt $"
-    { # GCC 3.1, DWARF-2 output.
-       kfail "gdb/57" "ptype Spec" }
-    -re "No symbol \"Spec\" in current context.\r\n$gdb_prompt $"
-    { # GCC 2.95.3, stabs+ output.
-       pass "ptype Spec" }
-    -re "$gdb_prompt $"                     { fail "ptype Spec" }
-    timeout                             { fail "(timeout) ptype Spec" }
-}
-
-# pt Spec<char,0>
-
-send_gdb "ptype siip\n"   
-gdb_expect {   
-   -re "type = class Spec<int, ?int ?\\*> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\r\n\[ \t\]*.*int spec\\(int ?\\*\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype siip" }
-   -re "$gdb_prompt $"                     { fail "ptype siip" }
-   timeout                             { fail "(timeout) ptype siip" }
-}
-
-# pt Garply<int>
-
-send_gdb "ptype Garply<int>\n"   
-gdb_expect {   
-   -re "type = class Garply<int> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int garply\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype Garply<int>" }
-   -re "$gdb_prompt $"                     { fail "ptype Garply<int>" }
-   timeout                             { fail "(timeout) ptype Garply<int>" }
-}
-
-# ptype of nested template name
-
-send_gdb "ptype Garply<Garply<char> >\n"   
-gdb_expect {   
-   -re "type = (class |)Garply<Garply<char> > \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*.*(class |)Garply<char> t;\r\n\r\n\[ \t\]*.*(class |)Garply<char> garply\\(int, (class |)Garply<char>\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype Garply<Garply<char> >" }
-   -re "$gdb_prompt $"                     { fail "ptype Garply<Garply<char> >" }
-   timeout                             { fail "(timeout) ptype Garply<Garply<char> >" }
-}
-
-# print out a function from a nested template name
-
-send_gdb "print Garply<Garply<char> >::garply\n"
-gdb_expect {
-   -re "\\$\[0-9\]* = \\{(class |)Garply<char> \\((class |)Garply<Garply<char> > \\*(| const), int, (class |)Garply<char>\\)\\} $hex <Garply<Garply<char>\[ \t\]*>::garply\\(int, (class |)Garply<char>\\)>\r\n$gdb_prompt $" { pass "print Garply<Garply<char> >::garply" }
-   -re ".*$gdb_prompt $" { fail "print Garply<Garply<char> >::garply" }
-   timeout { fail "print Garply<Garply<char> >::garply (timeout)" }
-}
-
-# djb - 06-03-2000
-# Now should work fine
-send_gdb "break Garply<Garply<char> >::garply\n"
-gdb_expect {
-   -re "Breakpoint \[0-9\]* at $hex: file .*templates.cc, line.*\r\n$gdb_prompt $" { pass "break Garply<Garply<char> >::garply" }
-   -re ".*$gdb_prompt $" { fail "break Garply<Garply<char> >::garply" }
-   timeout { fail "break Garply<Garply<char> >::garply (timeout)" }
-}
diff --git a/gdb/testsuite/gdb.c++/try_catch.cc b/gdb/testsuite/gdb.c++/try_catch.cc
deleted file mode 100644 (file)
index e13dd64..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-// 2002-05-27
-
-#include <exception>
-#include <stdexcept>
-#include <string>
-
-enum region { oriental, egyptian, greek, etruscan, roman };
-
-// Test one.
-class gnu_obj_1
-{
-public:
-  typedef region antiquities;
-  const bool           test;
-  const int            key1;
-  long                 key2;
-
-  antiquities  value;
-
-  gnu_obj_1(antiquities a, long l): test(true), key1(5), key2(l), value(a) {}
-};
-
-// Test two.
-template<typename T>
-class gnu_obj_2: public virtual gnu_obj_1
-{
-public:
-  antiquities  value_derived;
-  
-  gnu_obj_2(antiquities b): gnu_obj_1(oriental, 7), value_derived(b) { }
-}; 
-
-// Test three.
-template<typename T>
-class gnu_obj_3
-{
-public:
-  typedef region antiquities;
-  gnu_obj_2<int>       data;
-      
-  gnu_obj_3(antiquities b): data(etruscan) { }
-}; 
-
-int main()
-{
-  bool test = true;
-  const int i = 5;
-  int j = i;
-  gnu_obj_2<long> test2(roman);
-  gnu_obj_3<long> test3(greek);
-
-  // 1
-  try
-    {
-      ++j;
-      throw gnu_obj_1(egyptian, 4589); // marker 1-throw
-    }
-  catch (gnu_obj_1& obj)
-    {
-      ++j;
-      if (obj.value != egyptian)       // marker 1-catch
-       test &= false;
-      if (obj.key2 != 4589)
-       test &= false;     
-    }
-  catch (...)
-    {
-      j = 0;
-      test &= false;
-    }
-
-  // 2
-  try
-    {
-      ++j;                             // marker 2-start
-      try
-       {
-         ++j;                          // marker 2-next
-         try
-           {
-             ++j;
-             throw gnu_obj_1(egyptian, 4589); // marker 2-throw
-           }
-         catch (gnu_obj_1& obj)
-           {
-             ++j;
-             if (obj.value != egyptian) // marker 2-catch
-               test &= false;
-             if (obj.key2 != 4589)
-               test &= false;     
-           }
-       }
-      catch (gnu_obj_1& obj)
-       {
-         ++j;
-         if (obj.value != egyptian)
-           test &= false;
-         if (obj.key2 != 4589)
-           test &= false;     
-       }
-    }
-  catch (...)
-    {
-      j = 0;
-      test &= false;
-    }
-
-  // 3 use standard library
-  using namespace std;
-  try
-    {
-      if (j < 100)
-       throw invalid_argument("gdb.1"); // marker 3-throw
-    }
-  catch (exception& obj)
-    {
-      if (obj.what() != "gdb.1")       // marker 3-catch
-       test &= false;
-    }
-  return 0;
-}
diff --git a/gdb/testsuite/gdb.c++/try_catch.exp b/gdb/testsuite/gdb.c++/try_catch.exp
deleted file mode 100644 (file)
index 1473e20..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright 2002 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.  
-
-# Tests for member data
-# 2002-05-27  Benjamin Kosnik  <bkoz@redhat.com>
-
-# This file is part of the gdb testsuite
-
-if $tracelevel then {
-        strace $tracelevel
-        }
-
-if { [skip_cplus_tests] } { continue }
-
-#
-# test running programs
-#
-set prms_id 0
-set bug_id 0
-
-set testfile "try_catch"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-if [get_compiler_info ${binfile} "c++"] {
-    return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-gdb_breakpoint [gdb_get_line_number "marker 1-throw"]
-gdb_continue_to_breakpoint "marker 1-throw"
-
-gdb_breakpoint [gdb_get_line_number "marker 1-catch"]
-gdb_continue_to_breakpoint "marker 1-catch"
-
-gdb_breakpoint [gdb_get_line_number "marker 2-start"]
-gdb_continue_to_breakpoint "marker 2-start"
-
-gdb_breakpoint [gdb_get_line_number "marker 2-next"]
-gdb_continue_to_breakpoint "marker 2-next"
-
-gdb_breakpoint [gdb_get_line_number "marker 2-throw"]
-gdb_continue_to_breakpoint "marker 2-throw"
-
-gdb_breakpoint [gdb_get_line_number "marker 2-catch"]
-gdb_continue_to_breakpoint "marker 2-catch"
-
-gdb_breakpoint [gdb_get_line_number "marker 3-throw"]
-gdb_continue_to_breakpoint "marker 3-throw"
-
-gdb_breakpoint [gdb_get_line_number "marker 3-catch"]
-gdb_continue_to_breakpoint "marker 3-catch"
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.c++/userdef.cc b/gdb/testsuite/gdb.c++/userdef.cc
deleted file mode 100644 (file)
index 0bb88a2..0000000
+++ /dev/null
@@ -1,341 +0,0 @@
-#include <iostream>
-
-using namespace std;
-
-void marker1()
-{
-  return;
-}
-
-class A1 {
-  int x;
-  int y;
-
-friend ostream& operator<<(ostream& outs, A1 one);
-
-public:
-
-  A1(int a, int b)
-  {
-   x=a;
-   y=b;
-  }
-
-A1 operator+=(int value);
-A1 operator+(const A1&);
-A1 operator-(const A1&);
-A1 operator%(const A1&);
-int operator==(const A1&);
-int operator!=(const A1&);
-int operator&&(const A1&);
-int operator||(const A1&);
-A1 operator<<(int);
-A1 operator>>(int);
-A1 operator|(const A1&);
-A1 operator^(const A1&);
-A1 operator&(const A1&);
-int operator<(const A1&);
-int operator<=(const A1&);
-int operator>=(const A1&);
-int operator>(const A1&);
-A1 operator*(const A1&);
-A1 operator/(const A1&);
-A1 operator=(const A1&);
-
-A1 operator~();
-A1 operator-();
-int operator!();
-A1 operator++();
-A1 operator++(int);
-A1 operator--(); 
-A1 operator--(int);
-
-};
-
-
-A1 A1::operator+(const A1& second)
-{
- A1 sum(0,0);
- sum.x = x + second.x;
- sum.y = y + second.y;
- return (sum);
-}
-
-A1 A1::operator*(const A1& second)
-{
- A1 product(0,0);
- product.x = this->x * second.x;
- product.y = this->y * second.y;
- return product;
-}
-
-A1 A1::operator-(const A1& second)
-{
- A1 diff(0,0);
- diff.x = x - second.x;
- diff.y = y - second.y;
- return diff;
-}
-
-A1 A1::operator/(const A1& second)
-{
- A1 div(0,0);
- div.x = x / second.x;
- div.y = y / second.y;
- return div;
-}
-
-A1 A1::operator%(const A1& second)
-{
- A1 rem(0,0);
- rem.x = x % second.x;
- rem.y = y % second.y;
- return rem;
-}
-
-int A1::operator==(const A1& second)
-{
- int a = (x == second.x);
- int b = (y == second.y);
- return (a && b);
-}
-
-int A1::operator!=(const A1& second)
-{
- int a = (x != second.x);
- int b = (y != second.y);
- return (a || b);
-}
-
-int A1::operator&&(const A1& second)
-{
- return ( x && second.x);
-}
-
-int A1::operator||(const A1& second)
-{
- return ( x || second.x);
-}
-
-A1 A1::operator<<(int value)
-{
- A1 lshft(0,0);
- lshft.x = x << value;
- lshft.y = y << value;
- return lshft;
-}
-
-A1 A1::operator>>(int value)
-{
- A1 rshft(0,0);
- rshft.x = x >> value;
- rshft.y = y >> value;
- return rshft;
-}
-
-A1 A1::operator|(const A1& second)
-{
- A1 abitor(0,0);
- abitor.x = x | second.x;
- abitor.y = y | second.y;
- return abitor;
-}
-
-A1 A1::operator^(const A1& second)
-{
- A1 axor(0,0);
- axor.x = x ^ second.x;
- axor.y = y ^ second.y;
- return axor;
-}
-
-A1 A1::operator&(const A1& second)
-{
- A1 abitand(0,0);
- abitand.x = x & second.x;
- abitand.y = y & second.y;
- return abitand;
-}
-
-int A1::operator<(const A1& second)
-{
- A1 b(0,0);
- b.x = 3;
- return (x < second.x);
-}
-
-int A1::operator<=(const A1& second)
-{
- return (x <= second.x);
-}
-
-int A1::operator>=(const A1& second)
-{
- return (x >= second.x);
-}
-
-int A1::operator>(const A1& second)
-{
- return (x > second.x);
-}
-
-int A1::operator!(void)
-{
- return (!x);
-}
-
-A1 A1::operator-(void)
-{
- A1 neg(0,0);
- neg.x = -x;
- neg.y = -y;
-
- return (neg);
-}
-
-A1 A1::operator~(void)
-{
- A1 acompl(0,0);
- acompl.x = ~x;
- acompl.y = ~y;
-
- return (acompl);
-}
-
-A1 A1::operator++() // pre increment
-{
- x = x +1;
- return (*this);
-}
-
-A1 A1::operator++(int) // post increment
-{
- y = y +1;
- return (*this);
-}
-
-A1 A1::operator--() // pre decrement
-{
- x = x -1;
- return (*this);
-}
-
-A1 A1::operator--(int) // post decrement
-{
- y = y -1;
- return (*this);
-}
-
-
-A1 A1::operator=(const A1& second)
-{
-
- x = second.x;
- y = second.y;
-
- return (*this);
-}
-
-A1 A1::operator+=(int value)
-{
-
- x += value;
- y += value;
-
- return (*this);
-}
-
-ostream& operator<<(ostream& outs, A1 one)
-{
- return (outs << endl << "x = " << one.x << endl << "y = " << one.y << endl << "-------" << endl); 
-}
-
-int main (void)
-{
- A1 one(2,3);
- A1 two(4,5);
- A1 three(0,0);
- int val;
- marker1(); // marker1-returns-here
- cout << one; // marker1-returns-here
- cout << two;
- three = one + two;
- cout << "+ " <<  three;
- three = one - two;
- cout <<  "- " << three;
- three = one * two;
- cout <<"* " <<  three;
- three = one / two;
- cout << "/ " << three;
- three = one % two;
- cout << "% " << three;
- three = one | two;
- cout << "| " <<three;
- three = one ^ two;
- cout << "^ " <<three;
- three = one & two;
- cout << "& "<< three;
-
- val = one && two;
- cout << "&& " << val << endl << "-----"<<endl;
- val = one || two;
- cout << "|| " << val << endl << "-----"<<endl;
- val = one == two;
- cout << " == " << val << endl << "-----"<<endl;
- val = one != two;
- cout << "!= " << val << endl << "-----"<<endl;
- val = one >= two;
- cout << ">= " << val << endl << "-----"<<endl;
- val = one <= two;
- cout << "<= " << val << endl << "-----"<<endl;
- val = one < two;
- cout << "< " << val << endl << "-----"<<endl;
- val = one > two;
- cout << "> " << val << endl << "-----"<<endl;
- three = one << 2;
- cout << "lsh " << three;
- three = one >> 2;
- cout << "rsh " << three;
-
- three = one;
- cout << " = "<< three;
- three += 5;
- cout << " += "<< three;
- val = (!one);
- cout << "! " << val << endl << "-----"<<endl;
- three = (-one);
- cout << "- " << three;
- three = (~one);
- cout << " ~" << three;
- three++;
- cout << "postinc " << three;
- three--;
- cout << "postdec " << three;
- --three;
- cout << "predec " << three;
- ++three;
- cout << "preinc " << three;
-
- return 0;
-
-}
diff --git a/gdb/testsuite/gdb.c++/userdef.exp b/gdb/testsuite/gdb.c++/userdef.exp
deleted file mode 100644 (file)
index 4575249..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-# Tests of overloaded operators resolution.
-# Copyright 1998, 1999, 2002 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
-
-# written by Elena Zannoni (ezannoni@cygnus.com)
-#
-# source file "userdef.cc"
-#
-
-if $tracelevel then {
-        strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "userdef"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
-
-if ![runto_main] then {
-    perror "couldn't run to breakpoint"
-    continue
-}
-
-send_gdb "break marker1\n" ; gdb_expect -re ".*$gdb_prompt $"
-    send_gdb "cont\n"
-    gdb_expect {
-        -re "Break.* marker1(\\(\\)|) \\(\\) at .*:$decimal.*$gdb_prompt $" {
-            send_gdb "up\n"
-            gdb_expect {
-                -re ".*$gdb_prompt $" { pass "up from marker1" }
-                timeout { fail "up from marker1" }
-            }
-        }
-        -re "$gdb_prompt $" { fail "continue to marker1"  }
-        timeout { fail "(timeout) continue to marker1"  }
-    }
-
-
-gdb_test "print one + two" "\\\$\[0-9\]* = {x = 6, y = 8}"
-
-# If GDB fails to restore the selected frame properly after the
-# inferior function call above (see GDB PR 1155 for an explanation of
-# why this might happen), all the subsequent tests will fail.  We
-# should detect report that failure, but let the marker call finish so
-# that the rest of the tests can run undisturbed.
-gdb_test_multiple "frame" "re-selected 'main' frame after inferior call" {
-    -re "#0  marker1.*$gdb_prompt $" {
-        setup_kfail "gdb/1155" s390-*-linux-gnu
-        fail "re-selected 'main' frame after inferior call"
-        gdb_test "finish" ".*main.*at .*userdef.cc:.*// marker1-returns-here.*" \
-                "finish call to marker1"
-    }
-    -re "#1  ($hex in )?main.*$gdb_prompt $" {
-        pass "re-selected 'main' frame after inferior call"
-    }
-}
-        
-gdb_test "print one - two" "\\\$\[0-9\]* = {x = -2, y = -2}"
-
-gdb_test "print one * two" "\\\$\[0-9\]* = {x = 8, y = 15}"
-
-gdb_test "print one / two" "\\\$\[0-9\]* = {x = 0, y = 0}"
-
-gdb_test "print one % two" "\\\$\[0-9\]* = {x = 2, y = 3}"
-
-gdb_test "print one && two" "\\\$\[0-9\]* = 1\[\r\n\]"
-
-gdb_test "print one || two" "\\\$\[0-9\]* = 1\[\r\n\]"
-
-gdb_test "print one & two" "\\\$\[0-9\]* = {x = 0, y = 1}"
-
-gdb_test "print one | two" "\\\$\[0-9\]* = {x = 6, y = 7}"
-
-gdb_test "print one ^ two" "\\\$\[0-9\]* = {x = 6, y = 6}"
-
-gdb_test "print one < two" "\\\$\[0-9\]* = 1\[\r\n\]"
-
-gdb_test "print one <= two" "\\\$\[0-9\]* = 1\[\r\n\]"
-
-gdb_test "print one > two" "\\\$\[0-9\]* = 0\[\r\n\]"
-
-gdb_test "print one >= two" "\\\$\[0-9\]* = 0\[\r\n\]"
-
-gdb_test "print one == two" "\\\$\[0-9\]* = 0\[\r\n\]"
-
-gdb_test "print one != two" "\\\$\[0-9\]* = 1\[\r\n\]"
-
-# Can't really check the output of this one without knowing
-# target integer width.  Make sure we don't try to call
-# the iostreams operator instead, though.
-gdb_test "print one << 31" "\\\$\[0-9\]* = {x = -?\[0-9\]*, y = -?\[0-9\]*}"
-
-# Should be fine even on < 32-bit targets.
-gdb_test "print one >> 31" "\\\$\[0-9\]* = {x = 0, y = 0}"
-
-gdb_test "print !one" "\\\$\[0-9\]* = 0\[\r\n\]"
-
-# Assumes 2's complement.  So does everything...
-gdb_test "print ~one" "\\\$\[0-9\]* = {x = -3, y = -4}"
-
-gdb_test "print -one" "\\\$\[0-9\]* = {x = -2, y = -3}"
-
-gdb_test "print one++" "\\\$\[0-9\]* = {x = 2, y = 4}"
-
-gdb_test "print ++one" "\\\$\[0-9\]* = {x = 3, y = 4}"
-
-gdb_test "print one--" "\\\$\[0-9\]* = {x = 3, y = 3}"
-
-gdb_test "print --one" "\\\$\[0-9\]* = {x = 2, y = 3}"
-
-gdb_test "print one += 7" "\\\$\[0-9\]* = {x = 9, y = 10}"
-
-gdb_test "print two = one" "\\\$\[0-9\]* = {x = 9, y = 10}"
-
-# Check that GDB tolerates whitespace in operator names.
-gdb_test "break A1::'operator+'" ".*Breakpoint $decimal at.*"
-gdb_test "break A1::'operator +'" ".*Breakpoint $decimal at.*"
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.c++/virtfunc.cc b/gdb/testsuite/gdb.c++/virtfunc.cc
deleted file mode 100644 (file)
index 005de9d..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-// Pls try the following program on virtual functions and try to do print on
-//  most of the code in main().  Almost none of them works !
-
-//
-// The inheritance structure is:
-//
-// V : VA VB
-// A : (V)
-// B : A
-// D : AD (V)
-// C : (V)
-// E : B (V) D C
-//
-
-class VA 
-{
-public:
-    int va;
-};
-
-class VB
-{
-public:
-    int vb;
-    int fvb();
-    virtual int vvb();
-};
-
-class V : public VA, public VB
-{
-public:
-    int f();
-    virtual int vv();
-    int w;
-};
-
-class A : virtual public V
-{
-public:
-    virtual int f();
-private:
-    int a;
-};
-
-class B : public A
-{
-public:
-    int f();
-private:
-    int b;
-};
-
-class C : public virtual V
-{
-public:
-    int c;
-};
-
-class AD
-{
-public:
-    virtual int vg() = 0;
-};
-
-class D : public AD, virtual public V
-{
-public:
-    static void s();
-    virtual int vg();
-    virtual int vd();
-    int fd();
-    int d;
-};
-
-class E : public B, virtual public V, public D, public C
-{
-public:
-    int f();
-    int vg();
-    int vv();
-    int e;
-};
-
-D   dd;
-D*  ppd = &dd;
-AD* pAd = &dd;
-
-A   a;
-B   b;
-C   c;
-D   d;
-E   e;
-V   v;
-VB  vb;
-
-
-A*     pAa     =       &a;
-A*     pAe     =       &e;
-
-B*     pBe     =       &e;
-
-D*     pDd     =       &d;
-D*     pDe     =       &e;
-
-V*     pVa     =       &a;
-V*     pVv     =       &v;
-V*     pVe     =       &e;
-V*     pVd     =       &d;
-
-AD*    pADe    =       &e;
-
-E*     pEe     =       &e;
-
-VB*     pVB    =       &vb;
-
-void init()
-{
-       a.vb = 1;
-       b.vb = 2;
-       c.vb = 3;
-       d.vb = 4;
-       e.vb = 5;
-       v.vb = 6;
-       vb.vb = 7;
-
-       d.d     = 1;
-       e.d     =  2;
-}
-
-extern "C" int printf(const char *, ...);
-
-int all_count = 0;
-int failed_count = 0;
-
-#define TEST(EXPR, EXPECTED) \
-   ret = EXPR; \
-   if (ret != EXPECTED) {\
-      printf("Failed %s is %d, should be %d!\n", #EXPR, ret, EXPECTED); \
-      failed_count++; } \
-   all_count++;
-
-int ret;
-
-void test_calls()
-{
-       TEST(pAe->f(), 20);
-       TEST(pAa->f(), 1);
-
-       TEST(pDe->vg(), 202);
-       TEST(pADe->vg(), 202);
-       TEST(pDd->vg(), 101);
-
-       TEST(pEe->vvb(), 411);
-
-       TEST(pVB->vvb(), 407);
-
-       TEST(pBe->vvb(), 411);
-       TEST(pDe->vvb(), 411);
-
-        TEST(pEe->vd(), 282);
-        TEST(pEe->fvb(), 311);
-    
-        TEST(pEe->D::vg(), 102);
-       printf("Did %d tests, of which %d failed.\n", all_count, failed_count);
-}
-#ifdef usestubs
-extern "C" {
-  void set_debug_traps();
-  void breakpoint();
-};
-#endif
-
-int main()
-{
-#ifdef usestubs
-   set_debug_traps();
-   breakpoint();
-#endif
-    init();
-
-    e.w = 7;
-    e.vb = 11;
-
-    test_calls();
-    return 0;
-    
-}
-
-int A::f() {return 1;}
-int B::f() {return 2;}
-void D::s() {}
-int E::f() {return 20;}
-int D::vg() {return 100+d;}
-int E::vg() {return 200+d;}
-int V::f() {return 600+w;}
-int V::vv() {return 400+w;}
-int E::vv() {return 450+w;}
-int D::fd() {return 250+d;}
-int D::vd() {return 280+d;}
-int VB::fvb() {return 300+vb;}
-int VB::vvb() {return 400+vb;}
diff --git a/gdb/testsuite/gdb.c++/virtfunc.exp b/gdb/testsuite/gdb.c++/virtfunc.exp
deleted file mode 100644 (file)
index dbd575c..0000000
+++ /dev/null
@@ -1,948 +0,0 @@
-# Copyright 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# This file was written by Fred Fish. (fnf@cygnus.com)
-
-set ws "\[\r\n\t \]+"
-set nl "\[\r\n\]+"
-
-if $tracelevel then {
-       strace $tracelevel
-}
-
-if { [skip_cplus_tests] } { continue }
-
-set testfile "virtfunc"
-set srcfile ${testfile}.cc
-set binfile ${objdir}/${subdir}/${testfile}
-
-if [get_compiler_info ${binfile} "c++"] {
-    return -1
-}
-
-source ${binfile}.ci
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {c++ debug}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-proc gdb_virtfunc_init {} {
-    global srcdir subdir binfile
-    global gdb_prompt
-
-    gdb_reinitialize_dir $srcdir/$subdir
-    gdb_load $binfile
-
-    send_gdb "set language c++\n"
-    gdb_expect -re "$gdb_prompt $"
-    send_gdb "set width 0\n"
-    gdb_expect -re "$gdb_prompt $"
-}
-
-proc gdb_virtfunc_restart {} {
-    gdb_exit;
-    gdb_start;
-    gdb_virtfunc_init;
-    runto 'test_calls';
-}
-
-#
-#  Test printing of the types of various classes.
-#
-
-proc test_ptype_of_classes {} {
-    global gdb_prompt
-    global ws
-    global nl
-
-    # This used to be a fail if it printed "struct" not "class".  But
-    # since this struct doesn't use any special C++ features, it is
-    # considered right for GDB to print it as "struct".
-    send_gdb "ptype VA\n"
-    gdb_expect {
-       -re "type = (struct|class) VA \{(${ws}public:|)${ws}int va;${ws}VA & operator=\\(VA const ?&\\);${ws}VA\\((VA const|const VA) ?&\\);${ws}VA\\((void|)\\);${ws}\}.*$gdb_prompt $" {
-           pass "ptype VA"
-       }
-       -re "type = (struct|class) VA \{(${ws}public:|)${ws}int va;((${ws}VA & operator=\\(VA const ?&\\);)|(${ws}VA\\(VA const ?&\\);)|(${ws}VA\\((void|)\\);))*${ws}\}.*$gdb_prompt $" {
-           pass "ptype VA (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype VA"
-       }
-       timeout {
-           fail "ptype VA (timeout)"
-       }
-    }
-
-    send_gdb "ptype VB\n"
-    gdb_expect {
-       -re "type = class VB \{${ws}public:${ws}int vb;${ws}VB & operator=\\(VB const ?&\\);${ws}VB\\((VB const|const VB) ?&\\);${ws}VB\\((void|)\\);${ws}int fvb\\((void|)\\);${ws}virtual int vvb\\((void|)\\);${ws}\}.*$gdb_prompt $" {
-           pass "ptype VB"
-       }
-       -re "type = class VB \{${ws}public:${ws}int vb;${ws}int fvb \\((void|)\\);${ws}virtual int vvb \\((void|)\\);${ws}\}.*$gdb_prompt $" {
-           pass "ptype VB (aCC)"
-       }
-       -re "type = class VB \{${ws}public:${ws}int vb;((${ws}VB & operator=\\(VB const ?&\\);)|(${ws}VB\\(VB const ?&\\);)|(${ws}VB\\((void|)\\);)|(${ws}int fvb\\((void|)\\);)|(${ws}virtual int vvb\\((void|)\\);))*${ws}\}.*$gdb_prompt $" {
-           pass "ptype VB (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype VB"
-       }
-       timeout {
-           fail "ptype VB (timeout)"
-       }
-    }
-
-    send_gdb "ptype V\n"
-    gdb_expect {
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}V & operator=\\(V const ?&\\);${ws}V\\((V const|const V) ?&\\);${ws}V\\((void|)\\);${ws}int f\\((void|)\\);${ws}virtual int vv\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype V"
-       }
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}int f \\((void|)\\);${ws}virtual int vv \\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype V (aCC)"
-       }
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;((${ws}V & operator=\\(V const ?&\\);)|(${ws}V\\(V const ?&\\);)|(${ws}V\\((void|)\\);)|(${ws}int f\\((void|)\\);)|(${ws}virtual int vv\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype V (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype V"
-       }
-       timeout {
-           fail "ptype V (timeout)"
-       }
-    }
-
-    # The format of a g++ virtual base pointer.
-    set vbptr "(_vb\[$.\]|__vb_)\[0-9\]?"
-
-    send_gdb "ptype A\n"
-    gdb_expect {
-       -re "type = class A : public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}int a;${ws}public:${ws}A & operator=\\(A const ?&\\);${ws}A\\(int, A const ?&\\);${ws}A\\(int\\);${ws}virtual int f\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype A"
-       }
-       -re "type = class A : public virtual V \{${ws}private:${ws}int a;${ws}public:${ws}A & operator=\\(A const ?&\\);${ws}A\\((A const|const A) ?&\\);${ws}A\\((void|)\\);${ws}virtual int f\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype A"
-       }
-        -re "type = class A : public virtual V \{${ws}private:${ws}int a;${ws}public:${ws}virtual int f\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-            pass "ptype A (aCC)"
-        }
-       -re "type = class A : public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}int a;${ws}public:((${ws}A & operator=\\(A const ?&\\);)|(${ws}A\\(int, A const ?&\\);)|(${ws}A\\(int\\);)|(${ws}virtual int f\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype A (obsolescent gcc or gdb)"
-       }
-       -re "type = class A : public virtual V \{${ws}private:${ws}V \\*${vbptr}FOO;${ws}int a;${ws}public:${ws}virtual int f.void.;${ws}\}$nl$gdb_prompt $" {
-           # This happens because the type is defined only after it is
-           # too late.
-           fail "ptype A (known failure with gcc cygnus-2.4.5-930417)"
-           # Many of the rest of these tests have the same problem.
-           return 0
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype A"
-       }
-       timeout {
-           fail "ptype A (timeout)"
-       }
-    }
-
-    send_gdb "ptype B\n"
-    gdb_expect {
-       -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:${ws}B & operator=\\(B const ?&\\);${ws}B\\(int, B const ?&\\);${ws}B\\(int\\);${ws}virtual int f\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype B"
-       }
-       -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:${ws}B & operator=\\(B const ?&\\);${ws}B\\((B const|const B) ?&\\);${ws}B\\((void|)\\);${ws}virtual int f\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype B"
-       }
-       -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:${ws}virtual int f \\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype B (aCC)"
-       }
-       -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:((${ws}B & operator=\\(B const ?&\\);)|(${ws}B\\(int, B const ?&\\);)|(${ws}B\\(int\\);)|(${ws}virtual int f\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype B (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype B"
-       }
-       timeout {
-           fail "ptype B (timeout)"
-       }
-    }
-
-    send_gdb "ptype C\n"
-    gdb_expect {
-       -re "type = class C : public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}public:${ws}int c;${ws}C & operator=\\(C const ?&\\);${ws}C\\(int, C const ?&\\);${ws}C\\(int\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype C"
-       }
-       -re "type = class C : public virtual V \{${ws}public:${ws}int c;${ws}C & operator=\\(C const ?&\\);${ws}C\\((C const|const C) ?&\\);${ws}C\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype C"
-       }
-        -re "type = class C : public virtual V \{${ws}public:${ws}int c;${ws}\}$nl$gdb_prompt $" {
-            pass "ptype C (aCC)"
-        }
-       -re "type = class C : public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}public:${ws}int c;((${ws}C & operator=\\(C const ?&\\);)|(${ws}C\\(int, C const ?&\\);)|(${ws}C\\(int\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype C (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype C"
-       }
-       timeout {
-           fail "ptype C (timeout)"
-       }
-    }
-
-    send_gdb "ptype AD\n"
-    gdb_expect {
-       -re "type = class AD \{${ws}public:${ws}AD & operator=\\(AD const ?&\\);${ws}AD\\((AD const|const AD) ?&\\);${ws}AD\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype AD"
-       }
-       -re "type = class AD \{${ws}public:${ws}virtual int vg \\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype AD (aCC)"
-       }
-       -re "type = class AD \{${ws}public:((${ws}AD & operator=\\(AD const ?&\\);)|(${ws}AD\\(AD const ?&\\);)|(${ws}AD\\((void|)\\);)|(${ws}virtual int vg\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype AD (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype AD"
-       }
-       timeout {
-           fail "ptype AD (timeout)"
-       }
-    }
-
-    send_gdb "ptype D\n"
-    gdb_expect {
-       -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}public:${ws}int d;${ws}D & operator=\\(D const ?&\\);${ws}D\\(int, D const ?&\\);${ws}D\\(int\\);${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype D"
-       }
-       -re "type = class D : public AD, public virtual V \{${ws}public:${ws}int d;${ws}D & operator=\\(D const ?&\\);${ws}D\\((D const|const D) ?&\\);${ws}D\\((void|)\\);${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype D"
-       }
-        -re "type = class D : public AD, public virtual V \{${ws}public:${ws}int d;${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-            pass "ptype D (aCC)"
-        }
-       -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}public:${ws}int d;((${ws}D & operator=\\(D const ?&\\);)|(${ws}D\\(int, D const ?&\\);)|(${ws}D\\(int\\);)|(${ws}static void s\\((void|)\\);)|(${ws}virtual int vg\\((void|)\\);)|(${ws}virtual int vd\\((void|)\\);)|(${ws}int fd\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype D (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype D"
-       }
-       timeout {
-           fail "ptype D (timeout)"
-       }
-    }
-
-    send_gdb "ptype E\n"
-    gdb_expect {
-       -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;${ws}E & operator=\\(E const ?&\\);${ws}E\\(int, E const ?&\\);${ws}E\\(int\\);${ws}virtual int f\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vv\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype E"
-       }
-       -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;${ws}E & operator=\\(E const ?&\\);${ws}E\\((E const|const E) ?&\\);${ws}E\\((void|)\\);${ws}virtual int f\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vv\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype E"
-       }
-       -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;${ws}virtual int f \\((void|)\\);${ws}virtual int vg \\((void|)\\);${ws}virtual int vv \\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype E (aCC)"
-       }
-       -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;((${ws}E & operator=\\(E const ?&\\);)|(${ws}E\\(int, E const ?&\\);)|(${ws}E\\(int\\);)|(${ws}virtual int f\\((void|)\\);)|(${ws}virtual int vg\\((void|)\\);)|(${ws}virtual int vv\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype E (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype E"
-       }
-       timeout {
-           fail "ptype E (timeout)"
-       }
-    }
-
-    send_gdb "ptype dd\n"
-    gdb_expect {
-       -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}public:${ws}int d;${ws}D & operator=\\(D const ?&\\);${ws}D\\(int, D const ?&\\);${ws}D\\(int\\);${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype dd"
-       }
-       -re "type = class D : public AD, public virtual V \{${ws}public:${ws}int d;${ws}D & operator=\\(D const ?&\\);${ws}D\\((D const|const D) ?&\\);${ws}D\\((void|)\\);${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype dd"
-       }
-        -re "type = class D : public AD, public virtual V \{${ws}public:${ws}int d;${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-            pass "ptype dd (aCC)"
-        }
-       -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}public:${ws}int d;((${ws}D & operator=\\(D const ?&\\);)|(${ws}D\\(int, D const ?&\\);)|(${ws}D\\(int\\);)|(${ws}static void s\\((void|)\\);)|(${ws}virtual int vg\\((void|)\\);)|(${ws}virtual int vd\\((void|)\\);)|(${ws}int fd\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype dd (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype dd"
-       }
-       timeout {
-           fail "ptype dd (timeout)"
-       }
-    }
-
-    send_gdb "ptype ppd\n"
-    gdb_expect {
-       -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}public:${ws}int d;${ws}D & operator=\\(D const ?&\\);${ws}D\\(int, D const ?&\\);${ws}D\\(int\\);${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype ppd"
-       }
-       -re "type = class D : public AD, public virtual V \{${ws}public:${ws}int d;${ws}D & operator=\\(D const ?&\\);${ws}D\\((D const|const D) ?&\\);${ws}D\\((void|)\\);${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype ppd"
-       }
-        -re "type = class D : public AD, public virtual V \{${ws}public:${ws}int d;${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-            pass "ptype ppd (aCC)"
-        }
-       -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}public:${ws}int d;((${ws}D & operator=\\(D const ?&\\);)|(${ws}D\\(int, D const ?&\\);)|(${ws}D\\(int\\);)|(${ws}static void s\\((void|)\\);)|(${ws}virtual int vg\\((void|)\\);)|(${ws}virtual int vd\\((void|)\\);)|(${ws}int fd\\((void|)\\);))*${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype ppd (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype ppd"
-       }
-       timeout {
-           fail "ptype ppd (timeout)"
-       }
-    }
-
-    send_gdb "ptype pAd\n"
-    gdb_expect {
-       -re "type = class AD \{${ws}public:${ws}AD & operator=\\(AD const ?&\\);${ws}AD\\((AD const|const AD) ?&\\);${ws}AD\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pAd"
-       }
-       -re "type = class AD \{${ws}public:${ws}virtual int vg \\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pAd (aCC)"
-       }
-       -re "type = class AD \{${ws}public:((${ws}AD & operator=\\(AD const ?&\\);)|(${ws}AD\\(AD const ?&\\);)|(${ws}AD\\((void|)\\);)|(${ws}virtual int vg\\((void|)\\);))*${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pAd (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype pAd"
-       }
-       timeout {
-           fail "ptype pAd (timeout)"
-       }
-    }
-
-    send_gdb "ptype a\n"
-    gdb_expect {
-       -re "type = class A : public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}int a;${ws}public:${ws}A & operator=\\(A const ?&\\);${ws}A\\(int, A const ?&\\);${ws}A\\(int\\);${ws}virtual int f\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype a"
-       }
-       -re "type = class A : public virtual V \{${ws}private:${ws}int a;${ws}public:${ws}A & operator=\\(A const ?&\\);${ws}A\\((A const|const A) ?&\\);${ws}A\\((void|)\\);${ws}virtual int f\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype a"
-       }
-        -re "type = class A : public virtual V \{${ws}private:${ws}int a;${ws}public:${ws}virtual int f\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-            pass "ptype a (aCC)"
-        }
-       -re "type = class A : public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}int a;${ws}public:((${ws}A & operator=\\(A const ?&\\);)|(${ws}A\\(int, A const ?&\\);)|(${ws}A\\(int\\);)|(${ws}virtual int f\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype a (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype a"
-       }
-       timeout {
-           fail "ptype a (timeout)"
-       }
-    }
-
-    send_gdb "ptype b\n"
-    gdb_expect {
-       -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:${ws}B & operator=\\(B const ?&\\);${ws}B\\(int, B const ?&\\);${ws}B\\(int\\);${ws}virtual int f\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype b"
-       }
-       -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:${ws}B & operator=\\(B const ?&\\);${ws}B\\((B const|const B) ?&\\);${ws}B\\((void|)\\);${ws}virtual int f\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype b"
-       }
-       -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:${ws}virtual int f \\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype b (aCC)"
-       }
-       -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:((${ws}B & operator=\\(B const ?&\\);)|(${ws}B\\(int, B const ?&\\);)|(${ws}B\\(int\\);)|(${ws}virtual int f\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype b (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype b"
-       }
-       timeout {
-           fail "ptype b (timeout)"
-       }
-    }
-
-    send_gdb "ptype c\n"
-    gdb_expect {
-       -re "type = class C : public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}public:${ws}int c;${ws}C & operator=\\(C const ?&\\);${ws}C\\(int, C const ?&\\);${ws}C\\(int\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype c"
-       }
-       -re "type = class C : public virtual V \{${ws}public:${ws}int c;${ws}C & operator=\\(C const ?&\\);${ws}C\\((C const|const C) ?&\\);${ws}C\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype c"
-       }
-        -re "type = class C : public virtual V \{${ws}public:${ws}int c;${ws}\}$nl$gdb_prompt $" {
-            pass "ptype c (aCC)"
-        }
-       -re "type = class C : public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}public:${ws}int c;((${ws}C & operator=\\(C const ?&\\);)|(${ws}C\\(int, C const ?&\\);)|(${ws}C\\(int\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype c (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype c"
-       }
-       timeout {
-           fail "ptype c (timeout)"
-       }
-    }
-
-    send_gdb "ptype d\n"
-    gdb_expect {
-       -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}public:${ws}int d;${ws}D & operator=\\(D const ?&\\);${ws}D\\(int, D const ?&\\);${ws}D\\(int\\);${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype d"
-       }
-       -re "type = class D : public AD, public virtual V \{${ws}public:${ws}int d;${ws}D & operator=\\(D const ?&\\);${ws}D\\((D const|const D) ?&\\);${ws}D\\((void|)\\);${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype d"
-       }
-        -re "type = class D : public AD, public virtual V \{${ws}public:${ws}int d;${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-            pass "ptype d (aCC)"
-        }
-       -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}public:${ws}int d;((${ws}D & operator=\\(D const ?&\\);)|(${ws}D\\(int, D const ?&\\);)|(${ws}D\\(int\\);)|(${ws}static void s\\((void|)\\);)|(${ws}virtual int vg\\((void|)\\);)|(${ws}virtual int vd\\((void|)\\);)|(${ws}int fd\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype d (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype d"
-       }
-       timeout {
-           fail "ptype d (timeout)"
-       }
-    }
-
-    send_gdb "ptype e\n"
-    gdb_expect {
-       -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;${ws}E & operator=\\(E const ?&\\);${ws}E\\(int, E const ?&\\);${ws}E\\(int\\);${ws}virtual int f\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vv\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype e"
-       }
-       -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;${ws}E & operator=\\(E const ?&\\);${ws}E\\((E const|const E) ?&\\);${ws}E\\((void|)\\);${ws}virtual int f\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vv\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype e"
-       }
-       -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;${ws}virtual int f \\((void|)\\);${ws}virtual int vg \\((void|)\\);${ws}virtual int vv \\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype e (aCC)"
-       }
-       -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;((${ws}E & operator=\\(E const ?&\\);)|(${ws}E\\(int, E const ?&\\);)|(${ws}E\\(int\\);)|(${ws}virtual int f\\((void|)\\);)|(${ws}virtual int vg\\((void|)\\);)|(${ws}virtual int vv\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype e (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype e"
-       }
-       timeout {
-           fail "ptype e (timeout)"
-       }
-    }
-
-    send_gdb "ptype v\n"
-    gdb_expect {
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}V & operator=\\(V const ?&\\);${ws}V\\((V const|const V) ?&\\);${ws}V\\((void|)\\);${ws}int f\\((void|)\\);${ws}virtual int vv\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype v"
-       }
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}int f \\((void|)\\);${ws}virtual int vv \\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype v (aCC)"
-       }
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;((${ws}V & operator=\\(V const ?&\\);)|(${ws}V\\(V const ?&\\);)|(${ws}V\\((void|)\\);)|(${ws}int f\\((void|)\\);)|(${ws}virtual int vv\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype v (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype v"
-       }
-       timeout {
-           fail "ptype v (timeout)"
-       }
-    }
-
-    send_gdb "ptype vb\n"
-    gdb_expect {
-       -re "type = class VB \{${ws}public:${ws}int vb;${ws}VB & operator=\\(VB const ?&\\);${ws}VB\\((VB const|const VB) ?&\\);${ws}VB\\((void|)\\);${ws}int fvb\\((void|)\\);${ws}virtual int vvb\\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype vb"
-       }
-       -re "type = class VB \{${ws}public:${ws}int vb;${ws}int fvb \\((void|)\\);${ws}virtual int vvb \\((void|)\\);${ws}\}$nl$gdb_prompt $" {
-           pass "ptype vb (aCC)"
-       }
-       -re "type = class VB \{${ws}public:${ws}int vb;((${ws}VB & operator=\\(VB const ?&\\);)|(${ws}VB\\(VB const ?&\\);)|(${ws}VB\\((void|)\\);)|(${ws}int fvb\\((void|)\\);)|(${ws}virtual int vvb\\((void|)\\);))*${ws}\}$nl$gdb_prompt $" {
-           pass "ptype vb (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype vb"
-       }
-       timeout {
-           fail "ptype vb (timeout)"
-       }
-    }
-
-    send_gdb "ptype pAa\n"
-    gdb_expect {
-       -re "type = class A : public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}int a;${ws}public:${ws}A & operator=\\(A const ?&\\);${ws}A\\(int, A const ?&\\);${ws}A\\(int\\);${ws}virtual int f\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pAa"
-       }
-       -re "type = class A : public virtual V \{${ws}private:${ws}int a;${ws}public:${ws}A & operator=\\(A const ?&\\);${ws}A\\((A const|const A) ?&\\);${ws}A\\((void|)\\);${ws}virtual int f\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pAa"
-       }
-        -re "type = class A : public virtual V \{${ws}private:${ws}int a;${ws}public:${ws}virtual int f\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-            pass "ptype pAa (aCC)"
-        }
-       -re "type = class A : public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}int a;${ws}public:((${ws}A & operator=\\(A const ?&\\);)|(${ws}A\\(int, A const ?&\\);)|(${ws}A\\(int\\);)|(${ws}virtual int f\\((void|)\\);))*${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pAa (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype pAa"
-       }
-       timeout {
-           fail "ptype pAa (timeout)"
-       }
-    }
-
-    send_gdb "ptype pAe\n"
-    gdb_expect {
-       -re "type = class A : public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}int a;${ws}public:${ws}A & operator=\\(A const ?&\\);${ws}A\\(int, A const ?&\\);${ws}A\\(int\\);${ws}virtual int f\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pAe"
-       }
-       -re "type = class A : public virtual V \{${ws}private:${ws}int a;${ws}public:${ws}A & operator=\\(A const ?&\\);${ws}A\\((A const|const A) ?&\\);${ws}A\\((void|)\\);${ws}virtual int f\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pAe"
-       }
-        -re "type = class A : public virtual V \{${ws}private:${ws}int a;${ws}public:${ws}virtual int f\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-            pass "ptype pAe (aCC)"
-       }
-       -re "type = class A : public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}int a;${ws}public:((${ws}A & operator=\\(A const ?&\\);)|(${ws}A\\(int, A const ?&\\);)|(${ws}A\\(int\\);)|(${ws}virtual int f\\((void|)\\);))*${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pAe (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype pAe"
-       }
-       timeout {
-           fail "ptype pAe (timeout)"
-       }
-    }
-
-    send_gdb "ptype pBe\n"
-    gdb_expect {
-       -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:${ws}B & operator=\\(B const ?&\\);${ws}B\\(int, B const ?&\\);${ws}B\\(int\\);${ws}virtual int f\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pBe"
-       }
-       -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:${ws}B & operator=\\(B const ?&\\);${ws}B\\((B const|const B) ?&\\);${ws}B\\((void|)\\);${ws}virtual int f\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pBe"
-       }
-       -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:${ws}virtual int f \\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pBe (aCC)"
-       }
-       -re "type = class B : public A \{${ws}private:${ws}int b;${ws}public:((${ws}B & operator=\\(B const ?&\\);)|(${ws}B\\(int, B const ?&\\);)|(${ws}B\\(int\\);)|(${ws}virtual int f\\((void|)\\);))*${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pBe (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype pBe"
-       }
-       timeout {
-           fail "ptype pBe (timeout)"
-       }
-    }
-
-    send_gdb "ptype pDd\n"
-    gdb_expect {
-       -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}public:${ws}int d;${ws}D & operator=\\(D const ?&\\);${ws}D\\(int, D const ?&\\);${ws}D\\(int\\);${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pDd"
-       }
-       -re "type = class D : public AD, public virtual V \{${ws}public:${ws}int d;${ws}D & operator=\\(D const ?&\\);${ws}D\\((D const|const D) ?&\\);${ws}D\\((void|)\\);${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pDd"
-       }
-        -re "type = class D : public AD, public virtual V \{${ws}public:${ws}int d;${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-            pass "ptype pDd (aCC)"
-        }
-       -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}public:${ws}int d;((${ws}D & operator=\\(D const ?&\\);)|(${ws}D\\(int, D const ?&\\);)|(${ws}D\\(int\\);)|(${ws}static void s\\((void|)\\);)|(${ws}virtual int vg\\((void|)\\);)|(${ws}virtual int vd\\((void|)\\);)|(${ws}int fd\\((void|)\\);))*${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pDd (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype pDd"
-       }
-       timeout {
-           fail "ptype pDd (timeout)"
-       }
-    }
-
-    send_gdb "ptype pDe\n"
-    gdb_expect {
-       -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}public:${ws}int d;${ws}D & operator=\\(D const ?&\\);${ws}D\\(int, D const ?&\\);${ws}D\\(int\\);${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pDe"
-       }
-       -re "type = class D : public AD, public virtual V \{${ws}public:${ws}int d;${ws}D & operator=\\(D const ?&\\);${ws}D\\((D const|const D) ?&\\);${ws}D\\((void|)\\);${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pDe"
-       }
-        -re "type = class D : public AD, public virtual V \{${ws}public:${ws}int d;${ws}static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-            pass "ptype pDe (aCC)"
-        }
-       -re "type = class D : public AD, public virtual V \{${ws}private:${ws}V \\*${vbptr}V;${ws}public:${ws}int d;((${ws}D & operator=\\(D const ?&\\);)|(${ws}D\\(int, D const ?&\\);)|(${ws}D\\(int\\);)|(${ws}static void s\\((void|)\\);)|(${ws}virtual int vg\\((void|)\\);)|(${ws}virtual int vd\\((void|)\\);)|(${ws}int fd\\((void|)\\);))*${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pDe (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype pDe"
-       }
-       timeout {
-           fail "ptype pDe (timeout)"
-       }
-    }
-
-    send_gdb "ptype pVa\n"
-    gdb_expect {
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}V & operator=\\(V const ?&\\);${ws}V\\((V const|const V) ?&\\);${ws}V\\((void|)\\);${ws}int f\\((void|)\\);${ws}virtual int vv\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pVa"
-       }
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}int f \\((void|)\\);${ws}virtual int vv \\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pVa (aCC)"
-       }
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;((${ws}V & operator=\\(V const ?&\\);)|(${ws}V\\(V const ?&\\);)|(${ws}V\\((void|)\\);)|(${ws}int f\\((void|)\\);)|(${ws}virtual int vv\\((void|)\\);))*${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pVa (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype pVa"
-       }
-       timeout {
-           fail "ptype pVa (timeout)"
-       }
-    }
-
-    send_gdb "ptype pVv\n"
-    gdb_expect {
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}V & operator=\\(V const ?&\\);${ws}V\\((V const|const V) ?&\\);${ws}V\\((void|)\\);${ws}int f\\((void|)\\);${ws}virtual int vv\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pVv"
-       }
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}int f \\((void|)\\);${ws}virtual int vv \\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pVv (aCC)"
-       }
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;((${ws}V & operator=\\(V const ?&\\);)|(${ws}V\\(V const ?&\\);)|(${ws}V\\((void|)\\);)|(${ws}int f\\((void|)\\);)|(${ws}virtual int vv\\((void|)\\);))*${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pVv (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype pVv"
-       }
-       timeout {
-           fail "ptype pVv (timeout)"
-       }
-    }
-
-    send_gdb "ptype pVe\n"
-    gdb_expect {
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}V & operator=\\(V const ?&\\);${ws}V\\((V const|const V) ?&\\);${ws}V\\((void|)\\);${ws}int f\\((void|)\\);${ws}virtual int vv\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pVe"
-       }
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}int f \\((void|)\\);${ws}virtual int vv \\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pVe (aCC)"
-       }
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;((${ws}V & operator=\\(V const ?&\\);)|(${ws}V\\(V const ?&\\);)|(${ws}V\\((void|)\\);)|(${ws}int f\\((void|)\\);)|(${ws}virtual int vv\\((void|)\\);))*${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pVe (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype pVe"
-       }
-       timeout {
-           fail "ptype pVe (timeout)"
-       }
-    }
-
-    send_gdb "ptype pVd\n"
-    gdb_expect {
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}V & operator=\\(V const ?&\\);${ws}V\\((V const|const V) ?&\\);${ws}V\\((void|)\\);${ws}int f\\((void|)\\);${ws}virtual int vv\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pVd"
-       }
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;${ws}int f \\((void|)\\);${ws}virtual int vv \\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pVd (aCC)"
-       }
-       -re "type = class V : public VA, public VB \{${ws}public:${ws}int w;((${ws}V & operator=\\(V const ?&\\);)|(${ws}V\\(V const ?&\\);)|(${ws}V\\((void|)\\);)|(${ws}int f\\((void|)\\);)|(${ws}virtual int vv\\((void|)\\);))*${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pVd (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype pVd"
-       }
-       timeout {
-           fail "ptype pVd (timeout)"
-       }
-    }
-
-    send_gdb "ptype pADe\n"
-    gdb_expect {
-       -re "type = class AD \{${ws}public:${ws}AD & operator=\\(AD const ?&\\);${ws}AD\\((AD const|const AD) ?&\\);${ws}AD\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pADe"
-       }
-       -re "type = class AD \{${ws}public:${ws}virtual int vg \\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pADe (aCC)"
-       }
-       -re "type = class AD \{${ws}public:((${ws}AD & operator=\\(AD const ?&\\);)|(${ws}AD\\(AD const ?&\\);)|(${ws}AD\\((void|)\\);)|(${ws}virtual int vg\\((void|)\\);))*${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pADe (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype pADe"
-       }
-       timeout {
-           fail "ptype pADe (timeout)"
-       }
-    }
-
-    send_gdb "ptype pEe\n"
-    gdb_expect {
-       -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;${ws}E & operator=\\(E const ?&\\);${ws}E\\(int, E const ?&\\);${ws}E\\(int\\);${ws}virtual int f\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vv\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pEe"
-       }
-       -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;${ws}E & operator=\\(E const ?&\\);${ws}E\\((E const|const E) ?&\\);${ws}E\\((void|)\\);${ws}virtual int f\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vv\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pEe"
-       }
-       -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;${ws}virtual int f \\((void|)\\);${ws}virtual int vg \\((void|)\\);${ws}virtual int vv \\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pEe (aCC)"
-       }
-       -re "type = class E : public B, public virtual V, public D, public C \{${ws}public:${ws}int e;((${ws}E & operator=\\(E const ?&\\);)|(${ws}E\\(int, E const ?&\\);)|(${ws}E\\(int\\);)|(${ws}virtual int f\\((void|)\\);)|(${ws}virtual int vg\\((void|)\\);)|(${ws}virtual int vv\\((void|)\\);))*${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pEe (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype pEe"
-       }
-       timeout {
-           fail "ptype pEe (timeout)"
-       }
-    }
-
-    send_gdb "ptype pVB\n"
-    gdb_expect {
-       -re "type = class VB \{${ws}public:${ws}int vb;${ws}VB & operator=\\(VB const ?&\\);${ws}VB\\((VB const|const VB) ?&\\);${ws}VB\\((void|)\\);${ws}int fvb\\((void|)\\);${ws}virtual int vvb\\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pVB"
-       }
-       -re "type = class VB \{${ws}public:${ws}int vb;${ws}int fvb \\((void|)\\);${ws}virtual int vvb \\((void|)\\);${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pVB (aCC)"
-       }
-       -re "type = class VB \{${ws}public:${ws}int vb;((${ws}VB & operator=\\(VB const ?&\\);)|(${ws}VB\\(VB const ?&\\);)|(${ws}VB\\((void|)\\);)|(${ws}int fvb\\((void|)\\);)|(${ws}virtual int vvb\\((void|)\\);))*${ws}\} \[*\]+$nl$gdb_prompt $" {
-           pass "ptype pVB (obsolescent gcc or gdb)"
-       }
-       -re ".*$gdb_prompt $" {
-           fail "ptype pVB"
-       }
-       timeout {
-           fail "ptype pVB (timeout)"
-       }
-    }
-}
-
-#
-#  Test calling of virtual functions.
-#
-
-proc test_virtual_calls {} {
-    global gdb_prompt
-    global GDB
-    global nl
-    global gcc_compiled
-
-    if [target_info exists gdb,cannot_call_functions] {
-       setup_xfail "*-*-*" 2416
-       fail "This target can not call functions"
-       return 0
-    }
-
-    send_gdb "print pAe->f()\n"
-    gdb_expect {
-       -re ".* = 20$nl$gdb_prompt $" { pass "print pAe->f()" }
-       -re "Cannot invoke functions on this machine.*$gdb_prompt $" {
-           fail "print pAe->f() (cannot invoke functions, skipping virtual calls)"
-           return 0
-       }
-       -re ".*Cannot access memory at address 0x8.*$gdb_prompt $" {
-           fail "print pAe->f() \
-(known failure with gcc cygnus-2.4.5-930417, skipping virtual calls)"
-           return 0
-       }
-        -re "Cannot resolve .* to any overloaded instance.*$gdb_prompt $" {
-           setup_xfail hppa*-*-* CLLbs16899
-            fail "print pAe->f()"
-       }
-       -re ".*$gdb_prompt $" { fail "print pAe->f()" }
-       timeout { fail "print pAe->f() (timeout)" }
-       eof { fail "print pAe->f() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
-    }
-
-    send_gdb "print pAa->f()\n"
-    gdb_expect {
-       -re ".* = 1$nl$gdb_prompt $" { pass "print pAa->f()" }
-        -re "Cannot resolve .* to any overloaded instance.*$gdb_prompt $" {
-           setup_xfail hppa*-*-*  CLLbs16899
-           fail "print pAa->f()"
-       }
-       -re ".*$gdb_prompt $" { fail "print pAa->f()" }
-       timeout { fail "print pAa->f() (timeout)" }
-       eof { fail "print pAa->f() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
-    }
-
-    send_gdb "print pDe->vg()\n"
-    gdb_expect {
-       -re ".* = 202$nl$gdb_prompt $" { pass "print pDe->vg()" }
-        -re "Cannot resolve .* to any overloaded instance.*$gdb_prompt $" {
-           setup_xfail hppa*-*-*  CLLbs16899
-           fail "print pDe->vg()"
-       }
-       -re ".*$gdb_prompt $" { fail "print pDe->vg()" }
-       timeout { fail "print pDe->vg() (timeout)" }
-       eof { fail "print pDe->vg() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
-    }
-
-    send_gdb "print pADe->vg()\n"
-    gdb_expect {
-       -re ".* = 202$nl$gdb_prompt $" { pass "print pADe->vg()" }
-        -re "Cannot resolve .* to any overloaded instance.*$gdb_prompt $" {
-           setup_xfail hppa*-*-*  CLLbs16899
-           fail "print pADe->vg()"
-       }
-       -re ".*$gdb_prompt $" { fail "print pADe->vg()" }
-       timeout { fail "print pADe->vg() (timeout)" }
-       eof { fail "print pADe->vg() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
-    }
-
-    send_gdb "print pDd->vg()\n"
-    gdb_expect {
-       -re ".* = 101$nl$gdb_prompt $" { pass "print pDd->vg()" }
-        -re "Cannot resolve .* to any overloaded instance.*$gdb_prompt $" {
-           setup_xfail hppa*-*-*  CLLbs16899
-           fail "print pDd->vg()"
-       }
-       -re ".*$gdb_prompt $" { fail "print pDd->vg()" }
-       timeout { fail "print pDd->vg() (timeout)" }
-       eof { fail "print pDd->vg() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
-    }
-
-    send_gdb "print pEe->vvb()\n"
-    gdb_expect {
-       -re ".* = 411$nl$gdb_prompt $" { pass "print pEe->vvb()" }
-        -re "Cannot resolve .* to any overloaded instance.*$gdb_prompt $" {
-           setup_xfail hppa*-*-*  CLLbs16899
-           fail "print pEe->vvb()"
-       }
-       -re ".*$gdb_prompt $" { fail "print pEe->vvb()" }
-       timeout { fail "print pEe->vvb() (timeout)" }
-       eof { fail "print pEe->vvb() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
-    }
-
-    send_gdb "print pVB->vvb()\n"
-    gdb_expect {
-       -re ".* = 407$nl$gdb_prompt $" { pass "print pVB->vvb()" }
-        -re "Cannot resolve .* to any overloaded instance.*$gdb_prompt $" {
-           setup_xfail hppa*-*-*  CLLbs16899
-           fail "print pVB->vvb()"
-       }
-       -re ".*$gdb_prompt $" { fail "print pVB->vvb()" }
-       timeout { fail "print pVB->vvb() (timeout)" }
-       eof { fail "print pVB->vvb() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
-    }
-
-    send_gdb "print pBe->vvb()\n"
-    gdb_expect {
-       -re ".* = 411$nl$gdb_prompt $" { pass "print pBe->vvb()" }
-        -re "Cannot resolve .* to any overloaded instance.*$gdb_prompt $" {
-           setup_xfail hppa*-*-*  CLLbs16899
-           fail "print pBe->vvb()"
-       }
-       -re ".*$gdb_prompt $" { fail "print pBe->vvb()" }
-       timeout { fail "print pBe->vvb() (timeout)" }
-       eof { fail "print pBe->vvb() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
-    }
-
-    send_gdb "print pDe->vvb()\n"
-    gdb_expect {
-       -re ".* = 411$nl$gdb_prompt $" { pass "print pDe->vvb()" }
-        -re "Cannot resolve .* to any overloaded instance.*$gdb_prompt $" {
-           setup_xfail hppa*-*-*  CLLbs16899
-           fail "print pDe->vvb()"
-       }
-       -re ".*$gdb_prompt $" { fail "print pDe->vvb()" }
-       timeout { fail "print pDe->vvb() (timeout)" }
-       eof { fail "print pDe->vvb() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
-    }
-
-    send_gdb "print pEe->vd()\n"
-    gdb_expect {
-       -re ".* = 282$nl$gdb_prompt $" { pass "print pEe->vd()" }
-        -re "Cannot resolve .* to any overloaded instance.*$gdb_prompt $" {
-           setup_xfail hppa*-*-*  CLLbs16899
-           fail "print pEe->vd()"
-       }
-       -re ".*$gdb_prompt $" { fail "print pEe->vd()" }
-       timeout { fail "print pEe->vd() (timeout)" }
-       eof { fail "print pEe->vd() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
-    }
-
-    send_gdb "print pEe->fvb()\n"
-    gdb_expect {
-       -re ".* = 311$nl$gdb_prompt $" { pass "print pEe->fvb()" }
-        -re "Cannot resolve .* to any overloaded instance.*$gdb_prompt $" {
-           setup_xfail hppa*-*-*  CLLbs16899
-           fail "print pEe->fvb()"
-       }
-       -re ".*$gdb_prompt $" { fail "print pEe->fvb()" }
-       timeout { fail "print pEe->fvb() (timeout)" }
-       eof { fail "print pEe->fvb() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
-    }
-
-    # fails on target=native, host=i686-pc-linux-gnu%rh-7.2,
-    # gdb=HEAD%2002-02-16, gcc=2.95.3, goption=-gdwarf-2.
-    #
-    # fails on target=native, host=i686-pc-linux-gnu%rh-7.2,
-    # gdb=HEAD%2002-02-16, gcc=2.95.3, goption=-gstabs+.
-    #
-    # fails on target=native, host=i686-pc-linux-gnu%rh-7.2,
-    # gdb=HEAD%2002-02-16, gcc=3.0.3, goption=-gdwarf-2.
-    #
-    # fails on target=native, host=i686-pc-linux-gnu%rh-7.2,
-    # gdb=HEAD%2002-02-16, gcc=3.0.3, goption=-gstabs+.
-    #
-    # fails on target=native, host=i686-pc-linux-gnu%rh-7.2,
-    # gdb=HEAD%2002-02-16, gcc=3.0.4-20020215, goption=-gdwarf-2.
-    #
-    # fails on target=native, host=i686-pc-linux-gnu%rh-7.2,
-    # gdb=HEAD%2002-02-16, gcc=3.0.4-20020215, goption=-gstabs+.
-    #
-    # fails on target=native, host=i686-pc-linux-gnu%rh-7.2,
-    # gdb=HEAD%2002-02-16, gcc=gcc-3_0-branch%2002-02-16, goption=-gdwarf-2.
-    #
-    # fails on target=native, host=i686-pc-linux-gnu%rh-7.2,
-    # gdb=HEAD%2002-02-16, gcc=gcc-3_0-branch%2002-02-16, goption=-gstabs+.
-    #
-    # fails on target=native, host=i686-pc-linux-gnu%rh-7.2,
-    # gdb=HEAD%2002-02-16, gcc=HEAD%2002-02-16, goption=-gdwarf-2.
-    #
-    # fails on target=native, host=i686-pc-linux-gnu%rh-7.2,
-    # gdb=HEAD%2002-02-16, gcc=HEAD%2002-02-16, goption=-gstabs+.
-    #
-    # -- chastain 2002-02-20
-
-    send_gdb "print pEe->D::vg()\n"
-    gdb_expect {
-       -re ".* = 102$nl$gdb_prompt $" { pass "print pEe->D::vg()" }
-       -re "Attempt to take address of value not located in memory.\r\n$gdb_prompt $"
-       { kfail "gdb/1064" "print pEe->D::vg()" }
-       -re ".*$gdb_prompt $" { fail "print pEe->D::vg()" }
-       timeout { fail "print pEe->D::vg() (timeout)" }
-       eof { fail "print pEe->D::vg() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return }
-    }
-}
-
-proc do_tests {} {
-    global prms_id
-    global bug_id
-
-    set prms_id 0
-    set bug_id 0
-
-    gdb_start;
-    gdb_virtfunc_init;
-
-    runto_main
-
-    test_ptype_of_classes
-
-    if [ runto 'test_calls' ] then {
-       test_virtual_calls
-    }
-}
-
-do_tests
index 1042c913ceb76057149f7510b99f6a950c30e18f..710e14ae6487e7d71475f7aea01df0e3bee11425 100644 (file)
@@ -29,13 +29,19 @@ if $tracelevel then {
 # Test the help messages.
 
 proc test_help {} {
-    gdb_test "help maintenance cplus" "C\\+\\+ maintenance commands.\r\n\r\nList of maintenance cplus subcommands:\r\n\r\nmaintenance cplus first_component -- Print the first class/namespace component of NAME\r\n\r\nType \"help maintenance cplus\" followed by maintenance cplus subcommand name for full documentation.\r\nCommand name abbreviations are allowed if unambiguous."
+    set first_component_help "Print the first class/namespace component of NAME"
+    set namespace_help "Print the list of possible C\\+\\+ namespaces"
 
-    gdb_test "help maint cp" "C\\+\\+ maintenance commands.\r\n\r\nList of maintenance cplus subcommands:\r\n\r\nmaintenance cplus first_component -- Print the first class/namespace component of NAME\r\n\r\nType \"help maintenance cplus\" followed by maintenance cplus subcommand name for full documentation.\r\nCommand name abbreviations are allowed if unambiguous."
+    set multiple_help_body "List of maintenance cplus subcommands:\r\n\r\nmaintenance cplus first_component -- ${first_component_help}\r\nmaintenance cplus namespace -- ${namespace_help}\r\n\r\nType \"help maintenance cplus\" followed by maintenance cplus subcommand name for full documentation.\r\nCommand name abbreviations are allowed if unambiguous."
 
-    gdb_test "maint cp" "\"maintenance cplus\" must be followed by the name of a command.\r\nList of maintenance cplus subcommands:\r\n\r\nmaintenance cplus first_component -- Print the first class/namespace component of NAME\r\n\r\nType \"help maintenance cplus\" followed by maintenance cplus subcommand name for full documentation.\r\nCommand name abbreviations are allowed if unambiguous."
+    set help_maint_cp "C\\+\\+ maintenance commands.\r\n\r\n${multiple_help_body}"
 
-    gdb_test "help maint cp first_component" "Print the first class/namespace component of NAME."
+    gdb_test "help maintenance cplus" "${help_maint_cp}"
+    gdb_test "help maint cp" "${help_maint_cp}"
+    gdb_test "maint cp" "\"maintenance cplus\" must be followed by the name of a command.\r\n${multiple_help_body}"
+
+    gdb_test "help maint cp first_component" "${first_component_help}."
+    gdb_test "help maint cp namespace" "${namespace_help}."
 }
 
 # This is used when NAME should contain only a single component.  Be
@@ -103,11 +109,18 @@ proc test_first_component {} {
     test_invalid_name "bool operator<<char>"
 }
 
+proc test_namespace {} {
+    # There's not a lot we can do to test this.
+
+    gdb_test "maint cp namespace" "Possible namespaces:"
+}
+
 gdb_exit
 gdb_start
 
 test_help
 test_first_component
+test_namespace
 
 gdb_exit
 return 0
index 7b9a173d819b8b745d87c668cb58e66cee3ee4eb..ad2d982e94f1a0b5bbe247d51edbac7f026d8144 100644 (file)
@@ -75,14 +75,75 @@ namespace
   namespace G
   {
     int Xg = 10;
+
+    namespace
+    {
+      int XgX = 11;
+    }
   }
 }
 
+namespace H
+{
+  int h = 14;
+}
+
+namespace I = H;
+
+namespace J
+{
+  int j = 15;
+}
+
+using namespace J;
+
+namespace K
+{
+  int k = 16;
+}
+
+namespace L
+{
+  using namespace K;
+}
+
+namespace O
+{
+  int o = 18;
+}
+
+namespace P
+{
+  using namespace O;
+}
+
+namespace Q
+{
+  using namespace P;
+}
+
+namespace R
+{
+  int r1 = 19;
+  int r2 = 20;
+}
+
+using R::r1;
+
 namespace C
 {
   int c = 1;
   int shadow = 12;
 
+  class CClass {
+  public:
+    int x;
+    class NestedClass {
+    public:
+      int y;
+    };
+  };
+
   namespace
   {
     int cX = 6;
@@ -90,6 +151,11 @@ namespace C
     namespace F
     {
       int cXf = 7;
+
+      namespace
+      {
+       int cXfX = 8;
+      }
     }
   }
 
@@ -98,6 +164,11 @@ namespace C
     int cc = 2;
   }
 
+  namespace E
+  {
+    int ce = 4;
+  }
+
   namespace D
   {
     int cd = 3;
@@ -108,6 +179,13 @@ namespace C
       int cde = 5;
     }
 
+    namespace M
+    {
+      int cdm = 17;
+    }
+
+    using namespace M;
+
     void marker2 (void)
     {
       // NOTE: carlton/2003-04-23: I'm listing the expressions that I
@@ -118,14 +196,27 @@ namespace C
       //cc;
       C::cc;
       cd;
+      //C::D::cd;
       E::cde;
       shadow;
+      //E::ce;
       cX;
       F::cXf;
+      F::cXfX;
       X;
       G::Xg;
       //cXOtherFile;
       //XOtherFile;
+      G::XgX;
+      I::h;
+      j;
+      L::k;
+      //k;
+      cdm;
+      Q::o;
+      //o;
+      r1;
+      //r2;
 
       return;
     }
index f4efaf64d2373f56dd6d20723b9dc199eaacbe4a..5bf976b5ff6096b7f0f6b56cc699eb2fd594f5b0 100644 (file)
 # bug-gdb@prep.ai.mit.edu
 
 # tests for namespaces
-# Written by Satish Pai <pai@apollo.hp.com> 1997-07-23
+# Originally written by Satish Pai <pai@apollo.hp.com> 1997-07-23
 
 # This file is part of the gdb testsuite
 
-# Note: These tests are geared to the HP aCC compiler,
+# Note: The original tests were geared to the HP aCC compiler,
 # which has an idiosyncratic way of emitting debug info
 # for namespaces.
-# Note: As of 2000-06-03, these pass under g++ - djb
+# Note: As of 2000-06-03, they passed under g++ - djb
 
 
 if $tracelevel then {
@@ -82,7 +82,12 @@ if ![runto 'marker1'] then {
 gdb_test "up" ".*main.*" "up from marker1"
 
 # Access a data item inside a namespace using colons and
-# single quotes :-(
+# single quotes. :-(
+
+# NOTE: carlton/2002-11-24: the quotes are becoming less necessary (or
+# even desirable.)  For tests where it should still work with quotes,
+# I'm including versions both with and without quotes; for tests that
+# shouldn't work with quotes, I'm only including one version.
 
 send_gdb "print 'AAA::c'\n"
 gdb_expect {
@@ -91,6 +96,13 @@ gdb_expect {
    timeout { fail "(timeout) print 'AAA::c'" }
 }
 
+send_gdb "print AAA::c\n"
+gdb_expect {
+   -re "\\$\[0-9\]* = 0 '\\\\(0|000)'\r\n$gdb_prompt $" { pass "print AAA::c" }
+   -re ".*$gdb_prompt $" { fail "print AAA::c" }
+   timeout { fail "(timeout) print AAA::c" }
+}
+
 # An object declared using "using".
 
 send_gdb "print ina\n"
@@ -137,6 +149,15 @@ gdb_expect {
    timeout { fail "(timeout) print 'AAA::xyzq'('x')" }
 }
        
+send_gdb "print AAA::xyzq('x')\n"
+gdb_expect {
+   -re "\\$\[0-9\]* = 97 'a'\r\n$gdb_prompt $" {
+       pass "print AAA::xyzq('x')"
+   }
+   -re ".*$gdb_prompt $" { fail "print AAA::xyzq('x')" }
+   timeout { fail "(timeout) print AAA::xyzq('x')" }
+}
+       
 # Break on a function in a namespace
 
 send_gdb "break AAA::xyzq\n"
@@ -159,6 +180,15 @@ gdb_expect {
    timeout { fail "(timeout) print 'BBB::CCC::xyzq'('x')" }
 }
        
+send_gdb "print BBB::CCC::xyzq('x')\n"
+gdb_expect {
+   -re "\\$\[0-9\]* = 122 'z'\r\n$gdb_prompt $" {
+       pass "print BBB::CCC::xyzq('x')"
+   }
+   -re ".*$gdb_prompt $" { fail "print BBB::CCC::xyzq('x')" }
+   timeout { fail "(timeout) print BBB::CCC::xyzq('x')" }
+}
+       
 # Break on a function in a nested namespace
 
 send_gdb "break BBB::CCC::xyzq\n"
@@ -181,6 +211,15 @@ gdb_expect {
    timeout { fail "(timeout) print 'BBB::Class::xyzq'" }
 }
 
+send_gdb "print BBB::Class::xyzq\n"
+gdb_expect {
+   -re "\\$\[0-9\]* = \{char \\((BBB::|)Class \\*( const|), (char|int)\\)\} $hex <BBB::Class::xyzq\\(char\\)>\r\n$gdb_prompt $" {
+       pass "print BBB::Class::xyzq"
+   }
+   -re ".*$gdb_prompt $" { fail "print BBB::Class::xyzq" }
+   timeout { fail "(timeout) print BBB::Class::xyzq" }
+}
+
 # Break on a function in a class in a namespace
 
 send_gdb "break BBB::Class::xyzq\n"
@@ -204,16 +243,73 @@ if ![runto "C::D::marker2"] then {
 gdb_test "print c" "\\$\[0-9\].* = 1"
 gdb_test "print cc" "No symbol \"cc\" in current context."
 gdb_test "print 'C::cc'" "\\$\[0-9\].* = 2"
+gdb_test "print C::cc" "\\$\[0-9\].* = 2"
 gdb_test "print cd" "\\$\[0-9\].* = 3"
+gdb_test "print C::D::cd" "No type \"D\" within class or namespace \"C::C\"."
 gdb_test "print 'E::cde'" "\\$\[0-9\].* = 5"
+gdb_test "print E::cde" "\\$\[0-9\].* = 5"
 gdb_test "print shadow" "\\$\[0-9\].* = 13"
+gdb_test "print E::ce" "No symbol \"ce\" in namespace \"C::D::E\"."
+gdb_test "ptype C" "type = namespace C::C"
+gdb_test "ptype E" "type = namespace C::D::E"
+
+gdb_test "ptype CClass" "type = class C::CClass \{\r\n  public:\r\n    int x;\r\n\}"
+gdb_test "ptype CClass::NestedClass" "type = class C::CClass::NestedClass \{\r\n  public:\r\n    int y;\r\n\}"
+gdb_test "ptype NestedClass" "No symbol \"NestedClass\" in current context."
+gdb_test "ptype ::C::CClass" "type = class C::CClass \{\r\n  public:\r\n    int x;\r\n\}"
+gdb_test "ptype ::C::CClass::NestedClass" "type = class C::CClass::NestedClass \{\r\n  public:\r\n    int y;\r\n\}"
+gdb_test "ptype ::C::NestedClass" "No symbol \"NestedClass\" in namespace \"C\"."
+gdb_test "ptype C::CClass" "No symbol \"CClass\" in namespace \"C::C\"."
+gdb_test "ptype C::CClass::NestedClass" "No type \"CClass\" within class or namespace \"C::C\"."
+gdb_test "ptype C::NestedClass" "No symbol \"NestedClass\" in namespace \"C::C\"."
+
+# Tests involving multiple files
+
 gdb_test "print cOtherFile" "\\$\[0-9\].* = 316"
+gdb_test "ptype OtherFileClass" "type = class C::OtherFileClass \{\r\n  public:\r\n    int z;\r\n\}"
+gdb_test "ptype ::C::OtherFileClass" "type = class C::OtherFileClass \{\r\n  public:\r\n    int z;\r\n\}"
+gdb_test "ptype C::OtherFileClass" "No symbol \"OtherFileClass\" in namespace \"C::C\"."
 
 # Some anonymous namespace tests.
 
 gdb_test "print cX" "\\$\[0-9\].* = 6"
 gdb_test "print 'F::cXf'" "\\$\[0-9\].* = 7"
+gdb_test "print F::cXf" "\\$\[0-9\].* = 7"
+gdb_test "print F::cXfX" "\\$\[0-9\].* = 8"
 gdb_test "print X" "\\$\[0-9\].* = 9"
 gdb_test "print 'G::Xg'" "\\$\[0-9\].* = 10"
+gdb_test "print G::Xg" "\\$\[0-9\].* = 10"
+gdb_test "print G::XgX" "\\$\[0-9\].* = 11"
 gdb_test "print cXOtherFile" "No symbol \"cXOtherFile\" in current context."
 gdb_test "print XOtherFile" "No symbol \"XOtherFile\" in current context."
+
+# Test namespace renaming.
+
+setup_kfail "c++/830" "*-*-*"
+gdb_test "print I::h" "\\$\[0-9\].* = 14"
+
+# Test using directives.
+
+# NOTE: carlton/2002-10-17: Some of these are easy, but some of these
+# have unfortunate interactions with namespace scope issues.  As of
+# this writing, some of these pass, but they pass for the wrong reasons.
+
+setup_kfail "c++/829" "*-*-*"
+gdb_test "print j" "\\$\[0-9\].* = 15"
+setup_kfail "c++/829" "*-*-*"
+gdb_test "print L::k" "\\$\[0-9\].* = 16"
+setup_kfail "c++/829" "*-*-*"
+gdb_test "print k" "No symbol \"k\" in current context."
+setup_kfail "c++/829" "*-*-*"
+gdb_test "print cdm" "\\$\[0-9\].* = 17"
+setup_kfail "c++/829" "*-*-*"
+gdb_test "print Q::o" "\\$\[0-9\].* = 18"
+setup_kfail "c++/829" "*-*-*"
+gdb_test "print o" "No symbol \"o\" in current context."
+
+# Test using declarations.  I should probably test these more.
+
+setup_kfail "c++/831" "*-*-*"
+gdb_test "print r1" "\\$\[0-9\].* = 19"
+setup_kfail "c++/831" "*-*-*"
+gdb_test "print r2" "No symbol \"r2\" in current context."
index 4a5900a8b3deaef568c43cc60ee13bfbf7b0d048..15b3429b6bd287c6ea1ecf2e2c4d83e0d32becca 100644 (file)
 
 namespace C
 {
+  class OtherFileClass {
+  public:
+    int z;
+  };
+
   namespace {
     int cXOtherFile = 29;
   };
index 56afc96884e1ca5aac1ab0f658d91930d77cd3cc..a41e14dc198a06317eb0791b6e9905289f9930d2 100644 (file)
@@ -53,6 +53,31 @@ int intToChar (char c)
 void marker1()
 {}
 
+// Now test how overloading and namespaces interact.
+
+class dummyClass {};
+
+dummyClass dummyInstance;
+
+int overloadNamespace(int i)
+{
+  return 1;
+}
+
+int overloadNamespace(dummyClass d)
+{
+  return 2;
+}
+
+namespace XXX {
+  int overloadNamespace (char c)
+  {
+    return 3;
+  }
+
+  void marker2() {}
+}
+
 int main () 
 {
     char arg2 = 2;
@@ -81,7 +106,8 @@ int main ()
     intToChar(1);
 
     marker1(); // marker1-returns-here
-    return 0; // marker1-returns-here
+    XXX::marker2(); // marker1-returns-here
+    return 0;
 }
 
 foo::foo  (int i)                  { ifoo = i; ccpfoo = NULL; }
index 3e14678e4c2c567960f77a4a7cce8ecc98beceab..7a2ecb43e599e42d417afb2875458cdf4c100577 100644 (file)
@@ -392,9 +392,26 @@ gdb_test "list foo::overloadfnarg(int, int (*)(int))" \
    "int foo::overloadfnarg.*\\(int arg, int \\(\\*foo\\) \\(int\\)\\).*" \
    "list overloaded function with function ptr args"
 
-# This one crashes GDB.  Don't know why yet.
 gdb_test "list \"foo::overloadfnarg(int, int (*)(int))\"" \
    "int foo::overloadfnarg.*\\(int arg, int \\(\\*foo\\) \\(int\\)\\).*" \
    "list overloaded function with function ptr args - quotes around argument"
 
 gdb_test "print intToChar(1)" ".\[0-9\]* = 297"
+
+# Now some tests to see how overloading and namespaces interact.
+
+# FIXME: carlton/2003-01-24: It would be nice to throw using
+# declarations into the mix, once GDB handles them.
+
+gdb_test "print overloadNamespace(1)" ".\[0-9\]* = 1"
+gdb_test "print overloadNamespace('a')" ".\[0-9\]* = 1"
+gdb_test "print overloadNamespace(dummyInstance)" ".\[0-9\]* = 2"
+
+if ![runto 'XXX::marker2'] then {
+    perror "couldn't run to XXX::marker2"
+    continue
+}
+
+gdb_test "print overloadNamespace(1)" ".\[0-9\]* = 3" "print overloadNamespace(1) in XXX"
+gdb_test "print overloadNamespace('a')" ".\[0-9\]* = 3" "print overloadNamespace('a') in XXX"
+gdb_test "print overloadNamespace(dummyInstance)" ".\[0-9\]* = 2" "print overloadNamespace(dummyInstance) in XXX"
index f99637a28a9e81ee8479e3f41d70bcfc19105016..3eba24b3a04e5a9113bdfe3be8bec5fc577ed8a8 100644 (file)
@@ -83,18 +83,12 @@ gdb_continue_to_breakpoint "end of constructors"
 
 gdb_test_multiple "print *e1" "print *e1" {
     -re "warning: can't find class named `n1::D1', as given by C\\+\\+ RTTI.*$gdb_prompt $" {
-       kfail "gdb/488" "print *e1"
+       #kfail "gdb/488" "print *e1"
+       fail "print *e1"
     }
     -re "\\$\[0-9\]* = {<n1::Base1> = .*}\r\n$gdb_prompt $" {
        pass "print *e1"
     }
-    -re "\\$\[0-9\]* = {<Base1> = .*}\r\n$gdb_prompt $" {
-       # NOTE: carlton/2003-05-16: If code is compiled by GCC2, we
-       # don't print the warning (for no particular reason), but we
-       # still call the class via the wrong name; PR gdb/57 is our
-       # catch-all PR for nested type problems.
-       kfail "gdb/57" "print *e1"
-    }
 }
 
 # NOTE: carlton/2003-05-16: This test fails on my branch with an
@@ -109,18 +103,15 @@ gdb_test_multiple "print *e1" "print *e1" {
 
 gdb_test_multiple "print *e2" "print *e2" {
     -re "warning: can't find class named `n2::D2', as given by C\\+\\+ RTTI.*$gdb_prompt $" {
-       kfail "gdb/488" "print *e2"
+       #kfail "gdb/488" "print *e2"
+       fail "print *e2"
     }
     -re "\\$\[0-9\]* = <incomplete type>\r\n$gdb_prompt $" {
-       # See above NOTE.
-       fail "print *e2"
+       kfail "gdb/TBA" "print *e2"
     }
     -re "\\$\[0-9\]* = {<n2::Base2> = .*}\r\n$gdb_prompt $" {
        pass "print *e2"
     }
-    -re "\\$\[0-9\]* = {<Base2> = .*}\r\n$gdb_prompt $" {
-       kfail "gdb/57" "print *e2"
-    }
 }
 
 gdb_exit
index 0ae878865feb5269401360bcef3d393cda15b325..0b8357d05e5b3eea8dba963d433cd6022ca1c48e 100644 (file)
@@ -312,6 +312,7 @@ gdb_expect {
 send_gdb "ptype fvpchar\n"   
 gdb_expect {   
    -re "type = (class |)Foo<volatile char ?\\*> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*.*char.*\\*t;\r\n\r\n\[ \t\]*.*char \\* foo\\(int,.*char.*\\*\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype fvpchar" }
+   -re "type = class Foo<char volatile\\*> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*.*char.*\\*t;\r\n\r\n\[ \t\]*.*char \\* foo\\(int,.*char.*\\*\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype fvpchar" }
    -re "$gdb_prompt $"                     { fail "ptype fvpchar" }
    timeout                             { fail "(timeout) ptype fvpchar" }
 }
@@ -352,7 +353,7 @@ send_gdb "ptype Bar\n"
 gdb_expect {   
     -re "type = template <(class |)T, (class |)sz> (class |)Bar \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\ntemplate instantiations:\r\n\[ \t\]*(class |)Bar<int,(\\(int\\)|)1>\r\n\[ \t\]*(class |)Bar<int,(\\(int\\)|)33>\r\n$gdb_prompt $" { pass "ptype Bar" }
     -re "type = <(class |)T, (class |)sz> (class |)Bar \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*T t;\r\n\\}\r\n$gdb_prompt $" { xfail "ptype Bar" }
-    -re "ptype Bar\r\ntype = class Bar<int,33> {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int bar\\(int, int\\);\r\n}\r\n$gdb_prompt $"
+    -re "ptype Bar\r\ntype = class Bar<int, ?33> {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int bar\\(int, int\\);\r\n}\r\n$gdb_prompt $"
     { # GCC 3.1, DWARF-2 output.
        kfail "gdb/57" "ptype Bar" }
     -re "No symbol \"Bar\" in current context.\r\n$gdb_prompt $"
@@ -367,7 +368,7 @@ gdb_expect {
 
 send_gdb "ptype bint\n"   
 gdb_expect {   
-   -re "type = (class |)Bar<int,(\\(int\\)|)33> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int bar\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bint" }
+   -re "type = (class |)Bar<int, ?(\\(int\\)|)33> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int bar\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bint" }
    -re "$gdb_prompt $"                     { fail "ptype bint" }
    timeout                             { fail "(timeout) ptype bint" }
 }
@@ -376,7 +377,7 @@ gdb_expect {
 
 send_gdb "ptype bint2\n"   
 gdb_expect {   
-   -re "type = (class |)Bar<int,(\\(int\\)|)1> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int bar\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bint2" }
+   -re "type = (class |)Bar<int, ?(\\(int\\)|)1> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int bar\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bint2" }
    -re "$gdb_prompt $"                     { fail "ptype bint2" }
    timeout                             { fail "(timeout) ptype bint2" }
 }
@@ -403,7 +404,7 @@ gdb_expect {
 
 send_gdb "ptype bazint\n"   
 gdb_expect {   
-   -re "type = (class |)Baz<int,(\\(char\\)|)(115|\\'s\\')> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int baz\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bazint" }
+   -re "type = (class |)Baz<int, ?(\\(char\\)|)(115|\\'s\\')> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int baz\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bazint" }
    -re "$gdb_prompt $"                     { fail "ptype bazint" }
    timeout                             { fail "(timeout) ptype bazint" }
 }
@@ -412,7 +413,7 @@ gdb_expect {
 
 send_gdb "ptype bazint2\n"   
 gdb_expect {   
-   -re "type = (class |)Baz<char,(\\(char\\)|)(97|\\'a\\')> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*char t;\r\n\r\n\[ \t\]*.*char baz\\(int, char\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bazint2" }
+   -re "type = (class |)Baz<char, ?(\\(char\\)|)(97|\\'a\\')> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*char t;\r\n\r\n\[ \t\]*.*char baz\\(int, char\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype bazint2" }
    -re "$gdb_prompt $"                     { fail "ptype bazint2" }
    timeout                             { fail "(timeout) ptype bazint2" }
 }
@@ -437,7 +438,7 @@ gdb_expect {
 
 send_gdb "ptype quxint\n"   
 gdb_expect {   
-   -re "type = class Qux<int,&string> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int qux\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype quxint" }
+   -re "type = class Qux<int, ?&\\(?string\\)?> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*.*int qux\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype quxint" }
    -re "$gdb_prompt $"                     { fail "ptype quxint" }
    timeout                             { fail "(timeout) ptype quxint" }
 }
@@ -460,7 +461,7 @@ send_gdb "ptype Spec\n"
 gdb_expect {   
     -re "type = template <(class |)T1, (class |)T2> (class |)Spec \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\\}\r\ntemplate instantiations:\r\n\[ \t\]*(class |)Spec<int,int \\*>\r\n\[ \t\]*(class |)Spec<int,char>\r\n$gdb_prompt $" { pass "ptype Spec" }
     -re "type = <(class |)T1, (class |)T2> (class |)Spec \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\\}\r\n$gdb_prompt $" { xfail "ptype Spec" }
-    -re "type = class Spec<int,char> {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\r\n\[ \t\]*int spec\\(char\\);\r\n}\r\n$gdb_prompt $"
+    -re "type = class Spec<int, ?char> {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\r\n\[ \t\]*int spec\\(char\\);\r\n}\r\n$gdb_prompt $"
     { # GCC 3.1, DWARF-2 output.
        kfail "gdb/57" "ptype Spec" }
     -re "No symbol \"Spec\" in current context.\r\n$gdb_prompt $"
@@ -474,7 +475,7 @@ gdb_expect {
 
 send_gdb "ptype siip\n"   
 gdb_expect {   
-   -re "type = class Spec<int,int ?\\*> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\r\n\[ \t\]*.*int spec\\(int ?\\*\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype siip" }
+   -re "type = class Spec<int, ?int ?\\*> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\r\n\[ \t\]*.*int spec\\(int ?\\*\\);\r\n\\}\r\n$gdb_prompt $" { pass "ptype siip" }
    -re "$gdb_prompt $"                     { fail "ptype siip" }
    timeout                             { fail "(timeout) ptype siip" }
 }