/* PR c/25801 */ /* { dg-do compile } */ /* { dg-options "-std=c99" } */ int (*a)[]; struct S *s; union U *u; enum E *e; void f (void) { a++; /* { dg-error "increment of pointer to an incomplete type" } */ ++a; /* { dg-error "increment of pointer to an incomplete type" } */ a--; /* { dg-error "decrement of pointer to an incomplete type" } */ --a; /* { dg-error "decrement of pointer to an incomplete type" } */ a += 1; /* { dg-error "invalid use of array with unspecified bounds" } */ a -= 1; /* { dg-error "invalid use of array with unspecified bounds" } */ a - a; /* { dg-error "arithmetic on pointer to an incomplete type" } */ s++; /* { dg-error "increment of pointer to an incomplete type" } */ ++s; /* { dg-error "increment of pointer to an incomplete type" } */ s--; /* { dg-error "decrement of pointer to an incomplete type" } */ --s; /* { dg-error "decrement of pointer to an incomplete type" } */ s += 1; /* { dg-error "invalid use of undefined type" } */ s -= 1; /* { dg-error "invalid use of undefined type" } */ s - s; /* { dg-error "arithmetic on pointer to an incomplete type" } */ u++; /* { dg-error "increment of pointer to an incomplete type" } */ ++u; /* { dg-error "increment of pointer to an incomplete type" } */ u--; /* { dg-error "decrement of pointer to an incomplete type" } */ --u; /* { dg-error "decrement of pointer to an incomplete type" } */ u += 1; /* { dg-error "invalid use of undefined type" } */ u -= 1; /* { dg-error "invalid use of undefined type" } */ u - u; /* { dg-error "arithmetic on pointer to an incomplete type" } */ e++; /* { dg-error "increment of pointer to an incomplete type" } */ ++e; /* { dg-error "increment of pointer to an incomplete type" } */ e--; /* { dg-error "decrement of pointer to an incomplete type" } */ --e; /* { dg-error "decrement of pointer to an incomplete type" } */ e += 1; /* { dg-error "invalid use of undefined type" } */ e -= 1; /* { dg-error "invalid use of undefined type" } */ e - e; /* { dg-error "arithmetic on pointer to an incomplete type" } */ }