1/* n_26.t:  The name once replaced is not furthur replaced. */
2
3/* 26.1:    Directly recursive object-like macro definition.    */
4/*  Z[0];   */
5#define Z   Z[0]
6    Z;
7
8/* 26.2:    Intermediately recursive object-like macro definition.  */
9/*  AB; */
10#define AB  BA
11#define BA  AB
12    AB;
13
14/* 26.3:    Directly recursive function-like macro definition.  */
15/*  x + f(x);   */
16#define f(a)    a + f(a)
17    f( x);
18
19/* 26.4:    Intermediately recursive function-like macro definition.    */
20/*  x + x + g( x);  */
21#define g(a)    a + h( a)
22#define h(a)    a + g( a)
23    g( x);
24
25/* 26.5:    Rescanning encounters the non-replaced macro name.  */
26/*  Z[0] + f( Z[0]);    */
27    f( Z);
28
29