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