/* PR middle-end/48335 */
/* { dg-do compile } */
/* { dg-options "-O2 -fno-tree-sra" } */

typedef short U __attribute__((may_alias, aligned (1)));

struct S
{
  double d;
};

void bar (struct S);

void
f1 (int x)
{
  struct S s = { .d = 0.0 };
  ((U *)((char *) &s.d + 1))[-1] = x;
  __real__ s.d *= 7.0;
  bar (s);
}

void
f2 (int x)
{
  struct S s = { .d = 0.0 };
  ((U *)((char *) &s.d + 1))[-2] = x;
  __real__ s.d *= 7.0;
  bar (s);
}

void
f3 (int x)
{
  struct S s = { .d = 0.0 };
  ((U *)((char *) &s.d + 1))[5] = x;
  __real__ s.d *= 7.0;
  bar (s);
}
