[PATCH] D31765: Skip Unicode character expansion in assembly files

Sanne Wouda via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 7 03:25:37 PDT 2017


This revision was automatically updated to reflect the committed changes.
Closed by commit rL299754: Skip Unicode character expansion in assembly files (authored by sanwou01).

Changed prior to commit:
  https://reviews.llvm.org/D31765?vs=94501&id=94505#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D31765

Files:
  cfe/trunk/lib/Lex/Lexer.cpp
  cfe/trunk/test/Lexer/asm-preproc-no-unicode.s


Index: cfe/trunk/lib/Lex/Lexer.cpp
===================================================================
--- cfe/trunk/lib/Lex/Lexer.cpp
+++ cfe/trunk/lib/Lex/Lexer.cpp
@@ -3603,17 +3603,19 @@
 
   // UCNs (C99 6.4.3, C++11 [lex.charset]p2)
   case '\\':
-    if (uint32_t CodePoint = tryReadUCN(CurPtr, BufferPtr, &Result)) {
-      if (CheckUnicodeWhitespace(Result, CodePoint, CurPtr)) {
-        if (SkipWhitespace(Result, CurPtr, TokAtPhysicalStartOfLine))
-          return true; // KeepWhitespaceMode
+    if (!LangOpts.AsmPreprocessor) {
+      if (uint32_t CodePoint = tryReadUCN(CurPtr, BufferPtr, &Result)) {
+        if (CheckUnicodeWhitespace(Result, CodePoint, CurPtr)) {
+          if (SkipWhitespace(Result, CurPtr, TokAtPhysicalStartOfLine))
+            return true; // KeepWhitespaceMode
+
+          // We only saw whitespace, so just try again with this lexer.
+          // (We manually eliminate the tail call to avoid recursion.)
+          goto LexNextToken;
+        }
 
-        // We only saw whitespace, so just try again with this lexer.
-        // (We manually eliminate the tail call to avoid recursion.)
-        goto LexNextToken;
+        return LexUnicode(Result, CodePoint, CurPtr);
       }
-
-      return LexUnicode(Result, CodePoint, CurPtr);
     }
 
     Kind = tok::unknown;
Index: cfe/trunk/test/Lexer/asm-preproc-no-unicode.s
===================================================================
--- cfe/trunk/test/Lexer/asm-preproc-no-unicode.s
+++ cfe/trunk/test/Lexer/asm-preproc-no-unicode.s
@@ -0,0 +1,8 @@
+// RUN: %clang -E -xassembler-with-cpp %s -o - 2>&1 | FileCheck %s
+
+// CHECK-NOT: warning: \u used with no following hex digits
+// CHECK: .word \u
+
+    .macro foo, u
+        .word \u
+    .endm


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D31765.94505.patch
Type: text/x-patch
Size: 1756 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170407/74be800b/attachment.bin>


More information about the cfe-commits mailing list