Bug 88995 - [8/9 Regression] internal compiler error: in lookup_template_class_1, at cp/pt.c:9471
Summary: [8/9 Regression] internal compiler error: in lookup_template_class_1, at cp/p...
Status: RESOLVED DUPLICATE of bug 88761
Alias: None
Product: gcc
Classification: Unclassified
Component: c++ (show other bugs)
Version: 8.2.1
: P1 normal
Target Milestone: 8.3
Assignee: Nathan Sidwell
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-01-22 21:48 UTC by H.J. Lu
Modified: 2019-02-08 17:30 UTC (History)
6 users (show)

See Also:
Host:
Target:
Build:
Known to work: 8.2.0
Known to fail: 8.2.1
Last reconfirmed: 2019-01-24 00:00:00


Attachments
small reproducer. (25.04 KB, application/x-xz)
2019-01-23 19:16 UTC, Sunil Pandey
Details
preprocessed source (248.37 KB, application/x-xz)
2019-01-29 14:18 UTC, Matthias Klose
Details
Preprocessed source (244.38 KB, application/gzip)
2019-02-07 02:34 UTC, Orion Poplawski
Details

Note You need to log in before you can comment on or make changes to this bug.
Description H.J. Lu 2019-01-22 21:48:50 UTC
On gcc-8-branch, r268029 caused

/builddir/build/BUILD/dldt-2018_R3/inference-engine/thirdparty/mkl-dnn/src/cpu/simple_reorder.hpp:1393:67: internal compiler error: in lookup_template_class_1, at cp/pt.c:9471
0xad14be lookup_template_class_1
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:9471
0xad2db0 lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int)
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:9683
0xadf026 tsubst_aggr_type
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:12686
0xaee57b tsubst_copy
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:15462
0xb0308c tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:19060
0xafce36 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:17756
0xae73dc tsubst_decl
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:13779
0xaee8a2 tsubst_copy
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:15507
0xb0423b tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:19259
0xafe978 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:18169
0xaff5d9 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:18348
0xaff9f8 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:18381
0xaff633 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:18349
0xaff5d9 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:18348
0xafce36 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:17756
0xaeddf0 tsubst_init
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:15350
0xaf7052 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:16997
0xaf5eca tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:16862
0xaf7366 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:17027
0xaf5eca tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
	/export/gnu/import/git/sources/gcc/gcc/cp/pt.c:16862
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

I am working on a smaller testcase.
Comment 1 Sunil Pandey 2019-01-23 19:16:32 UTC
Created attachment 45513 [details]
small reproducer.

Pass with GCC 8.2.0 but fail with mainline GCC.

GCC 8.2.0:
----------

$ gcc -O2 -fPIC -g -feliminate-unused-debug-types -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=32 -Wformat -Wformat-security -Wl,-z,now,-z,relro,-z,max-page-size=0x1000,-z,separate-code -Wno-error -ftree-vectorize -ftree-slp-vectorize -march=westmere -mtune=haswell -fasynchronous-unwind-tables -fno-omit-frame-pointer -O3 -falign-functions=32  -fno-math-errno -fno-semantic-interposition -fno-trapping-math -Werror=return-type  -Wuninitialized -Winit-self -Wmaybe-uninitialized -O2 -g -fvisibility=default -fopenmp -std=gnu++11  -S x.ii

$ echo $?
0

GCC Mainline:
=============

$ gcc -O2 -fPIC -g -feliminate-unused-debug-types -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=32 -Wformat -Wformat-security -Wl,-z,now,-z,relro,-z,max-page-size=0x1000,-z,separate-code -Wno-error -ftree-vectorize -ftree-slp-vectorize -march=westmere -mtune=haswell -fasynchronous-unwind-tables -fno-omit-frame-pointer -O3 -falign-functions=32  -fno-math-errno -fno-semantic-interposition -fno-trapping-math -Werror=return-type  -Wuninitialized -Winit-self -Wmaybe-uninitialized -O2 -g -fvisibility=default -fopenmp -std=gnu++11  -S x.ii -w

x.ii:711: internal compiler error: in lookup_template_class_1, at cp/pt.c:9471
  711 |    namespace cpu { using namespace mkldnn::impl::status; using namespace mkldnn::impl::memory_format; using namespace mkldnn::impl::data_type; using namespace mkldnn::impl::utils; using math::saturate; templ
      |
0x64160c lookup_template_class_1
        ../../gcc-main.42P5/gcc/cp/pt.c:9471
0x64160c lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int)
        ../../gcc-main.42P5/gcc/cp/pt.c:9683
0x9eec7c tsubst_aggr_type
        ../../gcc-main.42P5/gcc/cp/pt.c:12686
0x9d6404 tsubst_copy
        ../../gcc-main.42P5/gcc/cp/pt.c:15462
0x9d8ff3 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
        ../../gcc-main.42P5/gcc/cp/pt.c:19060
0x9cf937 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        ../../gcc-main.42P5/gcc/cp/pt.c:17756
0x9dfc01 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        ../../gcc-main.42P5/gcc/cp/pt.c:16847
0x9dfc01 tsubst_decl
        ../../gcc-main.42P5/gcc/cp/pt.c:13779
0x9d78eb tsubst_copy
        ../../gcc-main.42P5/gcc/cp/pt.c:15507
0x9d8988 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
        ../../gcc-main.42P5/gcc/cp/pt.c:19259
0x9d8de4 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
        ../../gcc-main.42P5/gcc/cp/pt.c:18169
0x9d8599 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
        ../../gcc-main.42P5/gcc/cp/pt.c:18348
0x9d981f tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
        ../../gcc-main.42P5/gcc/cp/pt.c:18381
0x9d85e4 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
        ../../gcc-main.42P5/gcc/cp/pt.c:18349
0x9d8599 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
        ../../gcc-main.42P5/gcc/cp/pt.c:18348
0x9cf937 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        ../../gcc-main.42P5/gcc/cp/pt.c:17756
0x9d4ec2 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        ../../gcc-main.42P5/gcc/cp/pt.c:15346
0x9d4ec2 tsubst_init
        ../../gcc-main.42P5/gcc/cp/pt.c:15350
0x9d3f3e tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        ../../gcc-main.42P5/gcc/cp/pt.c:16997
0x9d124e tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        ../../gcc-main.42P5/gcc/cp/pt.c:16862
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
Comment 2 Jakub Jelinek 2019-01-24 21:49:28 UTC
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};
Comment 3 Nathan Sidwell 2019-01-24 22:51:59 UTC
template <typename> struct dn 
{
  static void execute (long *ary)
  {
    constexpr int index = 0;

    [&] { auto &elt = ary [index]; };
  }
};

void foo ()
{
  dn<void>::execute;
}
Comment 4 Matthias Klose 2019-01-29 14:18:47 UTC
Created attachment 45553 [details]
preprocessed source

another preprocessed source from the trilinos package.

$ g++ -std=c++11 -c -Wall -Wextra TestSerial_SharedAlloc.ii 
TestSerial_SharedAlloc.ii: In instantiation of 'void test_shared_alloc() [with MemorySpace = HostSpace; ExecutionSpace = Serial]':
TestSerial_SharedAlloc.ii:5645:48:   required from here
TestSerial_SharedAlloc.ii:169:66: internal compiler error: in lookup_template_class_1, at cp/pt.c:9459
           auto __trans_tmp_5467 = RecordFull::allocate( s, name, size * 0 );
                                                                  ^~~~
0x7f0352c3b09a __libc_start_main
        ../csu/libc-start.c:308
Please submit a full bug report,
with preprocessed source if appropriate.


unfortunately creduce doesn't terminate when trying to reproduce it.
Comment 5 Orion Poplawski 2019-02-07 02:34:35 UTC
Created attachment 45623 [details]
Preprocessed source

gcc-c++-9.0.1-0.2.fc30.x86_64

Trying to update to VTK 8.2.0 in Fedora Rawhide.

/usr/lib64/ccache/c++  -DVTK_IN_VTK -DvtkFiltersExtraction_EXPORTS -I/builddir/build/BUILD/VTK-8.2.0/build/Filters/Extraction -I/builddir/build/BUILD/VTK-8.2.0/Filters/Extraction -I/builddir/build/BUILD/VTK-8.2.0/build/Common/Core -I/builddir/build/BUILD/VTK-8.2.0/Common/Core -I/builddir/build/BUILD/VTK-8.2.0/build/Utilities/KWIML -I/builddir/build/BUILD/VTK-8.2.0/Utilities/KWIML -I/builddir/build/BUILD/VTK-8.2.0/build/Utilities/KWSys -I/builddir/build/BUILD/VTK-8.2.0/Utilities/KWSys -I/builddir/build/BUILD/VTK-8.2.0/build/ThirdParty/utf8 -I/builddir/build/BUILD/VTK-8.2.0/ThirdParty/utf8 -I/builddir/build/BUILD/VTK-8.2.0/build/Common/DataModel -I/builddir/build/BUILD/VTK-8.2.0/Common/DataModel -I/builddir/build/BUILD/VTK-8.2.0/build/Common/Math -I/builddir/build/BUILD/VTK-8.2.0/Common/Math -I/builddir/build/BUILD/VTK-8.2.0/build/Common/Misc -I/builddir/build/BUILD/VTK-8.2.0/Common/Misc -I/builddir/build/BUILD/VTK-8.2.0/build/Common/System -I/builddir/build/BUILD/VTK-8.2.0/Common/System -I/builddir/build/BUILD/VTK-8.2.0/build/Common/Transforms -I/builddir/build/BUILD/VTK-8.2.0/Common/Transforms -I/builddir/build/BUILD/VTK-8.2.0/build/Common/ExecutionModel -I/builddir/build/BUILD/VTK-8.2.0/Common/ExecutionModel -I/builddir/build/BUILD/VTK-8.2.0/build/Filters/Core -I/builddir/build/BUILD/VTK-8.2.0/Filters/Core -I/builddir/build/BUILD/VTK-8.2.0/build/Filters/General -I/builddir/build/BUILD/VTK-8.2.0/Filters/General -I/builddir/build/BUILD/VTK-8.2.0/build/Common/ComputationalGeometry -I/builddir/build/BUILD/VTK-8.2.0/Common/ComputationalGeometry -I/builddir/build/BUILD/VTK-8.2.0/build/Filters/Statistics -I/builddir/build/BUILD/VTK-8.2.0/Filters/Statistics -I/builddir/build/BUILD/VTK-8.2.0/build/Imaging/Fourier -I/builddir/build/BUILD/VTK-8.2.0/Imaging/Fourier -I/builddir/build/BUILD/VTK-8.2.0/build/Imaging/Core -I/builddir/build/BUILD/VTK-8.2.0/Imaging/Core -I/builddir/build/BUILD/VTK-8.2.0/build/ThirdParty/eigen -I/builddir/build/BUILD/VTK-8.2.0/ThirdParty/eigen -I/usr/include/eigen3  -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_UNICODE -DHAVE_UINTPTR_T  -g -fPIC -fvisibility=hidden   -std=c++11 -o CMakeFiles/vtkFiltersExtraction.dir/vtkValueSelector.cxx.o -c /builddir/build/BUILD/VTK-8.2.0/Filters/Extraction/vtkValueSelector.cxx
*** WARNING *** there are active plugins, do not report this as a bug unless you can reproduce it without enabling any plugins.
Event                            | Plugins
PLUGIN_FINISH_UNIT               | annobin: Generate final annotations
PLUGIN_START_UNIT                | annobin: Generate global annotations
PLUGIN_ALL_PASSES_START          | annobin: Generate per-function annotations
PLUGIN_ALL_PASSES_END            | annobin: Register per-function end symbol
/builddir/build/BUILD/VTK-8.2.0/Filters/Extraction/vtkValueSelector.cxx: In instantiation of 'void {anonymous}::ArrayValueMatchFunctor::operator()(InputArrayType*, SelectionListArrayType*) [with InputArrayType = vtkAOSDataArrayTemplate<char>; SelectionListArrayType = vtkAOSDataArrayTemplate<char>]':
/builddir/build/BUILD/VTK-8.2.0/Filters/Extraction/vtkValueSelector.cxx:362:76:   required from here
/builddir/build/BUILD/VTK-8.2.0/Filters/Extraction/vtkValueSelector.cxx:123:50: internal compiler error: in lookup_template_class_1, at cp/pt.c:9471
  123 |             const auto valKK = faccessor.Get(cc, comp);
      |                                                  ^~~~
Comment 6 Jason Merrill 2019-02-08 17:03:39 UTC
I think this was fixed by my patch for PR 88761.
Comment 7 Jakub Jelinek 2019-02-08 17:30:39 UTC
Thanks, indeed, it was, just verified on 8.x branch #c1, #c3, #c4, #c5 testcase before (ICE) and after.
Do we want the #c3 into the testsuite too, or is it sufficiently similar to lambda-generic-const6.C that it isn't worth it?

*** This bug has been marked as a duplicate of bug 88761 ***