From: Ian Lance Taylor Date: Wed, 8 Dec 2004 20:28:08 +0000 (+0000) Subject: * ld-mips-elf/jaloverflow.d: New test. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0efd41608649b56f097c83013b7f8c4404af06dd;p=binutils-gdb.git * ld-mips-elf/jaloverflow.d: New test. * ld-mips-elf/jaloverflow.s: New test. * ld-mips-elf/mips-elf.exp: Run it. --- diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 135aaa0f923..f7061ed7511 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2004-12-08 Ian Lance Taylor + + * ld-mips-elf/jaloverflow.d: New test. + * ld-mips-elf/jaloverflow.s: New test. + * ld-mips-elf/mips-elf.exp: Run it. + 2004-12-03 H.J. Lu * ld-elf/group1.d: Support 64bit. diff --git a/ld/testsuite/ld-mips-elf/jaloverflow.d b/ld/testsuite/ld-mips-elf/jaloverflow.d new file mode 100644 index 00000000000..b77afe67ae6 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/jaloverflow.d @@ -0,0 +1,11 @@ +#name: JAL overflow +#source: jaloverflow.s +#as: +#ld: -Ttext=0xffffff0 -e start +#error: .*relocation truncated to fit.* + +# This tests whether we correctly detect overflow in the jal +# instruction. jal is a bit weird since the upper four bits of the +# destination address are taken from the source address. So overflow +# occurs if the source and destination address do not have the same +# most significant four bits. diff --git a/ld/testsuite/ld-mips-elf/jaloverflow.s b/ld/testsuite/ld-mips-elf/jaloverflow.s new file mode 100644 index 00000000000..4dd98b80f89 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/jaloverflow.s @@ -0,0 +1,12 @@ +# This file gets linked to start at 0xffffff0, so the call is an overflow. + .text + .global start + .set noreorder +start: + nop + nop + nop + nop + jal start + nop + .type start, @function diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-elf/mips-elf.exp index c3417bcc4bb..0cc8489eb6d 100644 --- a/ld/testsuite/ld-mips-elf/mips-elf.exp +++ b/ld/testsuite/ld-mips-elf/mips-elf.exp @@ -79,3 +79,5 @@ if {$has_newabi && $linux_gnu} { run_dump_test "eh-frame1-n32" run_dump_test "eh-frame1-n64" } + +run_dump_test "jaloverflow"