1 // RUN: %clang_cc1 -Eonly -verify %s
2 
3 #if 0
4 #if 1
5 #endif junk // shouldn't produce diagnostics
6 #endif
7 
8 #if 0
9 #endif junk // expected-warning{{extra tokens at end of #endif directive}}
10 
11 #if 1 junk  // expected-error{{token is not a valid binary operator in a preprocessor subexpression}}
12 #X          // shouldn't produce diagnostics (block #if condition not valid, so skipped)
13 #else
14 #X          // expected-error{{invalid preprocessing directive}}
15 #endif
16 
17 #if 0
18 // diagnostics should not be produced until final #endif
19 #X
20 #include
21 #if 1 junk
22 #else junk
23 #endif junk
24 #line -2
25 #error
26 #warning
27 #endif junk // expected-warning{{extra tokens at end of #endif directive}}
28