From: David Majnemer Date: Wed, 11 Feb 2015 08:23:20 +0000 (+0000) Subject: Verifier: Make sure !llvm.ident's operand isn't null X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e37f2a0dc69326363cbe0b1e7a4120e71814deaf;p=oota-llvm.git Verifier: Make sure !llvm.ident's operand isn't null git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228815 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/IR/Verifier.cpp b/lib/IR/Verifier.cpp index f66cd478e94..37816a374cb 100644 --- a/lib/IR/Verifier.cpp +++ b/lib/IR/Verifier.cpp @@ -818,7 +818,7 @@ void Verifier::visitModuleIdents(const Module &M) { const MDNode *N = Idents->getOperand(i); Assert1(N->getNumOperands() == 1, "incorrect number of operands in llvm.ident metadata", N); - Assert1(isa(N->getOperand(0)), + Assert1(dyn_cast_or_null(N->getOperand(0)), ("invalid value for llvm.ident metadata entry operand" "(the operand should be a string)"), N->getOperand(0)); diff --git a/test/Verifier/ident-meta4.ll b/test/Verifier/ident-meta4.ll new file mode 100644 index 00000000000..f44dbd540a1 --- /dev/null +++ b/test/Verifier/ident-meta4.ll @@ -0,0 +1,9 @@ +; RUN: not llvm-as < %s -o /dev/null 2>&1 | FileCheck %s +; Verify that llvm.ident is properly structured. +; llvm.ident takes a list of metadata entries. +; Each metadata entry can contain one string only. + +!llvm.ident = !{!0} +!0 = !{null} +; CHECK: assembly parsed, but does not verify as correct! +; CHECK-NEXT: invalid value for llvm.ident metadata entry operand(the operand should be a string)