36 lines
1002 B
C
36 lines
1002 B
C
/* 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
|