xref: /llvm-project/clang/test/Modules/duplicated-module-file-eq-module-name.cppm (revision da00c60dae0040185dc45039c4397f6e746548e9)
1e9a7876cSChuanqi Xu// Tests that we will pick the last `-fmodule-file=<module-name>=<path>` flag
2e9a7876cSChuanqi Xu// for <module-name>.
3e9a7876cSChuanqi Xu
4e9a7876cSChuanqi Xu// RUN: rm -rf %t
5e9a7876cSChuanqi Xu// RUN: split-file %s %t
6e9a7876cSChuanqi Xu// RUN: cd %t
7e9a7876cSChuanqi Xu//
8e9a7876cSChuanqi Xu// RUN: %clang_cc1 -std=c++20 %t/a.cppm -emit-module-interface -o %t/a.pcm
9e9a7876cSChuanqi Xu// RUN: %clang_cc1 -std=c++20 %t/u.cpp -fmodule-file=a=%t/unexist.pcm \
10e9a7876cSChuanqi Xu// RUN:      -fmodule-file=a=%t/a.pcm -verify -fsyntax-only
11*da00c60dSChuanqi Xu//
12*da00c60dSChuanqi Xu// RUN: %clang_cc1 -std=c++20 %t/a.cppm -emit-reduced-module-interface -o %t/a.pcm
13*da00c60dSChuanqi Xu// RUN: %clang_cc1 -std=c++20 %t/u.cpp -fmodule-file=a=%t/unexist.pcm \
14*da00c60dSChuanqi Xu// RUN:      -fmodule-file=a=%t/a.pcm -verify -fsyntax-only
15e9a7876cSChuanqi Xu
16e9a7876cSChuanqi Xu//--- a.cppm
17e9a7876cSChuanqi Xuexport module a;
18e9a7876cSChuanqi Xuexport int a();
19e9a7876cSChuanqi Xu
20e9a7876cSChuanqi Xu//--- u.cpp
21e9a7876cSChuanqi Xu// expected-no-diagnostics
22e9a7876cSChuanqi Xuimport a;
23e9a7876cSChuanqi Xuint u() {
24e9a7876cSChuanqi Xu    return a();
25e9a7876cSChuanqi Xu}
26