2018-02-09 Sebastian Perta <sebastian.perta@renesas.com>
[official-gcc.git] / gcc / testsuite / gcc.target / arm / pr58041.c
blob481a72b81c786ab532fc21b7e51598a7109b8e6c
1 /* { dg-do compile } */
2 /* { dg-options "-Os -mno-unaligned-access" } */
3 /* { dg-final { scan-assembler "ldrb" } } */
4 /* { dg-final { scan-assembler "strb" } } */
6 struct s
8 char u;
9 long long v[2];
10 } __attribute__((packed,aligned(1)));
12 __attribute__((noinline, noclone))
13 long long foo(struct s *x, int y, long long z)
15 long long a = x->v[y];
16 x->v[y] = z;
17 return a;
20 struct s a = {0,{0,0}};
21 int main()
23 if (foo(&a,0,1) != 0)
24 __builtin_abort();
25 if (foo(&a,0,2) != 1)
26 __builtin_abort();
27 if (foo(&a,1,1) != 0)
28 __builtin_abort();
29 return 0;