From: Jose E. Marchesi Date: Fri, 5 Jun 2020 14:23:30 +0000 (+0200) Subject: gas: avoid GCC 10 warning stringop-overflow in tc-bpf.c X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f1919c56e1ffce63c5dbd60c9b29c492be9d0787;p=binutils-gdb.git gas: avoid GCC 10 warning stringop-overflow in tc-bpf.c The GAS struct frag ends with a field `fr_literal' whose purpose is to mark the begining of the frag's data: struct frag { ... /* Data begins here. */ char fr_literal[1]; }; The code in gas/config/tc-bpf.c recently committed: where = fixP->fx_frag->fr_literal + fixP->fx_where; where[1] = target_big_endian ? 0x01 : 0x10; triggers the stringop-overflow warning in GCC 10+, since the compiler assumes the size of the modified buffer is 1 byte. This patch slightly modifies the code to make tc-bpf.c buildable with GCC 10+. 2020-06-05 Jose E. Marchesi * config/tc-bpf.c (md_apply_fix): Avoid GCC 10 warning stringop-overflow. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 14d10799f0b..3ef92ad961d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2020-06-05 Jose E. Marchesi + + * config/tc-bpf.c (md_apply_fix): Avoid GCC 10 warning + stringop-overflow. + 2020-06-05 Nelson Chu * config/tc-riscv.c (explicit_csr): New static boolean. diff --git a/gas/config/tc-bpf.c b/gas/config/tc-bpf.c index aa48108748b..026a631280d 100644 --- a/gas/config/tc-bpf.c +++ b/gas/config/tc-bpf.c @@ -324,8 +324,8 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg) Note that the CALL instruction has only one operand, so this code is executed only once per instruction. */ - where = fixP->fx_frag->fr_literal + fixP->fx_where; - where[1] = target_big_endian ? 0x01 : 0x10; + where = fixP->fx_frag->fr_literal + fixP->fx_where + 1; + where[0] = target_big_endian ? 0x01 : 0x10; /* Fallthrough. */ case BPF_OPERAND_DISP16: /* The PC-relative displacement fields in jump instructions