http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56291
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-02-12 11:50:02 UTC --- I think the problem is in sort_constexpr_mem_initializers, which doesn't handle this case. CLASSTYPE_PRIMARY_BINFO (type) is NULL, thus it doesn't reorder anything, but in this case, because the base class is not virtual, but type is, the _vptr field comes last in the field list (and in the v vector), yet it is placed before the base. Jason, can you please have a look? Do you think this is the only problematic case left? Worst case we could fall through into a full blown vec qsort based on field offsets.