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