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