/* 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; | |
} |