2 // RUN: %clang_cc1 -std=c++20 -emit-module-interface %s -o %t -DINTERFACE
3 // RUN: %clang_cc1 -std=c++20 -fmodule-file=Foo=%t %s -verify -DIMPLEMENTATION
4 // RUN: %clang_cc1 -std=c++20 -fmodule-file=Foo=%t %s -verify -DEARLY_IMPLEMENTATION
5 // RUN: %clang_cc1 -std=c++20 -fmodule-file=Foo=%t %s -verify -DUSER
7 // expected-no-diagnostics
9 #if defined(INTERFACE) || defined(EARLY_IMPLEMENTATION) || defined(IMPLEMENTATION)
17 #ifdef EARLY_IMPLEMENTATION
21 template<typename T
> struct type_template
{
26 template<typename T
> void type_template
<T
>::f(type
) {}
28 template<int = 0, typename
= int, template<typename
> class = type_template
>
29 struct default_template_args
{};