<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/66772>66772</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang] Defaulted method template specialization fails to compile
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          nmakeenkov
      </td>
    </tr>
</table>

<pre>
    Tried the example on godbolt with clang 16.0.0: https://gcc.godbolt.org/z/K1dGc55Tx

I have a template class with defaulted copy assignment operator in base declaration. I want to specialise it for some template parameter and get an error `error: definition of explicitly defaulted copy assignment operator`.
But I believe it's legal to define this operator.

The code is as follows (with g++ compiles and works as expected):
```
#include <iostream>

template <typename T>
class MyClass {
public:
    MyClass() {}
    MyClass& operator=(const MyClass& other) = default;
};

// Specialization
template <>
MyClass<int>& MyClass<int>::operator=(const MyClass& other) noexcept {
    std::cout << "Specialized optor for int" << std::endl;
    return *this;
}

int main() {
 MyClass<double> obj1;
    MyClass<double> obj2;

    obj1 = obj2;

    MyClass<int> obj3;
    MyClass<int> obj4;

    obj4 = obj3;

    return 0;
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVN1u4yoXfRpyszUWBseJL3yRn8mn6tO5On0BDDs2UwwW4DaZpz_CTpy200ojRbEDi732WuwsEYJuLWJN1nuyPq7EGDvna9uLF0T74l5XjVPX-tlrVBA7BLyIfjAIzkLrVONMhDcdO5BG2BbyMqMZJXwHXYxDIHxH2ImwUytldoNnzreEnX4Tdvp_rv4n1-vnC6FHQnfz9xN04hVBQMR-MCJiKh3CzKLwLEYTUYF0wxXm7nu0EdyAXkTnQVtoREBQKI3wImpnM3iCN2EjRAdhQKmF0QFBRzg7D8H1-CAbhBc9RvQgrIIWIwgL6L3zQEo6vSR5Cs_a6lQc3BnwMhgtdTTXv-iQlDSbpe7HCE_QoNH4mtohbBPAYCtM6nSiQIidDsvZ7L1Tzx2CdApBBxABzs4Y9xaAsO3kVUvYnrA9SNcP2mCYBL05_zKh8TKgjKgIq9ItzWVLevvMPxnXVppRIRB-0C5Ej6In_Of7JhbjCD_E64BW9AjPC2i-u3-uh-lJNvt5eRgbo-VCDAB3DGFbwqoJuTl-sVs-fORHwrbS2RA_bMcO_VSCH--3QfiNN9Vc3m8i03zCv7ex-D0NzJ_SFkF3Jn7QNqZVVsIfa3xH-O5v-7QOLxKH-HAnCQ5RzWWkG-PcwQEIY0ujqMANaeDP09BHwtgdtpxFq8yiN1X1GEdvgbBdGqsPtrzzRNsIvdD23V3MFR5ClRsbg4T_BNf8yj9wfANin4xP0HR2uqdv9j8bm3D8G7IHoviaqbgz8S_2b8bQLyy5_ylWquaq4pVYYZ2X1TpnW1rQVVdLVZZbybb8zDeUFhRViWfB11Wz3WwFZytdM8o4rfIqZ-uC0qzgVbOWVZ43dJMXxYYUFHuhTWbMa58CcqVDGLEuy82GrYxo0IQpoRmbcpYwlsLa1wn_oxnbQApqdIjhUSHqaKZYn0-sj3BcoqnH2Dn1CL3wYfrhLLQJKYJu0bEavak_BbqO3dhk0vWEnRLn7fFj8O4XykjYaZIQCDtNKv4LAAD__woM9Cs">