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

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

https://gcc.gnu.org/g:5bde80f48bcc594658c788895ad1fd86d0916fc2

commit r12-8208-g5bde80f48bcc594658c788895ad1fd86d0916fc2
Author: Ed Catmur <e...@catmur.uk>
Date:   Mon Apr 18 23:09:04 2022 +0100

    c++: Fall through for arrays of T vs T cv [PR104996]

    If two arrays do not have the exact same element type including
    qualification, this could be e.g. f(int (&&)[]) vs. f(int const (&)[]),
    which can still be distinguished by the lvalue-rvalue tiebreaker.

    By tightening this branch (in accordance with the letter of the Standard)
we
    fall through to the next branch, which tests whether they have different
    element type ignoring qualification and returns 0 in that case; thus we
only
    actually fall through in the T[...] vs. T cv[...] case, eventually
    considering the lvalue-rvalue tiebreaker at the end of compare_ics.

    Signed-off-by: Ed Catmur <e...@catmur.uk>

            PR c++/104996

    gcc/cp/ChangeLog:

            * call.cc (compare_ics): When comparing list-initialization
            sequences, do not return early.

    gcc/testsuite/ChangeLog:

            * g++.dg/cpp0x/initlist129.C: New test.

Reply via email to