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

--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Marek Polacek
<mpola...@gcc.gnu.org>:

https://gcc.gnu.org/g:8794633003318113e03147a727e63f5d55b350ab

commit r12-8829-g8794633003318113e03147a727e63f5d55b350ab
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.

    (cherry picked from commit 3130e70dab1e64a7b014391fe941090d5f3b6b7d)

Reply via email to