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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2019-01-24
                 CC|                            |jakub at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Somewhat further reduced:
typedef enum {} a;
typedef enum { b, c, d, e, f } g;
typedef enum {
  h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae,
af, ag, ah, ai, aj, ak, al, am, an
} ao;
typedef struct {
  long aq[];
} ar;
struct as;
using ay = a;
using az = g;
const az ba = b;
const az bb = c;
const az bc = d;
const az bd = e;
const az be = f;
using bf = ao;
const bf any = h;
const bf bg = i;
const bf bh = j;
const bf bi = k;
const bf bj = l;
const bf bk = m;
const bf bl = n;
const bf bm = o;
const bf bn = p;
const bf bo = q;
const bf bp = r;
const bf bq = s;
const bf br = t;
const bf bs = u;
const bf bt = v;
const bf bu = w;
const bf bv = x;
const bf bw = y;
const bf bx = z;
const bf by = aa;
const bf bz = ab;
const bf ca = ac;
const bf cb = ad;
const bf cc = ae;
const bf cd = af;
const bf ce = ag;
const bf cf = ah;
const bf cg = ai;
const bf ch = aj;
const bf ci = ak;
const bf cj = al;
const bf ck = am;
const bf cl = an;
using cm = ar;
using cn = as;
using cp = int;
using cq = int;
using cr = int;
class cx {
public:
  template <typename cy> cx(cy, cy);
};
struct da {
  da(int );
  cm db();
};
struct at {
  virtual ay dc(int **, const int *, const int **) const;
};
struct as {
  typedef ay (*dd)(at **, const int *, const int *, const int *);
};
struct de {
  de(at *, cx, cx);
};
struct dg {
  ~dg();
};
struct dh : at {
  using di = dg;
  di dj;
};
namespace dk {
const bool dl = true;
const bool dm = false;
} template <bool, typename> struct dn ;
template <bool order_keep> struct dn<order_keep, void> {
  static ay execute() {
    da input_d = 0;
    constexpr bool w_groups = by;
    auto _g_oihw_d = input_d;
    [&] { auto _g_oihw_off = _g_oihw_d.db().aq[w_groups]; };
    return ay();
  }
};
template <int, bf , int, bf , int, typename spec = void>
struct srt : de {
  struct dg : dh {
    dg(di *, di *, const cp *);
    ay dc(cq **, const cr *inputs, const cq **outputs) const {
      cx ins(inputs, inputs);
      cx outs(outputs, outputs);
      srt(this, ins, outs);
      return ay();
    }
    static ay ct(at **, const int *input_pd, const int *output_pd, const cp
*attr) {
      auto _pd = new dg((di *)input_pd, (di *)output_pd, attr);
      delete _pd;
      return ay();
    }
  };
  srt(const dg *pd, cx inputs, cx outputs) : de(&conf_, inputs, outputs),
conf_(*pd) {
    dn<1, spec>::execute;
  }
  dg conf_;
};
template <int, int, int, int, int> struct wrt {
  struct dg {
    static ay ct(at **, const int *, const int *, const cp *);
  };
};
using rpd_ct_f = cn::dd;
rpd_ct_f cql[]{
    srt<ba, any, ba, any, any>::dg::ct,
    srt<ba, any, ba, bj, dk::dl>::dg::ct,
    srt<ba, any, ba, bj, dk::dm>::dg::ct,
    srt<ba, any, ba, bk, dk::dl>::dg::ct,
    srt<ba, any, ba, bk, dk::dm>::dg::ct,
    srt<ba, any, ba, bw, dk::dl>::dg::ct,
    srt<ba, any, ba, bw, dk::dm>::dg::ct,
    srt<ba, any, ba, bx, dk::dl>::dg::ct,
    srt<ba, any, ba, bx, dk::dm>::dg::ct,
    srt<ba, any, ba, bo, dk::dl>::dg::ct,
    srt<ba, any, ba, bo, dk::dm>::dg::ct,
    srt<ba, any, ba, bp, dk::dl>::dg::ct,
    srt<ba, any, ba, bp, dk::dm>::dg::ct,
    srt<ba, any, ba, bu, dk::dl>::dg::ct,
    srt<ba, any, ba, bu, dk::dm>::dg::ct,
    srt<ba, any, ba, bq, dk::dl>::dg::ct,
    srt<ba, any, ba, bq, dk::dm>::dg::ct,
    srt<ba, any, ba, bn, dk::dl>::dg::ct,
    srt<ba, any, ba, bn, dk::dm>::dg::ct,
    srt<ba, any, ba, bm, dk::dl>::dg::ct,
    srt<ba, any, ba, bm, dk::dm>::dg::ct,
    srt<ba, any, ba, bv, dk::dl>::dg::ct,
    srt<ba, any, ba, bv, dk::dm>::dg::ct,
    srt<ba, any, ba, cf, dk::dl>::dg::ct,
    srt<ba, any, ba, cf, dk::dm>::dg::ct,
    srt<ba, any, ba, cg, dk::dl>::dg::ct,
    srt<ba, any, ba, cg, dk::dm>::dg::ct,
    srt<ba, any, ba, cj, dk::dl>::dg::ct,
    srt<ba, any, ba, cj, dk::dm>::dg::ct,
    srt<ba, any, ba, ck, dk::dl>::dg::ct,
    srt<ba, any, ba, ck, dk::dm>::dg::ct,
    srt<ba, any, ba, cd, dk::dl>::dg::ct,
    srt<ba, any, ba, cd, dk::dm>::dg::ct,
    srt<ba, any, ba, bz, dk::dl>::dg::ct,
    srt<ba, any, ba, bz, dk::dm>::dg::ct,
    srt<ba, any, ba, ci, dk::dl>::dg::ct,
    srt<ba, any, ba, ci, dk::dm>::dg::ct,
    srt<ba, any, ba, ch, dk::dl>::dg::ct,
    srt<ba, any, ba, ch, dk::dm>::dg::ct,
    srt<ba, any, ba, ce, dk::dl>::dg::ct,
    srt<ba, any, ba, ce, dk::dm>::dg::ct,
    srt<be, bg, ba, bi, dk::dl>::dg::ct,
    srt<be, bg, ba, bj, dk::dl>::dg::ct,
    srt<ba, bg, ba, bi, dk::dl>::dg::ct,
    srt<ba, bg, ba, bi, dk::dm>::dg::ct,
    srt<ba, bg, ba, bj, dk::dl>::dg::ct,
    srt<ba, bg, ba, bj, dk::dm>::dg::ct,
    srt<ba, bi, ba, bj, dk::dl>::dg::ct,
    srt<ba, bi, ba, bj, dk::dm>::dg::ct,
    wrt<2, by, bd, cl, dk::dl>::dg::ct,
    wrt<2, bl, bd, cl, dk::dl>::dg::ct,
    srt<ba, bg, bb, bh, dk::dl>::dg::ct,
    srt<ba, bg, bb, bh, dk::dm>::dg::ct,
    srt<ba, bg, bd, bh, dk::dl>::dg::ct,
    srt<ba, bg, bd, bh, dk::dm>::dg::ct,
    srt<ba, bg, be, bh, dk::dl>::dg::ct,
    srt<ba, bg, be, bh, dk::dm>::dg::ct,
    srt<bb, bg, ba, bh, dk::dl>::dg::ct,
    srt<bb, bg, ba, bh, dk::dm>::dg::ct,
    srt<bb, bg, ba, bh, dk::dl>::dg::ct,
    srt<bb, bg, bb, bh, dk::dm>::dg::ct,
    srt<bb, bg, bd, bh, dk::dl>::dg::ct,
    srt<bb, bg, bd, bh, dk::dm>::dg::ct,
    srt<bb, bg, be, bh, dk::dl>::dg::ct,
    srt<bb, bg, be, bh, dk::dm>::dg::ct,
    srt<bd, bg, ba, bh, dk::dl>::dg::ct,
    srt<bd, bg, ba, bh, dk::dm>::dg::ct,
    srt<bd, bg, bb, bh, dk::dl>::dg::ct,
    srt<bd, bg, bb, bh, dk::dm>::dg::ct,
    srt<bd, bg, bd, bh, dk::dl>::dg::ct,
    srt<bd, bg, bd, bh, dk::dm>::dg::ct,
    srt<bd, bg, be, bh, dk::dl>::dg::ct,
    srt<bd, bg, be, bh, dk::dm>::dg::ct,
    srt<be, bg, ba, bh, dk::dl>::dg::ct,
    srt<be, bg, ba, bh, dk::dm>::dg::ct,
    srt<be, bg, bb, bh, dk::dm>::dg::ct,
    srt<be, bg, bb, bh, dk::dl>::dg::ct,
    srt<be, bg, bd, bh, dk::dl>::dg::ct,
    srt<be, bg, bd, bh, dk::dm>::dg::ct,
    srt<be, bg, be, bh, dk::dl>::dg::ct,
    srt<be, bg, be, bh, dk::dm>::dg::ct,
    srt<bd, bh, ba, bi, dk::dl>::dg::ct,
    srt<bd, bh, ba, bi, dk::dm>::dg::ct,
    srt<bd, bh, bb, bi, dk::dl>::dg::ct,
    srt<bd, bh, bb, bi, dk::dm>::dg::ct,
    srt<bd, bh, bd, bi, dk::dl>::dg::ct,
    srt<bd, bh, bd, bi, dk::dm>::dg::ct,
    srt<bd, bh, be, bi, dk::dl>::dg::ct,
    srt<bd, bh, be, bi, dk::dm>::dg::ct,
    srt<ba, bh, bb, bi, dk::dl>::dg::ct,
    srt<ba, bh, bb, bi, dk::dm>::dg::ct,
    srt<ba, bh, bd, bi, dk::dl>::dg::ct,
    srt<ba, bh, bd, bi, dk::dm>::dg::ct,
    srt<ba, bh, be, bi, dk::dl>::dg::ct,
    srt<ba, bh, be, bi, dk::dm>::dg::ct,
    srt<bb, bh, bd, bi, dk::dl>::dg::ct,
    srt<bb, bh, bd, bi, dk::dm>::dg::ct,
    srt<bb, bh, bb, bi, dk::dl>::dg::ct,
    srt<bb, bh, bb, bi, dk::dm>::dg::ct,
    srt<bb, bh, ba, bi, dk::dl>::dg::ct,
    srt<bb, bh, ba, bi, dk::dm>::dg::ct,
    srt<bb, bh, be, bi, dk::dl>::dg::ct,
    srt<bb, bh, be, bi, dk::dm>::dg::ct,
    srt<be, bh, bd, bi, dk::dl>::dg::ct,
    srt<be, bh, bd, bi, dk::dm>::dg::ct,
    srt<be, bh, bb, bi, dk::dl>::dg::ct,
    srt<be, bh, bb, bi, dk::dm>::dg::ct,
    srt<be, bh, be, bi, dk::dl>::dg::ct,
    srt<be, bh, be, bi, dk::dm>::dg::ct,
    srt<be, bh, ba, bi, dk::dl>::dg::ct,
    srt<be, bh, ba, bi, dk::dm>::dg::ct,
    srt<bd, bh, ba, bj, dk::dl>::dg::ct,
    srt<bd, bh, ba, bj, dk::dm>::dg::ct,
    srt<bd, bh, bb, bj, dk::dl>::dg::ct,
    srt<bd, bh, bb, bj, dk::dm>::dg::ct,
    srt<bd, bh, bd, bj, dk::dl>::dg::ct,
    srt<bd, bh, bd, bj, dk::dm>::dg::ct,
    srt<bd, bh, be, bj, dk::dl>::dg::ct,
    srt<bd, bh, be, bj, dk::dm>::dg::ct,
    srt<ba, bh, bb, bj, dk::dl>::dg::ct,
    srt<ba, bh, bb, bj, dk::dm>::dg::ct,
    srt<ba, bh, bd, bj, dk::dl>::dg::ct,
    srt<ba, bh, bd, bj, dk::dm>::dg::ct,
    srt<ba, bh, be, bj, dk::dl>::dg::ct,
    srt<ba, bh, be, bj, dk::dm>::dg::ct,
    srt<bb, bh, bd, bj, dk::dl>::dg::ct,
    srt<bb, bh, bd, bj, dk::dm>::dg::ct,
    srt<bb, bh, bb, bj, dk::dl>::dg::ct,
    srt<bb, bh, bb, bj, dk::dm>::dg::ct,
    srt<bb, bh, ba, bj, dk::dl>::dg::ct,
    srt<bb, bh, ba, bj, dk::dm>::dg::ct,
    srt<bb, bh, ba, bj, dk::dm>::dg::ct,
    srt<bb, bh, be, bj, dk::dl>::dg::ct,
    srt<bb, bh, be, bj, dk::dm>::dg::ct,
    srt<be, bh, bd, bj, dk::dl>::dg::ct,
    srt<be, bh, bd, bj, dk::dm>::dg::ct,
    srt<be, bh, bb, bj, dk::dl>::dg::ct,
    srt<be, bh, bb, bj, dk::dm>::dg::ct,
    srt<be, bh, be, bj, dk::dl>::dg::ct,
    srt<be, bh, be, bj, dk::dm>::dg::ct,
    srt<be, bh, ba, bj, dk::dl>::dg::ct,
    srt<be, bh, ba, bj, dk::dm>::dg::ct,
    srt<bd, bl, bd, br, dk::dl>::dg::ct,
    srt<bd, bl, bd, br, dk::dm>::dg::ct,
    srt<bd, by, bd, ca, dk::dl>::dg::ct,
    srt<bd, by, bd, ca, dk::dm>::dg::ct,
    srt<be, bl, be, br, dk::dl>::dg::ct,
    srt<be, bl, be, br, dk::dm>::dg::ct,
    srt<be, by, be, ca, dk::dl>::dg::ct,
    srt<be, by, be, ca, dk::dm>::dg::ct,
    srt<be, bl, bd, br, dk::dl>::dg::ct,
    srt<be, bl, bd, br, dk::dm>::dg::ct,
    srt<be, by, bd, ca, dk::dl>::dg::ct,
    srt<be, by, bd, ca, dk::dm>::dg::ct,
    srt<bd, bl, be, br, dk::dl>::dg::ct,
    srt<bd, bl, be, br, dk::dm>::dg::ct,
    srt<bd, by, be, ca, dk::dl>::dg::ct,
    srt<bd, by, be, ca, dk::dm>::dg::ct,
    srt<be, bl, bb, br, dk::dl>::dg::ct,
    srt<be, bl, bb, br, dk::dm>::dg::ct,
    srt<be, by, bb, ca, dk::dl>::dg::ct,
    srt<be, by, bb, ca, dk::dm>::dg::ct,
    srt<bd, bl, bb, br, dk::dl>::dg::ct,
    srt<bd, bl, bb, br, dk::dm>::dg::ct,
    srt<bd, by, bb, ca, dk::dl>::dg::ct,
    srt<bd, by, bb, ca, dk::dm>::dg::ct,
    srt<bb, bl, be, br, dk::dl>::dg::ct,
    srt<bb, bl, be, br, dk::dm>::dg::ct,
    srt<bb, by, be, ca, dk::dl>::dg::ct,
    srt<bb, by, be, ca, dk::dm>::dg::ct,
    srt<bb, bl, bd, br, dk::dl>::dg::ct,
    srt<bb, bl, bd, br, dk::dm>::dg::ct,
    srt<bb, by, bd, ca, dk::dl>::dg::ct,
    srt<bb, by, bd, ca, dk::dm>::dg::ct,
    srt<bb, bl, bb, br, dk::dl>::dg::ct,
    srt<bb, bl, bb, br, dk::dm>::dg::ct,
    srt<bb, by, bb, ca, dk::dl>::dg::ct,
    srt<bb, by, bb, ca, dk::dm>::dg::ct,
    srt<bc, bl, bc, bs, dk::dl>::dg::ct,
    srt<bc, bl, bc, bs, dk::dm>::dg::ct,
    srt<bc, by, bc, cb, dk::dl>::dg::ct,
    srt<bc, by, bc, cb, dk::dm>::dg::ct,
    srt<bc, bs, bc, bt, dk::dl>::dg::ct,
    srt<bc, bs, bc, bt, dk::dm>::dg::ct,
    srt<bc, cb, bc, cc, dk::dl>::dg::ct,
    srt<bc, cb, bc, cc, dk::dm>::dg::ct};

Reply via email to