Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / CXX / module / module.import / p7.cpp
blob2de6f0bd65c274605387cea56ba83fdb2d0b042a
1 // RUN: mkdir -p %t
2 // RUN: split-file %s %t
4 // All of the following should build without diagnostics.
5 //
6 // RUN: %clang_cc1 -std=c++20 %t/a.cpp -emit-module-interface -o %t/a.pcm
7 // R U N: %clang_cc1 -std=c++20 %t/a.pcm -emit-obj -o %t/a.o
8 //
9 // RUN: %clang_cc1 -std=c++20 %t/b.cpp -emit-module-interface -o %t/b.pcm \
10 // RUN: -fprebuilt-module-path=%t
11 // R U N: %clang_cc1 -std=c++20 %t/b.pcm -emit-obj -o %t/b.o
13 // RUN: %clang_cc1 -std=c++20 %t/b-impl.cpp -emit-obj -o %t/b-impl.o \
14 // RUN: -fprebuilt-module-path=%t
16 // RUN: %clang_cc1 -std=c++20 %t/ab-main.cpp -fsyntax-only \
17 // RUN: -fprebuilt-module-path=%t
19 //--- a.cpp
21 export module a;
23 export int foo() {
24 return 42;
27 //--- b.cpp
29 export module b;
30 import a;
32 export int bar();
34 //--- b-impl.cpp
36 module b;
38 int bar() {
39 return foo();
42 //--- ab-main.cpp
44 import b;
46 int main() {
47 return bar();