40 lines · plain
1; REQUIRES: x862; RUN: rm -rf %t.dir3; RUN: split-file %s %t.dir4; RUN: llc %t.dir/t1.ll -o %t.dir/t1.obj --filetype=obj5; RUN: llc %t.dir/t2.ll -o %t.dir/t2.obj --filetype=obj6; RUN: lld-link %t.dir/t1.obj %t.dir/t2.obj -entry:main -out:%t.dir/out.exe7; RUN: llvm-readobj --section-headers %t.dir/out.exe | FileCheck %s8 9; Make sure that the data section contains just one copy of @a, not two.10; CHECK: Name: .data11; CHECK-NEXT: VirtualSize: 0x100012 13;--- t1.ll14target triple = "x86_64-pc-windows-msvc"15@a = common global [4096 x i8] zeroinitializer16 17define i32 @usea() {18 %ref_common = load i32, ptr @a19 ret i32 %ref_common20}21 22;--- t2.ll23target triple = "x86_64-pc-windows-msvc"24@a = common global [4096 x i8] zeroinitializer25 26define i32 @useb() {27 %ref_common = load i32, ptr @a28 ret i32 %ref_common29}30 31declare i32 @usea()32 33define dso_local i32 @main() local_unnamed_addr {34entry:35 %a = tail call i32 @usea()36 %b = tail call i32 @useb()37 %add = add nsw i32 %a, %b38 ret i32 %add39}40