xref: /llvm-project/clang/test/CXX/module/basic/basic.search/module-import.cppm (revision e22fa1d4c6152d36cf1342ab9029adc97c79a310)
1d54888a3SChuanqi Xu// Tests for imported module search.
2d54888a3SChuanqi Xu//
3d54888a3SChuanqi Xu// RUN: rm -rf %t
4d54888a3SChuanqi Xu// RUN: mkdir %t
5d54888a3SChuanqi Xu// RUN: split-file %s %t
6d54888a3SChuanqi Xu//
7d54888a3SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/x.cppm -o %t/x.pcm
857833636SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -emit-module-interface -fmodule-file=x=%t/x.pcm %t/y.cppm -o %t/y.pcm
9d54888a3SChuanqi Xu//
10d54888a3SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -I%t -fmodule-file=x=%t/x.pcm -verify %t/use.cpp \
11d54888a3SChuanqi Xu// RUN:            -DMODULE_NAME=x
12d54888a3SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -I%t -fmodule-file=y=%t/y.pcm -verify %t/use.cpp \
13*e22fa1d4SChuanqi Xu// RUN:            -DMODULE_NAME=y -fmodule-file=x=%t/x.pcm
14d54888a3SChuanqi Xu//
15d54888a3SChuanqi Xu// RUN: mv %t/x.pcm %t/a.pcm
16d54888a3SChuanqi Xu//
17d54888a3SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -I%t -fmodule-file=x=%t/a.pcm -verify %t/use.cpp \
18d54888a3SChuanqi Xu// RUN:            -DMODULE_NAME=x
19d54888a3SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -I%t -fmodule-file=y=%t/y.pcm -fmodule-file=x=%t/a.pcm -verify %t/use.cpp \
20d54888a3SChuanqi Xu// RUN:            -DMODULE_NAME=y
21d54888a3SChuanqi Xu//
22d54888a3SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -emit-module-interface -fmodule-file=y=%t/y.pcm -fmodule-file=x=%t/a.pcm %t/z.cppm -o %t/z.pcm
23d54888a3SChuanqi Xu//
24d54888a3SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -I%t -fmodule-file=z=%t/z.pcm -fmodule-file=y=%t/y.pcm -fmodule-file=x=%t/a.pcm -verify %t/use.cpp \
25d54888a3SChuanqi Xu// RUN:            -DMODULE_NAME=z
26d54888a3SChuanqi Xu//
27d54888a3SChuanqi Xu
28d54888a3SChuanqi Xu//--- x.cppm
29d54888a3SChuanqi Xuexport module x;
30d54888a3SChuanqi Xuint a, b;
31d54888a3SChuanqi Xu
32d54888a3SChuanqi Xu//--- y.cppm
33d54888a3SChuanqi Xuexport module y;
34d54888a3SChuanqi Xuimport x;
35d54888a3SChuanqi Xuint c;
36d54888a3SChuanqi Xu
37d54888a3SChuanqi Xu//--- z.cppm
38d54888a3SChuanqi Xuexport module z;
39d54888a3SChuanqi Xuimport y;
40d54888a3SChuanqi Xuint d;
41d54888a3SChuanqi Xu
42d54888a3SChuanqi Xu//--- use.cpp
43d54888a3SChuanqi Xuimport MODULE_NAME;
44d54888a3SChuanqi Xu
45d54888a3SChuanqi Xu// expected-no-diagnostics
46