<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJylk82SmzAMx5_GXDRkwCQEDhzy0e303AfoOEYBdx1MbZF0-_QVkN0t7bQ9hPEYIUt__ZDGJ1e_VCJP7is5imRHeOmtIgSRHbRVIcBOZB_ms0B-0ARPzoHY7mcfwJ8Ze-XfcgC06wLh996DGsiB-nJBal0tZCFkKbK7jtge3-3_kvy75m8VmZfDpuSM992S4NdfAfBIg-9gLRdgf6F6BOfqTP0w0XJ08_6JQKsOTsiNv_TGYg03Qy18PByEPMBpIOgczb6DVV2zuued4YZwNj4Q9N5dTY3A0NZoQxB61EZZ80ORcd2oM6WyirWvdcDQXeoz4iWANc8Iigs2YLpFqbcoUDa4sQWToyXqw_gln3gFUvrZXdGfrbutuAb7vg0YRoDA9jbJt4lMJZsmxNTy1itPTBlPI4iXzDFzNC-x8zEHGorV6IhNNwZ3zehvtI7qKqvLrFQRT6p1vrpaVbsuGrytlnQNt2843bGsvb6-Ym7dV9Q0UQXGZWOTpVkZtRXmuigLLFWBmG7kqUyLOsvOMk_LtU5KGVl1QhsqsdkLKTu8wSTBttgco8cJTCUTKZOUnzIp1sVqm6X5RmqtsgRlvq7FOsGLMnY16qycbyJfTZLcqsCH1gQK74fcZNN0iBMwE5Ihi9V-nvd9FjBfh7cLshxKNBFWE95Psp1oPg>53139</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Bug in partial class template specialization
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    ```
template <class A>
struct Foo {
  template <class Bar>
  constexpr auto a_method();
};

template <class A>
template <class Bar>
constexpr auto Foo<A>::a_method() {
    return 42;
}

template <>
template <class Bar>
constexpr auto Foo<void>::a_method() {
    return 42;
}
```

It can be compiled with GCC, but not with Clang.
If we first provide explicit specialization, Clang will compile it.
Seems like a bug in Clang.

See also:
https://stackoverflow.com/questions/70670212/is-this-partial-class-specialization-buggy-or-is-it-a-bug-in-clang-or-gcc
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJylks2SmzAMx5_GXDRkwE5CcuCQj26n5z5AxxiFuOtgaouk26evgGy2tNP2sIzHCNnS_yeJytcvpVhn95UdRbYjvHROE4JQB-N0jLAT6sN0Fin0huDJexDFfvIB_Bmx1-ERA2B8Gwm_dwF0Tx70lwvS2ddCboTcCnXPI4rjm_1fkn9r_qbIvHxtDFa87-YEv5YCEJD60MJSzsD-QvUenKu39buJ5qOb9k8ERrdQITf-0lmHNdwsneHj4SDkAaqeoPU0-Q5Ot83iHneCG8LJhkjQBX-1NQJDO2ssQezQWO3sD03Wt0OeMZSzOPeqA5buqT4jXiI4-4ygWbAB286kHrdAu-iHFoyOM1EXhy_5xCuSNs_-iuHk_G3BGuz71mMcACLbRbYuMplLNm1M6cxbpwMxZTqOIJ0zp8zRvKQ-pHzRUqoHR2rb4XLbDP7GmKQuVb1VW52QJYflfmK_54VptI9hzwWSPrhyXkLDPe6rO7tz19dXyv39ioZG9Mg1sbFSudom53KV50XFZl7hSW9Rbk6YSSOrk8GVWi9V4nSFLpZitRdStniDMQXbYnVMbCkzKbOcn222WW4WhcrXK2mMVhnK9bIWywwv2rrFwLHwoUlCOSJxNyIfOhspvh1yvbZpEUc5zs8_8NmH8up0zRWPyuVI_hNrulM9">