| /* Test that expand can generate correct loads of misaligned data even on | |
| strict alignment platforms. */ | |
| /* { dg-do run } */ | |
| /* { dg-options "-O0" } */ | |
| extern void abort (); | |
| typedef unsigned int myint __attribute__((aligned(1))); | |
| unsigned int | |
| foo (myint *p) | |
| { | |
| return *p; | |
| } | |
| #define cst (int) 0xdeadbeef | |
| #define NUM 8 | |
| struct blah | |
| { | |
| char c; | |
| myint i[NUM]; | |
| }; | |
| struct blah g; | |
| int | |
| main (int argc, char **argv) | |
| { | |
| int i, k; | |
| for (k = 0; k < NUM; k++) | |
| { | |
| g.i[k] = cst; | |
| i = foo (&g.i[k]); | |
| if (i != cst) | |
| abort (); | |
| } | |
| return 0; | |
| } |