gas: Update fr_literal access in frag for GCC 10
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 25 May 2020 11:50:56 +0000 (04:50 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 25 May 2020 11:51:17 +0000 (04:51 -0700)
commita39d29cda15d4f303c989eb0ac644a3144827881
treec69bea759e1899279bcde7de86df7bec2f07d95c
parent8f7d38efadee2a4f75fb2085e02dab658aa37f38
gas: Update fr_literal access in frag for GCC 10

When access fr_literal in

struct frag {
  ...
  /* Data begins here.  */
  char fr_literal[1];
};

with

char *buf = fragp->fr_fix + fragp->fr_literal;

GCC 10 gave

gas/config/tc-csky.c: In function ‘md_convert_frag’:
gas/config/tc-csky.c:4507:9: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
 4507 |  buf[1] = BYTE_1 (CSKYV1_INST_SUBI | (7 << 4));
      |         ^

Change

  char *buf = fragp->fr_fix + fragp->fr_literal;

to

  char *buf = fragp->fr_fix + &fragp->fr_literal[0];

to silence GCC 10 warning.

* config/tc-csky.c (md_convert_frag): Replace fragp->fr_literal
with &fragp->fr_literal[0].
* config/tc-microblaze.c (md_apply_fix): Likewise.
* config/tc-sh.c (md_convert_frag): Likewise.
gas/ChangeLog
gas/config/tc-csky.c
gas/config/tc-microblaze.c
gas/config/tc-sh.c