llvm/clang/test/SemaCXX/identical-type-primary-partial-specialization.cpp

// RUN: %clang_cc1 -fsyntax-only -verify -std=c++17 %s
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++20 %s

template <decltype(auto) a>
struct S { // expected-note {{previous definition is here}}
    static constexpr int i = 42;
};

template <decltype(auto) a>
struct S<a> { // expected-error {{class template partial specialization does not specialize any template argument; to define the primary template, remove the template argument list}} \
              // expected-error {{redefinition of 'S'}}
    static constexpr int i = 0;
};