[ms] [llvm-ml] Add support for line continuations in MASM

Add support for line continuations (the "backslash operator") in MASM by modifying the Parser's Lex method.

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D83347
This commit is contained in:
Eric Astor 2020-09-02 12:11:29 -04:00
parent 888049b97a
commit ddd48cdba6
2 changed files with 25 additions and 0 deletions

View File

@ -1094,6 +1094,14 @@ const AsmToken &MasmParser::Lex() {
tok = &Lexer.Lex();
}
// Recognize and bypass line continuations.
while (tok->is(AsmToken::BackSlash) &&
Lexer.peekTok().is(AsmToken::EndOfStatement)) {
// Eat both the backslash and the end of statement.
Lexer.Lex();
tok = &Lexer.Lex();
}
if (tok->is(AsmToken::Eof)) {
// If this is the end of an included file, pop the parent file off the
// include stack.

View File

@ -0,0 +1,17 @@
# RUN: llvm-ml -filetype=asm %s | FileCheck %s
.code
t1:
mov eax, \
ebx
# CHECK: t1:
# CHECK-NEXT: mov eax, ebx
t2:
mov eax, [ebx + \
1]
# CHECK: t2:
# CHECK-NEXT: mov eax, dword ptr [ebx + 1]
END