Fixed edis to tokenize instructions with no
authorSean Callanan <scallanan@apple.com>
Sat, 24 Apr 2010 01:00:16 +0000 (01:00 +0000)
committerSean Callanan <scallanan@apple.com>
Sat, 24 Apr 2010 01:00:16 +0000 (01:00 +0000)
operands correctly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102227 91177308-0d34-0410-b5e6-96231b3b80d8

tools/edis/EDDisassembler.cpp

index b87fe62057d3954c7a0fd7b5f579432d0fb4c36d..00b5d8d33a0052f23f4088cc66ab2dac7447ff07 100644 (file)
@@ -368,12 +368,14 @@ int EDDisassembler::parseInst(SmallVectorImpl<MCParsedAsmOperand*> &operands,
   OwningPtr<TargetAsmParser> TargetParser(Tgt->createAsmParser(genericParser));
   
   AsmToken OpcodeToken = genericParser.Lex();
-  genericParser.Lex();  // consume next token, because specificParser expects us to
-  
+  AsmToken NextToken = genericParser.Lex();  // consume next token, because specificParser expects us to
+    
   if (OpcodeToken.is(AsmToken::Identifier)) {
     instName = OpcodeToken.getString();
     instLoc = OpcodeToken.getLoc();
-    if (TargetParser->ParseInstruction(instName, instLoc, operands))
+    
+    if (NextToken.isNot(AsmToken::Eof) &&
+        TargetParser->ParseInstruction(instName, instLoc, operands))
       ret = -1;
   } else {
     ret = -1;