aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorVille Voutilainen <ville.voutilainen@gmail.com>2014-09-15 22:31:35 +0300
committerJason Merrill <jason@gcc.gnu.org>2014-09-15 15:31:35 -0400
commit6a3d8ef0b86f81b7eb72a29b3d5339f5062a8453 (patch)
tree650a46bd061d784abf874573183e531f45f1c78c /gcc
parent717c478953c6ba2bd82e8ffba4b79d17dbf75626 (diff)
downloadgcc-6a3d8ef0b86f81b7eb72a29b3d5339f5062a8453.zip
gcc-6a3d8ef0b86f81b7eb72a29b3d5339f5062a8453.tar.gz
gcc-6a3d8ef0b86f81b7eb72a29b3d5339f5062a8453.tar.bz2
Do not diagnose lambda default arguments in c++14 modes.
* parser.c (cp_parser_lambda_declarator_opt): Make the pedwarn conditional. From-SVN: r215274
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/parser.c2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg.C2
3 files changed, 8 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index fe31236..7e1b0f9 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -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
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index a3c947a..9764794 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -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");
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg.C
index cefa24d..7f69ea1 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg.C
@@ -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 } } }
}