1e22fa1d4SChuanqi Xu// RUN: rm -rf %t 2e22fa1d4SChuanqi Xu// RUN: split-file %s %t 3e22fa1d4SChuanqi Xu// RUN: cd %t 4e22fa1d4SChuanqi Xu// 5e22fa1d4SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/b.cppm -o %t/b.pcm 6e22fa1d4SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/a.cppm -fmodule-file=b=%t/b.pcm \ 7e22fa1d4SChuanqi Xu// RUN: -o %t/a.pcm 8e22fa1d4SChuanqi Xu// RUN: %clang_cc1 -std=c++20 %t/user.cpp -fmodule-file=a=%t/a.pcm -verify -fsyntax-only 9e22fa1d4SChuanqi Xu 10e22fa1d4SChuanqi Xu//--- b.cppm 11e22fa1d4SChuanqi Xuexport module b; 12e22fa1d4SChuanqi Xuexport int b() { 13e22fa1d4SChuanqi Xu return 43; 14e22fa1d4SChuanqi Xu} 15e22fa1d4SChuanqi Xu 16e22fa1d4SChuanqi Xu//--- a.cppm 17e22fa1d4SChuanqi Xuexport module a; 18e22fa1d4SChuanqi Xuimport b; 19e22fa1d4SChuanqi Xuexport int a() { 20e22fa1d4SChuanqi Xu return b() + 43; 21e22fa1d4SChuanqi Xu} 22e22fa1d4SChuanqi Xu 23e22fa1d4SChuanqi Xu//--- user.cpp 24*dc4e85bdSChuanqi Xuimport a; // expected-error {{failed to find module file for module 'b'}} 25e22fa1d4SChuanqi Xuint use() { 26*dc4e85bdSChuanqi Xu return a(); // expected-error {{use of undeclared identifier 'a'}} 27e22fa1d4SChuanqi Xu} 28