diff options
author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-01-18 13:25:27 +0000 |
---|---|---|
committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-01-18 13:25:27 +0000 |
commit | 4a8fe41ab3626b6b668fede334a9d3e5786c2b29 (patch) | |
tree | 345f2a7bf6589ade056567f572d7389574dbdb6b /gcc | |
parent | 97e988000d1e839e3094435856cea94a1b1185be (diff) | |
download | ppe42-gcc-4a8fe41ab3626b6b668fede334a9d3e5786c2b29.tar.gz ppe42-gcc-4a8fe41ab3626b6b668fede334a9d3e5786c2b29.zip |
* semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
if we're in a template.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48985 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/g++.dg/template/vtable1.C | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/vtable1.C b/gcc/testsuite/g++.dg/template/vtable1.C new file mode 100644 index 00000000000..c5f122adbd9 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/vtable1.C @@ -0,0 +1,23 @@ +// Test that vtables are set up properly for constructors and destructors +// of template classes. + +// { dg-do run } + +int r; + +template <class T> +struct A { + virtual void f () { } + A() { f (); } + ~A() { f (); } +}; + +struct B : public A<int> { + virtual void f () { ++r; } +}; + +int main () +{ + { B b; } + return r; +} |