39 lines · plain
1// RUN: rm -rf %t2// RUN: split-file %s %t3// RUN: cd %t4//5// RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++20 %t/a.cppm \6// RUN: -emit-module-interface -o %t/a.pcm7// RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++20 %t/m.cppm \8// RUN: -emit-module-interface -fprebuilt-module-path=%t -o %t/m.pcm9// RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++20 %t/m.pcm \10// RUN: -fprebuilt-module-path=%t -emit-llvm -o - | FileCheck %t/m.cppm11 12// Test again with reduced BMI13//14// RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++20 %t/a.cppm \15// RUN: -emit-reduced-module-interface -o %t/a.pcm16// RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++20 %t/m.cppm \17// RUN: -emit-reduced-module-interface -fprebuilt-module-path=%t -o %t/m.pcm18// RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++20 %t/m.pcm \19// RUN: -fprebuilt-module-path=%t -emit-llvm -o - | FileCheck %t/m.cppm20 21//--- a.cppm22export module a;23export struct A {24 A(){};25};26export A __dynamic_inited_a;27 28//--- m.cppm29module;30import a;31export module m;32import a;33module :private;34import a;35 36// CHECK: define void @_ZGIW1m37// CHECK: store i8 1, ptr @_ZGIW1m__in_chrg38// CHECK: call{{.*}}@_ZGIW1a39