diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/template/error40.C')
-rw-r--r-- | gcc/testsuite/g++.dg/template/error40.C | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/error40.C b/gcc/testsuite/g++.dg/template/error40.C new file mode 100644 index 000000000..7746ed2ce --- /dev/null +++ b/gcc/testsuite/g++.dg/template/error40.C @@ -0,0 +1,32 @@ +// { dg-options "-fno-pretty-templates" } + +template <class T, int N=0, int X=1> +struct A +{ + struct AN; +}; + +void foo(void) +{ + A<void> a = 0; // { dg-error "A<void, 0, 1>" } +} + +template <class T> T f(T); // { dg-message "int f<int>.int." } +template <class T> T f(T, int = 0); // { dg-message "" } + +template <class T> +struct B +{ + typedef typename T::AN BN; + + BN f(); // { dg-message "AN" } + BN f(int = 0); // { dg-message "" } +}; + +int main() +{ + f(1); // { dg-error "" } + // { dg-message "candidate" "candidate note" { target *-*-* } 28 } + B<A<int> >().f(); // { dg-error "" } + // { dg-message "candidate" "candidate note" { target *-*-* } 30 } +} |