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

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

$ cat color.ii
template <typename Cvt> void CvtColorLoop(int, int, const Cvt &);
enum { R2Y, G2Y, B2Y };
struct RGB2Gray {
  RGB2Gray(int, int, int coeffs) {
    const int coeffs0[]{G2Y, B2Y};
    coeffs = coeffs0;
    tab[2] = coeffs;
  }
  int tab[];
};

cvtColor_bidx() {
  int src, dst;
  CvtColorLoop(src, dst, RGB2Gray(0, cvtColor_bidx, 0));
}

$ g++ -fmerge-all-constants -flto -c color.ii -c -fpermissive

0xa8395f crash_signal
        ../../gcc/toplev.c:380
0x985325 compute_ltrans_boundary(lto_symtab_encoder_d*)
        ../../gcc/lto-cgraph.c:1024
0x9da94f ipa_write_summaries()
        ../../gcc/passes.c:2519
0x76c300 ipa_passes
        ../../gcc/cgraphunit.c:2215
0x76c300 symbol_table::compile()
        ../../gcc/cgraphunit.c:2311
0x76d8b0 symbol_table::finalize_compilation_unit()
        ../../gcc/cgraphunit.c:2460
0x5f8cf2 cp_write_global_declarations()
        ../../gcc/cp/decl2.c:4793

Reply via email to