aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/java/sql/package.html
diff options
context:
space:
mode:
authorEgas Ribeiro <egas.g.ribeiro@tecnico.ulisboa.pt>2025-12-07 23:35:00 +0000
committerPatrick Palka <ppalka@redhat.com>2025-12-08 12:11:44 -0500
commitbae0ed69e1862add152f1b0618148f931611a9ca (patch)
tree3c4aefc06ca413ef7b9e647de146909d553beb0c /libjava/classpath/java/sql/package.html
parenta7b8c5faa6ff3d9bcc15457113e611ec377c6f5f (diff)
downloadgcc-bae0ed69e1862add152f1b0618148f931611a9ca.zip
gcc-bae0ed69e1862add152f1b0618148f931611a9ca.tar.gz
gcc-bae0ed69e1862add152f1b0618148f931611a9ca.tar.bz2
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 <egas.g.ribeiro@tecnico.ulisboa.pt> Reviewed-by: Patrick Palka <ppalka@redhat.com>
Diffstat (limited to 'libjava/classpath/java/sql/package.html')
0 files changed, 0 insertions, 0 deletions