https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110406
--- Comment #12 from Iain Sandoe <iains at gcc dot gnu.org> --- OTOH there was a second issue with zero-sized objects which was fixed thus: diff --git a/gcc/d/types.cc b/gcc/d/types.cc index a1f69bb02b7..020cc7de83f 100644 --- a/gcc/d/types.cc +++ b/gcc/d/types.cc @@ -581,6 +581,11 @@ finish_aggregate_mode (tree type) { for (tree field = TYPE_FIELDS (type); field; field = DECL_CHAIN (field)) { + /* Fields of type `typeof(*null)' have no size, so let them force the + record type mode to be computed as BLKmode. */ + if (TYPE_MAIN_VARIANT (TREE_TYPE (field)) == noreturn_type_node) + break; + if (DECL_SIZE (field) == NULL_TREE) return; }