https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116829
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2025-02-05 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Keywords| |wrong-code Priority|P3 |P4 --- Comment #1 from anlauf at gcc dot gnu.org --- Confirmed. All versions since at least gcc-7 fail. With finalization commented out, I see: void makeaap (struct aaptype & restrict a) { { struct aaptype aaptype.2; aaptype.2.i = 0; *a = aaptype.2; } as it should, but the original testcase has: void makeaap (struct aaptype & restrict a) { { struct array00_aaptype desc.6; desc.6.dtype = {.elem_len=4, .version=0, .rank=0, .type=5}; desc.6.data = (void * restrict) a; desc.6.span = (integer(kind=8)) desc.6.dtype.elem_len; __final_m_Aaptype (&desc.6, 4, 0); } Clearly wrong.