aboutsummaryrefslogtreecommitdiff
path: root/gas/bignum.h
diff options
context:
space:
mode:
authorLifang Xia <lifang_xia@linux.alibaba.com>2024-07-04 09:56:07 +0800
committerNelson Chu <nelson@rivosinc.com>2024-07-04 21:36:21 +0800
commitf9d218de5c7b2eeeca9b32c9222a63c7376a8ddd (patch)
tree3611591ef0b8efcef3defd6c66608552f7fec7c7 /gas/bignum.h
parent433e2bef4a9e2fcba9c4005db6fb692496c0b135 (diff)
downloadbinutils-f9d218de5c7b2eeeca9b32c9222a63c7376a8ddd.zip
binutils-f9d218de5c7b2eeeca9b32c9222a63c7376a8ddd.tar.gz
binutils-f9d218de5c7b2eeeca9b32c9222a63c7376a8ddd.tar.bz2
RISC-V: hash with segment id and pcrel_hi address while recording pcrel_hi
When the same address across different segments (sections) needs to be recorded, it will overwrite the slot, leading to a memory leak. To ensure uniqueness, the segment (section) ID needs to be included in the hash key calculation. gas/ * config/tc-riscv.c (riscv_pcrel_hi_fixup): New "const asection *sec". (riscv_pcrel_fixup_hash): make sec->id and e->adrsess as the hash key. (riscv_pcrel_fixup_eq): Check sec->id at first. (riscv_record_pcrel_fixup): New member "sec". (md_apply_fix) <case BFD_RELOC_RISCV_PCREL_HI20>: Likewise. (md_apply_fix) <case BFD_RELOC_RISCV_PCREL_LO12_I>: Likewise.
Diffstat (limited to 'gas/bignum.h')
0 files changed, 0 insertions, 0 deletions