File tree Expand file tree Collapse file tree 3 files changed +6
-2
lines changed
test/CXX/temp/temp.spec/temp.expl.spec Expand file tree Collapse file tree 3 files changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -695,6 +695,10 @@ Bug Fixes to C++ Support
695
695
until the noexcept-specifier is instantiated.
696
696
- Fix a crash when an implicitly declared ``operator== `` function with a trailing requires-clause has its
697
697
constraints compared to that of another declaration.
698
+ - Fix a bug where explicit specializations of member functions/function templates would have substitution
699
+ performed incorrectly when checking constraints. Fixes (#GH90349).
700
+ - Clang now allows constrained member functions to be explicitly specialized for an implicit instantiation
701
+ of a class template.
698
702
699
703
Bug Fixes to AST Handling
700
704
^^^^^^^^^^^^^^^^^^^^^^^^^
Original file line number Diff line number Diff line change @@ -5438,7 +5438,7 @@ def err_function_template_partial_spec : Error<
5438
5438
"function template partial specialization is not allowed">;
5439
5439
5440
5440
def err_function_member_spec_ambiguous : Error<
5441
- "ambiguous member function specialization of %q0 ">;
5441
+ "ambiguous member function specialization of %0 ">;
5442
5442
def note_function_member_spec_matched : Note<
5443
5443
"member function specialization matches %0">;
5444
5444
Original file line number Diff line number Diff line change @@ -41,7 +41,7 @@ template<>
41
41
constexpr int A<8 >::g() { return 3 ; }
42
42
43
43
template <>
44
- constexpr int A<6 >::g() { return 4 ; } // expected-error {{ambiguous member function specialization of 'A<6>:: g'}}
44
+ constexpr int A<6 >::g() { return 4 ; } // expected-error {{ambiguous member function specialization of 'g'}}
45
45
46
46
static_assert (A<9 >::g() == 0);
47
47
static_assert (A<1 >::g() == 1);
You can’t perform that action at this time.
0 commit comments