1  /* { dg-do run } */
       2  
       3  #define D_2 1, 2
       4  #define C_2(X, I0, I1) X##_a = I0, X##_b = I1
       5  #define B_2(X, I) C_2(X, I)
       6  #define A(N, X) B_##N (X, D_##N)
       7  
       8  extern void abort(void);
       9  extern void exit(int);
      10  
      11  int x_a, x_b;
      12  
      13  int main(void)
      14  {
      15    A(2, x);
      16    if (x_a != 1 || x_b != 2)
      17      abort();
      18    exit(0);
      19  }