https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
--- Comment #13 from Jason Merrill <jason at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #5) > /tmp/1.C:18:137: error: no match for ‘operator=’ (operand types are Curiously, changing #include <vector> to #include <array> reproduces the ICE: #include <list> #include <array> #include <string> struct A { std::list<std::array<std::string, 3> > stuff; void foo(); }; void A::foo() { stuff = { { "", "" }, { "", "" } }; } The cvise testcase changes the allocator parm to by-value, which hits a different bug than the original.