https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83372
David Malcolm <dmalcolm at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |GC, ice-on-valid-code, | |needs-bisection, | |needs-reduction, patch Status|ASSIGNED |WAITING See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=84263 Summary|Compiler segfaults building |ICE in GC within |Mir |gt_ggc_mx<deferred_access_c | |heck> building Mir --- Comment #15 from David Malcolm <dmalcolm at gcc dot gnu.org> --- I tried Nathan's patch from here: [PR c++/84263] GC ICE with decltype https://gcc.gnu.org/ml/gcc-patches/2018-02/msg00435.html With the patch, it successfully compiles the file. Without the patch: it ICEs, with corrupted memory in the buffer pointer to by "checks": (gdb) p *x $10 = {value = 0x7ffe4295b7e0, checks = 0x7ffe425ca6c0, qualifying_scope = 0x0} (gdb) p *x->checks $14 = {m_vecpfx = {m_alloc = 1919901535, m_using_auto_storage = 0, m_num = 1953709151}, m_vecdata = {{binfo = 0x75665f73693a3a64, decl = 0x763c6e6f6974636e, diag_decl = 0x26262a282064696f, loc = 1803036713}}} (gdb) call debug(x->value) full-name "class std::unique_ptr<xkb_state, void (*)(xkb_state*)>" needs-constructor needs-destructor X() has-type-conversion X(constX&) this=(X&) n_parents=0 use_template=1 interface-unknown (gdb) call inform (x->location, "token is here") /builddir/build/BUILD/mir-5500595810c28c150a3bd9edf19b392c2aeab932/src/server/frontend/wayland/wayland_connector.cpp:980:17: note: token is here Hence it looks like this is a duplicate of PR c++/84263 (but hard to be sure without properly reducing it). Nathan: does this look like a duplicate to you? Any ideas on how to reduce the reproducer? (the ~1hr time to hit the bug when forcing GC is making this awkward). Alan: are you able to test Nathan's bug to see if it fixes the issue for you? Thanks.