diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2014-11-24 09:15:30 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2014-11-24 09:15:30 +0000 |
commit | 9f4dbff6669c8037f3b036bcf580d14f1a4f12a5 (patch) | |
tree | 47df2c12b57214af6c31e47404b005675b8b7ffc /include/clang/Sema/Ownership.h | |
parent | f73d5f23a889b93d89ddef61ac0995df40286bb8 (diff) | |
download | src-9f4dbff6669c8037f3b036bcf580d14f1a4f12a5.tar.gz src-9f4dbff6669c8037f3b036bcf580d14f1a4f12a5.zip |
Vendor import of clang RELEASE_350/final tag r216957 (effectively, 3.5.0 release):vendor/clang/clang-release_350-r216957
Notes
Notes:
svn path=/vendor/clang/dist/; revision=274958
svn path=/vendor/clang/clang-release_350-r216957/; revision=274959; tag=vendor/clang/clang-release_350-r216957
Diffstat (limited to 'include/clang/Sema/Ownership.h')
-rw-r--r-- | include/clang/Sema/Ownership.h | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/include/clang/Sema/Ownership.h b/include/clang/Sema/Ownership.h index b7d7710eb121..8031562e0ec4 100644 --- a/include/clang/Sema/Ownership.h +++ b/include/clang/Sema/Ownership.h @@ -49,7 +49,7 @@ namespace clang { typedef llvm::PointerLikeTypeTraits<PtrTy> Traits; public: - OpaquePtr() : Ptr(0) {} + OpaquePtr() : Ptr(nullptr) {} static OpaquePtr make(PtrTy P) { OpaquePtr OP; OP.set(P); return OP; } @@ -79,7 +79,7 @@ namespace clang { Ptr = Traits::getAsVoidPointer(P); } - LLVM_EXPLICIT operator bool() const { return Ptr != 0; } + LLVM_EXPLICIT operator bool() const { return Ptr != nullptr; } void *getAsOpaquePtr() const { return Ptr; } static OpaquePtr getFromOpaquePtr(void *P) { return OpaquePtr(P); } @@ -158,12 +158,10 @@ namespace clang { bool isInvalid() const { return Invalid; } bool isUsable() const { return !Invalid && Val; } + bool isUnset() const { return !Invalid && !Val; } PtrTy get() const { return Val; } - // FIXME: Replace with get. - PtrTy release() const { return Val; } - PtrTy take() const { return Val; } - template <typename T> T *takeAs() { return static_cast<T*>(get()); } + template <typename T> T *getAs() { return static_cast<T*>(get()); } void set(PtrTy V) { Val = V; } @@ -199,15 +197,13 @@ namespace clang { bool isInvalid() const { return PtrWithInvalid & 0x01; } bool isUsable() const { return PtrWithInvalid > 0x01; } + bool isUnset() const { return PtrWithInvalid == 0; } PtrTy get() const { void *VP = reinterpret_cast<void *>(PtrWithInvalid & ~0x01); return PtrTraits::getFromVoidPointer(VP); } - // FIXME: Replace with get. - PtrTy take() const { return get(); } - PtrTy release() const { return get(); } - template <typename T> T *takeAs() { return static_cast<T*>(get()); } + template <typename T> T *getAs() { return static_cast<T*>(get()); } void set(PtrTy V) { void *VP = PtrTraits::getAsVoidPointer(V); @@ -262,11 +258,11 @@ namespace clang { typedef ActionResult<Decl*> DeclResult; typedef OpaquePtr<TemplateName> ParsedTemplateTy; - typedef llvm::MutableArrayRef<Expr*> MultiExprArg; - typedef llvm::MutableArrayRef<Stmt*> MultiStmtArg; - typedef llvm::MutableArrayRef<ParsedTemplateArgument> ASTTemplateArgsPtr; - typedef llvm::MutableArrayRef<ParsedType> MultiTypeArg; - typedef llvm::MutableArrayRef<TemplateParameterList*> MultiTemplateParamsArg; + typedef MutableArrayRef<Expr*> MultiExprArg; + typedef MutableArrayRef<Stmt*> MultiStmtArg; + typedef MutableArrayRef<ParsedTemplateArgument> ASTTemplateArgsPtr; + typedef MutableArrayRef<ParsedType> MultiTypeArg; + typedef MutableArrayRef<TemplateParameterList*> MultiTemplateParamsArg; inline ExprResult ExprError() { return ExprResult(true); } inline StmtResult StmtError() { return StmtResult(true); } |