summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/Verifier.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/VMCore/Verifier.cpp')
-rw-r--r--llvm/lib/VMCore/Verifier.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/VMCore/Verifier.cpp b/llvm/lib/VMCore/Verifier.cpp
index 140e6bd8b15..f1f6e2e199b 100644
--- a/llvm/lib/VMCore/Verifier.cpp
+++ b/llvm/lib/VMCore/Verifier.cpp
@@ -1143,6 +1143,16 @@ void Verifier::visitCallInst(CallInst &CI) {
if (Function *F = CI.getCalledFunction())
if (Intrinsic::ID ID = (Intrinsic::ID)F->getIntrinsicID())
visitIntrinsicFunctionCall(ID, CI);
+
+ // Code here matches isMalloc from MallocHelper, which is not in VMCore.
+ const Module* M = CI.getParent()->getParent()->getParent();
+ Constant *MallocFunc = M->getFunction("malloc");
+
+ if (CI.getOperand(0) == MallocFunc) {
+ const PointerType *PTy =
+ PointerType::getUnqual(Type::getInt8Ty(CI.getParent()->getContext()));
+ Assert1(CI.getType() == PTy, "Malloc call must return i8*", &CI);
+ }
}
void Verifier::visitInvokeInst(InvokeInst &II) {
OpenPOWER on IntegriCloud