From: Alan Modra Date: Mon, 25 Jan 2021 04:47:15 +0000 (+1030) Subject: pr27228 testcase X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4287950e540900bfefa113f264c7f798b1616ee0;p=binutils-gdb.git pr27228 testcase This failed on ft32, hppa, and mips-irix targets. In the case of ft32 the problem was iterating over an array in reverse and not using the proper condition, so BFD_RELOC_NONE was not recognised. bfd/ * elf32-ft32.c (ft32_reloc_type_lookup): Don't miss ft32_reloc_map[0]. gas/ PR 27282 * testsuite/gas/all/none.d: Replace skip with xfail, don't xfail ft32. * testsuite/gas/elf/pr27228.d: xfail hppa and allow OBJECT match. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 949a644ac43..96b9cdf2452 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,7 @@ +2021-01-26 Alan Modra + + * elf32-ft32.c (ft32_reloc_type_lookup): Don't miss ft32_reloc_map[0]. + 2021-01-24 H.J. Lu PR binutils/27231 diff --git a/bfd/elf32-ft32.c b/bfd/elf32-ft32.c index bd0ed3e81d3..5a6ec764804 100644 --- a/bfd/elf32-ft32.c +++ b/bfd/elf32-ft32.c @@ -267,8 +267,7 @@ ft32_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, { unsigned int i; - for (i = sizeof (ft32_reloc_map) / sizeof (ft32_reloc_map[0]); - --i;) + for (i = 0; i < sizeof (ft32_reloc_map) / sizeof (ft32_reloc_map[0]); i++) if (ft32_reloc_map [i].bfd_reloc_val == code) return & ft32_elf_howto_table [ft32_reloc_map[i].ft32_reloc_val]; diff --git a/gas/ChangeLog b/gas/ChangeLog index 8cdcbc5088f..6d4af3e9889 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2021-01-26 Alan Modra + + PR 27282 + * testsuite/gas/all/none.d: Replace skip with xfail, don't xfail ft32. + * testsuite/gas/elf/pr27228.d: xfail hppa and allow OBJECT match. + 2021-01-24 H.J. Lu PR gas/27228 diff --git a/gas/testsuite/gas/all/none.d b/gas/testsuite/gas/all/none.d index deebab8b49c..374808a4f59 100644 --- a/gas/testsuite/gas/all/none.d +++ b/gas/testsuite/gas/all/none.d @@ -1,7 +1,7 @@ #objdump: -r -w #as: --generate-missing-build-notes=no # The HPPA maps R_PARISC_PCREL64 onto BFD_RELOC_NONE. -#skip: ft32-*-* hppa*-*-* +#xfail: hppa*-*-* #... 0+ .*(NONE|NULL|UNUSED0) +\*ABS\* diff --git a/gas/testsuite/gas/elf/pr27228.d b/gas/testsuite/gas/elf/pr27228.d index a44a61ec0fd..da336ff2191 100644 --- a/gas/testsuite/gas/elf/pr27228.d +++ b/gas/testsuite/gas/elf/pr27228.d @@ -1,8 +1,10 @@ #as: #name: .reloc against undefined local symbol (PR 27228) #readelf: -sW +# hppa doesn't support use of any BFD_RELOC_* +#xfail: hppa*-*-* Symbol table '\.symtab' contains [0-9]+ entries: #... - +[a-f0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND .LTHUNK5.lto_priv.0 + +[a-f0-9]+: 0+ +0 (NOTYPE|OBJECT) +GLOBAL DEFAULT +UND .LTHUNK5.lto_priv.0 #pass