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

--- Comment #7 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Jason Merrill <[email protected]>:

https://gcc.gnu.org/g:0e429acc24a2305c77da1229c456788e50edcae9

commit r17-2722-g0e429acc24a2305c77da1229c456788e50edcae9
Author: Jason Merrill <[email protected]>
Date:   Sun Jul 26 12:44:22 2026 -0400

    c++: vrp and pmf conversion [PR126310]

    Here when trying to convert to EncodeFnTy, aka void (sub::*)(int&&), we
were
    instead converting to void (sub::*)(ValuePart&&), and the optimization
added
    by r16-5887 got confused by the values in the array initializer having
    different RECORD_TYPEs (with different FIELD_DECLs) from the type of the
    array.

    So let's correct the conversion to actually end with the requested type.

            PR c++/126310

    gcc/cp/ChangeLog:

            * call.cc (standard_conversion): Don't build a mixed METHOD_TYPE if
            it isn't needed.

    gcc/testsuite/ChangeLog:

            * g++.dg/opt/pmf2.C: New test.

Reply via email to