From 415561b6e077fb4dda5d59c699829c9e7d39e08e Mon Sep 17 00:00:00 2001 From: David Majnemer Date: Mon, 16 Feb 2015 09:18:13 +0000 Subject: [PATCH] AsmParser: extractvalue requires at least one index operand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229365 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/AsmParser/LLParser.cpp | 1 + test/Assembler/extractvalue-no-idx.ll | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 test/Assembler/extractvalue-no-idx.ll diff --git a/lib/AsmParser/LLParser.cpp b/lib/AsmParser/LLParser.cpp index 7818586dfa4..47125ca954c 100644 --- a/lib/AsmParser/LLParser.cpp +++ b/lib/AsmParser/LLParser.cpp @@ -1633,6 +1633,7 @@ bool LLParser::ParseIndexList(SmallVectorImpl &Indices, while (EatIfPresent(lltok::comma)) { if (Lex.getKind() == lltok::MetadataVar) { + if (Indices.empty()) return TokError("expected index"); AteExtraComma = true; return false; } diff --git a/test/Assembler/extractvalue-no-idx.ll b/test/Assembler/extractvalue-no-idx.ll new file mode 100644 index 00000000000..b3132097eb1 --- /dev/null +++ b/test/Assembler/extractvalue-no-idx.ll @@ -0,0 +1,8 @@ +; RUN: not llvm-as < %s 2>&1 | FileCheck %s + +; CHECK: expected index + +define void @f1() { + extractvalue <{ i32, i32 }> undef, !dbg !0 + ret void +}