26 lines · cpp
1// RUN: %clang_cc1 -x c++-module-map -fmodule-name=A -verify %s -fmodules-local-submodule-visibility2module A { module B {} module C {} }3 4#pragma clang module contents5 6#pragma clang module begin A.B7extern "C++" {8 #pragma clang module begin A.C9 template<typename T> void f(T t);10 #pragma clang module end11 12 void g() { f(0); } // ok13}14 15extern "C++" {16 #pragma clang module begin A.C17 } // expected-error {{extraneous closing brace}}18 #pragma clang module end19 20 #pragma clang module begin A.C21 extern "C++" { // expected-note {{to match this '{'}}22 #pragma clang module end // expected-error {{expected '}' at end of module}}23}24 25#pragma clang module end26