aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Sema/Ownership.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/Sema/Ownership.h')
-rw-r--r--include/clang/Sema/Ownership.h26
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); }