/* { dg-do preprocess } */
/* { dg-options "-ftrack-macro-expansion=0" } */

int foo(int, ...);

#define a(x, y...) foo(x, ##y)
a(1)
a(1, 2, 3)
#define b(x, y, z...) foo(x, ##y)
b(1, 2, 3)			/* { dg-error "valid preprocessing token" } */
#define c(x, y, z...) foo(x, ##z)
c(1, 2)
c(1, 2, 3)
#define d(x) fo(##x)
d(1)				/* { dg-error "valid preprocessing token" } */
