about CONST_WANTED & VT_NONCONST
[tinycc.git] / tests / pp / 11.c
blob5ce868b11eb13c7004915cabaad21344b018c155
1 #define D1(s, ...) s
2 #define D2(s, ...) s D1(__VA_ARGS__)
3 #define D3(s, ...) s D2(__VA_ARGS__)
4 #define D4(s, ...) s D3(__VA_ARGS__)
6 D1(a)
7 D2(a, b)
8 D3(a, b, c)
9 D4(a, b, c, d)
11 x D4(a, b, c, d) y
12 x D4(a, b, c) y
13 x D4(a, b) y
14 x D4(a) y
15 x D4() y
17 #define GNU_COMMA(X,Y...) X,## Y
19 x GNU_COMMA(A,B,C) y
20 x GNU_COMMA(A,B) y
21 x GNU_COMMA(A) y
22 x GNU_COMMA() y
24 #define __sun_attr___noreturn__ __attribute__((__noreturn__))
25 #define ___sun_attr_inner(__a) __sun_attr_##__a
26 #define __sun_attr__(__a) ___sun_attr_inner __a
27 #define __NORETURN __sun_attr__((__noreturn__))
28 __NORETURN
29 #define X(...)
30 #define Y(...) 1 __VA_ARGS__ 2
31 Y(X X() ())
33 #define DDD(A, B) D_ ## B ## _D_ ## A
34 #define CCC(X, ...) DDD(X, ##__VA_ARGS__)
35 /* must be D_B_D_A (not D_B _D_A) */
36 CCC(A,B)