From d7677e7a8d3bdcce751a37deabe35533a9018759 Mon Sep 17 00:00:00 2001 From: David Majnemer Date: Wed, 11 Feb 2015 09:13:06 +0000 Subject: Verifier: Check for null operands in !llvm.module.flags llvm-svn: 228818 --- llvm/lib/IR/Module.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'llvm/lib/IR/Module.cpp') diff --git a/llvm/lib/IR/Module.cpp b/llvm/lib/IR/Module.cpp index d32ffcd..b0abe8c 100644 --- a/llvm/lib/IR/Module.cpp +++ b/llvm/lib/IR/Module.cpp @@ -278,7 +278,7 @@ void Module::eraseNamedMetadata(NamedMDNode *NMD) { } bool Module::isValidModFlagBehavior(Metadata *MD, ModFlagBehavior &MFB) { - if (ConstantInt *Behavior = mdconst::dyn_extract(MD)) { + if (ConstantInt *Behavior = mdconst::dyn_extract_or_null(MD)) { uint64_t Val = Behavior->getLimitedValue(); if (Val >= ModFlagBehaviorFirstVal && Val <= ModFlagBehaviorLastVal) { MFB = static_cast(Val); @@ -298,7 +298,7 @@ getModuleFlagsMetadata(SmallVectorImpl &Flags) const { ModFlagBehavior MFB; if (Flag->getNumOperands() >= 3 && isValidModFlagBehavior(Flag->getOperand(0), MFB) && - isa(Flag->getOperand(1))) { + dyn_cast_or_null(Flag->getOperand(1))) { // Check the operands of the MDNode before accessing the operands. // The verifier will actually catch these failures. MDString *Key = cast(Flag->getOperand(1)); -- cgit v1.1