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

--- Comment #5 from David Binderman <dcb314 at hotmail dot com> ---
I am not sure if this is the same C++ code as the other reduced test case:

typedef enum { a, b } c;
typedef struct {
  c d;
} e;
void f(char());
template <typename, template <typename> class> using g = int;
class h {};
struct i {
  template <typename j> using k = typename j::b;
};
struct n : i {
  using ab = g<int, k>;
};
class o {
  struct l {
    l(n::ab, h);
  } m;

public:
  o(char *, h p = h()) : m(0, p) {}
  ~o();
};
class D {
public:
  char *q();
  virtual int r();
};
class s {
public:
  static s t();
  void m_fn4(char *, o);
};
class G {
public:
  virtual bool u();
  e al;
};
class I : public D, public G {
public:
  int an;
};
int ao;
class v : I {
  bool u();
  void m_fn6();
  bool ar;
};
int w(int, int *);
void x();
void v::m_fn6() { u(); }
bool v::u() {
  char *au = q();
  s::t().m_fn4(au, "");
  if (ar && w(an, &ao)) {
    x();
    return false;
  }
  if (al.d == b) {
    al.d = a;
    f(nullptr);
  }
  return true;
}

Reply via email to