// RUN: rm -rf %t // RUN: mkdir -p %t // RUN: split-file %s %t // RUN: cd %t // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-user-header hu-01.h \ // RUN: -fmodule-name=hu-01 -o hu-01.pcm // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-user-header hu-02.h \ // RUN: -Wno-experimental-header-units -fmodule-file=hu-01.pcm -o hu-02-abs.pcm // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-user-header hu-02.h \ // RUN: -Wno-experimental-header-units -fmodule-file=hu-01.pcm -o hu-02-rel.pcm \ // RUN: -fmodule-file-home-is-cwd // RUN: %clang -module-file-info hu-02-abs.pcm | FileCheck %s --check-prefix=IMPORT-ABS -DPREFIX=%t // IMPORT-ABS: Imports module 'hu-01': [[PREFIX]]{{/|\\}}hu-01.pcm // RUN: %clang -module-file-info hu-02-rel.pcm | FileCheck %s --check-prefix=IMPORT-REL // IMPORT-REL: Imports module 'hu-01': hu-01.pcm // RUN: llvm-bcanalyzer --dump --disable-histogram %t/hu-02-abs.pcm \ // RUN: | FileCheck %s --check-prefix=INPUT-ABS -DPREFIX=%t // INPUT-ABS: blob data = '[[PREFIX]]{{/|\\}}hu-02.h' // RUN: llvm-bcanalyzer --dump --disable-histogram %t/hu-02-rel.pcm \ // RUN: | FileCheck %s --check-prefix=INPUT-REL // INPUT-REL: blob data = 'hu-02.h' //--- hu-01.h inline void f() {} //--- hu-02.h import "hu-01.h"; inline void g() { f(); } // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/a.cppm -o %t/a-abs.pcm // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/a.cppm -o %t/a-rel.pcm \ // RUN: -fmodule-file-home-is-cwd // RUN: llvm-bcanalyzer --dump --disable-histogram %t/a-abs.pcm \ // RUN: | FileCheck %s --check-prefix=M-INPUT-ABS -DPREFIX=%t // M-INPUT-ABS: blob data = '[[PREFIX]]{{/|\\}}a.cppm' // RUN: llvm-bcanalyzer --dump --disable-histogram %t/a-rel.pcm \ // RUN: | FileCheck %s --check-prefix=M-INPUT-REL // M-INPUT-REL: blob data = 'a.cppm' //--- a.cppm export module a;