diff --git a/clang/test/Modules/module-local-declarations.cppm b/clang/test/Modules/module-local-declarations.cppm new file mode 100644 index 000000000000..4fbcf09e4d79 --- /dev/null +++ b/clang/test/Modules/module-local-declarations.cppm @@ -0,0 +1,30 @@ +// RUN: rm -rf %t +// RUN: mkdir -p %t +// RUN: split-file %s %t +// +// RUN: %clang_cc1 -std=c++20 %t/Base.cppm -emit-module-interface -o %t/Base.pcm +// RUN: %clang_cc1 -std=c++20 %t/A.cppm -emit-module-interface -o %t/A.pcm -fprebuilt-module-path=%t +// RUN: %clang_cc1 -std=c++20 %t/B.cppm -fsyntax-only -verify -fprebuilt-module-path=%t + +//--- Base.cppm +export module Base; +export template +class Base {}; + +//--- A.cppm +export module A; +import Base; +struct S {}; + +export Base a; + +//--- B.cppm +// expected-no-diagnostics +export module B; + +import A; +import Base; + +struct S {}; + +export Base b;