lambda-this3.C: Limit dg-bogus directives to c++17_down only.
authorJakub Jelinek <jakub@redhat.com>
Tue, 23 Oct 2018 16:25:09 +0000 (18:25 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 23 Oct 2018 16:25:09 +0000 (18:25 +0200)
* g++.dg/cpp2a/lambda-this3.C: Limit dg-bogus directives to c++17_down
only.  Add expected warnings and messages for c++2a.

From-SVN: r265430

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp2a/lambda-this3.C

index fe6699e80a92abca029699ff64fee257f23a7a2a..1e992733ef120079678d74d9555e4101be26bab1 100644 (file)
@@ -1,3 +1,8 @@
+2018-10-23  Jakub Jelinek  <jakub@redhat.com>
+
+       * g++.dg/cpp2a/lambda-this3.C: Limit dg-bogus directives to c++17_down
+       only.  Add expected warnings and messages for c++2a.
+
 2018-10-23  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/87105
index d1738ea7d17c3fcb8b5505bfe089245411948d8a..b2d30d64e5a69bf9b1daa64c7383fa868ce04cf7 100644 (file)
@@ -5,7 +5,9 @@
 struct X {
   int x;
   void foo (int n) {
-    auto a1 = [=] { x = n; }; // { dg-bogus "implicit capture" }
+    auto a1 = [=] { x = n; }; // { dg-bogus "implicit capture" "" { target c++17_down } }
+                             // { dg-warning "implicit capture of 'this' via '\\\[=\\\]' is deprecated" "" { target c++2a } .-1 }
+                             // { dg-message "add explicit 'this' or '\\\*this' capture" "" { target c++2a } .-2 }
     auto a2 = [=, this] { x = n; };
     // { dg-warning "explicit by-copy capture" "" { target c++17_down } .-1 }
     auto a3 = [=, *this]() mutable { x = n; };
@@ -13,9 +15,15 @@ struct X {
     auto a5 = [&, this] { x = n; };
     auto a6 = [&, *this]() mutable { x = n; };
 
-    auto a7 = [=] { // { dg-bogus "implicit capture" }
-      auto a = [=] { // { dg-bogus "implicit capture" }
-        auto a2 = [=] { x = n; }; // { dg-bogus "implicit capture" }
+    auto a7 = [=] { // { dg-bogus "implicit capture" "" { target c++17_down } }
+                   // { dg-warning "implicit capture of 'this' via '\\\[=\\\]' is deprecated" "" { target c++2a } .-1 }
+                   // { dg-message "add explicit 'this' or '\\\*this' capture" "" { target c++2a } .-2 }
+      auto a = [=] { // { dg-bogus "implicit capture" "" { target c++17_down } }
+                    // { dg-warning "implicit capture of 'this' via '\\\[=\\\]' is deprecated" "" { target c++2a } .-1 }
+                    // { dg-message "add explicit 'this' or '\\\*this' capture" "" { target c++2a } .-2 }
+        auto a2 = [=] { x = n; }; // { dg-bogus "implicit capture" "" { target c++17_down } }
+                                  // { dg-warning "implicit capture of 'this' via '\\\[=\\\]' is deprecated" "" { target c++2a } .-1 }
+                                  // { dg-message "add explicit 'this' or '\\\*this' capture" "" { target c++2a } .-2 }
       };
     };