https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64076
tbsaunde at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |tbsaunde at gcc dot gnu.org --- Comment #2 from tbsaunde at gcc dot gnu.org --- what happens is this: testcase_2.o contains thunks to call s:: from vtables for each of x y and z. However testcase_2.C is compiled without t being a base so there's no thunk for t. So when testcase_1.C is compiled with t as a base of s we have an ironly thunk for t's vtable to call s::f and prevailing regular definitions of the other thunks. The result of that is triping the assert because we have one externally visible ironly thunk, and others that come from testcase_2.o