xref: /llvm-project/clang/test/Modules/cxx20-multiple-partitions.cpp (revision 69350e569dc47f871590243b5e46a68520640dcd)
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