diff options
Diffstat (limited to 'binutils/testsuite/binutils-all')
-rw-r--r-- | binutils/testsuite/binutils-all/multi-1.d | 23 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/multi-2.d | 23 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/multi1.s | 6 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/multi2.s | 6 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/objdump.exp | 16 |
5 files changed, 74 insertions, 0 deletions
diff --git a/binutils/testsuite/binutils-all/multi-1.d b/binutils/testsuite/binutils-all/multi-1.d new file mode 100644 index 0000000..4cfdc61 --- /dev/null +++ b/binutils/testsuite/binutils-all/multi-1.d @@ -0,0 +1,23 @@ +#name: objdump --disassemble= of consecutive same-name functions (1) +#source: multi1.s +#source: multi2.s +#ld: -r +#objdump: --disassemble=func -wz +# ECOFF disassembly omits local symbols, for whatever reason. +#xfail: "alpha*-*-*ecoff" "alpha*-*-osf*" + +.*: +file format .* + +Disassembly of section .*: + +0+ <func>: +[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].* +#?[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].* +#?[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].* + +# HPPA 32-bit ELF "ld -r" leaves .text unmerged. +#?Disassembly of section .*: + +0+[0-3][0-9a-f] <func>: +[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].* +#pass diff --git a/binutils/testsuite/binutils-all/multi-2.d b/binutils/testsuite/binutils-all/multi-2.d new file mode 100644 index 0000000..791aa87 --- /dev/null +++ b/binutils/testsuite/binutils-all/multi-2.d @@ -0,0 +1,23 @@ +#name: objdump --disassemble= of consecutive same-name functions (2) +#source: multi2.s +#source: multi1.s +#ld: -r +#objdump: --disassemble=func2 -wz +# ECOFF disassembly omits local symbols, for whatever reason. +#xfail: "alpha*-*-*ecoff" "alpha*-*-osf*" + +.*: +file format .* + +Disassembly of section .*: + +0+ <func2>: +[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].* +#?[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].* +#?[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].* + +# HPPA 32-bit ELF "ld -r" leaves .text unmerged. +#?Disassembly of section .*: + +0+[0-3][0-9a-f] <func2>: +[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].* +#pass diff --git a/binutils/testsuite/binutils-all/multi1.s b/binutils/testsuite/binutils-all/multi1.s new file mode 100644 index 0000000..ee7a397 --- /dev/null +++ b/binutils/testsuite/binutils-all/multi1.s @@ -0,0 +1,6 @@ + .text +func: + .nop + +func2: + .nop diff --git a/binutils/testsuite/binutils-all/multi2.s b/binutils/testsuite/binutils-all/multi2.s new file mode 100644 index 0000000..34e52e8 --- /dev/null +++ b/binutils/testsuite/binutils-all/multi2.s @@ -0,0 +1,6 @@ + .text +func2: + .nop + +func: + .nop diff --git a/binutils/testsuite/binutils-all/objdump.exp b/binutils/testsuite/binutils-all/objdump.exp index e74b77b..aa7ddda 100644 --- a/binutils/testsuite/binutils-all/objdump.exp +++ b/binutils/testsuite/binutils-all/objdump.exp @@ -249,6 +249,22 @@ if { [ remote_file host exists $testarchive ] } then { test_objdump_d $testarchive bintest2.${obj} } +# AIX gas doesn't add local symbols to the symbol table. +# TI C30 and C54x ld emits various "address .. of tmpdir/dump section `...' is +# not within region `...'" errors, which look bogus for relocatable linking. +# alpha-vms doesn't support relocatable linking. +# i?86-msdos ld generates an executable despite being passed -r. +# Don't chance other than our own ld improperly handling -r. +if { ![istarget "*-*-aix*"] + && ![istarget "*c30-*-*"] + && ![istarget "*c54x-*-*"] + && ![istarget "alpha-*-*vms*"] + && ![istarget "i?86-*-msdos"] + && [file normalize "$LD"] == [file normalize "$objdir/../ld/ld-new"]} then { + run_dump_test multi-1 + run_dump_test multi-2 +} + # Test objdump --disassemble=<symbol> proc test_objdump_d_sym { testfile dumpfile } { global OBJDUMP |