// { dg-do compile { target c++20 } } // { dg-additional-options "-fabi-version=0 -fabi-compat-version=0" } // { dg-final { scan-assembler "_Z1gITk1C1YEvT_" } } // { dg-final { scan-assembler "_Z1gITk1D1XEvT_" } } // { dg-final { scan-assembler "_Z1gIiEvT_" } } template concept C = __is_class(T); template concept D = C && __is_empty(T); struct X { }; struct Y { int n; }; template void g(T) { } // #1 template void g(T) { } // #2 template void g(T) { } // #3 template void g(int); // Instantiate #1 template void g(X); // Instantitae #3 template void g(Y); // Instantiate #2 int main() { }