Home | History | Annotate | Download | only in Preprocessor
      1 // RUN: %clang_cc1 %s -Eonly -verify
      2 
      3 // This should not be rejected.
      4 #ifdef defined
      5 #endif
      6 
      7 
      8 
      9 // PR3764
     10 
     11 // This should not produce a redefinition warning.
     12 #define FUNC_LIKE(a) (a)
     13 #define FUNC_LIKE(a)(a)
     14 
     15 // This either.
     16 #define FUNC_LIKE2(a)\
     17 (a)
     18 #define FUNC_LIKE2(a) (a)
     19 
     20 // This should.
     21 #define FUNC_LIKE3(a) ( a)  // expected-note {{previous definition is here}}
     22 #define FUNC_LIKE3(a) (a) // expected-warning {{'FUNC_LIKE3' macro redefined}}
     23 
     24 // RUN: %clang_cc1 -fms-extensions -DMS_EXT %s -Eonly -verify
     25 #ifndef MS_EXT
     26 // This should under C99.
     27 #define FUNC_LIKE4(a,b) (a+b)  // expected-note {{previous definition is here}}
     28 #define FUNC_LIKE4(x,y) (x+y) // expected-warning {{'FUNC_LIKE4' macro redefined}}
     29 #else
     30 // This shouldn't under MS extensions.
     31 #define FUNC_LIKE4(a,b) (a+b)
     32 #define FUNC_LIKE4(x,y) (x+y)
     33 
     34 // This should.
     35 #define FUNC_LIKE5(a,b) (a+b) // expected-note {{previous definition is here}}
     36 #define FUNC_LIKE5(x,y) (y+x) // expected-warning {{'FUNC_LIKE5' macro redefined}}
     37 #endif
     38