/* PR target/59923 */
/* { dg-do compile } */
/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
/* { 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);
}
