https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66742
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- Indeed. Splicing lists has a precondition that l1.get_allocator() == l2.get_allocator(), and so we check: if (l1.get_allocator() != l2.get_allocator()) abort(); and obviously that fails for your invalid allocator type.