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