/* Copyright (C) 2000 Free Software Foundation, Inc. */ /* { dg-do preprocess } */ /* { dg-options -pedantic } */ /* Tests general directive syntax, and directive error recovery. */ /* Test directive name is not expanded. */ #define foo define #foo EMPTY /* { dg-error "invalid" } */ /* Test # must be first on line. */ EMPTY #define bar #ifdef bar #error bar is defined #endif /* Test form feed and vertical tab warn pedantically, see 6.10 paragraph 5. Tab is OK. */ # define something /* { dg-warning "form feed" } */ #define something_else /* { dg-warning "vertical tab" } */ #define some thing /* Tab OK, as is form feed before #. */ /* Our friend the null directive OK? */ # /* Check newlines end directives, even in function-like macro invocations. 6.10 paragraph 1. Note that the #if is still treated as a conditional, so there should be no errors about #endif without #if. */ #define func(x) x #if func ( /* { dg-error "unterminated argument" } */ #endif