diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/cpp0x')
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/cpp0x/auto42.C | 9 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/cpp0x/constexpr-ice15.C | 12 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/cpp0x/defaulted2.C | 2 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/cpp0x/initlist81.C | 25 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/cpp0x/initlist82.C | 20 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval.C | 2 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval2.C | 7 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/cpp0x/pr31439.C | 2 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/cpp0x/variadic154.C | 8 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/cpp0x/variadic155.C | 4 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/cpp0x/variadic156.C | 6 | ||||
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/cpp0x/vt-33964.C | 2 |
12 files changed, 96 insertions, 3 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/auto42.C b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/auto42.C new file mode 100644 index 000000000..fea4c28d8 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/auto42.C @@ -0,0 +1,9 @@ +// PR c++/60628 +// { dg-do compile { target c++11 } } + +#include <initializer_list> + +void foo(int i) +{ + auto x[1] = { 0 }; // { dg-error "array of .auto" } +} diff --git a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/constexpr-ice15.C b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/constexpr-ice15.C new file mode 100644 index 000000000..576fd4150 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/constexpr-ice15.C @@ -0,0 +1,12 @@ +// PR c++/58207 +// { dg-do compile { target c++11 } } + +struct A +{ + virtual bool foo (); +}; + +struct B : public A +{ + constexpr B () : A (&::n) {} // { dg-error "declared" } +}; diff --git a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/defaulted2.C b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/defaulted2.C index bd83c7fb2..63be99754 100644 --- a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/defaulted2.C +++ b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/defaulted2.C @@ -35,7 +35,7 @@ struct D: public C struct E { - const B b; + const B b; // { dg-message "should be initialized" } E() { } // { dg-error "uninitialized" } }; diff --git a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/initlist81.C b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/initlist81.C new file mode 100644 index 000000000..5978c6388 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/initlist81.C @@ -0,0 +1,25 @@ +// PR c++/60713 +// { dg-options "-O" } +// { dg-do compile { target c++11 } } + +template < class x0, class x1, class x2, class x3, class x4 > +int *x5 (x0 *, x2 (x1::*)(x3, x4)); + +class x6 +{ + void x7 (); + struct x8 + { + int *x9; + }; + void x10 (x8); + void x11 (int *, int *); +}; + +void +x6::x7 () +{ + x10 ({ + x5 (this, &x6::x11) + }); +} diff --git a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/initlist82.C b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/initlist82.C new file mode 100644 index 000000000..3b9ccad66 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/initlist82.C @@ -0,0 +1,20 @@ +// PR c++/60708 +// { dg-do compile { target c++11 } } + +template <class T, class U> struct mypair { + mypair(T, U) {} +}; + +template<typename T> struct S { + mypair<T *, int> get_pair() noexcept { + return mypair<T*,int>(nullptr, 0); + } +}; + +static void foo(const mypair<char *, int> (&a)[2]) noexcept { } + +int main() +{ + S<char> s; + foo({s.get_pair(), s.get_pair()}); +} diff --git a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval.C b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval.C index 898f685aa..dcea1690d 100644 --- a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval.C +++ b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval.C @@ -5,3 +5,5 @@ template <class T> struct A { }; A<decltype([]{ return 1; }())> a; // { dg-error "lambda.*unevaluated context" } +// { dg-prune-output "template argument" } +// { dg-prune-output "invalid type" } diff --git a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval2.C b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval2.C new file mode 100644 index 000000000..14cb29874 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval2.C @@ -0,0 +1,7 @@ +// PR c++/60375 +// { dg-do compile { target c++11 } } + +struct A +{ + decltype( [](){ return this; }() ) x; // { dg-error "unevaluated" } +}; diff --git a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/pr31439.C b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/pr31439.C index f75373555..df50e41cd 100644 --- a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/pr31439.C +++ b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/pr31439.C @@ -1,7 +1,7 @@ // { dg-do compile { target c++11 } } template<typename...> struct A; -template<char> struct A<> {}; // { dg-error "not used in partial specialization|anonymous|declaration" } +template<char> struct A<> {}; // { dg-error "not deducible|anonymous|declaration" } template<typename T, typename... U> struct A<T, U...> : A<U...> {}; // { dg-error "incomplete type" } diff --git a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/variadic154.C b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/variadic154.C new file mode 100644 index 000000000..198f9c5ba --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/variadic154.C @@ -0,0 +1,8 @@ +// PR c++/60374 +// { dg-do compile { target c++11 } } + +template<typename> struct A {}; + +template<typename...T> struct A<T::T...> {}; // { dg-error "typename|partial|T" } + +A<int> a; diff --git a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/variadic155.C b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/variadic155.C new file mode 100644 index 000000000..d912317bd --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/variadic155.C @@ -0,0 +1,4 @@ +// { dg-do compile { target c++11 } } + +template <typename T> struct A {}; +template <int... I> struct B: A<I...> {}; // { dg-error "type" } diff --git a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/variadic156.C b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/variadic156.C new file mode 100644 index 000000000..7d3c97d68 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/variadic156.C @@ -0,0 +1,6 @@ +// PR c++/52844 +// { dg-do compile { target c++11 } } + +template < class > struct V { }; +template < int...Is > void f ( V < Is...>) { } // { dg-error "mismatch|type" } +auto g ( ) -> decltype ( f ( V < long > ( ) ) ) ; // { dg-error "matching" } diff --git a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/vt-33964.C b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/vt-33964.C index 9e40737d5..8cbc0d647 100644 --- a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/vt-33964.C +++ b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/vt-33964.C @@ -6,7 +6,7 @@ struct foo }; template<typename ... Args> -struct foo< typename Args::is_applied... > // { dg-error "not used|Args" } +struct foo< typename Args::is_applied... > // { dg-error "not deducible|Args" } { static bool const value = false; }; |