// PR debug/46583
// { dg-do compile }
// { dg-options "-O -fno-inline -fipa-cp -fipa-cp-clone -fcompare-debug" }
// { dg-xfail-if "AIX compare debug" { powerpc-ibm-aix* } }

template < typename = unsigned long >struct A
{
  unsigned long elems[3];
  unsigned long *begin ()
  {
    return 0;
  }
};

void
bar (unsigned long *a1, unsigned long, unsigned long *a3, unsigned const &)
{
  *a3 = *a1;
}

A < >operatorM (A < >a1, unsigned long a2)
{
  typedef A < >G;
  G a3;
  bar (a1.begin (), a2, a3.begin (), 0);
  return a3;
}

struct B
{
  B (A < >m):n (operatorM (m, 1))
  {
  }
  A < >n;
};

void
foo ()
{
  B (A < >());
}
