1/* Copyright (C) 2000 Free Software Foundation, Inc. */ 2 3/* { dg-do preprocess } */ 4/* { dg-options "-C -traditional-cpp" } */ 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. */ 27obj_like 28fun_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