aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Value.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/include/llvm/Value.h b/include/llvm/Value.h
index ea17c3ef2e..aece4ce243 100644
--- a/include/llvm/Value.h
+++ b/include/llvm/Value.h
@@ -188,7 +188,10 @@ template <class X> class real_type <class UseTy<X> > { typedef X *Type; };
// if (isa<Type>(myVal)) { ... }
//
template <class X, class Y>
-inline bool isa(Y Val) { return X::classof(Val); }
+inline bool isa(Y Val) {
+ assert(Val && "isa<Ty>(NULL) invoked!");
+ return X::classof(Val);
+}
// cast<X> - Return the argument parameter cast to the specified type. This
@@ -201,7 +204,8 @@ inline bool isa(Y Val) { return X::classof(Val); }
//
template <class X, class Y>
inline X *cast(Y Val) {
- assert((Val == 0 || isa<X>(Val)) && "Invalid cast argument type!");
+ assert((Val == 0 || isa<X>(Val)) &&
+ "cast<Ty>() argument of uncompatible type!");
return (X*)(real_type<Y>::Type)Val;
}