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  */