Index: llvm/trunk/lib/MC/MCParser/AsmParser.cpp =================================================================== --- llvm/trunk/lib/MC/MCParser/AsmParser.cpp +++ llvm/trunk/lib/MC/MCParser/AsmParser.cpp @@ -703,7 +703,7 @@ // if it's a end of statement with a comment in it if (getTok().is(AsmToken::EndOfStatement)) { // if this is a line comment output it. - if (getTok().getString().front() != '\n' && + if (!getTok().getString().empty() && getTok().getString().front() != '\n' && getTok().getString().front() != '\r' && MAI.preserveAsmComments()) Out.addExplicitComment(Twine(getTok().getString())); } @@ -1523,7 +1523,7 @@ Lex(); if (Lexer.is(AsmToken::EndOfStatement)) { // if this is a line comment we can drop it safely - if (getTok().getString().front() == '\r' || + if (getTok().getString().empty() || getTok().getString().front() == '\r' || getTok().getString().front() == '\n') Out.AddBlankLine(); Lex(); Index: llvm/trunk/test/MC/AsmParser/empty-comment.s =================================================================== --- llvm/trunk/test/MC/AsmParser/empty-comment.s +++ llvm/trunk/test/MC/AsmParser/empty-comment.s @@ -0,0 +1,4 @@ + #RUN: llvm-mc -preserve-comments -n -triple i386-linux-gnu < %s > %t + .text +foo: + nop # \ No newline at end of file