xref: /llvm-project/clang/test/CodeGenCXX/module-intializer-pmf.cpp (revision 7c1d9b15eee3a34678addab2bab66f3020ac0753)
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