1 // RUN: %clang_cc1 -x c++-module-map -fmodule-name=A -verify %s -fmodules-local-submodule-visibility 2 module A { module B {} module C {} } 3 4 #pragma clang module contents 5 6 #pragma clang module begin A.B 7 extern "C++" { 8 #pragma clang module begin A.C 9 template<typename T> void f(T t); 10 #pragma clang module end 11 12 void g() { f(0); } // ok 13 } 14 15 extern "C++" { 16 #pragma clang module begin A.C 17 } // expected-error {{extraneous closing brace}} 18 #pragma clang module end 19 20 #pragma clang module begin A.C 21 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 end 26