https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106925
--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The trunk branch has been updated by Marek Polacek <mpola...@gcc.gnu.org>: https://gcc.gnu.org/g:3130e70dab1e64a7b014391fe941090d5f3b6b7d commit r13-3277-g3130e70dab1e64a7b014391fe941090d5f3b6b7d Author: Marek Polacek <pola...@redhat.com> Date: Tue Oct 11 14:16:54 2022 -0400 c++: ICE with VEC_INIT_EXPR and defarg [PR106925] Since r12-8066, in cxx_eval_vec_init we perform expand_vec_init_expr while processing the default argument in this test. At this point start_preparsed_function hasn't yet set current_function_decl. expand_vec_init_expr then leads to maybe_splice_retval_cleanup which checks DECL_CONSTRUCTOR_P (current_function_decl) without checking that c_f_d is non-null first. It seems correct that c_f_d is null here, so it seems to me that maybe_splice_retval_cleanup should check c_f_d as in the following patch. PR c++/106925 gcc/cp/ChangeLog: * except.cc (maybe_splice_retval_cleanup): Check current_function_decl. Make the bool const. gcc/testsuite/ChangeLog: * g++.dg/cpp0x/initlist-defarg3.C: New test.