1cad82ccbSRafael Espindola; RUN: llvm-as %s -o %t1.o 2cad82ccbSRafael Espindola; RUN: llvm-as %p/Inputs/common.ll -o %t2.o 3d194e517SEvgeniy Stepanov; RUN: llvm-as %p/Inputs/common2.ll -o %t2b.o 4d194e517SEvgeniy Stepanov; RUN: llvm-as %p/Inputs/common3.ll -o %t2c.o 5d194e517SEvgeniy Stepanov 62ceb628fSDavide Italianotarget datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 7da873b5eSEugene Levianttarget triple = "x86_64-unknown-linux-gnu" 82ceb628fSDavide Italiano 9d194e517SEvgeniy Stepanov@a = common global i16 0, align 8 10cad82ccbSRafael Espindola 11*69bf876bSTom Stellard; RUN: %gold -m elf_x86_64 -plugin %llvmshlibdir/LLVMgold%shlibext \ 12cad82ccbSRafael Espindola; RUN: --plugin-opt=emit-llvm \ 13cad82ccbSRafael Espindola; RUN: -shared %t1.o %t2.o -o %t3.o 14d194e517SEvgeniy Stepanov; RUN: llvm-dis %t3.o -o - | FileCheck %s --check-prefix=A 15cad82ccbSRafael Espindola 16cad82ccbSRafael Espindola; Shared library case, we merge @a as common and keep it for the symbol table. 179ba95f99STeresa Johnson; A: @a = common global [4 x i8] zeroinitializer, align 8 18d194e517SEvgeniy Stepanov 19*69bf876bSTom Stellard; RUN: %gold -m elf_x86_64 -plugin %llvmshlibdir/LLVMgold%shlibext \ 20d194e517SEvgeniy Stepanov; RUN: --plugin-opt=emit-llvm \ 21d194e517SEvgeniy Stepanov; RUN: -shared %t1.o %t2b.o -o %t3.o 22d194e517SEvgeniy Stepanov; RUN: llvm-dis %t3.o -o - | FileCheck %s --check-prefix=B 23d194e517SEvgeniy Stepanov 24d194e517SEvgeniy Stepanov; (i16 align 8) + (i8 align 16) = i16 align 16 25e2e621a3STeresa Johnson; B: @a = common global i16 0, align 16 26d194e517SEvgeniy Stepanov 27*69bf876bSTom Stellard; RUN: %gold -m elf_x86_64 -plugin %llvmshlibdir/LLVMgold%shlibext \ 28d194e517SEvgeniy Stepanov; RUN: --plugin-opt=emit-llvm \ 29d194e517SEvgeniy Stepanov; RUN: -shared %t1.o %t2c.o -o %t3.o 30d194e517SEvgeniy Stepanov; RUN: llvm-dis %t3.o -o - | FileCheck %s --check-prefix=C 31d194e517SEvgeniy Stepanov 32d194e517SEvgeniy Stepanov; (i16 align 8) + (i8 align 1) = i16 align 8. 33e2e621a3STeresa Johnson; C: @a = common global i16 0, align 8 34cad82ccbSRafael Espindola 35*69bf876bSTom Stellard; RUN: %gold -m elf_x86_64 -plugin %llvmshlibdir/LLVMgold%shlibext \ 36cad82ccbSRafael Espindola; RUN: --plugin-opt=emit-llvm \ 37cad82ccbSRafael Espindola; RUN: %t1.o %t2.o -o %t3.o 38cad82ccbSRafael Espindola; RUN: llvm-dis %t3.o -o - | FileCheck --check-prefix=EXEC %s 39cad82ccbSRafael Espindola 40cad82ccbSRafael Espindola; All IR case, we internalize a after merging. 419ba95f99STeresa Johnson; EXEC: @a = internal global [4 x i8] zeroinitializer, align 8 42cad82ccbSRafael Espindola 43d194e517SEvgeniy Stepanov; RUN: llc %p/Inputs/common.ll -o %t2native.o -filetype=obj 44*69bf876bSTom Stellard; RUN: %gold -m elf_x86_64 -plugin %llvmshlibdir/LLVMgold%shlibext \ 45cad82ccbSRafael Espindola; RUN: --plugin-opt=emit-llvm \ 46d194e517SEvgeniy Stepanov; RUN: %t1.o %t2native.o -o %t3.o 47cad82ccbSRafael Espindola; RUN: llvm-dis %t3.o -o - | FileCheck --check-prefix=MIXED %s 48cad82ccbSRafael Espindola 49cad82ccbSRafael Espindola; Mixed ELF and IR. We keep ours as common so the linker will finish the merge. 504595a915SSean Fertile; MIXED: @a = common dso_local global i16 0, align 8 51