Do not diagnose lambda default arguments in c++14 modes.
authorVille Voutilainen <ville.voutilainen@gmail.com>
Mon, 15 Sep 2014 19:31:35 +0000 (22:31 +0300)
committerJason Merrill <jason@gcc.gnu.org>
Mon, 15 Sep 2014 19:31:35 +0000 (15:31 -0400)
* parser.c (cp_parser_lambda_declarator_opt): Make the pedwarn
conditional.

From-SVN: r215274

gcc/cp/ChangeLog
gcc/cp/parser.c
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg.C

index fe312364ccc884a05197cd8e0ac90c347047bcb1..7e1b0f9f78dca15a8a23151fe5a15aac70ca7940 100644 (file)
@@ -1,3 +1,9 @@
+2014-09-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
+
+       Do not diagnose lambda default arguments in c++14 modes.
+       * parser.c (cp_parser_lambda_declarator_opt): Make the pedwarn
+       conditional.
+
 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
 
        * Make-lang.in (check_g++_parallelize): Change to just an upper bound
index a3c947a9a6908d5a987e5847a9124467eda82398..9764794c881428774eb1375161cbf3fa9d4facc7 100644 (file)
@@ -9222,7 +9222,7 @@ cp_parser_lambda_declarator_opt (cp_parser* parser, tree lambda_expr)
       /* Default arguments shall not be specified in the
         parameter-declaration-clause of a lambda-declarator.  */
       for (tree t = param_list; t; t = TREE_CHAIN (t))
-       if (TREE_PURPOSE (t))
+       if (TREE_PURPOSE (t) && cxx_dialect < cxx14)
          pedwarn (DECL_SOURCE_LOCATION (TREE_VALUE (t)), OPT_Wpedantic,
                   "default argument specified for lambda parameter");
 
index cefa24d434e2618fa87c275763833f5f7e8f4452..7f69ea13eefeb38c813e4b19b36d878a26ba5f54 100644 (file)
@@ -2,5 +2,5 @@
 
 int main()
 {
-  [](int a = 1) { return a; }(); // { dg-error "" }
+  [](int a = 1) { return a; }(); // { dg-error "default argument" "" { target { c++11_only } } }
 }