1/* { dg-do preprocess } */
2/* { dg-options "-ftrack-macro-expansion=2" } */
3
4int foo(int, ...);
5
6#define a(x, y...) foo(x, ##y)
7a(1)
8a(1, 2, 3)
9#define b(x, y, z...) foo(x, ##y) /* { dg-error "valid preprocessing token" } */
10b(1, 2, 3)
11#define c(x, y, z...) foo(x, ##z)
12c(1, 2)
13c(1, 2, 3)
14#define d(x) fo(##x) /* { dg-error "valid preprocessing token" } */
15d(1)
16