[PATCH] D151652: [ms-inline asm] Add error check for `getAsInteger`

Phoebe Wang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 29 07:50:23 PDT 2023


pengfei created this revision.
pengfei added reviewers: mcrosier, LuoYuanke, skan.
Herald added a subscriber: hiraditya.
Herald added a project: All.
pengfei requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

.Imm can get lexed as a real, but a real doesn't equal to .Imm, e.g.,
2.5 or .123e+8. We should report error for it rather than silently ignore.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D151652

Files:
  llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp


Index: llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
===================================================================
--- llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -2315,7 +2315,8 @@
   // .Imm gets lexed as a real.
   if (Tok.is(AsmToken::Real)) {
     APInt DotDisp;
-    DotDispStr.getAsInteger(10, DotDisp);
+    if (DotDispStr.getAsInteger(10, DotDisp))
+      return Error(Tok.getLoc(), "Unexpected offset");
     Info.Offset = DotDisp.getZExtValue();
   } else if ((isParsingMSInlineAsm() || getParser().isParsingMasm()) &&
              Tok.is(AsmToken::Identifier)) {


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D151652.526442.patch
Type: text/x-patch
Size: 640 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230529/bed14acc/attachment.bin>


More information about the llvm-commits mailing list