summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/IR/Verifier.cpp2
-rw-r--r--llvm/test/Verifier/module-flags-3.ll6
2 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp
index 22a5a9620b0..0b9f6786000 100644
--- a/llvm/lib/IR/Verifier.cpp
+++ b/llvm/lib/IR/Verifier.cpp
@@ -877,7 +877,7 @@ Verifier::visitModuleFlag(const MDNode *Op,
"invalid behavior operand in module flag (unexpected constant)",
Op->getOperand(0));
}
- MDString *ID = dyn_cast<MDString>(Op->getOperand(1));
+ MDString *ID = dyn_cast_or_null<MDString>(Op->getOperand(1));
Assert1(ID,
"invalid ID operand in module flag (expected metadata string)",
Op->getOperand(1));
diff --git a/llvm/test/Verifier/module-flags-3.ll b/llvm/test/Verifier/module-flags-3.ll
new file mode 100644
index 00000000000..64ab57ed786
--- /dev/null
+++ b/llvm/test/Verifier/module-flags-3.ll
@@ -0,0 +1,6 @@
+; RUN: not llvm-as < %s -o /dev/null 2>&1 | FileCheck %s
+
+!llvm.module.flags = !{!0}
+!0 = !{i32 1, null, null}
+
+; CHECK: invalid ID operand in module flag (expected metadata string)
OpenPOWER on IntegriCloud