xref: /aosp_15_r20/external/llvm/test/MC/ELF/rename.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -t | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker// When doing a rename, all the checks for where the relocation should go
4*9880d681SAndroid Build Coastguard Worker// should be performed with the original symbol. Only if we decide to relocate
5*9880d681SAndroid Build Coastguard Worker// with the symbol we should then use the renamed one.
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker// This is a regression test for a bug where we used bar5@@@zed when deciding
8*9880d681SAndroid Build Coastguard Worker// if we should relocate with the symbol or with the section and we would then
9*9880d681SAndroid Build Coastguard Worker// not produce a relocation with .text.
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Workerdefined1:
12*9880d681SAndroid Build Coastguard Workerdefined3:
13*9880d681SAndroid Build Coastguard Worker        .symver defined3, bar5@@@zed
14*9880d681SAndroid Build Coastguard Worker        .long defined3
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard Worker        .global defined1
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker// CHECK:        Section {
19*9880d681SAndroid Build Coastguard Worker// CHECK:          Index:
20*9880d681SAndroid Build Coastguard Worker// CHECK:          Name: .rela.text
21*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     Type: SHT_RELA (0x4)
22*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     Flags [ (0x0)
23*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     ]
24*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     Address: 0x0
25*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     Offset:
26*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     Size: 24
27*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     Link:
28*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     Info:
29*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     AddressAlignment: 8
30*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     EntrySize: 24
31*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     Relocations [
32*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       0x0 R_X86_64_32 .text 0x0
33*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     ]
34*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:   }
35