https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99643
--- Comment #5 from CVS Commits ---
The releases/gcc-10 branch has been updated by Jason Merrill
:
https://gcc.gnu.org/g:dce71e0a274f58fe7cbabba8760f78469ba13548
commit r10-9843-gdce71e0a274f58fe7cbabba8760f78469ba13548
Author: Jason Merrill
Date: Sat Apr 3 16:17:29 2021 -0400
c++: array new initialized from a call [PR99643]
Here the get_foo() call results in a TARGET_EXPR, which we strip in
massage_init_elt, but then when build_vec_init tries to use it to
initialize
the array element we crash because build_aggr_init expects a class rvalue
to
have a TARGET_EXPR. So don't strip it.
The stripping was added in r206639 for PR59659, so I checked that removing
it didn't significantly increase compile time or memory usage for that
testcase; compile time was unaffected, memory usage increased by 0.4%.
gcc/cp/ChangeLog:
PR c++/99643
* typeck2.c (massage_init_elt): Don't strip TARGET_EXPR.
gcc/testsuite/ChangeLog:
PR c++/99643
* g++.dg/cpp0x/initlist-new5.C: New test.