llvm-project/clang/test/Preprocessor/comment_save_macro.c
Shafik Yaghmour 20a3fb9740 [Clang] Fix how ReadMacroParameterList handles comments in macro parameter-list when in -CC mode
Currently when in -CC mode when processing a function like macro
ReadMacroParameterList(...) does not handle the case where there is a comment
embedded in the parameter-list.

Instead of using LexUnexpandedToken(...) I switched to using
LexUnexpandedNonComment(...) which eats comments while lexing.

Fixes: https://github.com/llvm/llvm-project/issues/60887

Differential Revision: https://reviews.llvm.org/D144511
2023-03-30 13:37:21 -07:00

29 lines
730 B
C

// RUN: %clang_cc1 -E -C %s | FileCheck -check-prefix=CHECK-C -strict-whitespace %s
// CHECK-C: boo bork bar // zot
// CHECK-C: ( 0 );
// CHECK-C: ( 0,1,2 );
// CHECK-C: ( 0,1,2 );
// RUN: %clang_cc1 -E -CC %s | FileCheck -check-prefix=CHECK-CC -strict-whitespace %s
// CHECK-CC: boo bork /* blah*/ bar // zot
// CHECK-CC: (/**/0/**/);
// CHECK-CC: (/**/0,1,2/**/);
// CHECK-CC: (/**/0,1,2/**/);
// RUN: %clang_cc1 -E %s | FileCheck -strict-whitespace %s
// CHECK: boo bork bar
// CHECK: ( 0 );
// CHECK: ( 0,1,2 );
// CHECK: ( 0,1,2 );
#define FOO bork // blah
boo FOO bar // zot
#define M(/**/x/**/) (/**/x/**/)
M(0);
#define M2(/**/.../**/) (/**/__VA_ARGS__/**/)
M2(0,1,2);
#define M3(/**/x.../**/) (/**/x/**/)
M3(0,1,2);