Fix a couple of bugs:
1. When we accept "#garbage" in asm-with-cpp mode, change the token kind
   of the # to unknown so that the preprocessor won't try to process it as
   a real #.  This fixes a crash on the attached example
2. Fix macro definition extents processing to handle #foo at the end of a
   macro to say the definition ends with the foo, not the #.

This is a follow-on fix to r72283, and rdar://6916026


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72388 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/Preprocessor/assembler-with-cpp.c b/test/Preprocessor/assembler-with-cpp.c
index 00080cc..2e84ed1 100644
--- a/test/Preprocessor/assembler-with-cpp.c
+++ b/test/Preprocessor/assembler-with-cpp.c
@@ -58,14 +58,20 @@
 // 
 #define T6() T6 #nostring
 #define T7(x) T7 #x
-T6()
-T7(foo)
-// RUN: grep 'T6 #nostring' %t &&
-// RUN: grep 'T7 "foo"' %t &&
+8: T6()
+9: T7(foo)
+// RUN: grep '8: T6 #nostring' %t &&
+// RUN: grep '9: T7 "foo"' %t &&
 
 // Concatenation with period doesn't leave a space
-// RUN: grep -F '.T8' %t &&
+// RUN: grep -F '10: .T8' %t &&
 #define T8(A,B) A ## B
-T8(.,T8)
+10: T8(.,T8)
+
+
+// This should not crash.
+// RUN: grep '11: #0' %t &&
+#define T11(a) #0
+11: T11(b)
 
 // RUN: true