diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/template/injected1.C')
-rw-r--r-- | gcc/testsuite/g++.dg/template/injected1.C | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/injected1.C b/gcc/testsuite/g++.dg/template/injected1.C new file mode 100644 index 000000000..81873b498 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/injected1.C @@ -0,0 +1,33 @@ +// PR c++/13950, DR 176 + +template <class T> struct Base { }; // { dg-error "" } candidate + +struct D1: Base<void> +{ + D1::Base* p1; + D1::Base<double>* p2; + Base *p3; + Base<double>* p4; +}; + +struct D2: Base<void>, Base<void*> +{ + D2::Base* p1; // { dg-error "" } + D2::Base<double>* p2; + Base *p3; // { dg-error "" } + Base<double>* p4; +}; + +template <class T> +struct D3: Base<T> { + typename D3::Base* p1; + typename D3::template Base<double>* p2; +}; +template struct D3<void>; + +template <class T> +struct D4: Base<T>, Base<T*> { + typename D4::Base* p1; // { dg-error "" } + typename D4::template Base<double>* p2; +}; +template struct D4<void>; // { dg-message "instantiated" } |