diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index b2a68641940..44d85e706c6 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -11144,7 +11144,8 @@ static bool isSafeToLoadUnconditionally(Value *V, Instruction *ScanFrom) { // If we see a free or a call (which might do a free) the pointer could be // marked invalid. - if (isa(BBI) || isa(BBI)) + if (isa(BBI) || + (isa(BBI) && !isa(BBI))) return false; if (LoadInst *LI = dyn_cast(BBI)) {