[Bug c++/119343] No SFINAE for deleted explicit specializations
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119343 Patrick Palka changed: What|Removed |Added Resolution|--- |FIXED Status|ASSIGNED|RESOLVED Target Milestone|--- |16.0 --- Comment #5 from Patrick Palka --- Fixed for GCC 16
[Bug c++/119343] No SFINAE for deleted explicit specializations
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119343 --- Comment #4 from GCC Commits --- The master branch has been updated by Patrick Palka : https://gcc.gnu.org/g:bae0ed69e1862add152f1b0618148f931611a9ca commit r16-5967-gbae0ed69e1862add152f1b0618148f931611a9ca Author: Egas Ribeiro Date: Sun Dec 7 23:35:00 2025 + c++: Fix SFINAE for deleted explicit specializations [PR119343] When checking a deleted explicit specialization in a SFINAE context, we were incorrectly selecting a partial specialization because resolve_nondeduced_context was calling mark_used. But resolving an overload to a single function (per DR 115) does not constitute ODR-use, so mark_used shouldn't be called there. Instead callers should call mark_used or mark_single_function on the result to uniformly handle all resolvable overloads (even non-template-id ones). This turns out to fix the below testcase because it causes convert_to_void for void(X::template g<0>) to properly propagate ODR-use failure (due to deleted g<0>) and return error_mark_node instead of returning void_node. PR c++/119343 gcc/cp/ChangeLog: * pt.cc (resolve_nondeduced_context): Remove mark_used call. gcc/testsuite/ChangeLog: * g++.dg/template/sfinae-deleted-pr119343.C: New test. Signed-off-by: Egas Ribeiro Reviewed-by: Patrick Palka
[Bug c++/119343] No SFINAE for deleted explicit specializations
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119343 --- Comment #3 from Egas Ribeiro --- Patch submitted: https://gcc.gnu.org/pipermail/gcc-patches/2025-November/702436.html
[Bug c++/119343] No SFINAE for deleted explicit specializations
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119343 Nathaniel Shead changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |egas.g.ribeiro at tecnico dot ulis ||boa.pt CC||nshead at gcc dot gnu.org
[Bug c++/119343] No SFINAE for deleted explicit specializations
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119343 Andrew Pinski changed: What|Removed |Added Ever confirmed|0 |1 Last reconfirmed||2025-03-17 Keywords||rejects-valid Status|UNCONFIRMED |NEW --- Comment #2 from Andrew Pinski --- Confirmed.
[Bug c++/119343] No SFINAE for deleted explicit specializations
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119343 --- Comment #1 from Andrew Pinski --- 4.8.0 used to do something similar for has_f too. Maybe that can help someone.
