<p dir="ltr">Lgtm</p>
<div class="gmail_quote">On Mar 10, 2016 18:17, "Evgeniy Stepanov" <<a href="mailto:eugenis@google.com">eugenis@google.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">eugenis created this revision.<br>
eugenis added a reviewer: rafael.<br>
eugenis added a subscriber: llvm-commits.<br>
eugenis set the repository for this revision to rL LLVM.<br>
<br>
A few more cases of merged common linkage variables with different sizes and alignments.<br>
<br>
Repository:<br>
  rL LLVM<br>
<br>
<a href="http://reviews.llvm.org/D18067" rel="noreferrer" target="_blank">http://reviews.llvm.org/D18067</a><br>
<br>
Files:<br>
  test/tools/gold/X86/Inputs/common.ll<br>
  test/tools/gold/X86/Inputs/common2.ll<br>
  test/tools/gold/X86/Inputs/common3.ll<br>
  test/tools/gold/X86/common.ll<br>
<br>
Index: test/tools/gold/X86/common.ll<br>
===================================================================<br>
--- test/tools/gold/X86/common.ll<br>
+++ test/tools/gold/X86/common.ll<br>
@@ -1,29 +1,47 @@<br>
 ; RUN: llvm-as %s -o %t1.o<br>
 ; RUN: llvm-as %p/Inputs/common.ll -o %t2.o<br>
+; RUN: llvm-as %p/Inputs/common2.ll -o %t2b.o<br>
+; RUN: llvm-as %p/Inputs/common3.ll -o %t2c.o<br>
+<br>
+@a = common global i16 0, align 8<br>
<br>
 ; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \<br>
 ; RUN:    --plugin-opt=emit-llvm \<br>
 ; RUN:    -shared %t1.o %t2.o -o %t3.o<br>
-; RUN: llvm-dis %t3.o -o - | FileCheck %s<br>
-<br>
-@a = common global i8 0, align 8<br>
+; RUN: llvm-dis %t3.o -o - | FileCheck %s --check-prefix=A<br>
<br>
 ; Shared library case, we merge @a as common and keep it for the symbol table.<br>
-; CHECK: @a = common global i16 0, align 8<br>
+; A: @a = common global i32 0, align 8<br>
+<br>
+; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \<br>
+; RUN:    --plugin-opt=emit-llvm \<br>
+; RUN:    -shared %t1.o %t2b.o -o %t3.o<br>
+; RUN: llvm-dis %t3.o -o - | FileCheck %s --check-prefix=B<br>
+<br>
+; (i16 align 8) + (i8 align 16) = i16 align 16<br>
+; B: @a = common global i16 0, align 16<br>
+<br>
+; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \<br>
+; RUN:    --plugin-opt=emit-llvm \<br>
+; RUN:    -shared %t1.o %t2c.o -o %t3.o<br>
+; RUN: llvm-dis %t3.o -o - | FileCheck %s --check-prefix=C<br>
+<br>
+; (i16 align 8) + (i8 align 1) = i16 align 8.<br>
+; C: @a = common global i16 0, align 8<br>
<br>
 ; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \<br>
 ; RUN:    --plugin-opt=emit-llvm \<br>
 ; RUN:    %t1.o %t2.o -o %t3.o<br>
 ; RUN: llvm-dis %t3.o -o - | FileCheck --check-prefix=EXEC %s<br>
<br>
 ; All IR case, we internalize a after merging.<br>
-; EXEC: @a = internal global i16 0, align 8<br>
+; EXEC: @a = internal global i32 0, align 8<br>
<br>
-; RUN: llc %p/Inputs/common.ll -o %t2.o -filetype=obj<br>
+; RUN: llc %p/Inputs/common.ll -o %t2native.o -filetype=obj<br>
 ; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \<br>
 ; RUN:    --plugin-opt=emit-llvm \<br>
-; RUN:    %t1.o %t2.o -o %t3.o<br>
+; RUN:    %t1.o %t2native.o -o %t3.o<br>
 ; RUN: llvm-dis %t3.o -o - | FileCheck --check-prefix=MIXED %s<br>
<br>
 ; Mixed ELF and IR. We keep ours as common so the linker will finish the merge.<br>
-; MIXED: @a = common global i8 0, align 8<br>
+; MIXED: @a = common global i16 0, align 8<br>
Index: test/tools/gold/X86/Inputs/common3.ll<br>
===================================================================<br>
--- /dev/null<br>
+++ test/tools/gold/X86/Inputs/common3.ll<br>
@@ -0,0 +1 @@<br>
+@a = common global i8 0, align 1<br>
Index: test/tools/gold/X86/Inputs/common2.ll<br>
===================================================================<br>
--- /dev/null<br>
+++ test/tools/gold/X86/Inputs/common2.ll<br>
@@ -0,0 +1 @@<br>
+@a = common global i8 0, align 16<br>
Index: test/tools/gold/X86/Inputs/common.ll<br>
===================================================================<br>
--- test/tools/gold/X86/Inputs/common.ll<br>
+++ test/tools/gold/X86/Inputs/common.ll<br>
@@ -1 +1 @@<br>
-@a = common global i16 0, align 4<br>
+@a = common global i32 0, align 4<br>
<br>
<br>
</blockquote></div>