On 26 September 2013 12:54, Faisal Vali <[email protected]> wrote: > Author: faisalv > Date: Thu Sep 26 14:54:12 2013 > New Revision: 191453 > > URL: http://llvm.org/viewvc/llvm-project?rev=191453&view=rev > Log: > Implement a rudimentary form of generic lambdas. > > Specifically, the following features are not included in this commit: > - any sort of capturing within generic lambdas > - generic lambdas within template functions and nested > within other generic lambdas > - conversion operator for captureless lambdas > - ensuring all visitors are generic lambda aware > (Although I have gotten some useful feedback on my patches of the above > and will be incorporating that as I submit those patches for commit) >
[...] > Modified: cfe/trunk/lib/Parse/ParseExprCXX.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseExprCXX.cpp?rev=191453&r1=191452&r2=191453&view=diff > > ============================================================================== > --- cfe/trunk/lib/Parse/ParseExprCXX.cpp (original) > +++ cfe/trunk/lib/Parse/ParseExprCXX.cpp Thu Sep 26 14:54:12 2013 > @@ -10,7 +10,7 @@ > // This file implements the Expression parsing implementation for C++. > // > > > //===----------------------------------------------------------------------===// > - > +#include "clang/AST/DeclTemplate.h" > #include "clang/Parse/Parser.h" > #include "RAIIObjectsForParser.h" > #include "clang/Basic/PrettyStackTrace.h" > @@ -21,6 +21,7 @@ > #include "clang/Sema/Scope.h" > #include "llvm/Support/ErrorHandling.h" > > + > using namespace clang; > > static int SelectDigraphErrorMessage(tok::TokenKind Kind) { > @@ -908,12 +909,16 @@ ExprResult Parser::ParseLambdaExpression > PrettyStackTraceLoc CrashInfo(PP.getSourceManager(), LambdaBeginLoc, > "lambda expression parsing"); > > + > + > // FIXME: Call into Actions to add any init-capture declarations to the > // scope while parsing the lambda-declarator and compound-statement. > > // Parse lambda-declarator[opt]. > DeclSpec DS(AttrFactory); > Declarator D(DS, Declarator::LambdaExprContext); > + TemplateParameterDepthRAII > CurTemplateDepthTracker(TemplateParameterDepth); > + Actions.PushLambdaScope(); > > if (Tok.is(tok::l_paren)) { > ParseScope PrototypeScope(this, > @@ -931,9 +936,16 @@ ExprResult Parser::ParseLambdaExpression > SmallVector<DeclaratorChunk::ParamInfo, 16> ParamInfo; > SourceLocation EllipsisLoc; > > - if (Tok.isNot(tok::r_paren)) > + > + if (Tok.isNot(tok::r_paren)) { > + sema::LambdaScopeInfo *LSI = Actions.getCurLambda(); > tools/**clang/lib/Parse/ParseExprCXX.**cpp:943:30: error: unused variable 'LSI' [-Werror,-Wunused-variable] sema::LambdaScopeInfo *LSI = Actions.getCurLambda(); ^ 1 error generated. Nick
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
