/* { dg-do compile } */
/* { dg-require-stack-check "specific" } */
/* { dg-options "-O2 -fstack-check=specific -fno-tree-dse -fno-tree-fre -fno-tree-loop-optimize -g" } */

struct S
{
  int w, z;
};
struct T
{
  struct S s;
};

int i;

static inline struct S
bar (struct S x)
{
  i++;
  return x;
}

int
foo (struct T t, struct S s)
{
  struct S *c = &s;
  if (i)
    c = &t.s;
  t.s.w = 3;
  s = bar (*c);
  return t.s.w;
}
