[PATCH] gas: Silence GCC 10 warning on tc-crx.c

H.J. Lu hjl.tools@gmail.com
Tue May 26 13:52:19 GMT 2020


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       | 7 +++++++
 gas/config/tc-crx.c | 6 +++---
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index 291a357b15..9a1dc3b0ec 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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
diff --git a/gas/config/tc-crx.c b/gas/config/tc-crx.c
index 09efa095fd..f0b32466dc 100644
--- a/gas/config/tc-crx.c
+++ b/gas/config/tc-crx.c
@@ -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;
-- 
2.26.2



More information about the Binutils mailing list