Mercurial > hg > CbC > CbC_llvm
comparison clang/test/Modules/adl.cpp @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
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 | |
3 | |
4 #pragma clang module build a | |
5 module a { | |
6 explicit module x {} | |
7 explicit module y {} | |
8 } | |
9 #pragma clang module contents | |
10 #pragma clang module begin a.x | |
11 namespace N { | |
12 template<typename T> extern int f(T) { return 0; } | |
13 } | |
14 #pragma clang module end | |
15 | |
16 #pragma clang module begin a.y | |
17 #pragma clang module import a.x | |
18 using N::f; | |
19 #pragma clang module end | |
20 #pragma clang module endbuild | |
21 | |
22 namespace N { struct A {}; } | |
23 struct B {}; | |
24 | |
25 #ifndef ONLY_Y | |
26 #pragma clang module import a.x | |
27 void test1() { | |
28 f(N::A()); | |
29 f(B()); // expected-error {{use of undeclared identifier 'f'}} | |
30 } | |
31 #else | |
32 // expected-no-diagnostics | |
33 #endif | |
34 | |
35 #pragma clang module import a.y | |
36 void test2() { | |
37 // These are OK even if a.x is not imported. | |
38 f(N::A()); | |
39 f(B()); | |
40 } |