1 /* Copyright (C) 2000 Free Software Foundation, Inc.  */
2 
3 /* { dg-do preprocess } */
4 /* { dg-options -C } */
5 
6 /* Test -C doesn't fail with #define.  #define is the tricky case,
7    being the only directive that remembers its comments.
8 
9    -C treats comments as tokens in their own right, so e.g. comment at
10    the beginning of a directive turns it into a non-directive.  */
11 
12 #define simple no comments
13 
14 #define/**/obj_like/**/(some)/**/thing/**/
15 #define fun_like(/**/x/**/,/**/y/**/)/**/
16 /**/#define not_a_macro
17 
18 #if !defined simple || !defined obj_like || !defined fun_like
19 #error Missed some macros with -C
20 #endif
21 
22 #ifdef not_a_macro
23 #error not_a_macro is!
24 #endif
25 
26 /* Check obj_like doesn't expect arguments, and fun_like does.  */
27 obj_like
28 fun_like (foo, bar)
29 
30 /* Check OK to redefine fun_like without comments in the params.  */
31 #define fun_like(x, y)/**/
32 
33 /* Check comments in macros in directives are OK.  */
34 #define ZERO 0 /* A trailing comment.  */
35 
36 #if ZERO
37 #endif
38