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