113 lines · plain
1// REQUIRES: x862// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t3// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/resolution.s -o %t24// RUN: ld.lld -discard-all %t %t2 -o %t35// RUN: llvm-readelf --symbols %t3 | FileCheck %s6 7// This is an exhaustive test for checking which symbol is kept when two8// have the same name. Each symbol has a different size which is used9// to see which one was chosen.10 11// CHECK: Symbol table '.symtab' contains 23 entries:12// CHECK-NEXT: Size Type Bind Vis Ndx Name13// CHECK-NEXT: 0 NOTYPE LOCAL DEFAULT UND 14// CHECK-NEXT: 0 NOTYPE GLOBAL DEFAULT 1 _start15// CHECK-NEXT: 0 NOTYPE WEAK DEFAULT 1 RegularWeak_with_RegularWeak16// CHECK-NEXT: 33 NOTYPE GLOBAL DEFAULT 1 RegularWeak_with_RegularStrong17// CHECK-NEXT: 2 NOTYPE GLOBAL DEFAULT 1 RegularStrong_with_RegularWeak18// CHECK-NEXT: 3 NOTYPE WEAK DEFAULT 1 RegularWeak_with_UndefWeak19// CHECK-NEXT: 4 NOTYPE WEAK DEFAULT 1 RegularWeak_with_UndefStrong20// CHECK-NEXT: 5 NOTYPE GLOBAL DEFAULT 1 RegularStrong_with_UndefWeak21// CHECK-NEXT: 6 NOTYPE GLOBAL DEFAULT 1 RegularStrong_with_UndefStrong22// CHECK-NEXT: 40 OBJECT GLOBAL DEFAULT 2 RegularWeak_with_CommonStrong23// CHECK-NEXT: 10 NOTYPE GLOBAL DEFAULT 1 RegularStrong_with_CommonStrong24// CHECK-NEXT: 43 NOTYPE WEAK DEFAULT 1 UndefWeak_with_RegularWeak25// CHECK-NEXT: 44 NOTYPE GLOBAL DEFAULT 1 UndefWeak_with_RegularStrong26// CHECK-NEXT: 45 NOTYPE WEAK DEFAULT 1 UndefStrong_with_RegularWeak27// CHECK-NEXT: 46 NOTYPE GLOBAL DEFAULT 1 UndefStrong_with_RegularStrong28// CHECK-NEXT: 0 NOTYPE WEAK DEFAULT UND UndefWeak_with_UndefWeak29// CHECK-NEXT: 49 OBJECT GLOBAL DEFAULT 2 UndefWeak_with_CommonStrong30// CHECK-NEXT: 51 OBJECT GLOBAL DEFAULT 2 UndefStrong_with_CommonStrong31// CHECK-NEXT: 22 OBJECT GLOBAL DEFAULT 2 CommonStrong_with_RegularWeak32// CHECK-NEXT: 55 NOTYPE GLOBAL DEFAULT 1 CommonStrong_with_RegularStrong33// CHECK-NEXT: 26 OBJECT GLOBAL DEFAULT 2 CommonStrong_with_UndefWeak34// CHECK-NEXT: 27 OBJECT GLOBAL DEFAULT 2 CommonStrong_with_UndefStrong35// CHECK-NEXT: 63 OBJECT GLOBAL DEFAULT 2 CommonStrong_with_CommonStrong36 37.globl _start38_start:39 nop40 41local:42 43.weak RegularWeak_with_RegularWeak44.size RegularWeak_with_RegularWeak, 045RegularWeak_with_RegularWeak:46 47.weak RegularWeak_with_RegularStrong48.size RegularWeak_with_RegularStrong, 149RegularWeak_with_RegularStrong:50 51.global RegularStrong_with_RegularWeak52.size RegularStrong_with_RegularWeak, 253RegularStrong_with_RegularWeak:54 55.weak RegularWeak_with_UndefWeak56.size RegularWeak_with_UndefWeak, 357RegularWeak_with_UndefWeak:58 59.weak RegularWeak_with_UndefStrong60.size RegularWeak_with_UndefStrong, 461RegularWeak_with_UndefStrong:62 63.global RegularStrong_with_UndefWeak64.size RegularStrong_with_UndefWeak, 565RegularStrong_with_UndefWeak:66 67.global RegularStrong_with_UndefStrong68.size RegularStrong_with_UndefStrong, 669RegularStrong_with_UndefStrong:70 71.weak RegularWeak_with_CommonStrong72.size RegularWeak_with_CommonStrong, 873RegularWeak_with_CommonStrong:74 75.global RegularStrong_with_CommonStrong76.size RegularStrong_with_CommonStrong, 1077RegularStrong_with_CommonStrong:78 79.weak UndefWeak_with_RegularWeak80.size UndefWeak_with_RegularWeak, 1181.quad UndefWeak_with_RegularWeak82 83.weak UndefWeak_with_RegularStrong84.size UndefWeak_with_RegularStrong, 1285.quad UndefWeak_with_RegularStrong86 87.size UndefStrong_with_RegularWeak, 1388.quad UndefStrong_with_RegularWeak89 90.size UndefStrong_with_RegularStrong, 1491.quad UndefStrong_with_RegularStrong92 93.weak UndefWeak_with_UndefWeak94.size UndefWeak_with_UndefWeak, 1595.quad UndefWeak_with_UndefWeak96 97.weak UndefWeak_with_CommonStrong98.size UndefWeak_with_CommonStrong, 1799.quad UndefWeak_with_CommonStrong100 101.size UndefStrong_with_CommonStrong, 19102.quad UndefStrong_with_CommonStrong103 104.comm CommonStrong_with_RegularWeak,22,4105 106.comm CommonStrong_with_RegularStrong,23,4107 108.comm CommonStrong_with_UndefWeak,26,4109 110.comm CommonStrong_with_UndefStrong,27,4111 112.comm CommonStrong_with_CommonStrong,31,4113