(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
ipa/
ipa-sra-6.C
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-ipa-sra"  } */

namespace {

class C
{

  int mi;

public:
  C (int i)
    : mi(i)
  {}

  void foo (int c);
};

volatile int vi;


void __attribute__((noinline))
C::foo (int cond)
{
  int i;
  if (cond)
    i = mi;
  else
    i = 0;
  vi = i;
}

static C c_instance(1);
}

void __attribute__((noinline))
bar (C *p, int cond)
{
  p->foo (cond);
}


class C *gp;

void something(void);

void
baz (int cond)
{
  C c(vi);
  gp = &c;
  something ();
  bar (gp, cond);
}

void
hoo(void)
{
  gp = &c_instance;
}

/* { dg-final { scan-ipa-dump "Will split parameter" "sra" } } */