diff options
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); } |