[PATCH] D31026: [Asm] Don't list '@<type>' in diag when '@' is a comment

Oliver Stannard via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 16 03:39:31 PDT 2017


olista01 created this revision.

This fixes https://bugs.llvm.org//show_bug.cgi?id=31280


Repository:
  rL LLVM

https://reviews.llvm.org/D31026

Files:
  lib/MC/MCParser/ELFAsmParser.cpp
  test/MC/ELF/ARM/gnu-type-hash-diagnostics.s


Index: test/MC/ELF/ARM/gnu-type-hash-diagnostics.s
===================================================================
--- test/MC/ELF/ARM/gnu-type-hash-diagnostics.s
+++ test/MC/ELF/ARM/gnu-type-hash-diagnostics.s
@@ -7,3 +7,7 @@
 // CHECK: .type TYPE #32
 // CHECK:             ^
 
+  // For ARM, the comment character is '@', so we don't list '@<type>' as a
+  // valid option.
+  .section "foo", "a", @progbits
+// CHECK: error: expected '%<type>' or "<type>"
Index: lib/MC/MCParser/ELFAsmParser.cpp
===================================================================
--- lib/MC/MCParser/ELFAsmParser.cpp
+++ lib/MC/MCParser/ELFAsmParser.cpp
@@ -391,8 +391,12 @@
     return false;
   Lex();
   if (L.isNot(AsmToken::At) && L.isNot(AsmToken::Percent) &&
-      L.isNot(AsmToken::String))
-    return TokError("expected '@<type>', '%<type>' or \"<type>\"");
+      L.isNot(AsmToken::String)) {
+    if (L.getAllowAtInIdentifier())
+      return TokError("expected '@<type>', '%<type>' or \"<type>\"");
+    else
+      return TokError("expected '%<type>' or \"<type>\"");
+  }
   if (!L.is(AsmToken::String))
     Lex();
   if (L.is(AsmToken::Integer)) {


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D31026.91983.patch
Type: text/x-patch
Size: 1158 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170316/19638ed5/attachment.bin>


More information about the llvm-commits mailing list