Files
clang-p2996/llvm/test/tools/dsymutil/X86/reflection-dump.test
Augusto Noronha 9b3af5e7b7 [dsymutil] Apply relocations present in Swift reflection sections
The strippable Swift reflection sections contain subtractor relocations
that need to be applied. There are two situations we need to support.
1) Both symbols used in the relocation come from the .o file (for
   example, one symbol lives in __swift5_fieldmd and the second in
   __swift5_reflstr).
2) One symbol comes from th .o file and the second from the main
   binary (for example, __swift5_fieldmd and __swift5_typeref).

Differential Revision: https://reviews.llvm.org/D120574
2022-03-17 14:23:20 -03:00

45 lines
2.6 KiB
Plaintext

RUN: rm -rf %t.dir && mkdir -p %t.dir/tmp
RUN: cp %p/../Inputs/main.yaml %t.dir
RUN: cp %p/../Inputs/test.yaml %t.dir
RUN: cp %p/../Inputs/reflection_metadata.yaml %t.dir
RUN: yaml2obj %p/../Inputs/main.yaml -o %t.dir/main
RUN: yaml2obj %p/../Inputs/test.yaml -o %t.dir/tmp/test-1.o
RUN: yaml2obj %p/../Inputs/reflection_metadata.yaml -o %t.dir/tmp/reflection_metadata-1.o
RUN: dsymutil -oso-prepend-path=%t.dir %t.dir/main -o %t.dir/main.dSYM
RUN: llvm-objdump -s %t.dir/main.dSYM/Contents/Resources/DWARF/main | FileCheck %s
REQUIRES: host-byteorder-little-endian
CHECK: Contents of section __DWARF,__swift5_assocty:
CHECK-NEXT: 10000e000 00000000 fcffffff 01000000 08000000 ................
CHECK-NEXT: 10000e010 f0ffffff ecffffff 00000000 fcffffff ................
CHECK-NEXT: 10000e020 01000000 08000000 f0ffffff ecffffff ................
CHECK: Contents of section __DWARF,__swift5_fieldmd:
CHECK-NEXT: 10000e030 00000000 00000000 00000c00 01000000 ................
CHECK-NEXT: 10000e040 02000000 ecffffff e8ffffff 00000000 ................
CHECK-NEXT: 10000e050 00000000 00000c00 00000000 00000000 ................
CHECK-NEXT: 10000e060 00000000 04000c00 00000000 00000000 ................
CHECK-NEXT: 10000e070 00000000 01000c00 03000000 00000000 ................
CHECK-NEXT: 10000e080 ecffffff e8ffffff 00000000 e0ffffff ................
CHECK-NEXT: 10000e090 dcffffff 00000000 d4ffffff d0ffffff ................
CHECK-NEXT: 10000e0a0 00000000 00000000 00000c00 01000000 ................
CHECK-NEXT: 10000e0b0 02000000 ecffffff e8ffffff 00000000 ................
CHECK-NEXT: 10000e0c0 00000000 00000c00 00000000 00000000 ................
CHECK-NEXT: 10000e0d0 00000000 03000c00 02000000 00000000 ................
CHECK-NEXT: 10000e0e0 ecffffff e8ffffff 00000000 e0ffffff ................
CHECK-NEXT: 10000e0f0 dcffffff 00000000 00000000 01000c00 ................
CHECK-NEXT: 10000e100 04000000 00000000 ecffffff e8ffffff ................
CHECK-NEXT: 10000e110 00000000 e0ffffff dcffffff 00000000 ................
CHECK-NEXT: 10000e120 d4ffffff d0ffffff 00000000 c8ffffff ................
CHECK-NEXT: 10000e130 c4ffffff 00000000 00000000 00000c00 ................
CHECK-NEXT: 10000e140 00000000 00000000 00000000 02000c00 ................
CHECK-NEXT: 10000e150 01000000 00000000 ecffffff e8ffffff ................
CHECK: Contents of section __DWARF,__swift5_reflstr:
CHECK-NEXT: 10000e160 496e6e65 7200696e 6e657200 496e6e65 Inner.inner.Inne
CHECK-NEXT: 10000e170 72006900 6d73006d 6500696e 6e657200 r.i.ms.me.inner.
CHECK-NEXT: 10000e180 43004900 74006d67 73006d67 65004743 C.I.t.mgs.mge.GC