blob: 21a3b7e4f1421fdecf299610642098f979e6c1cb [file] [log] [blame]
Abramo Bagnara62d0fab2012-01-03 20:13:03 +00001// 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
Douglas Gregor40f56e52013-01-30 23:10:17 +000017#define y(x) y
Richard Smith1fbf6fb2012-12-12 02:46:14 +000018#define z(x) (z)(x)
19
Douglas Gregor40f56e52013-01-30 23:10:17 +000020p // no warning
Abramo Bagnara62d0fab2012-01-03 20:13:03 +000021
22a // expected-warning {{recursive macro}}
23
24f(2)
25
26g(3) // expected-warning {{recursive macro}}
27
28h(0) // expected-warning {{recursive macro}}
29
30c(c) // expected-warning {{recursive macro}}
Richard Smith1fbf6fb2012-12-12 02:46:14 +000031
Douglas Gregor40f56e52013-01-30 23:10:17 +000032y(5) // expected-warning {{recursive macro}}
33
Richard Smith1fbf6fb2012-12-12 02:46:14 +000034z(z) // ok
Douglas Gregor40f56e52013-01-30 23:10:17 +000035