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

--- Comment #11 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:7b98910406b5000a6429c188b0c6cc14e3140637

commit r13-968-g7b98910406b5000a6429c188b0c6cc14e3140637
Author: Marek Polacek <pola...@redhat.com>
Date:   Wed Jun 1 18:21:36 2022 -0400

    c++: ICE with template NEW_EXPR [PR105803]

    Here we ICE because value_dependent_expression_p gets a NEW_EXPR
    whose operand is a type, and we go to the default case which just
    calls v_d_e_p on each operand of the NEW_EXPR.  Since one of them
    is a type, we crash on the new assert in t_d_e_p.

    t_d_e_p has code to handle {,VEC_}NEW_EXPR, which at this point
    was already performed, so I think we can handle these two codes
    specifically and skip the second operand, which is always going
    to be a type.

            PR c++/105803

    gcc/cp/ChangeLog:

            * pt.cc (value_dependent_expression_p): Handle {,VEC_}NEW_EXPR
            in the switch.

    gcc/testsuite/ChangeLog:

            * g++.dg/template/new13.C: New test.

Reply via email to