[Bug c++/119343] No SFINAE for deleted explicit specializations
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jul 31 01:18:55 GMT 2026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119343
--- Comment #6 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Patrick Palka <ppalka@gcc.gnu.org>:
https://gcc.gnu.org/g:e873aac49eb2b58ae18e05f4150826278bdbb3cb
commit r17-2839-ge873aac49eb2b58ae18e05f4150826278bdbb3cb
Author: Patrick Palka <ppalka@redhat.com>
Date: Thu Jul 30 21:18:38 2026 -0400
c++: resolvedness of resolve_nondeduced_context result [PR126406]
In r16-5967-gbae0ed69e1862a we removed the mark_used call from
resolve_nondeduced_context under the rationale that it should be
the caller's responsiblity to mark_used.
Removing the call however now means that resolve_nondeduced_context
could return a specialization whose type is not yet fully resolved
(i.e. has an uninstantiated noexcept or undeduced return type), and
callers that immediately inspect TREE_TYPE of the result (such as
standard_conversion and build_conditional_expr) now misbehave.
In light of such callers, this patch reverts r16-5967; it's not
necessary to fix PR119343 because after r16-6276 convert_to_void
now properly propagates an error_mark_node result from
resolve_nondeduced_context.
PR c++/126406
PR c++/119343
gcc/cp/ChangeLog:
* pt.cc (resolve_nondeduced_context): Revert r16-5967 change.
gcc/testsuite/ChangeLog:
* g++.dg/cpp0x/cond2a.C: New test.
* g++.dg/cpp1y/auto-fn67.C: New test.
* g++.dg/cpp1z/noexcept-type29.C: New test.
Reviewed-by: Jason Merrill <jason@redhat.com>
More information about the Gcc-bugs
mailing list