xref: /aosp_15_r20/external/clang/test/Preprocessor/warn-disabled-macro-expansion.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 %s -E -Wdisabled-macro-expansion -verify
2*67e74705SXin Li 
3*67e74705SXin Li #define p p
4*67e74705SXin Li 
5*67e74705SXin Li #define a b
6*67e74705SXin Li #define b a
7*67e74705SXin Li 
8*67e74705SXin Li #define f(a) a
9*67e74705SXin Li 
10*67e74705SXin Li #define g(b) a
11*67e74705SXin Li 
12*67e74705SXin Li #define h(x) i(x)
13*67e74705SXin Li #define i(y) i(y)
14*67e74705SXin Li 
15*67e74705SXin Li #define c(x) x(0)
16*67e74705SXin Li 
17*67e74705SXin Li #define y(x) y
18*67e74705SXin Li #define z(x) (z)(x)
19*67e74705SXin Li 
20*67e74705SXin Li p // no warning
21*67e74705SXin Li 
22*67e74705SXin Li a // expected-warning {{recursive macro}}
23*67e74705SXin Li 
24*67e74705SXin Li f(2)
25*67e74705SXin Li 
26*67e74705SXin Li g(3) // expected-warning {{recursive macro}}
27*67e74705SXin Li 
28*67e74705SXin Li h(0) // expected-warning {{recursive macro}}
29*67e74705SXin Li 
30*67e74705SXin Li c(c) // expected-warning {{recursive macro}}
31*67e74705SXin Li 
32*67e74705SXin Li y(5) // expected-warning {{recursive macro}}
33*67e74705SXin Li 
34*67e74705SXin Li z(z) // ok
35*67e74705SXin Li 
36