> with Eric's patch this test case does no longer compile, while it did > compile with my patch: > > $ cat test.c > struct s{ char x[8]; }; > int main() > { > volatile register struct s x __asm__("eax"); > x.x[0] = 1; > return x.x[0]; > } > > $ gcc -O3 -S test.c > test.c: In function 'main': > test.c:4:30: error: data type of 'x' isn't suitable for a register > volatile register struct s x __asm__("eax");
Well, sure, but try with: struct s { char x[7]; }; or struct s { char y; char x[7]; }; -- Eric Botcazou