diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/cpp0x/variadic-throw.C')
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/variadic-throw.C | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic-throw.C b/gcc/testsuite/g++.dg/cpp0x/variadic-throw.C new file mode 100644 index 000000000..8363c2a73 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/variadic-throw.C @@ -0,0 +1,26 @@ +// { dg-options -std=c++0x } +// { dg-prune-output "note" } +// PR c++/33509 +template<int M, int N> struct pair +{ + int i, j; + pair() : i(M), j(N) {} +}; + +template<int... M> struct S +{ + template<int... N> static int foo() throw (pair <M, N>...) // { dg-error "mismatched" } + { + return 1; + } +}; + +int bar () +{ + return S<0, 1, 2>::foo<0, 1, 3> (); +} + +int wibble() +{ + return S<0, 1, 2>::foo<0, 1> (); // { dg-error "no matching" } +} |