// RUN: %clang_cc1 -x c++-module-map -fmodule-name=A -verify %s -fmodules-local-submodule-visibility module A { module B {} module C {} } #pragma clang module contents #pragma clang module begin A.B extern "C++" { #pragma clang module begin A.C template<typename T> void f(T t); #pragma clang module end void g() { f(0); } // ok } extern "C++" { #pragma clang module begin A.C } // expected-error {{extraneous closing brace}} #pragma clang module end #pragma clang module begin A.C extern "C++" { // expected-note {{to match this '{'}} #pragma clang module end // expected-error {{expected '}' at end of module}} } #pragma clang module end |