]> granicus.if.org Git - clang/commitdiff
Make sure the assembler-with-cpp hack for "#" works with multiple "#"s in
authorEli Friedman <eli.friedman@gmail.com>
Tue, 18 Jun 2013 21:33:38 +0000 (21:33 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Tue, 18 Jun 2013 21:33:38 +0000 (21:33 +0000)
succession. Fixes PR16363.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184240 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Lex/PPDirectives.cpp
test/Preprocessor/assembler-with-cpp.c

index 3e3312a9261a60f7c78bd821ee482890f89071bc..c25e317b42db26ce16a0873d3d8830d2e1dccc8f 100644 (file)
@@ -1920,6 +1920,8 @@ void Preprocessor::HandleDefineDirective(Token &DefineTok,
         // confused.
         if (getLangOpts().AsmPreprocessor && Tok.isNot(tok::eod)) {
           LastTok.setKind(tok::unknown);
+          MI->AddTokenToBody(LastTok);
+          continue;
         } else {
           Diag(Tok, diag::err_pp_stringize_not_parameter);
           ReleaseMacroInfo(MI);
index a9c42940a310c8b2e16433379fdd3ad068c4aff7..65be564786129bb226e1cc8bda93eab10c764459 100644 (file)
@@ -77,3 +77,7 @@
 // rdar://8823139
 # ##
 // CHECK-Identifiers-False: # ##
+
+#define X(a) # # # 1
+X(1)
+// CHECK-Identifiers-False: # # # 1