ARC: Use of uninitialised value

Message ID 20200322125455.GP4583@bubble.grove.modra.org
State New
Headers show
Series
  • ARC: Use of uninitialised value
Related show

Commit Message

Stefan Schulze Frielinghaus via Binutils March 22, 2020, 12:54 p.m.
* arc-dis.c (find_format): Use ISO C string concatenation rather
	than line continuation within a string.  Don't access needs_limm
	before testing opcode != NULL.


-- 
Alan Modra
Australia Development Lab, IBM

Comments

Stefan Schulze Frielinghaus via Binutils March 26, 2020, 9:33 a.m. | #1
git commit beea5cc1bc fixed one use of an uninitialised value but
ignored another one a few lines later.

	* arc-dis.c (find_format): Init needs_limm.  Simplify use of limm.

diff --git a/opcodes/arc-dis.c b/opcodes/arc-dis.c
index 131aee6b34..dc9e490ce8 100644
--- a/opcodes/arc-dis.c
+++ b/opcodes/arc-dis.c
@@ -420,7 +420,7 @@ find_format (bfd_vma                       memaddr,
              struct arc_operand_iterator * iter)
 {
   const struct arc_opcode *opcode = NULL;
-  bfd_boolean needs_limm;
+  bfd_boolean needs_limm = FALSE;
   const extInstruction_t *einsn, *i;
   unsigned limm = 0;
   struct arc_disassemble_info *arc_infop = info->private_data;
@@ -483,7 +483,7 @@ find_format (bfd_vma                       memaddr,
 
   /* Update private data.  */
   arc_infop->opcode = opcode;
-  arc_infop->limm = (needs_limm) ? limm : 0;
+  arc_infop->limm = limm;
   arc_infop->limm_p = needs_limm;
 
   return TRUE;

-- 
Alan Modra
Australia Development Lab, IBM

Patch

diff --git a/opcodes/arc-dis.c b/opcodes/arc-dis.c
index 9662c2fc53..131aee6b34 100644
--- a/opcodes/arc-dis.c
+++ b/opcodes/arc-dis.c
@@ -436,8 +436,9 @@  find_format (bfd_vma                       memaddr,
 	  opcode = arcExtMap_genOpcode (i, isa_mask, &errmsg);
 	  if (opcode == NULL)
 	    {
-	      (*info->fprintf_func) (info->stream, "\
-An error occured while generating the extension instruction operations");
+	      (*info->fprintf_func) (info->stream,
+				     _("An error occured while generating the "
+				       "extension instruction operations"));
 	      *opcode_result = NULL;
 	      return FALSE;
 	    }
@@ -452,7 +453,7 @@  An error occured while generating the extension instruction operations");
     opcode = find_format_from_table (info, arc_opcodes, insn, *insn_len,
 				     isa_mask, &needs_limm, TRUE);
 
-  if (needs_limm && opcode != NULL)
+  if (opcode != NULL && needs_limm)
     {
       bfd_byte buffer[4];
       int status;