AsmParser: extractvalue requires at least one index operand
authorDavid Majnemer <david.majnemer@gmail.com>
Mon, 16 Feb 2015 09:18:13 +0000 (09:18 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Mon, 16 Feb 2015 09:18:13 +0000 (09:18 +0000)
llvm-svn: 229365

llvm/lib/AsmParser/LLParser.cpp
llvm/test/Assembler/extractvalue-no-idx.ll [new file with mode: 0644]

index 7818586..47125ca 100644 (file)
@@ -1633,6 +1633,7 @@ bool LLParser::ParseIndexList(SmallVectorImpl<unsigned> &Indices,
 
   while (EatIfPresent(lltok::comma)) {
     if (Lex.getKind() == lltok::MetadataVar) {
+      if (Indices.empty()) return TokError("expected index");
       AteExtraComma = true;
       return false;
     }
diff --git a/llvm/test/Assembler/extractvalue-no-idx.ll b/llvm/test/Assembler/extractvalue-no-idx.ll
new file mode 100644 (file)
index 0000000..b313209
--- /dev/null
@@ -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
+}