| |
| // 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 |