https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102094
--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Iain Buclaw <ibuc...@gcc.gnu.org>: https://gcc.gnu.org/g:07984707be4eb9aea55dafbbc796790b8b8ac700 commit r12-3206-g07984707be4eb9aea55dafbbc796790b8b8ac700 Author: Iain Buclaw <ibuc...@gdcproject.org> Date: Sat Aug 28 16:57:03 2021 +0200 d: ICE in gimple_register_canonical_type_1, at lto/lto-common.c:430 (PR102094) User defined types have the TYPE_CXX_ODR_P flag set, but closure frames did not. This mismatch led to an ICE in the conflict detection for ODR and interoperable non-ODR types. As a given closure frame is tied explicitly to a function, it already conforms to ODR. PR d/102094 gcc/d/ChangeLog: * d-codegen.cc (build_frame_type): Set TYPE_CXX_ODR_P. gcc/testsuite/ChangeLog: * gdc.dg/lto/pr102094_0.d: New test.