Files
clang-p2996/clang/test/Preprocessor/ifdef-recover.c
Aaron Ballman 8edd3464af Add support for #elifdef and #elifndef
WG14 adopted N2645 and WG21 EWG has accepted P2334 in principle (still
subject to full EWG vote + CWG review + plenary vote), which add
support for #elifdef as shorthand for #elif defined and #elifndef as
shorthand for #elif !defined. This patch adds support for the new
preprocessor directives.
2021-05-27 08:57:47 -04:00

33 lines
629 B
C

/* RUN: %clang_cc1 -E -verify %s
*/
/* expected-error@+1 {{macro name missing}} */
#ifdef
#endif
/* expected-error@+1 {{macro name must be an identifier}} */
#ifdef !
#endif
/* expected-error@+1 {{macro name missing}} */
#if defined
#endif
/* PR1936 */
/* expected-error@+2 {{unterminated function-like macro invocation}} expected-error@+2 {{expected value in expression}} expected-note@+1 {{macro 'f' defined here}} */
#define f(x) x
#if f(2
#endif
/* expected-error@+2 {{macro name missing}} */
#ifdef FOO
#elifdef
#endif
/* expected-error@+2 {{macro name must be an identifier}} */
#ifdef FOO
#elifdef !
#endif
int x;