Home | History | Annotate | Download | only in Preprocessor
      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