old-cross-binutils/ld/testsuite/ld-xtensa/diff_overflow2.s
Volodymyr Arbatov 1058c7532d Use signed data type for R_XTENSA_DIFF* relocation offsets.
R_XTENSA_DIFF relocation offsets are in fact signed. Treat them as such.
Add testcase that examines ld behaviour on R_XTENSA_DIFF relocation
changing sign during relaxation.

2014-05-02  Volodymyr Arbatov  <arbatov@cadence.com>
	    David Weatherford  <weath@cadence.com>
	    Max Filippov  <jcmvbkbc@gmail.com>

bfd/
  * elf32-xtensa.c (relax_section): treat R_XTENSA_DIFF* relocations as
  signed.

gas/
  * config/tc-xtensa.c (md_apply_fix): mark BFD_RELOC_XTENSA_DIFF*
  fixups as signed.

ld/testsuite/
  * ld-xtensa/diff_overflow.exp, * ld-xtensa/diff_overflow1.s,
  * ld-xtensa/diff_overflow2.s: Add test for DIFF* relocation
  signedness and overflow checking.
2014-05-08 01:55:41 +04:00

22 lines
277 B
ArmAsm

.section .text.f1,"axG",@progbits,f1,comdat
.literal_position
.literal .L5, 0
.align 4
f4:
entry a1, 32
.Lf4:
l32r a2, .L5
l32r a2, .L5
nop
nop
retw
.section .text
f5:
entry a1, 32
.Lf5:
retw
.section .debug_frame,"",@progbits
.byte .Lf4 - f4
.byte .Lf5 - f5