diff options
Diffstat (limited to 'gdb/testsuite/gdb.cp')
-rw-r--r-- | gdb/testsuite/gdb.cp/classes.cc | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.cp/classes.exp | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.cp/templates.cc | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.cp/templates.exp | 9 |
4 files changed, 23 insertions, 0 deletions
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 |