/* PR c/58346 */ | |
/* { dg-do compile } */ | |
/* { dg-options "-Wno-c++-compat" { target c } } */ | |
struct U { | |
#ifdef __cplusplus | |
char a[0]; | |
#endif | |
}; | |
static struct U b[6]; | |
static struct U *u1, *u2; | |
int | |
foo (struct U *p, struct U *q) | |
{ | |
return q - p; /* { dg-error "arithmetic on pointer to an empty aggregate" } */ | |
} | |
void | |
bar (void) | |
{ | |
__PTRDIFF_TYPE__ d = u1 - u2; /* { dg-error "arithmetic on pointer to an empty aggregate" } */ | |
__asm volatile ("" : "+g" (d)); | |
foo (&b[0], &b[4]); | |
} |