diff --git a/lib/Analysis/MemoryBuiltins.cpp b/lib/Analysis/MemoryBuiltins.cpp index d1a9363b411..a9f12445350 100644 --- a/lib/Analysis/MemoryBuiltins.cpp +++ b/lib/Analysis/MemoryBuiltins.cpp @@ -66,13 +66,8 @@ static Function *getCalledFunction(const Value *V, bool LookThroughBitCast) { if (LookThroughBitCast) V = V->stripPointerCasts(); - Value *I = const_cast(V); - CallSite CS; - if (CallInst *CI = dyn_cast(I)) - CS = CallSite(CI); - else if (InvokeInst *II = dyn_cast(I)) - CS = CallSite(II); - else + CallSite CS(const_cast(V)); + if (!CS.getInstruction()) return 0; Function *Callee = CS.getCalledFunction();