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

    <tr>
        <th>Summary</th>
        <td>
            Class template partial specialization with concept-auto non-type parameter is not supported
        </td>
    </tr>

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

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

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

<pre>
    In this program
```
#include <concepts>

template <auto>
struct A;

template <std::same_as<int> auto p>
struct A<p> {};

A<0> a;
```
`A<auto>` is a class template with non-type parameter, and `A<std::same_as<int> auto>` is its specialization for `int` parameters. The program is accepted by GCC and MSVC, but Clang complains:
```
error: class template partial specialization is not more specialized than the primary template [-Winvalid-partial-specialization]
```
Online demo: https://godbolt.org/z/ee4TcPY5K
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMk0GPmzwQhn-NuVhExoZADhwSsnz6VFWt1FWrniqDJ8GVsZE97Cr76yuz2aVNt1WlKAje8TvPeGZkCPpsAWpSHEhxTOSMg_N1C8onnVOX-n9LcdCBTt6dvRwJOxK2J1t2_T2_cqFtb2YFlIimd7aHCQMRd1d5-UcYJyNxCZEzulc5oJ97pHsiDn-KD6iI2BOxD3KEbzIQ0WiLRNzR6ESnN7ya-JGS8kDK441zVNlyeBVuCtqy_U-YW0Z1oJL2RoZAX8EeNQ7UOpviZQI6SS9HQPCEN1RaRa8mf2df7TUGGibotTT6SaJ2lp6cjy4xfMvWBGFD7wd46ciC1scbB0W7C_2veU7__tPnJqJ0M9LGSHumvYvg2obI81bZ4L3zROxvC52kRy3NLZ4O1Dqko_OwSqAoDjIOTSTUo_SX1YgUh_SLtg_SaJVeXdNfXUlxfJPtgzXaAlUwukg4IE5LHbwlvD071TmDG-fPhLdPhLcA-X3_8WvxLlG1UDuxkwnUWcnyMt_xTCRDXQLbFbKvFFd5VgCD7YmfSlaJKqsKyGSia854zjJW8YxvC7GpVN6dsqrrRNdlImckZzBKbTbGPIwxd6JDmKEuS1GWiZEdmLDsFecWHukiEs7jmvk6nkm7-RxIzowOGFYX1Gigbv6pB8sMXjcuXZbh94F8aVSYp8l5BJXM3tQ3N6hxmLtN70bC20hyfaSTd9-hR8LbhT8Q3i71_QgAAP__F_xUxw">