summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclCXX.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2013-04-17 16:25:20 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2013-04-17 16:25:20 +0000
commit3cb4c6307335ca4d294d7710cac3c28f1e519340 (patch)
tree90b19d894f9fec45e796005a6e47b2126b6d2f69 /clang/lib/Sema/SemaDeclCXX.cpp
parent9c2ccd622fe14bc7f0d752cda7263423722f441c (diff)
downloadbcm5719-llvm-3cb4c6307335ca4d294d7710cac3c28f1e519340.tar.gz
bcm5719-llvm-3cb4c6307335ca4d294d7710cac3c28f1e519340.zip
DR974: Lambdas can have default arguments.
llvm-svn: 179688
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp14
1 files changed, 2 insertions, 12 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index a318f64765f..d2051b52e83 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -636,22 +636,12 @@ void Sema::CheckCXXDefaultArguments(FunctionDecl *FD) {
bool IsLambda = FD->getOverloadedOperator() == OO_Call &&
isa<CXXMethodDecl>(FD) &&
cast<CXXMethodDecl>(FD)->getParent()->isLambda();
-
+
// Find first parameter with a default argument
for (p = 0; p < NumParams; ++p) {
ParmVarDecl *Param = FD->getParamDecl(p);
- if (Param->hasDefaultArg()) {
- // C++11 [expr.prim.lambda]p5:
- // [...] Default arguments (8.3.6) shall not be specified in the
- // parameter-declaration-clause of a lambda-declarator.
- //
- // FIXME: Core issue 974 strikes this sentence, we only provide an
- // extension warning.
- if (IsLambda)
- Diag(Param->getLocation(), diag::ext_lambda_default_arguments)
- << Param->getDefaultArgRange();
+ if (Param->hasDefaultArg())
break;
- }
}
// C++ [dcl.fct.default]p4:
OpenPOWER on IntegriCloud