| /* powerpc64-linux gcc miscompiled this due to rs6000.c:expand_block_move |
| not setting mem aliasing info correctly for the code implementing the |
| structure assignment. */ |
| |
| struct termios |
| { |
| unsigned int a; |
| unsigned int b; |
| unsigned int c; |
| unsigned int d; |
| unsigned char pad[28]; |
| }; |
| |
| struct tty_driver |
| { |
| unsigned char pad1[38]; |
| struct termios t __attribute__ ((aligned (8))); |
| }; |
| |
| static struct termios zero_t; |
| static struct tty_driver pty; |
| |
| void ini (void) |
| { |
| pty.t = zero_t; |
| pty.t.a = 1; |
| pty.t.b = 2; |
| pty.t.c = 3; |
| pty.t.d = 4; |
| } |
| |
| int main (void) |
| { |
| extern void abort (void); |
| |
| ini (); |
| if (pty.t.a != 1 |
| || pty.t.b != 2 |
| || pty.t.c != 3 |
| || pty.t.d != 4) |
| abort (); |
| return 0; |
| } |