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