Make sure the assembler-with-cpp hack for "#" works with multiple "#"s in
succession. Fixes PR16363.

Merged from r184240
Author: Eli Friedman <eli.friedman@gmail.com>
Date:   Tue Jun 18 21:33:38 2013 +0000

git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_33@186204 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Lex/PPDirectives.cpp b/lib/Lex/PPDirectives.cpp
index 50a0cb5..71483b8 100644
--- a/lib/Lex/PPDirectives.cpp
+++ b/lib/Lex/PPDirectives.cpp
@@ -1896,6 +1896,8 @@
         // 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);
diff --git a/test/Preprocessor/assembler-with-cpp.c b/test/Preprocessor/assembler-with-cpp.c
index a9c4294..65be564 100644
--- a/test/Preprocessor/assembler-with-cpp.c
+++ b/test/Preprocessor/assembler-with-cpp.c
@@ -77,3 +77,7 @@
 // rdar://8823139
 # ##
 // CHECK-Identifiers-False: # ##
+
+#define X(a) # # # 1
+X(1)
+// CHECK-Identifiers-False: # # # 1