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 #endif
10 
11 #if defined(foo)
12 #endif
13 
14 
15 // PR3938
16 #if 0
17 #ifdef D
18 #else 1       // Should not warn due to C99 6.10p4
19 #endif
20 #endif
21 
22 // rdar://9475098
23 #if 0
24 #else 1   // expected-warning {{extra tokens}}
25 #endif
26 
27 // PR6852
28 #if 'somesillylongthing'  // expected-warning {{character constant too long for its type}} \
29                           // expected-warning {{multi-character character constant}}
30 #endif
31