mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 18:44:20 +08:00
* 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:
parent
cbacf5fd94
commit
3fe8f3b349
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user