/* PR c/58346 */ | |
/* { dg-do compile } */ | |
void | |
foo (void) | |
{ | |
__PTRDIFF_TYPE__ d; | |
const int i = 0; | |
int a1[2][0], a2[2][0]; | |
int b1[3][i], b2[4][i]; | |
d = a1 - a2; /* { dg-error "arithmetic on pointer to an empty aggregate" } */ | |
__asm volatile ("" : "+g" (d)); | |
/* No error here for C. */ | |
d = b1 - b2; /* { dg-error "arithmetic on pointer to an empty aggregate" "" { target c++ } } */ | |
__asm volatile ("" : "+g" (d)); | |
} |