* 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.
This commit is contained in:
Keith Seitz 2009-09-21 19:23:22 +00:00
parent cbacf5fd94
commit 3fe8f3b349
5 changed files with 36 additions and 0 deletions

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -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;
}

View File

@ -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