// RUN: rm -rf %t // RUN: mkdir -p %t // RUN: split-file %s %t // // RUN: %clang_cc1 -std=c++23 %t/a.cppm -emit-module-interface -o %t/a.pcm // RUN: %clang_cc1 -std=c++23 %t/b.cppm -emit-module-interface -o %t/b.pcm \ // RUN: -fprebuilt-module-path=%t // RUN: %clang_cc1 -std=c++23 -fprebuilt-module-path=%t %t/b.pcm -emit-llvm \ // RUN: -disable-llvm-passes -o - | FileCheck %t/b.cppm //--- a.cppm module; struct base { virtual void f() const; }; inline void base::f() const { } export module a; export using ::base; //--- b.cppm module; struct base { virtual void f() const; }; inline void base::f() const { } export module b; import a; export using ::base; export extern "C" void func() {} // We only need to check that the IR are successfully emitted instead of crash. // CHECK: func