remove bogus assert, use static_cast for additional checking

left two new asserts commented out, because they would fire in clang, have to hunt those down first

llvm-svn: 109544
This commit is contained in:
Gabor Greif 2010-07-27 21:46:11 +00:00
parent 7ea3501bd8
commit 63f55c49f2
1 changed files with 4 additions and 5 deletions

View File

@ -49,13 +49,12 @@ protected:
PointerIntPair<InstrTy*, 1, bool> I;
public:
CallSiteBase() : I(0, false) {}
CallSiteBase(CallTy *CI) : I(reinterpret_cast<InstrTy*>(CI), true) {}
CallSiteBase(InvokeTy *II) : I(reinterpret_cast<InstrTy*>(II), false) {}
CallSiteBase(CallTy *CI) : I(CI, true) { /*assert(CI);*/ }
CallSiteBase(InvokeTy *II) : I(II, false) { /*assert(II);*/ }
CallSiteBase(ValTy *II) { *this = get(II); }
CallSiteBase(InstrTy *II) {
assert(II && "Null instruction given?");
*this = get(II);
assert(I.getPointer());
}
/// CallSiteBase::get - This static method is sort of like a constructor. It
@ -66,9 +65,9 @@ public:
static CallSiteBase get(ValTy *V) {
if (InstrTy *II = dyn_cast<InstrTy>(V)) {
if (II->getOpcode() == Instruction::Call)
return CallSiteBase(reinterpret_cast<CallTy*>(II));
return CallSiteBase(static_cast<CallTy*>(II));
else if (II->getOpcode() == Instruction::Invoke)
return CallSiteBase(reinterpret_cast<InvokeTy*>(II));
return CallSiteBase(static_cast<InvokeTy*>(II));
}
return CallSiteBase();
}