RISC-V: Fix build failure for -Werror=maybe-uninitialized
authorTsukasa OI <research_trasio@irq.a4lg.com>
Fri, 28 Oct 2022 06:46:13 +0000 (06:46 +0000)
committerTsukasa OI <research_trasio@irq.a4lg.com>
Fri, 28 Oct 2022 07:45:25 +0000 (07:45 +0000)
Commit 40f1a1a4564b ("RISC-V: Output mapping symbols with ISA string.")
caused a build failure on GCC 12 as follows:

make[3]: Entering directory '$(builddir)/gas'
  CC       config/tc-riscv.o
In file included from $(srcdir)/gas/config/tc-riscv.c:23:
$(srcdir)/gas/as.h: In function ‘make_mapping_symbol’:
$(srcdir)/gas/as.h:123:15: error: ‘buff’ may be used uninitialized [-Werror=maybe-uninitialized]
  123 | #define xfree free
      |               ^~~~
$(srcdir)/gas/config/tc-riscv.c:487:9: note: ‘buff’ was declared here
  487 |   char *buff;
      |         ^~~~
cc1: all warnings being treated as errors
make[3]: *** [Makefile:1425: config/tc-riscv.o] Error 1

This is caused by a false positive of "maybe uninitialized" variable
detection (-Wmaybe-uninitialized).  To avoid this error, this commit
initializes the local variable buff to NULL first in all cases.

gas/ChangeLog:

* config/tc-riscv.c (make_mapping_symbol): Initialize variable
buff with NULL to avoid build failure caused by a GCC's false
positive of maybe uninitialized variable detection.

gas/config/tc-riscv.c

index 91cff7de6049bbb07b5111950c06a4bacf00ebeb..f4478eac11e80e89a0afe3a97a1d80d65e64590a 100644 (file)
@@ -484,7 +484,7 @@ make_mapping_symbol (enum riscv_seg_mstate state,
                     bool reset_seg_arch_str)
 {
   const char *name;
-  char *buff;
+  char *buff = NULL;
   switch (state)
     {
     case MAP_DATA: