brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 277ad46 Raw
54 lines · plain
1; REQUIRES: x862;; Show that resolution of weak + global symbols works correctly when one is 3;; defined in native object and the other in a bitcode file.4;; The global symbol in both cases should be kept. LTO should throw away the5;; data for the discarded weak symbol defined in bitcode. The data for the6;; weak symbol in a native object will be kept, but will be unlabelled.7 8; RUN: rm -rf %t.dir9; RUN: split-file %s %t.dir10; RUN: llvm-as %t.dir/1.ll -o %t1.o11; RUN: llvm-mc -triple=x86_64-pc-linux %t.dir/2.s -o %t2.o -filetype=obj12; RUN: ld.lld %t1.o %t2.o -o %t.so -shared13; RUN: llvm-readobj --symbols -S --section-data %t.so | FileCheck %s14 15; CHECK:      Name: .data16; CHECK-NEXT: Type: SHT_PROGBITS17; CHECK-NEXT: Flags [18; CHECK-NEXT:   SHF_ALLOC19; CHECK-NEXT:   SHF_WRITE20; CHECK-NEXT: ]21; CHECK-NEXT: Address: 0x[[#%x,ADDR:]]22; CHECK-NEXT: Offset:23; CHECK-NEXT: Size: 1224; CHECK-NEXT: Link: 25; CHECK-NEXT: Info:26; CHECK-NEXT: AddressAlignment:27; CHECK-NEXT: EntrySize:28; CHECK-NEXT: SectionData (29; CHECK-NEXT:   0000: 09000000 05000000 04000000 |{{.*}}|30; CHECK-NEXT: )31 32; CHECK:      Name: a{{ }}33; CHECK-NEXT: Value: 0x[[#%x,ADDR]]34 35; CHECK:      Name: b{{ }}36; CHECK-NEXT: Value: 0x[[#%x,ADDR+8]]37 38;--- 1.ll39target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"40target triple = "x86_64-unknown-linux-gnu"41 42@a = weak global i32 843@b = global i32 444 45;--- 2.s46.data47.global a48a:49.long 950 51.weak b52b:53.long 554