Improve error messages on assertion failure.
authorChris Lattner <sabre@nondot.org>
Mon, 15 Oct 2001 13:13:32 +0000 (13:13 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 15 Oct 2001 13:13:32 +0000 (13:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@821 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Value.h

index ea17c3ef2ec34f74fcc744377436627aadfe48ee..aece4ce2439682c5e052d7ba3358a7962d619694 100644 (file)
@@ -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;
 }