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

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

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

commit r14-6797-gd26f589e61a178e898d8b247042b487287ffe121
Author: Jason Merrill <ja...@redhat.com>
Date:   Sat Nov 18 14:35:22 2023 -0500

    c++: sizeof... mangling with alias template [PR95298]

    We were getting sizeof... mangling wrong when the argument after
    substitution was a pack expansion that is not a simple T..., such as
    list<T>... in variadic-mangle4.C or (A+1)... in variadic-mangle5.C.  In the
    former case we ICEd; in the latter case we wrongly mangled it as sZ
    <expression>.

            PR c++/95298

    gcc/cp/ChangeLog:

            * mangle.cc (write_expression): Handle v18 sizeof... bug.
            * pt.cc (tsubst_pack_expansion): Keep TREE_VEC for sizeof...
            (tsubst_expr): Don't strip TREE_VEC here.

    gcc/testsuite/ChangeLog:

            * g++.dg/cpp0x/variadic-mangle2.C: Add non-member.
            * g++.dg/cpp0x/variadic-mangle4.C: New test.
            * g++.dg/cpp0x/variadic-mangle5.C: New test.
            * g++.dg/cpp0x/variadic-mangle5a.C: New test.

Reply via email to