1 #define H(x,...) ,##x##__VA_ARGS__##,##__VA_ARGS__
2 H()
3 H(x)
4 H(,)
5 H(x,)
6 H(,x)
7 H(x,x)
8 #define I(x,...) ,##x##__VA_ARGS__
9 I()
10 I(x)
11 I(,)
12 I(x,)
13 I(,x)
14 I(x,x)
15 #define J(...) ,##__VA_ARGS__
16 J()
17 J(x)
18 /*
19  * check-name: Preprocessor #23
20  * check-command: sparse -E $file
21  *
22  * check-output-start
23 
24 ,
25 ,x
26 ,,
27 ,x,
28 ,x,x
29 ,xx,x
30 ,x
31 ,
32 ,x
33 ,x
34 ,xx
35 ,x
36  * check-output-end
37  *
38  * check-error-start
39 preprocessor/preprocessor23.c:3:1: error: '##' failed: concatenation is not a valid token
40 preprocessor/preprocessor23.c:4:1: error: '##' failed: concatenation is not a valid token
41 preprocessor/preprocessor23.c:5:1: error: '##' failed: concatenation is not a valid token
42 preprocessor/preprocessor23.c:5:1: error: '##' failed: concatenation is not a valid token
43 preprocessor/preprocessor23.c:6:1: error: '##' failed: concatenation is not a valid token
44 preprocessor/preprocessor23.c:6:1: error: '##' failed: concatenation is not a valid token
45 preprocessor/preprocessor23.c:7:1: error: '##' failed: concatenation is not a valid token
46 preprocessor/preprocessor23.c:7:1: error: '##' failed: concatenation is not a valid token
47 preprocessor/preprocessor23.c:10:1: error: '##' failed: concatenation is not a valid token
48 preprocessor/preprocessor23.c:12:1: error: '##' failed: concatenation is not a valid token
49 preprocessor/preprocessor23.c:14:1: error: '##' failed: concatenation is not a valid token
50  * check-error-end
51  */
52