diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.jason/template15.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.jason/template15.C | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template15.C b/gcc/testsuite/g++.old-deja/g++.jason/template15.C new file mode 100644 index 000000000..b1530201b --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.jason/template15.C @@ -0,0 +1,28 @@ +// { dg-do run } +// PRMS Id: 2139 +// Bug: g++ tries to instantiate the template with types on the function +// obstack and fails. + +template<class T> +class X { +public: + X(int) { } + + T x; +}; + +class A { }; + +int main() +{ + int i; + X<int> xi(i); + X<double> xd(i); + + X<int (*)(int, void *)> fp0(i); + X<int (*)(int, char, double)> fp1(i); + X<int (*)(int, double**, void *)> fp2(i); + + X<int (A::*)()> mp0 (i); + X<int A::*> mp1 (i); +} |