diff options
author | Douglas Gregor <dgregor@apple.com> | 2012-02-01 17:18:19 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2012-02-01 17:18:19 +0000 |
commit | b710dfe5231b0cd44dd987b9bd33c7f6ac165807 (patch) | |
tree | 67a84b12726775cd28624a0f3e37c93f106bb7c4 /lib/Sema/SemaExprCXX.cpp | |
parent | a1f2114d9e81923c750f6b439302ac03552c37db (diff) |
Diagnose the restriction on default arguments in C++11 [expr.prim.lambda]p5.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149517 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaExprCXX.cpp')
-rw-r--r-- | lib/Sema/SemaExprCXX.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/Sema/SemaExprCXX.cpp b/lib/Sema/SemaExprCXX.cpp index c7daa80761..7e97b2919b 100644 --- a/lib/Sema/SemaExprCXX.cpp +++ b/lib/Sema/SemaExprCXX.cpp @@ -4886,9 +4886,15 @@ void Sema::ActOnStartOfLambdaDefinition(LambdaIntroducer &Intro, // C++11 [expr.prim.lambda]p5: // This function call operator is declared const (9.3.1) if and only if // the lambda-expression’s parameter-declaration-clause is not followed - // by mutable. It is neither virtual nor declared volatile. + // by mutable. It is neither virtual nor declared volatile. [...] if (!FTI.hasMutableQualifier()) FTI.TypeQuals |= DeclSpec::TQ_const; + + // C++11 [expr.prim.lambda]p5: + // [...] Default arguments (8.3.6) shall not be specified in the + // parameter-declaration-clause of a lambda-declarator. + CheckExtraCXXDefaultArguments(ParamInfo); + MethodTyInfo = GetTypeForDeclarator(ParamInfo, CurScope); // FIXME: Can these asserts actually fail? assert(MethodTyInfo && "no type from lambda-declarator"); |