|  |  | 
|  | // RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++20 %s \ | 
|  | // RUN:    -emit-module-interface -o %T/HasPMF.pcm | 
|  | // RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++20 %T/HasPMF.pcm \ | 
|  | // RUN:  -emit-llvm -o - | FileCheck %s | 
|  |  | 
|  | module; | 
|  |  | 
|  | struct Glob { | 
|  | Glob(){}; | 
|  | }; | 
|  |  | 
|  | Glob G; | 
|  |  | 
|  | export module HasPMF; | 
|  |  | 
|  | export struct InMod { | 
|  | InMod(){}; | 
|  | }; | 
|  |  | 
|  | export InMod IM; | 
|  |  | 
|  | module :private; | 
|  |  | 
|  | struct InPMF { | 
|  | InPMF(){}; | 
|  | }; | 
|  |  | 
|  | InPMF P; | 
|  |  | 
|  | // CHECK: define internal void @__cxx_global_var_init | 
|  | // CHECK: call {{.*}} @_ZN4GlobC1Ev | 
|  | // CHECK: define internal void @__cxx_global_var_init | 
|  | // CHECK: call {{.*}} @_ZNW6HasPMF5InPMFC1Ev | 
|  | // CHECK: define internal void @__cxx_global_var_init | 
|  | // CHECK: call {{.*}} @_ZNW6HasPMF5InModC1Ev | 
|  | // CHECK: define void @_ZGIW6HasPMF | 
|  | // CHECK: store i8 1, ptr @_ZGIW6HasPMF__in_chrg | 
|  | // CHECK: call void @__cxx_global_var_init | 
|  | // CHECK: call void @__cxx_global_var_init | 
|  | // CHECK: call void @__cxx_global_var_init |