1 2 // RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++20 %s \ 3 // RUN: -emit-module-interface -o %T/HasPMF.pcm 4 // RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++20 %T/HasPMF.pcm \ 5 // RUN: -emit-llvm -o - | FileCheck %s 6 7 module; 8 9 struct Glob { GlobGlob10 Glob(){}; 11 }; 12 13 Glob G; 14 15 export module HasPMF; 16 17 export struct InMod { InModInMod18 InMod(){}; 19 }; 20 21 export InMod IM; 22 23 module :private; 24 25 struct InPMF { InPMFInPMF26 InPMF(){}; 27 }; 28 29 InPMF P; 30 31 // CHECK: define internal void @__cxx_global_var_init 32 // CHECK: call {{.*}} @_ZN4GlobC1Ev 33 // CHECK: define internal void @__cxx_global_var_init 34 // CHECK: call {{.*}} @_ZNW6HasPMF5InPMFC1Ev 35 // CHECK: define internal void @__cxx_global_var_init 36 // CHECK: call {{.*}} @_ZNW6HasPMF5InModC1Ev 37 // CHECK: define void @_ZGIW6HasPMF 38 // CHECK: store i8 1, ptr @_ZGIW6HasPMF__in_chrg 39 // CHECK: call void @__cxx_global_var_init 40 // CHECK: call void @__cxx_global_var_init 41 // CHECK: call void @__cxx_global_var_init 42