1 /* Copyright (C) 2000 Free Software Foundation, Inc. */ 2 3 /* { dg-do preprocess } */ 4 /* { dg-options -pedantic } */ 5 6 /* Tests general directive syntax, and directive error recovery. */ 7 8 9 /* Test directive name is not expanded. */ 10 #define foo define 11 #foo EMPTY /* { dg-error "invalid" } */ 12 13 /* Test # must be first on line. */ 14 EMPTY #define bar 15 #ifdef bar 16 #error bar is defined 17 #endif 18 19 /* Test form feed and vertical tab warn pedantically, see 6.10 20 paragraph 5. Tab is OK. */ 21 #define something /* { dg-warning "form feed" } */ 22 #define something_else /* { dg-warning "vertical tab" } */ 23 #define some thing /* Tab OK, as is form feed before #. */ 24 25 /* Our friend the null directive OK? */ 26 # 27 28 /* Check newlines end directives, even in function-like macro 29 invocations. 6.10 paragraph 1. 30 31 Note that the #if is still treated as a conditional, so there 32 should be no errors about #endif without #if. */ 33 #define func(x) x 34 #if func ( /* { dg-error "unterminated argument" } */ 35 #endif 36