aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJose E. Marchesi <jose.marchesi@oracle.com>2020-06-05 16:23:30 +0200
committerJose E. Marchesi <jose.marchesi@oracle.com>2020-06-05 16:23:30 +0200
commitf1919c56e1ffce63c5dbd60c9b29c492be9d0787 (patch)
tree37b172dce58b1e7435d374a846673ce16697acc0 /gas
parent8a4ba3a14258bb522f7dadf07d92faae99e59301 (diff)
downloadgdb-f1919c56e1ffce63c5dbd60c9b29c492be9d0787.zip
gdb-f1919c56e1ffce63c5dbd60c9b29c492be9d0787.tar.gz
gdb-f1919c56e1ffce63c5dbd60c9b29c492be9d0787.tar.bz2
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 <jose.marchesi@oracle.com> * config/tc-bpf.c (md_apply_fix): Avoid GCC 10 warning stringop-overflow.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-bpf.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 14d1079..3ef92ad 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2020-06-05 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ * config/tc-bpf.c (md_apply_fix): Avoid GCC 10 warning
+ stringop-overflow.
+
2020-06-05 Nelson Chu <nelson.chu@sifive.com>
* config/tc-riscv.c (explicit_csr): New static boolean.
diff --git a/gas/config/tc-bpf.c b/gas/config/tc-bpf.c
index aa48108..026a631 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