1 // RUN: %clang_cc1 %s -Eonly -Werror=undef -verify
2 
3 extern int x;
4 
5 #if foo   // expected-error {{'foo' is not defined, evaluates to 0}}
6 #endif
7 
8 #ifdef foo
9 #elifdef foo
10 #endif
11 
12 #if defined(foo)
13 #endif
14 
15 
16 // PR3938
17 #if 0
18 #ifdef D
19 #elifdef D
20 #else 1       // Should not warn due to C99 6.10p4
21 #endif
22 #endif
23 
24 // rdar://9475098
25 #if 0
26 #else 1   // expected-warning {{extra tokens}}
27 #endif
28 
29 // PR6852
30 #if 'somesillylongthing'  // expected-warning {{character constant too long for its type}} \
31                           // expected-warning {{multi-character character constant}}
32 #endif
33