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

--- Comment #5 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-14 branch has been updated by Jason Merrill
<ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:a2dcdbfa34fe0212b827344ee22f2c9039921f5c

commit r14-11423-ga2dcdbfa34fe0212b827344ee22f2c9039921f5c
Author: Jason Merrill <ja...@redhat.com>
Date:   Wed Mar 19 05:15:00 2025 -0400

    c++: mangling of array new [PR119316]

    Because we build an array type to represent an array new, we hit a VLA
    error in compute_array_index_type for a variable length array new.  To
avoid
    this, let's build the MINUS_EXPR and index type directly.

    I also noticed that the non-constant case in write_array_type was assuming
    MINUS_EXPR without verifying it, so I added a checking_assert.

    I also noticed that Clang doesn't mangle the length of an array new at all,
    so I opened https://github.com/itanium-cxx-abi/cxx-abi/issues/199 to
clarify
    this.

            PR c++/119316

    gcc/cp/ChangeLog:

            * mangle.cc (write_expression) [NEW_EXPR]: Avoid using
            compute_array_index_type.
            (write_array_type): Add checking_assert.

    gcc/testsuite/ChangeLog:

            * g++.dg/abi/mangle-new1.C: New test.

    (cherry picked from commit 80e1dac3849b134ebd5e0151e9c9e4b8b091de72)

Reply via email to