1*786a4f42SChuanqi Xu// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py 2*786a4f42SChuanqi Xu// RUN: rm -rf %t 3*786a4f42SChuanqi Xu// RUN: split-file %s %t 4*786a4f42SChuanqi Xu// 5*786a4f42SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple -xc++-user-header -emit-header-unit %t/header.h -o %t/header.pcm 6*786a4f42SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple -fmodule-file=%t/header.pcm %t/M.cppm -S -emit-llvm -o - | FileCheck %t/M.cppm 7*786a4f42SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple -fmodule-file=%t/header.pcm %t/Use.cpp -S -emit-llvm -o - | FileCheck %t/Use.cpp 8*786a4f42SChuanqi Xu// 9*786a4f42SChuanqi Xu//--- header.h 10*786a4f42SChuanqi Xuint foo(); 11*786a4f42SChuanqi Xuint i = foo(); 12*786a4f42SChuanqi Xu 13*786a4f42SChuanqi Xu//--- M.cppm 14*786a4f42SChuanqi Xumodule; 15*786a4f42SChuanqi Xuimport "header.h"; 16*786a4f42SChuanqi Xuexport module M; 17*786a4f42SChuanqi Xu 18*786a4f42SChuanqi Xu// CHECK: @i = {{.*}}global i32 0 19*786a4f42SChuanqi Xu// CHECK: void @__cxx_global_var_init() 20*786a4f42SChuanqi Xu// CHECK-NEXT: entry: 21*786a4f42SChuanqi Xu// CHECK-NEXT: %call = call noundef{{.*}} i32 @_Z3foov() 22*786a4f42SChuanqi Xu// CHECK-NEXT: store i32 %call, ptr @i 23*786a4f42SChuanqi Xu 24*786a4f42SChuanqi Xu//--- Use.cpp 25*786a4f42SChuanqi Xuimport "header.h"; 26*786a4f42SChuanqi Xu 27*786a4f42SChuanqi Xu// CHECK: @i = {{.*}}global i32 0 28*786a4f42SChuanqi Xu// CHECK: void @__cxx_global_var_init() 29*786a4f42SChuanqi Xu// CHECK-NEXT: entry: 30*786a4f42SChuanqi Xu// CHECK-NEXT: %call = call noundef{{.*}} i32 @_Z3foov() 31*786a4f42SChuanqi Xu// CHECK-NEXT: store i32 %call, ptr @i 32