[binutils-gdb] metag build error

Alan Modra amodra@sourceware.org
Mon Jun 9 02:20:12 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b3f1e0239c93484b5a06af06a47f833150a3df38

commit b3f1e0239c93484b5a06af06a47f833150a3df38
Author: Alan Modra <amodra@gmail.com>
Date:   Sat Jun 7 21:28:41 2025 +0930

    metag build error
    
    gas/config/tc-metag.c: In function ‘parse_dsp_addr’:
    gas/config/tc-metag.c:4386:29: error: ‘regs[0]’ may be used uninitialized [-Werror=maybe-uninitialized]
     4386 |   if (!is_addr_unit (regs[0]->unit) &&
          |                      ~~~~~~~^~~~~~
    
    It looks like regs_read can be zero with "l" non-NULL, so this gcc
    complaint is accurate.
    
            * config/tc-metag.c (parse_dsp_addr, parse_dget_set): Check
            regs_read.

Diff:
---
 gas/config/tc-metag.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/gas/config/tc-metag.c b/gas/config/tc-metag.c
index 09ee5c3acea..cd0c50ff9c9 100644
--- a/gas/config/tc-metag.c
+++ b/gas/config/tc-metag.c
@@ -4380,11 +4380,10 @@ parse_dsp_addr (const char *line, metag_addr *addr, unsigned int size,
 
   l = parse_dsp_regs_list (l, regs, 1, &regs_read, true, true, load, false);
 
-  if (l == NULL)
+  if (l == NULL || regs_read == 0)
     return NULL;
 
-  if (!is_addr_unit (regs[0]->unit) &&
-      !is_dspram_reg (regs[0]))
+  if (!is_addr_unit (regs[0]->unit) && !is_dspram_reg (regs[0]))
     {
       as_bad (_("invalid register for memory access"));
       return NULL;
@@ -4434,7 +4433,7 @@ parse_dsp_addr (const char *line, metag_addr *addr, unsigned int size,
 
   l = parse_dsp_regs_list (l, regs, 1, &regs_read, true, true, load, false);
 
-  if (l == NULL)
+  if (l == NULL || regs_read == 0)
     return NULL;
 
   if (regs[0]->unit != addr->base_reg->unit)
@@ -4522,7 +4521,7 @@ parse_dget_set (const char *line, metag_insn *insn,
 			       false, false);
     }
 
-  if (l == NULL)
+  if (l == NULL || regs_read == 0)
     return NULL;
 
   /* The first register dictates the unit.  */


More information about the Binutils-cvs mailing list