diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2012-02-11 02:57:39 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2012-02-11 02:57:39 +0000 |
commit | cec5ebd4a6a89a7023d04cec728fd340b541ed61 (patch) | |
tree | ba89ba17ed6bc4f88a8cbb9e393a0d9979e5f58a /lib/CodeGen/CodeGenFunction.h | |
parent | 668165ab1e604b063c0aa0df8ff91c80879670bf (diff) |
Basic support for referring to captured variables from lambdas. Some simple examples seem to work. Tests coming up soon.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150293 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CodeGenFunction.h')
-rw-r--r-- | lib/CodeGen/CodeGenFunction.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h index e9766ab933..277640b8ce 100644 --- a/lib/CodeGen/CodeGenFunction.h +++ b/lib/CodeGen/CodeGenFunction.h @@ -599,6 +599,9 @@ public: const CodeGen::CGBlockInfo *BlockInfo; llvm::Value *BlockPointer; + llvm::DenseMap<const VarDecl *, FieldDecl *> LambdaCaptureFields; + FieldDecl *LambdaThisCaptureField; + /// \brief A mapping from NRVO variables to the flags used to indicate /// when the NRVO has been applied to this variable. llvm::DenseMap<const VarDecl *, llvm::Value *> NRVOFlags; @@ -1164,7 +1167,8 @@ private: /// CXXThisDecl - When generating code for a C++ member function, /// this will hold the implicit 'this' declaration. - ImplicitParamDecl *CXXThisDecl; + ImplicitParamDecl *CXXABIThisDecl; + llvm::Value *CXXABIThisValue; llvm::Value *CXXThisValue; /// CXXVTTDecl - When generating code for a base object constructor or |