aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Seitz <keiths@redhat.com>2009-09-21 19:23:22 +0000
committerKeith Seitz <keiths@redhat.com>2009-09-21 19:23:22 +0000
commit3fe8f3b349c62a22a209e7eace236f9d2a2effcb (patch)
tree5e46642c6a7e0dfddbe073e6258d47f869496502
parentcbacf5fd946b7a3faf916c57e6775407f6fc01f2 (diff)
downloadgdb-3fe8f3b349c62a22a209e7eace236f9d2a2effcb.zip
gdb-3fe8f3b349c62a22a209e7eace236f9d2a2effcb.tar.gz
gdb-3fe8f3b349c62a22a209e7eace236f9d2a2effcb.tar.bz2
* gdb.cp/classes.exp (do_tests): Add tests to print a constructor
and destructor using typedef name of class. * gdb.cp/classes.cc (class Base1): Add a destructor. (base1): New typedef. (use_methods): Instanitate an object of type base1. * gdb.cp/templates.exp (test_template_typedef): New procedure. (do_tests): Call test_template_typedef. * gdb.cp/templates.cc (Baz::~Baz): New method. (intBazOne): New typedef. (main): Instantiate intBazOne.
-rw-r--r--gdb/testsuite/ChangeLog13
-rw-r--r--gdb/testsuite/gdb.cp/classes.cc5
-rw-r--r--gdb/testsuite/gdb.cp/classes.exp4
-rw-r--r--gdb/testsuite/gdb.cp/templates.cc5
-rw-r--r--gdb/testsuite/gdb.cp/templates.exp9
5 files changed, 36 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 833fdcd..72b1e1c 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,16 @@
+2009-09-21 Keith Seitz <keiths@redhat.com>
+
+ * gdb.cp/classes.exp (do_tests): Add tests to print a constructor
+ and destructor using typedef name of class.
+ * gdb.cp/classes.cc (class Base1): Add a destructor.
+ (base1): New typedef.
+ (use_methods): Instanitate an object of type base1.
+ * gdb.cp/templates.exp (test_template_typedef): New procedure.
+ (do_tests): Call test_template_typedef.
+ * gdb.cp/templates.cc (Baz::~Baz): New method.
+ (intBazOne): New typedef.
+ (main): Instantiate intBazOne.
+
2009-09-21 Phil Muldoon <pmuldoon@redhat.com>
PR python/10633
diff --git a/gdb/testsuite/gdb.cp/classes.cc b/gdb/testsuite/gdb.cp/classes.cc
index 927aad3..913627f 100644
--- a/gdb/testsuite/gdb.cp/classes.cc
+++ b/gdb/testsuite/gdb.cp/classes.cc
@@ -400,8 +400,11 @@ class Base1 {
public:
int x;
Base1(int i) { x = i; }
+ ~Base1 () { }
};
+typedef Base1 base1;
+
class Foo
{
public:
@@ -564,6 +567,8 @@ void use_methods ()
i = class_param.Aref_x (g_A);
i = class_param.Aval_a (g_A);
i = class_param.Aval_x (g_A);
+
+ base1 b (3);
}
diff --git a/gdb/testsuite/gdb.cp/classes.exp b/gdb/testsuite/gdb.cp/classes.exp
index bd980b2..87e993c 100644
--- a/gdb/testsuite/gdb.cp/classes.exp
+++ b/gdb/testsuite/gdb.cp/classes.exp
@@ -632,6 +632,10 @@ proc do_tests {} {
fail "calling method for small class"
}
}
+
+ gdb_test "print base1::Base1" "<.*Base1.*>" "print ctor of typedef class"
+ gdb_test "print base1::~Base1" "<.*~Base1(\\(\\))?>" \
+ "print dtor of typedef class"
}
do_tests
diff --git a/gdb/testsuite/gdb.cp/templates.cc b/gdb/testsuite/gdb.cp/templates.cc
index a04d768..dfb6f8e 100644
--- a/gdb/testsuite/gdb.cp/templates.cc
+++ b/gdb/testsuite/gdb.cp/templates.cc
@@ -630,6 +630,7 @@ T Spec<T, T*>::spec (T * tp)
template<class T, char sz>
class Baz {
public:
+ ~Baz () { };
int x;
T t;
T baz (int, T);
@@ -643,6 +644,8 @@ template<class T, char sz> T Baz<T, sz>::baz (int i, T tt)
return 0;
}
+typedef Baz<int, 1> intBazOne;
+
// Template with char * parameter
template<class T, char * sz>
class Qux {
@@ -777,6 +780,8 @@ int main()
i=GetMax<int>(x,y);
n=GetMax<long>(l,m);
+ intBazOne ibo;
+ z = ibo.baz (2, 21);
return 0;
}
diff --git a/gdb/testsuite/gdb.cp/templates.exp b/gdb/testsuite/gdb.cp/templates.exp
index 541bdcb..487186a 100644
--- a/gdb/testsuite/gdb.cp/templates.exp
+++ b/gdb/testsuite/gdb.cp/templates.exp
@@ -195,6 +195,14 @@ proc test_template_calls {} {
}
}
+proc test_template_typedef {} {
+
+ gdb_test "print intBazOne::baz" ".*baz\\(int, int\\)>" \
+ "print method of template typedef"
+
+ gdb_test "print intBazOne::~Baz" ".*~Baz(\\(\\))?>" \
+ "print destructor of template typedef"
+}
proc do_tests {} {
global prms_id
@@ -223,6 +231,7 @@ proc do_tests {} {
test_ptype_of_templates
test_template_breakpoints
+ test_template_typedef
if [ runto_main] {
test_template_calls