[PATCH] D103257: [ms] [llvm-ml] Disambiguate size directives and variable declarations
Eric Astor via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu May 27 08:12:25 PDT 2021
epastor updated this revision to Diff 348275.
epastor added a comment.
Fix a copy/paste error
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D103257/new/
https://reviews.llvm.org/D103257
Files:
llvm/lib/MC/MCParser/MasmParser.cpp
Index: llvm/lib/MC/MCParser/MasmParser.cpp
===================================================================
--- llvm/lib/MC/MCParser/MasmParser.cpp
+++ llvm/lib/MC/MCParser/MasmParser.cpp
@@ -2440,6 +2440,8 @@
const StringRef nextVal = nextTok.getString();
const SMLoc nextLoc = nextTok.getLoc();
+ const AsmToken peekTok = Lexer.peekTok();
+
// There are several entities interested in parsing infix directives:
//
// 1. Asm parser extensions. For example, platform-specific parsers
@@ -2483,25 +2485,55 @@
Lex();
return parseDirectiveEquate(nextVal, IDVal, DirKind);
case DK_BYTE:
+ if (peekTok.is(AsmToken::Identifier) &&
+ peekTok.getString().equals_lower("ptr")) {
+ // Size directive; part of an instruction.
+ break;
+ }
+ LLVM_FALLTHROUGH;
case DK_SBYTE:
case DK_DB:
Lex();
return parseDirectiveNamedValue(nextVal, 1, IDVal, IDLoc);
case DK_WORD:
+ if (peekTok.is(AsmToken::Identifier) &&
+ peekTok.getString().equals_lower("ptr")) {
+ // Size directive; part of an instruction.
+ break;
+ }
+ LLVM_FALLTHROUGH;
case DK_SWORD:
case DK_DW:
Lex();
return parseDirectiveNamedValue(nextVal, 2, IDVal, IDLoc);
case DK_DWORD:
+ if (peekTok.is(AsmToken::Identifier) &&
+ peekTok.getString().equals_lower("ptr")) {
+ // Size directive; part of an instruction.
+ break;
+ }
+ LLVM_FALLTHROUGH;
case DK_SDWORD:
case DK_DD:
Lex();
return parseDirectiveNamedValue(nextVal, 4, IDVal, IDLoc);
case DK_FWORD:
+ if (peekTok.is(AsmToken::Identifier) &&
+ peekTok.getString().equals_lower("ptr")) {
+ // Size directive; part of an instruction.
+ break;
+ }
+ LLVM_FALLTHROUGH;
case DK_DF:
Lex();
return parseDirectiveNamedValue(nextVal, 6, IDVal, IDLoc);
case DK_QWORD:
+ if (peekTok.is(AsmToken::Identifier) &&
+ peekTok.getString().equals_lower("ptr")) {
+ // Size directive; part of an instruction.
+ break;
+ }
+ LLVM_FALLTHROUGH;
case DK_SQWORD:
case DK_DQ:
Lex();
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D103257.348275.patch
Type: text/x-patch
Size: 2108 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210527/6ab73d93/attachment.bin>
More information about the llvm-commits
mailing list