1 /* Test that expand can generate correct loads of misaligned data even on 2 strict alignment platforms. */ 3 4 /* { dg-do run } */ 5 /* { dg-options "-O0" } */ 6 7 extern void abort (); 8 9 typedef unsigned int myint __attribute__((aligned(1))); 10 11 unsigned int foo(myint * p)12foo (myint *p) 13 { 14 return *p; 15 } 16 17 #define cst (int) 0xdeadbeef 18 #define NUM 8 19 20 struct blah 21 { 22 char c; 23 myint i[NUM]; 24 }; 25 26 struct blah g; 27 28 int main(int argc,char ** argv)29main (int argc, char **argv) 30 { 31 int i, k; 32 for (k = 0; k < NUM; k++) 33 { 34 g.i[k] = cst; 35 i = foo (&g.i[k]); 36 37 if (i != cst) 38 abort (); 39 } 40 return 0; 41 } 42