Hi,
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"); ^ Bernd.