]> granicus.if.org Git - clang/commitdiff
fix PR3927 by being more careful about the pp test for identifier.
authorChris Lattner <sabre@nondot.org>
Sat, 18 Apr 2009 06:44:18 +0000 (06:44 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 18 Apr 2009 06:44:18 +0000 (06:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69423 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Lex/PPMacroExpansion.cpp
test/Preprocessor/macro_expand.c

index a682e86d146d4e25564559306fd3c7b4892e5876..7e695a542b0d84d9c93abf0e60c1b016484214b0 100644 (file)
@@ -335,7 +335,7 @@ MacroArgs *Preprocessor::ReadFunctionLikeMacroArgs(Token &MacroName,
         // If this is a comment token in the argument list and we're just in
         // -C mode (not -CC mode), discard the comment.
         continue;
-      } else if (Tok.is(tok::identifier)) {
+      } else if (Tok.getIdentifierInfo() != 0) {
         // Reading macro arguments can cause macros that we are currently
         // expanding from to be popped off the expansion stack.  Doing so causes
         // them to be reenabled for expansion.  Here we record whether any
index a7a80aff4273b424143c6303d63d1dbf76d65039..c2c76bddbf03300ee49d012d8319e739d3c1e9a6 100644 (file)
@@ -1,7 +1,16 @@
-// RUN: clang-cc -E %s | grep '^Y$'
+// RUN: clang-cc -E %s | grep '^A: Y$' &&
+// RUN: clang-cc -E %s | grep '^B: f()$' &&
+// RUN: clang-cc -E %s | grep '^C: for()$'
 
 #define X() Y
 #define Y() X
 
-X()()()
+A: X()()()
+
+// PR3927
+#define f(x) h(x
+#define for(x) h(x
+#define h(x) x()
+B: f(f))
+C: for(for))