3 // RUN: split-file %s %t
5 // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/a.cpp -o %t/a.pcm
7 // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/c.cpp \
8 // RUN: -fmodule-file=a=%t/a.pcm -o %t/c.pcm
10 // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/d.cpp \
11 // RUN: -fmodule-file=a=%t/a.pcm -o %t/d.pcm
13 // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/e.cpp \
14 // RUN: -fmodule-file=a=%t/a.pcm -o %t/e.pcm
16 // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/a-part.cpp \
17 // RUN: -o %t/a-part.pcm
19 // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/f.cpp \
20 // RUN: -fmodule-file=a=%t/a.pcm -o %t/f.pcm -verify
22 // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/g.cpp \
23 // RUN: -fmodule-file=a=%t/a.pcm -o %t/g.pcm -verify
25 // Test again with reduced BMI.
28 // RUN: split-file %s %t
30 // RUN: %clang_cc1 -std=c++20 -emit-reduced-module-interface %t/a.cpp -o %t/a.pcm
32 // RUN: %clang_cc1 -std=c++20 -emit-reduced-module-interface %t/c.cpp \
33 // RUN: -fmodule-file=a=%t/a.pcm -o %t/c.pcm
35 // RUN: %clang_cc1 -std=c++20 -emit-reduced-module-interface %t/d.cpp \
36 // RUN: -fmodule-file=a=%t/a.pcm -o %t/d.pcm
38 // RUN: %clang_cc1 -std=c++20 -emit-reduced-module-interface %t/e.cpp \
39 // RUN: -fmodule-file=a=%t/a.pcm -o %t/e.pcm
41 // RUN: %clang_cc1 -std=c++20 -emit-reduced-module-interface %t/a-part.cpp \
42 // RUN: -o %t/a-part.pcm
44 // RUN: %clang_cc1 -std=c++20 -emit-reduced-module-interface %t/f.cpp \
45 // RUN: -fmodule-file=a=%t/a.pcm -o %t/f.pcm -verify
47 // RUN: %clang_cc1 -std=c++20 -emit-reduced-module-interface %t/g.cpp \
48 // RUN: -fmodule-file=a=%t/a.pcm -o %t/g.pcm -verify
78 import
:part
; // expected-error {{module partition imports cannot be in the global module fragment}}
86 import
:part
; // expected-error {{module partition imports cannot be in the private module fragment}}