https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86669

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 45105
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45105&action=edit
gcc9-pr86669.patch

Indeed, it does.  clone_body has code to unshare DECL_INITIAL, but it does so
only for FOR_EACH_LOCAL_DECL decls, the artificial temporary for
std::initializer_list in this case isn't tracked among those.

The following patch fixes it at least when looking at the testcase using a
cross-compiler, but I have no way to 1) test it on darwin 2) check whether the
testcase in the patch actually fails at runtime without the patch and is fixed
with it.
I'll bootstrap/regtest the patch on x86_64-linux and i686-linux, can somebody
please do the 1) and 2)?  Thanks.

Reply via email to