diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.target/arm/pr59923.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.target/arm/pr59923.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/arm/pr59923.c b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr59923.c new file mode 100644 index 000000000..86a4e7d83 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr59923.c @@ -0,0 +1,24 @@ +/* PR target/59923 */ +/* { dg-do compile } */ +/* { dg-require-effective-target arm_thumb2_ok } */ +/* { dg-options "-O2 -mcpu=cortex-a15 -fno-strict-aliasing -mthumb -g" } */ + +struct S +{ + void *s; + struct T { unsigned short a; unsigned char b[4], c[4]; } *t; +} s; +void bar (void *); + +void +foo (struct S *x, int *y) +{ + if (*y > 0) + return; + else if (x->t->b[0] == 0x43 && x->t->b[1] == 0x6d && x->t->c[0] == 1) + x->s = &s; + else + *y = 16384; + if (*y > 0) + bar (x); +} |