1 | // RUN: %clang_cc1 -x c++ -fmodules -fmodules-local-submodule-visibility -fmodules-cache-path=%t %s -verify |
2 | // RUN: %clang_cc1 -x c++ -fmodules -fmodules-cache-path=%t %s -verify |
3 | |
4 | // expected-no-diagnostics |
5 | |
6 | #pragma clang module build A |
7 | module A { } |
8 | #pragma clang module contents |
9 | #pragma clang module begin A |
10 | struct A { |
11 | virtual void Foo(double x) const; |
12 | }; |
13 | #pragma clang module end |
14 | #pragma clang module endbuild |
15 | |
16 | #pragma clang module build B |
17 | module B { } |
18 | #pragma clang module contents |
19 | #pragma clang module begin B |
20 | #pragma clang module import A |
21 | struct B : A { |
22 | using A::Foo; |
23 | virtual void Foo(double x) const; |
24 | }; |
25 | #pragma clang module end |
26 | #pragma clang module endbuild |
27 | |
28 | #pragma clang module import B |
29 | |
30 | int main() { |
31 | B b; |
32 | b.Foo(1.0); |
33 | } |
34 | |
35 | |