[llvm-commits] [llvm] r139798 - /llvm/trunk/lib/MC/MCParser/AsmLexer.cpp

Jim Grosbach grosbach at apple.com
Thu Sep 15 09:52:06 PDT 2011


Author: grosbach
Date: Thu Sep 15 11:52:06 2011
New Revision: 139798

URL: http://llvm.org/viewvc/llvm-project?rev=139798&view=rev
Log:
Handle missing newline at EOF more gracefully in MC AsmLexer.

If we see an EOF w/o a preceding end-of-line, return an EndOfStatement
token before returning the Eof token.

Based on patch by Stepan Dyatkovskiy.

Modified:
    llvm/trunk/lib/MC/MCParser/AsmLexer.cpp

Modified: llvm/trunk/lib/MC/MCParser/AsmLexer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCParser/AsmLexer.cpp?rev=139798&r1=139797&r2=139798&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCParser/AsmLexer.cpp (original)
+++ llvm/trunk/lib/MC/MCParser/AsmLexer.cpp Thu Sep 15 11:52:06 2011
@@ -375,8 +375,15 @@
     return AsmToken(AsmToken::EndOfStatement,
                     StringRef(TokStart, strlen(MAI.getSeparatorString())));
   }
-  isAtStartOfLine = false;
 
+  // If we're missing a newline at EOF, make sure we still get an
+  // EndOfStatement token before the Eof token.
+  if (CurChar == EOF && !isAtStartOfLine) {
+    isAtStartOfLine = true;
+    return AsmToken(AsmToken::EndOfStatement, StringRef(TokStart, 1));
+  }
+
+  isAtStartOfLine = false;
   switch (CurChar) {
   default:
     // Handle identifier: [a-zA-Z_.][a-zA-Z0-9_$.@]*





More information about the llvm-commits mailing list