https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103040
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- One quite visible change is that D has those stmts that clear the vars before it is constructed, so e.g. in main: SR.11_24 = 0; _12 = SR.11_24; MEM <uint128_t> [(unsigned char * {ref-all})&nrvo] = _12; nrvo = nrvo101273 (); [return slot optimization] instead of C++ nrvo = nrvo101273 (); [return slot optimization]