[binutils-gdb/binutils-2_46-branch] Fix even more -Wdiscarded-qualifers issues

Sam James sjames@sourceware.org
Tue Jun 2 17:28:30 GMT 2026


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

commit 66bf5c4dd9a88bd6450554d7d72dca1fdd91e029
Author: Keith Seitz <keiths@redhat.com>
Date:   Wed Feb 25 06:24:53 2026 -0800

    Fix even more -Wdiscarded-qualifers issues
    
    Fedora Rawhide is failing to build due to new glibc header changes
    enforcing const-correctness in functions like strchr and memchr.
    For example:
    
    ../../opcodes/aarch64-dis.c: In function ‘remove_dot_suffix’:
    ../../opcodes/aarch64-dis.c:4027:7: error: assignment discards ‘const’ qualifier from po
    inter target type [-Werror=discarded-qualifiers]
     4027 |   ptr = strchr (inst->opcode->name, '.');
          |       ^
    cc1: all warnings being treated as errors
    
    This patch addresses all the discovered issues with --enable-targets=all
    and regenerates a few cgen files along the way.
    
    (cherry picked from commit 36974d77e95efb1b640e8005a6bea6a6bed64aa7)

Diff:
---
 cpu/ip2k.opc          | 2 +-
 opcodes/aarch64-dis.c | 2 +-
 opcodes/ia64-opc.c    | 2 +-
 opcodes/ip2k-asm.c    | 2 +-
 opcodes/riscv-dis.c   | 4 ++--
 opcodes/tilegx-opc.c  | 2 +-
 opcodes/tilepro-opc.c | 4 ++--
 7 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/cpu/ip2k.opc b/cpu/ip2k.opc
index 512c3f3aea8..c89f61d8942 100644
--- a/cpu/ip2k.opc
+++ b/cpu/ip2k.opc
@@ -94,7 +94,7 @@ parse_fr (CGEN_CPU_DESC cd,
 {
   const char *errmsg;
   const char *old_strp;
-  char *afteroffset; 
+  const char *afteroffset;
   enum cgen_parse_operand_result result_type;
   bfd_vma value;
   extern CGEN_KEYWORD ip2k_cgen_opval_register_names;
diff --git a/opcodes/aarch64-dis.c b/opcodes/aarch64-dis.c
index 8cc2eb3f3c2..f09307847e6 100644
--- a/opcodes/aarch64-dis.c
+++ b/opcodes/aarch64-dis.c
@@ -4087,7 +4087,7 @@ print_operands (bfd_vma pc, const aarch64_opcode *opcode,
 static void
 remove_dot_suffix (char *name, const aarch64_inst *inst)
 {
-  char *ptr;
+  const char *ptr;
   size_t len;
 
   ptr = strchr (inst->opcode->name, '.');
diff --git a/opcodes/ia64-opc.c b/opcodes/ia64-opc.c
index 5d79cf3d041..79c12a840a7 100644
--- a/opcodes/ia64-opc.c
+++ b/opcodes/ia64-opc.c
@@ -66,7 +66,7 @@ const struct ia64_templ_desc ia64_templ_desc[16] =
 static void
 get_opc_prefix (const char **ptr, char *dest)
 {
-  char *c = strchr (*ptr, '.');
+  const char *c = strchr (*ptr, '.');
   if (c != NULL)
     {
       memcpy (dest, *ptr, c - *ptr);
diff --git a/opcodes/ip2k-asm.c b/opcodes/ip2k-asm.c
index 18bd98a2846..3adbd1546a3 100644
--- a/opcodes/ip2k-asm.c
+++ b/opcodes/ip2k-asm.c
@@ -59,7 +59,7 @@ parse_fr (CGEN_CPU_DESC cd,
 {
   const char *errmsg;
   const char *old_strp;
-  char *afteroffset;
+  const char *afteroffset;
   enum cgen_parse_operand_result result_type;
   bfd_vma value;
   extern CGEN_KEYWORD ip2k_cgen_opval_register_names;
diff --git a/opcodes/riscv-dis.c b/opcodes/riscv-dis.c
index 03c8cf1e344..eda802ff420 100644
--- a/opcodes/riscv-dis.c
+++ b/opcodes/riscv-dis.c
@@ -110,7 +110,7 @@ parse_riscv_dis_option_without_args (const char *option,
 /* Parse RISC-V disassembler option (possibly with arguments).  */
 
 static void
-parse_riscv_dis_option (const char *option, struct disassemble_info *info)
+parse_riscv_dis_option (char *option, struct disassemble_info *info)
 {
   char *equal, *value;
 
@@ -1140,7 +1140,7 @@ riscv_update_map_state (int n,
 
       /* ISA mapping string may be numbered, suffixed with '.n'. Do not
 	 consider this as part of the ISA string.  */
-      char *suffix = strchr (name, '.');
+      const char *suffix = strchr (name, '.');
       if (suffix)
 	{
 	  int suffix_index = (int)(suffix - name);
diff --git a/opcodes/tilegx-opc.c b/opcodes/tilegx-opc.c
index db762e22493..a1d42d6e18d 100644
--- a/opcodes/tilegx-opc.c
+++ b/opcodes/tilegx-opc.c
@@ -8003,7 +8003,7 @@ tilegx_spr_compare (const void *a_ptr, const void *b_ptr)
 const char *
 get_tilegx_spr_name (int num)
 {
-  void *result;
+  const void *result;
   struct tilegx_spr key;
 
   key.number = num;
diff --git a/opcodes/tilepro-opc.c b/opcodes/tilepro-opc.c
index 664122b05d5..d3d580fae9d 100644
--- a/opcodes/tilepro-opc.c
+++ b/opcodes/tilepro-opc.c
@@ -10119,7 +10119,7 @@ tilepro_spr_compare (const void *a_ptr, const void *b_ptr)
 const char *
 get_tilepro_spr_name (int num)
 {
-  void *result;
+  const void *result;
   struct tilepro_spr key;
 
   key.number = num;
@@ -10131,7 +10131,7 @@ get_tilepro_spr_name (int num)
     return NULL;
 
   {
-    struct tilepro_spr *result_ptr = (struct tilepro_spr *) result;
+    const struct tilepro_spr *result_ptr = (const struct tilepro_spr *) result;
 
     return result_ptr->name;
   }


More information about the Binutils-cvs mailing list