diff options
| author | David Majnemer <david.majnemer@gmail.com> | 2015-02-16 08:14:22 +0000 |
|---|---|---|
| committer | David Majnemer <david.majnemer@gmail.com> | 2015-02-16 08:14:22 +0000 |
| commit | 04b4ed329e7d7ef95e4008606ea917c2307f5273 (patch) | |
| tree | 7ea6a81ce7b402482480606558f26e067e9a9a52 | |
| parent | c3fe35df4c2dff728d7fb9db9aee60bd6069cbc8 (diff) | |
| download | bcm5719-llvm-04b4ed329e7d7ef95e4008606ea917c2307f5273.tar.gz bcm5719-llvm-04b4ed329e7d7ef95e4008606ea917c2307f5273.zip | |
Verifier: Diagnose module flags which have null ID operands
llvm-svn: 229361
| -rw-r--r-- | llvm/lib/IR/Verifier.cpp | 2 | ||||
| -rw-r--r-- | llvm/test/Verifier/module-flags-3.ll | 6 |
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) |

