array-init.c: Add dg-prune-output.
authorMarek Polacek <polacek@redhat.com>
Sat, 8 Sep 2018 14:27:25 +0000 (14:27 +0000)
committerMarek Polacek <mpolacek@gcc.gnu.org>
Sat, 8 Sep 2018 14:27:25 +0000 (14:27 +0000)
* c-c++-common/array-init.c: Add dg-prune-output.
* g++.dg/cpp0x/lambda/lambda-const-this.C: Add dg-warning.
* g++.dg/cpp0x/lambda/lambda-in-class-neg.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-in-class.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-nested.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-nsdmi1.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-nsdmi4.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-this.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-this17.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-this18.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-this2.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-this8.C: Likewise.
* g++.dg/cpp1y/pr64382.C: Likewise.
* g++.dg/cpp1y/pr77739.C: Likewise.
* g++.dg/cpp1z/lambda-this1.C: Likewise.
* g++.dg/cpp1z/lambda-this2.C: Likewise.
* g++.dg/template/crash84.C: Adjust dg-error.

From-SVN: r264169

18 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/array-init.c
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-this.C
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-in-class-neg.C
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-in-class.C
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested.C
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi1.C
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi4.C
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this.C
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this17.C
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this18.C
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this2.C
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this8.C
gcc/testsuite/g++.dg/cpp1y/pr64382.C
gcc/testsuite/g++.dg/cpp1y/pr77739.C
gcc/testsuite/g++.dg/cpp1z/lambda-this1.C
gcc/testsuite/g++.dg/cpp1z/lambda-this2.C
gcc/testsuite/g++.dg/template/crash84.C

index 5357856c464de2ce0dea999312ce86f2a5bc15c6..15e3979fae1e3b4665d424380eb320d0154b78b9 100644 (file)
@@ -1,3 +1,23 @@
+2018-09-08  Marek Polacek  <polacek@redhat.com>
+
+       * c-c++-common/array-init.c: Add dg-prune-output.
+       * g++.dg/cpp0x/lambda/lambda-const-this.C: Add dg-warning.
+       * g++.dg/cpp0x/lambda/lambda-in-class-neg.C: Likewise.
+       * g++.dg/cpp0x/lambda/lambda-in-class.C: Likewise.
+       * g++.dg/cpp0x/lambda/lambda-nested.C: Likewise.
+       * g++.dg/cpp0x/lambda/lambda-nsdmi1.C: Likewise.
+       * g++.dg/cpp0x/lambda/lambda-nsdmi4.C: Likewise.
+       * g++.dg/cpp0x/lambda/lambda-this.C: Likewise.
+       * g++.dg/cpp0x/lambda/lambda-this17.C: Likewise.
+       * g++.dg/cpp0x/lambda/lambda-this18.C: Likewise.
+       * g++.dg/cpp0x/lambda/lambda-this2.C: Likewise.
+       * g++.dg/cpp0x/lambda/lambda-this8.C: Likewise.
+       * g++.dg/cpp1y/pr64382.C: Likewise.
+       * g++.dg/cpp1y/pr77739.C: Likewise.
+       * g++.dg/cpp1z/lambda-this1.C: Likewise.
+       * g++.dg/cpp1z/lambda-this2.C: Likewise.
+       * g++.dg/template/crash84.C: Adjust dg-error.
+
 2018-09-07  Marek Polacek  <polacek@redhat.com>
 
        * g++.dg/cpp1z/direct-enum-init1.C: Remove "inside" from diagnostic
index 0624e70898713eab32b0d0b97aa11e996083f91a..3cc5722ea75c80a97efa653b6d4aac242b22d2ef 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
 /* { dg-prune-output "sorry, unimplemented: non-trivial designated initializers not supported" } */
+/* { dg-prune-output "all initializer clauses should be designated" } */
 
 char x[] = { [-1] = 1, 2, 3 }; /* { dg-error "array index in initializer exceeds array bounds" "" { target c } } */
index 220ac911cdb886a94d95b82910bf5ac499de1a9f..f51055d6e7daab4c8fd073adc8d8b0ccfa0dba49 100644 (file)
@@ -5,5 +5,6 @@ struct S {
   void f();
   void g() const {
     [=] { f(); } (); // { dg-error "no match|qualifiers" }
+// { dg-warning "implicit capture" "" { target c++2a } .-1 }
   }
 };
index 92a165d95bbfa2249ca37bc8a8f5eb2ce68367d3..cff3d3756826c8ecffe0d4dea76c953f13305381 100644 (file)
@@ -18,8 +18,9 @@ class C {
       [&] () -> void { this->m_i = 3; } ();
       assert(m_i == 3);
       [=] () -> void { m_i = 4; } (); // copies 'this' or --copies-m_i--?
+// { dg-warning "implicit capture" "" { target c++2a } .-1 }
       assert(m_i == 4);
-      [=] () -> void { this->m_i = 5; } ();
+      [=] () -> void { this->m_i = 5; } (); // { dg-warning "implicit capture" "" { target c++2a } }
       assert(m_i == 5);
     }
 
index 92981109fd82fd7502499cba32ee3e750f6f34e2..f2b54e58ad37b2b70962bd3fb3597dd377932dbe 100644 (file)
@@ -18,8 +18,9 @@ class C {
       [&] () -> void { this->m_i = 3; } ();
       assert(m_i == 3);
       [=] () -> void { m_i = 4; } (); // copies 'this' or --copies-m_i--?
+// { dg-warning "implicit capture" "" { target c++2a } .-1 }
       assert(m_i == 4);
-      [=] () -> void { this->m_i = 5; } ();
+      [=] () -> void { this->m_i = 5; } (); // { dg-warning "implicit capture" "" { target c++2a } }
       assert(m_i == 5);
     }
 
index c8ea46a980fe8ffb8fdd7301d8e9d50fb68323b8..3848938d55f0442c64c9443457a989a4d9410bf7 100644 (file)
@@ -7,7 +7,7 @@ struct A {
   A(): i(42) { }
   int f() {
     return [this]{
-      return [=]{ return i; }();
+      return [=]{ return i; }(); // { dg-warning "implicit capture" "" { target c++2a } }
     }();
   }
 };
index 94dc254fd7c09c5134b338236646a7f50ef353bf..b6972896ecbf9922682276039c213c95af452895 100644 (file)
@@ -1,7 +1,7 @@
 // PR c++/56464
 // { dg-do run { target c++11 } }
 
-struct bug { bug*a = [&]{ return [=]{return this;}(); }(); };
+struct bug { bug*a = [&]{ return [=]{return this;}(); }(); }; // { dg-warning "implicit capture" "" { target c++2a } }
 int main()
 {
   bug b;
index b592f15506391a0c297133b1aefbddefbd7843d2..127bd26b95305213d119d41bd658dba0074e1f43 100644 (file)
@@ -10,5 +10,5 @@ struct function
 struct testee
 {
   function l1 = []() { };
-  function l2 = [=]() { l1; };
+  function l2 = [=]() { l1; }; // { dg-warning "implicit capture" "" { target c++2a } }
 };
index b32f8d7cc28e18a3afb3ea499c19edbbd022376c..7a27cf44a6822020e46d9fd2688927959eb74e02 100644 (file)
@@ -6,8 +6,9 @@ struct A
   int i;
   void f()
   {
-    [=] { i = 0; };
+    [=] { i = 0; };            // { dg-warning "implicit capture" "" { target c++2a } }
     [&] { i = 0; };
     [=] { this = 0; };         // { dg-error "lvalue" }
+// { dg-warning "implicit capture" "" { target c++2a } .-1 }
   }
 };
index 2386e6b1eb8273272000b8878113ad43171e9a70..b7cdf31c46bb8381f71a9dc5cb702a8792856955 100644 (file)
@@ -7,7 +7,7 @@ struct Test {
 
 struct TestPickled : Test {  
   template<typename... Args> void triggerTest (Args&&... fargs) { 
-    [=](Args... as) {
+    [=](Args... as) { // { dg-warning "implicit capture" "" { target c++2a } }
       Test::triggerTest (as...);
     } ();              
   }
index fec2da615b67ba0ffe54c1c65cd3359d268412e5..3cfd3c0f2525e8d3585dbd8ef2cf04c20e2b3144 100644 (file)
@@ -18,7 +18,7 @@ template <class U>
 void
 A<T>::bar ()
 {
-  auto f = [this] () { auto g = [=] () { a.foo (); }; g (); };
+  auto f = [this] () { auto g = [=] () { a.foo (); }; g (); }; // { dg-warning "implicit capture" "" { target c++2a } }
   f ();
 }
 
index 5029a4a7638a4ee1d716f6e3959f9455a38aaee2..56d6b0c8ab99d462734a01f33adb394b27179184 100644 (file)
@@ -7,7 +7,7 @@ struct S1 {
   int i;
   void g();
   void f() {
-    [=]() {
+    [=]() { // { dg-warning "implicit capture" "" { target c++2a } }
       i;
       g();
       S1::g();
index d7c5d2c051de3d7cfa401cfbd34d64777d1ab2b6..e62cd08a614e410a4c2eeaf720e0b471f782bbfb 100644 (file)
@@ -6,21 +6,21 @@
 struct test {
   template<typename T>
   std::function<void()> broken(int x) {
-    return [=] { +x; print<T>(); };
+    return [=] { +x; print<T>(); }; // { dg-warning "implicit capture" "" { target c++2a } }
   }
 
   std::function<void()> works0() {
-    return [=] { print<int>(); };
+    return [=] { print<int>(); }; // { dg-warning "implicit capture" "" { target c++2a } }
   }
 
   template<typename T>
   std::function<void()> works1() {
-    return [=] { print<int>(); };
+    return [=] { print<int>(); }; // { dg-warning "implicit capture" "" { target c++2a } }
   }
 
   template<typename T>
   std::function<void()> works2() {
-    return [=] { this->print<T>(); };
+    return [=] { this->print<T>(); }; // { dg-warning "implicit capture" "" { target c++2a } }
   }
 
   template<typename T>
index 8f2e931e0486b613023782c3bb2e87aa7df48441..0342dee7e9862631b257a6daef2fc2bf6a73cf3a 100644 (file)
@@ -9,7 +9,7 @@ struct my_queue
   }
   void ice()
   {
-    auto L = [=](auto &&v) {
+    auto L = [=](auto &&v) { // { dg-warning "implicit capture" "" { target c++2a } }
       push(v);
     };
     trav(L);
index 96183305a7d3e001af1949f42a03180c6e584882..8fe76f99f56ea5ac5a3dff823a1afccd44d6d8b5 100644 (file)
@@ -8,7 +8,7 @@ struct A {
 struct B {
   B();
   template <typename... Args> auto g(Args &&... p1) {
-    return [=] { f(p1...); };
+    return [=] { f(p1...); }; // { dg-warning "implicit capture" "" { target c++2a } }
   }
   void f(A, const char *);
 };
index 2c49dd9bf73c011f71604350c3cdc00ea890db7e..b13ff8b9fc69d008574ea929db628f18e413d5a7 100644 (file)
@@ -15,7 +15,7 @@ struct A {
     auto g = [*this] { a++; };         // { dg-error "in read-only object" }
                                        // { dg-error "'*this' capture only available with" "" { target c++14_down } .-1 }
     auto h = [*this] () mutable { a++; };// { dg-error "'*this' capture only available with" "" { target c++14_down } }
-    auto i = [=] { return a; };
+    auto i = [=] { return a; };                // { dg-warning "implicit capture" "" { target c++2a } }
     auto j = [&] { return a; };
     // P0409R2 - C++2A lambda capture [=, this]
     auto k = [=, this] { return a; };// { dg-error "explicit by-copy capture of 'this' redundant with by-copy capture default" "" { target c++17_down } }
@@ -62,7 +62,7 @@ struct C {
     auto d = [this] { return c; };
     auto e = [*this] { return c; };    // { dg-error "use of deleted function" }
                                        // { dg-error "'*this' capture only available with" "" { target c++14_down } .-1 }
-    auto f = [=] { return c; };
+    auto f = [=] { return c; };                // { dg-warning "implicit capture" "" { target c++2a } }
     auto g = [&] { return c; };
     auto h = [this] { bar (); };
     auto i = [*this] { bar (); };      // { dg-error "use of deleted function" }
@@ -77,7 +77,7 @@ struct D {
     auto e = [this] { return d; };
     auto f = [*this] { return d; };    // { dg-error "use of deleted function" }
                                        // { dg-error "'*this' capture only available with" "" { target c++14_down } .-1 }
-    auto g = [=] { return d; };
+    auto g = [=] { return d; };                // { dg-warning "implicit capture" "" { target c++2a } }
     auto h = [&] { return d; };
     auto i = [this] { bar (); };
     auto j = [*this] { bar (); };      // { dg-error "use of deleted function" }
index 5a0066d750b01f324b81adb074462c2b16a64b59..f3ef8e363130ae67ad2e4089facab5425965b0d6 100644 (file)
@@ -12,7 +12,7 @@ struct A {
     if (z != 0) abort ();
     auto b = [this] { return &a; };
     auto c = [*this] { return &a; };   // { dg-warning "'*this' capture only available with" "" { target c++14_down } }
-    auto d = [=] { return &a; };
+    auto d = [=] { return &a; }; // { dg-warning "implicit capture" "" { target c++2a } }
     auto e = [&] { return &a; };
     if (b () != &a) abort ();
     if (*b () != 4) abort ();
@@ -24,7 +24,7 @@ struct A {
     if (e () != &a) abort ();
     auto g = [this] { return a + z; };
     auto h = [*this] { return a + z; };        // { dg-warning "'*this' capture only available with" "" { target c++14_down } }
-    auto i = [=] { return a + z; };
+    auto i = [=] { return a + z; }; // { dg-warning "implicit capture" "" { target c++2a } }
     auto j = [&] { return a + z; };
     if (g () != 4 || h () != 5 || i () != 4 || j () != 4) abort ();
   }
@@ -39,7 +39,7 @@ struct B {
     if (z != 0) abort ();
     auto b = [this] { return &a; };
     auto c = [*this] { return &a; };   // { dg-warning "'*this' capture only available with" "" { target c++14_down } }
-    auto d = [=] { return &a; };
+    auto d = [=] { return &a; }; // { dg-warning "implicit capture" "" { target c++2a } }
     auto e = [&] { return &a; };
     if (b () != &a) abort ();
     if (*b () != 9) abort ();
@@ -51,7 +51,7 @@ struct B {
     if (e () != &a) abort ();
     auto g = [this] { return a + z; };
     auto h = [*this] { return a + z; };        // { dg-warning "'*this' capture only available with" "" { target c++14_down } }
-    auto i = [=] { return a + z; };
+    auto i = [=] { return a + z; }; // { dg-warning "implicit capture" "" { target c++2a } }
     auto j = [&] { return a + z; };
     if (g () != 9 || h () != 10 || i () != 9 || j () != 9) abort ();
   }
index b3099d931c2ede5bb525e92719622ede565b7207..f90cf5c18d442cccfc5d5f72233bb77a53d6c480 100644 (file)
@@ -14,7 +14,7 @@ void
 foo ()
 {
   a<int> a1; // OK
-  a<int>::b<a,int> b1; // { dg-error "template argument|converted constant" }
+  a<int>::b<a,int> b1; // { dg-error "template argument|convert" }
 }
 
 // { dg-prune-output "invalid type in declaration" }