gas: Silence GCC 10 warning on tc-crx.c
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 26 May 2020 13:46:26 +0000 (06:46 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 26 May 2020 13:53:36 +0000 (06:53 -0700)
opcode/crx.h has

typedef enum
  {
    ...
    MAX_REG
  }
reg;

typedef enum
  {
    c0 = MAX_REG,
  }
copreg;

tc-crx.c has

static int
getreg_image (reg r)
{
  ...
 /* Check whether the register is in registers table.  */
  if (r < MAX_REG)
    rreg = &crx_regtab[r];
  /* Check whether the register is in coprocessor registers table.  */
  else if (r < (int) MAX_COPREG)
    rreg = &crx_copregtab[r-MAX_REG];
}

Change getreg_image's argument type to int and replace fragP->fr_literal
with &fragP->fr_literal[0] to silence GCC 10 warning.

PR gas/26044
* config/tc-crx.c (getreg_image): Change argument type to int.
(md_convert_frag): Replace fragP->fr_literal with
&fragP->fr_literal[0].

gas/ChangeLog
gas/config/tc-crx.c

index 291a357b157994ba8f3347b6fff8585b413d0fb4..9a1dc3b0ecf1484c1addab7df4a030f681f58876 100644 (file)
@@ -1,3 +1,10 @@
+2020-05-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gas/26044
+       * config/tc-crx.c (getreg_image): Change argument type to int.
+       (md_convert_frag): Replace fragP->fr_literal with
+       &fragP->fr_literal[0].
+
 2020-05-26  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR gas/26044
index 09efa095fdf1d4ebb57fcafb967e4bf4707c0ef7..f0b32466dc72dafa60ed44ee995d7ae658a04478 100644 (file)
@@ -153,7 +153,7 @@ static void    handle_LoadStor              (const char *);
 static int     get_cinv_parameters      (const char *);
 static long    getconstant             (long, int);
 static op_err  check_range             (long *, int, unsigned int, int);
-static int     getreg_image            (reg);
+static int     getreg_image            (int);
 static void    parse_operands          (ins *, char *);
 static void    parse_insn              (ins *, char *);
 static void    print_operand           (int, int, argument *);
@@ -402,7 +402,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, fragS *fragP)
 {
   /* 'opcode' points to the start of the instruction, whether
      we need to change the instruction's fixed encoding.  */
-  char *opcode = fragP->fr_literal + fragP->fr_fix;
+  char *opcode = &fragP->fr_literal[0] + fragP->fr_fix;
   bfd_reloc_code_real_type reloc;
 
   subseg_change (sec, 0);
@@ -1107,7 +1107,7 @@ get_cinv_parameters (const char *operand)
    issue an error.  */
 
 static int
-getreg_image (reg r)
+getreg_image (int r)
 {
   const reg_entry *rreg;
   char *reg_name;