https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94424
--- Comment #1 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:e8e0acbaa38ed57b4cbf9e60556f78a059ba2c0b commit r10-7482-ge8e0acbaa38ed57b4cbf9e60556f78a059ba2c0b Author: Iain Buclaw <ibuc...@gdcproject.org> Date: Tue Mar 31 18:18:32 2020 +0200 d: Use memset to fill alignment holes with zeroes. This patch removes the manual insertion of padding for fields in constructed struct literals, and instead uses memset() on the declaration being initialized. When compiling optimized builds, the intent is usually missed, and alignment holes end up with non-zero values in them anyway. gcc/d/ChangeLog: PR d/94424 * d-codegen.cc (build_alignment_field): Remove. (build_struct_literal): Don't insert alignment padding. * expr.cc (ExprVisitor::visit (AssignExp *)): Call memset before assigning struct literals. gcc/testsuite/ChangeLog: PR d/94424 * gdc.dg/pr94424.d: New test.