1 ## Test how obj2yaml emits relocation addend descriptions.
2 ## We document that relocation addends are dumped as signed int64 decimal values.
4 ## Case 1: Check a 64-bit object.
6 ## Check how obj2yaml dumps an addend with an arbitrary positive value.
7 ## We use 1 as it is the first possible positive value.
8 # RUN: yaml2obj --docnum=1 %s -o %t1 -D ADDEND=1
9 # RUN: obj2yaml %t1 | FileCheck %s --check-prefix=ELF64 --match-full-lines -DADDEND=1
12 # ELF64-NEXT: - Symbol: foo
13 # ELF64-NEXT: Type: R_X86_64_PC32
14 # ELF64-NEXT: Addend: [[ADDEND]]
16 ## Check how obj2yaml dumps an addend with an arbitrary negative value.
17 ## We use -1 as it is the first possible negative value.
18 # RUN: yaml2obj --docnum=1 %s -o %t2 -D ADDEND=-1
19 # RUN: obj2yaml %t2 | FileCheck %s --check-prefix=ELF64 --match-full-lines -DADDEND=-1
21 ## Check how obj2yaml dumps an addend with the value INT64_MAX.
22 # RUN: yaml2obj --docnum=1 %s -o %t3 -D ADDEND=9223372036854775807
23 # RUN: obj2yaml %t3 | FileCheck %s --check-prefix=ELF64 --match-full-lines -DADDEND=9223372036854775807
25 ## Check how obj2yaml dumps an addend with the value INT64_MIN.
26 # RUN: yaml2obj --docnum=1 %s -o %t4 -D ADDEND=-9223372036854775808
27 # RUN: obj2yaml %t4 | FileCheck %s --check-prefix=ELF64 --match-full-lines -DADDEND=-9223372036854775808
50 ## Check that obj2yaml omits zero addends.
51 # RUN: yaml2obj --docnum=1 %s -o %t5 -D ADDEND=0
52 # RUN: obj2yaml %t5 | FileCheck %s --implicit-check-not="Addend:"
53 # RUN: yaml2obj --docnum=1 %s -o %t6 -D ADDEND=0x0
54 # RUN: obj2yaml %t6 | FileCheck %s --implicit-check-not="Addend:"
56 ## Case 2: Check a 32-bit object.
58 ## Check how obj2yaml dumps an addend with an arbitrary positive value.
59 ## We use 1 as it is the first possible positive value.
60 # RUN: yaml2obj --docnum=2 %s -o %t7 -D ADDEND=1
61 # RUN: obj2yaml %t7 | FileCheck %s --check-prefix=ELF32 --match-full-lines -DADDEND=1
64 # ELF32-NEXT: - Symbol: foo
65 # ELF32-NEXT: Type: R_386_PC32
66 # ELF32-NEXT: Addend: [[ADDEND]]
68 ## Check how obj2yaml dumps an addend with an arbitrary negative value.
69 ## We use -1 as it is the first possible negative value.
70 # RUN: yaml2obj --docnum=2 %s -o %t8 -D ADDEND=-1
71 # RUN: obj2yaml %t8 | FileCheck %s --check-prefix=ELF32 --match-full-lines -DADDEND=-1
73 ## Check how obj2yaml dumps an addend with the value INT32_MAX.
74 # RUN: yaml2obj --docnum=2 %s -o %t9 -D ADDEND=2147483647
75 # RUN: obj2yaml %t9 | FileCheck %s --check-prefix=ELF32 --match-full-lines -DADDEND=2147483647
77 ## Check how obj2yaml dumps an addend with the value INT32_MIN.
78 # RUN: yaml2obj --docnum=2 %s -o %t10 -D ADDEND=-2147483648
79 # RUN: obj2yaml %t10 | FileCheck %s --check-prefix=ELF32 --match-full-lines -DADDEND=-2147483648
102 ## Case 3: Check that obj2yaml omits zero addends.
103 # RUN: yaml2obj --docnum=1 %s -o %t11 -D ADDEND=0
104 # RUN: obj2yaml %t11 | FileCheck %s --implicit-check-not="Addend:"
105 # RUN: yaml2obj --docnum=1 %s -o %t12 -D ADDEND=0x0
106 # RUN: obj2yaml %t12 | FileCheck %s --implicit-check-not="Addend:"