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