Really, really fix PointerUnion3::is
[oota-llvm.git] / include / llvm / ADT / PointerUnion.h
index 43f5e09cf9e316d00e527f76323ee25c816c2c41..0737000c47c0f95d959d1d45fe53b376e4a52490 100644 (file)
@@ -182,7 +182,7 @@ namespace llvm {
     int is() const {
       // Is it PT1/PT2?
       if (::llvm::getPointerUnionTypeNum<PT1, PT2>((T*)0) != -1)
-        return Val.get<InnerUnion>().is<T>();
+        return Val.is<InnerUnion>() && Val.get<InnerUnion>().is<T>();
       // Must be PT3 or statically invalid.
       assert(Val.is<T>());
       return true;