1*69350e56SIain Sandoe // RUN: rm -rf %t 2*69350e56SIain Sandoe // RUN: mkdir -p %t 3*69350e56SIain Sandoe // RUN: split-file %s %t 4*69350e56SIain Sandoe 5*69350e56SIain Sandoe // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/partition1.cpp \ 6*69350e56SIain Sandoe // RUN: -o %t/A_part1.pcm 7*69350e56SIain Sandoe 8*69350e56SIain Sandoe // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/partition2.cpp \ 9*69350e56SIain Sandoe // RUN: -o %t/A_part2.pcm 10*69350e56SIain Sandoe 11*69350e56SIain Sandoe // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/partition3.cpp \ 12*69350e56SIain Sandoe // RUN: -o %t/A_part3.pcm 13*69350e56SIain Sandoe 14*69350e56SIain Sandoe // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/moduleA.cpp \ 15*69350e56SIain Sandoe // RUN: -fmodule-file=%t/A_part1.pcm -fmodule-file=%t/A_part2.pcm \ 16*69350e56SIain Sandoe // RUN: -fmodule-file=%t/A_part3.pcm -o %t/A.pcm 17*69350e56SIain Sandoe 18*69350e56SIain Sandoe // expected-no-diagnostics 19*69350e56SIain Sandoe 20*69350e56SIain Sandoe //--- partition1.cpp 21*69350e56SIain Sandoe 22*69350e56SIain Sandoe export module A:Part1; 23*69350e56SIain Sandoe 24*69350e56SIain Sandoe int part1(); 25*69350e56SIain Sandoe 26*69350e56SIain Sandoe //--- partition2.cpp 27*69350e56SIain Sandoe 28*69350e56SIain Sandoe export module A:Part2; 29*69350e56SIain Sandoe 30*69350e56SIain Sandoe int part2(); 31*69350e56SIain Sandoe 32*69350e56SIain Sandoe //--- partition3.cpp 33*69350e56SIain Sandoe 34*69350e56SIain Sandoe export module A:Part3; 35*69350e56SIain Sandoe 36*69350e56SIain Sandoe int part3(); 37*69350e56SIain Sandoe 38*69350e56SIain Sandoe //--- moduleA.cpp 39*69350e56SIain Sandoe 40*69350e56SIain Sandoe export module A; 41*69350e56SIain Sandoe 42*69350e56SIain Sandoe import :Part1; 43*69350e56SIain Sandoe export import :Part2; 44*69350e56SIain Sandoe import :Part3; 45*69350e56SIain Sandoe 46*69350e56SIain Sandoe int foo(); 47