1 // RUN: %clang_cc1 -fmodules -verify -fno-modules-error-recovery -fno-spell-checking %s
2 // RUN: %clang_cc1 -fmodules -verify -fno-modules-error-recovery -DONLY_Y %s
4 #pragma clang module build a
9 #pragma clang module contents
10 #pragma clang module begin a.x
12 template<typename T
> extern int f(T
) { return 0; }
14 #pragma clang module end
16 #pragma clang module begin a.y
17 #pragma clang module import a.x
19 #pragma clang module end
20 #pragma clang module endbuild
22 namespace N
{ struct A
{}; }
26 #pragma clang module import a.x
29 f(B()); // expected-error {{use of undeclared identifier 'f'}}
32 // expected-no-diagnostics
35 #pragma clang module import a.y
37 // These are OK even if a.x is not imported.