summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaInit.h
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-06-07 16:14:00 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-06-07 16:14:00 +0000
commit28ed927ddfd6bfac30b15b42951a80d21a5588d3 (patch)
treebb1fa706eb00d046b37265a1b76157ea506a0ba6 /clang/lib/Sema/SemaInit.h
parent5968eb270ae5d2adc60b081f9cde57a07289e83f (diff)
downloadbcm5719-llvm-28ed927ddfd6bfac30b15b42951a80d21a5588d3.tar.gz
bcm5719-llvm-28ed927ddfd6bfac30b15b42951a80d21a5588d3.zip
Use MaybeCreateCXXExprWithTemporaries for potential destruction of
created temporary. Use own initialized entity for copied in block variables. llvm-svn: 105533
Diffstat (limited to 'clang/lib/Sema/SemaInit.h')
-rw-r--r--clang/lib/Sema/SemaInit.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaInit.h b/clang/lib/Sema/SemaInit.h
index a9064ede6d3..44c36a735bc 100644
--- a/clang/lib/Sema/SemaInit.h
+++ b/clang/lib/Sema/SemaInit.h
@@ -66,7 +66,10 @@ public:
EK_Base,
/// \brief The entity being initialized is an element of a vector.
/// or vector.
- EK_VectorElement
+ EK_VectorElement,
+ /// \brief The entity being initialized is a field of block descriptor for
+ /// the copied-in c++ object.
+ EK_BlockElement
};
private:
@@ -166,6 +169,11 @@ public:
return InitializedEntity(EK_Result, ReturnLoc, Type, NRVO);
}
+ static InitializedEntity InitializeBlock(SourceLocation BlockVarLoc,
+ QualType Type, bool NRVO) {
+ return InitializedEntity(EK_BlockElement, BlockVarLoc, Type, NRVO);
+ }
+
/// \brief Create the initialization entity for an exception object.
static InitializedEntity InitializeException(SourceLocation ThrowLoc,
QualType Type, bool NRVO) {
OpenPOWER on IntegriCloud