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