https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118802
--- Comment #12 from Iain Buclaw <ibuclaw at gcc dot gnu.org> --- (In reply to Sam James from comment #1) > The differences are odd. > > ``` > $ diffoscope > ./work/build/stage2-x86_64-pc-linux-gnu/32/libphobos/libdruntime/core/ > internal/gc/impl/conservative/gc.o > ./work/build/stage3-x86_64-pc-linux-gnu/32/libphobos/libdruntime/core/ > internal/gc/impl/conservative/gc.o > [...] > > │ -Relocation section > '.rel.data.rel.ro. > _D52TypeInfo_S4core8internal2gc4impl12conservativeQw3Gcx6__initZ' at offset > 0x3d1b8 contains 7 entries: > │ +Relocation section > '.rel.data.rel.ro. > _D52TypeInfo_S4core8internal2gc4impl12conservativeQw3Gcx6__initZ' at offset > 0x3d1b8 contains 6 entries: > │ Offset Info Type Sym. Value Symbol's Name > │ 00000000 0003ad01 R_386_32 00000000 > _D15TypeInfo_Struct6__vtblZ > │ 0000000c 00039701 R_386_32 00000000 > _D52TypeInfo_S4core8internal2gc4impl12conservativeQw3Gcx6__initZ.3363 > │ -00000014 0003f001 R_386_32 00000000 > _D4core8internal2gc4impl12conservativeQw3Gcx6__initZ _D4core8internal2gc4impl12conservativeQw3Gcx6__initZ is the default initializer symbol for `struct Gcx` found in the module core/internal/gc/impl/conservative/gc.d It's a compiler-generated type/data. The laying out of all fields is done here. https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/d/typeinfo.cc;h=f548451c8ba52a83b3e353e5bb6b73fea25d5952;hb=HEAD#l1079 Note that the only reason why this initializer symbol would not be emitted here is if `sd->zeroInit ()` returned true in the condition.