https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98840 --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- The ABI requires it. The caller is responsible for constructing and destroying the argument.