Files
clang-p2996/lld/test/ELF/lto/weak.ll
James Henderson a4e42601d4 [lld][ELF][test] Add a couple of test cases for LTO behaviour
This patch expands two LTO test cases to check other aspects.

1) weak.ll has been expanded to show that it doesn't matter whether the
   first appearance of a weak symbol appears in a bitcode file or native
   object - that one is picked.
2) reproduce-lto.ll has been expanded to show that the bitcode files are
   stored in the reproduce package and that intermediate files (such as
   the LTO-compiled object) are not.

Differential Revision: https://reviews.llvm.org/D88094

Reviewed by: grimar, MaskRay
2020-09-24 11:49:20 +01:00

49 lines
1.5 KiB
LLVM

; REQUIRES: x86
;; Test weak symbols are supported in LTO. The first definition should be
;; used regardless of whether it is from a bitcode file or native object.
; RUN: split-file %s %t
; RUN: llvm-as %t/size1.ll -o %t-size1.bc
; RUN: llvm-as %t/size2.ll -o %t-size2.bc
; RUN: llc %t/size4.ll -o %t-size4.o -filetype=obj
; RUN: ld.lld %t-size1.bc %t-size2.bc -o %t.so -shared
; RUN: llvm-readobj --symbols %t.so | FileCheck %s -DSIZE=1
; RUN: ld.lld %t-size2.bc %t-size1.bc -o %t2.so -shared
; RUN: llvm-readobj --symbols %t2.so | FileCheck %s -DSIZE=2
; RUN: ld.lld %t-size1.bc %t-size4.o -o %t3.so -shared
; RUN: llvm-readobj --symbols %t3.so | FileCheck %s -DSIZE=1
; RUN: ld.lld %t-size4.o %t-size1.bc -o %t4.so -shared
; RUN: llvm-readobj --symbols %t4.so | FileCheck %s -DSIZE=4
; CHECK: Name: a
; CHECK-NEXT: Value:
; CHECK-NEXT: Size: [[SIZE]]
; CHECK-NEXT: Binding: Weak
; CHECK-NEXT: Type: Object
; CHECK-NEXT: Other: 0
; CHECK-NEXT: Section: .data
;--- size1.ll
target triple = "x86_64-unknown-linux-gnu"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
@a = weak global i8 1
;--- size2.ll
target triple = "x86_64-unknown-linux-gnu"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
@a = weak global i16 1
;--- size4.ll
target triple = "x86_64-unknown-linux-gnu"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
@a = weak global i32 1