aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/cpp0x
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/cpp0x')
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/cpp0x/auto42.C9
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/cpp0x/constexpr-ice15.C12
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/cpp0x/defaulted2.C2
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/cpp0x/initlist81.C25
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/cpp0x/initlist82.C20
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval.C2
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval2.C7
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/cpp0x/pr31439.C2
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/cpp0x/variadic154.C8
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/cpp0x/variadic155.C4
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/cpp0x/variadic156.C6
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/cpp0x/vt-33964.C2
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;
};