diff options
Diffstat (limited to 'clang/lib/AST/DeclCXX.cpp')
| -rw-r--r-- | clang/lib/AST/DeclCXX.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/lib/AST/DeclCXX.cpp b/clang/lib/AST/DeclCXX.cpp index 5b9ab4ff5c2..b5b3f12f5e1 100644 --- a/clang/lib/AST/DeclCXX.cpp +++ b/clang/lib/AST/DeclCXX.cpp @@ -1759,6 +1759,21 @@ CXXConversionDecl::Create(ASTContext &C, CXXRecordDecl *RD, EndLocation); } +bool CXXConversionDecl::isLambdaToBlockPointerConversion() const { + return isImplicit() && getParent()->isLambda() && + getConversionType()->isBlockPointerType(); +} + +Expr *CXXConversionDecl::getLambdaToBlockPointerCopyInit() const { + assert(isLambdaToBlockPointerConversion()); + return getASTContext().LambdaBlockPointerInits[this]; +} + +void CXXConversionDecl::setLambdaToBlockPointerCopyInit(Expr *Init) { + assert(isLambdaToBlockPointerConversion()); + getASTContext().LambdaBlockPointerInits[this] = Init; +} + void LinkageSpecDecl::anchor() { } LinkageSpecDecl *LinkageSpecDecl::Create(ASTContext &C, |

