https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94468

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|needs-reduction             |

--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
I reduced a test-case:

$ cat pr94468.cc
bool a();
enum b {};
class c;
template <typename> struct d;
template <class e, typename g, typename... h> struct d<g (e::*)(h...)> {
  typedef e i;
};
class j {
public:
  j(void(int, j *, c *, void **, bool *)) {}
};
template <typename l> class m : public j {
  l ab;
  static void ac(int, j *, c *, void **, bool *);

public:
  m(l f) : j(ac), ab(f) {}
};
b ad;
class c {
public:
  template <typename n, typename o>
  void ae(typename d<n>::i *p, n af, typename d<o>::i *ag, o ah) {
    ai(p, &af, ag, &ah, new m<o>(ah), ad, &d<n>::i::aj);
  }
  void ai(c *, void *, c *, void *, j *, b, int *);
};
class r : public c {
public:
  static int aj;
  void t();
};
class al : public c {
public:
  static int aj;
  void am();
  void ao();
  void ap();
};
class aq {
public:
  aq(const int &, const int & = int());
};
class ar : public c {
public:
  ~ar();
};
class as : public ar {
  as();
  void at();
  void au();
  void av();
};
class u : public c {
public:
  void ax();
};
class ay {
public:
  int az();
};
class ba : public c {
public:
  static int aj;
  void bb();
};
class bc : public al {
public:
  bc() {
    if (a())
      am();
  }
};
as::as() {
  al *bd = new bc;
  ae(bd, &al::ao, this, &as::au);
  ae(bd, &al::ap, this, &as::av);
  r be;
  u bf;
  ae(&be, &r::t, &bf, &u::ax);
  c bg = *bd;
  ae(static_cast<ba *>(&bg), &ba::bb, this, &as::at);
  ay bh;
  aq am(bh.az());
}

Reply via email to