blob: 0dbdf7165433eb621eaab5014f848b144a385379 [file] [edit]
// RUN: rm -rf %t
// RUN: mkdir -p %t
// RUN: split-file %s %t
// RUN: cd %t
//
// RUN: %clang_cc1 -verify -std=c++20 -emit-module -fmodules -fmodule-name=B -fmodules-cache-path=%t -xc++ module.modulemap
//--- module.modulemap
module A {
header "A.h"
}
module B {
module X {
header "B.h"
}
header "C.h"
}
//--- A.h
template <class _Tp, class = void> struct A {};
//--- B.h
template <class> struct C;
template <class T> void f() {
C<T> a;
}
void g() {
f<int>();
}
//--- C.h
// expected-no-diagnostics
#pragma clang module import A
template <class T> struct C {
using X = A<T>;
};