diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/jaloverflow.d | 11 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/jaloverflow.s | 12 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/mips-elf.exp | 2 |
4 files changed, 31 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 135aaa0..f7061ed 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2004-12-08 Ian Lance Taylor <ian@wasabisystems.com> + + * 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 <hongjiu.lu@intel.com> * 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 0000000..b77afe6 --- /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 0000000..4dd98b8 --- /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 c3417bc..0cc8489 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" |