https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126310
--- Comment #8 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-16 branch has been updated by Jason Merrill <[email protected]>: https://gcc.gnu.org/g:2e1c4ce1640aa26f391e7aaf842500d98b9bc483 commit r16-9417-g2e1c4ce1640aa26f391e7aaf842500d98b9bc483 Author: Jason Merrill <[email protected]> Date: Mon Jul 27 13:25:33 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. (cherry picked from commit 0e429acc24a2305c77da1229c456788e50edcae9)
