https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97899
--- Comment #10 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jason Merrill <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:92a30040c8d3ea4899979ec41a7e8e6a625c438d commit r11-5323-g92a30040c8d3ea4899979ec41a7e8e6a625c438d Author: Jason Merrill <ja...@redhat.com> Date: Fri Nov 20 16:50:20 2020 -0500 c++: ICE with int{} in template. [PR97899] split_nonconstant_init_1 was confused by a CONSTRUCTOR with non-aggregate type, which (with COMPOUND_LITERAL_P set) we use in a template to represent a braced functional cast. It seems to me that there's no good reason to do split_nonconstant_init at all in a template. gcc/cp/ChangeLog: PR c++/97899 * typeck2.c (store_init_value): Don't split_nonconstant_init in a template. gcc/testsuite/ChangeLog: PR c++/97899 * g++.dg/cpp0x/initlist-template3.C: New test.