https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115249
--- Comment #5 from Iain Buclaw <ibuclaw at gcc dot gnu.org> --- My guess is, I missed a change to the TypeInfo_Class layout in D runtime. ClassFlags got reduced from a uint to a ushort. https://gcc.gnu.org/git/?p=gcc.git;a=blobdiff;f=libphobos/libdruntime/object.d;h=710f4cc90d171f66cdd6c27ee8b09bd338d0fcf3;hp=1b39a27c102881f294d312093a468e38ab70cd0b;hb=f204359931866b917856fc959c70dbf55f28c14d;hpb=5470a9b176c2b3030ff3891c7e9403db2b0685b8 But the compiler support code didn't adjust for this change. https://gcc.gnu.org/git/?p=gcc.git;a=blobdiff;f=gcc/d/typeinfo.cc;h=dfab0e651b979e8c21d6e574e99da62ae9de96b6;hp=257a2abe5d7932cdcc8b9ca28ee257682e3337d4;hb=f204359931866b917856fc959c70dbf55f28c14d;hpb=5470a9b176c2b3030ff3891c7e9403db2b0685b8 Easy to see then that LittleEndian targets wouldn't have noticed this discrepancy.