[binutils-gdb] Fix the strrchr error for DOS based filesystem

H.J. Lu hjl@sourceware.org
Sun May 3 03:50:26 GMT 2026


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

commit 365fc34606d2d566855e8ba3db9c4f7986ed3bcc
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun May 3 08:25:28 2026 +0800

    Fix the strrchr error for DOS based filesystem
    
    Fix the strrchr error like:
    
    gprof/source.c:130:28: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      130 |             char *bslash = strrchr (sf->name, '\\');
    
    binutils/
    
            * bucomm.c (template_in_dir): Make bslash const char *.
    
    gprof/
    
            * source.c (annotate_source): Make bslash const char *.
    
    Signed-off-by: H.J. Lu <hjl.tools@gmail.com>

Diff:
---
 binutils/bucomm.c | 2 +-
 gprof/source.c    | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/binutils/bucomm.c b/binutils/bucomm.c
index 14a0db22425..da704bcf838 100644
--- a/binutils/bucomm.c
+++ b/binutils/bucomm.c
@@ -502,7 +502,7 @@ template_in_dir (const char *path)
 #ifdef HAVE_DOS_BASED_FILE_SYSTEM
   {
     /* We could have foo/bar\\baz, or foo\\bar, or d:bar.  */
-    char *bslash = strrchr (path, '\\');
+    const char *bslash = strrchr (path, '\\');
 
     if (slash == NULL || (bslash != NULL && bslash > slash))
       slash = bslash;
diff --git a/gprof/source.c b/gprof/source.c
index 494f6ecc9b2..860c0b5fec0 100644
--- a/gprof/source.c
+++ b/gprof/source.c
@@ -126,7 +126,7 @@ annotate_source (Source_File *sf, unsigned int max_width,
 	  name_only = strrchr (sf->name, '/');
 #ifdef HAVE_DOS_BASED_FILE_SYSTEM
 	  {
-	    char *bslash = strrchr (sf->name, '\\');
+	    const char *bslash = strrchr (sf->name, '\\');
 	    if (name_only == NULL || (bslash != NULL && bslash > name_only))
 	      name_only = bslash;
 	    if (name_only == NULL && sf->name[0] != '\0' && sf->name[1] == ':')
@@ -183,7 +183,7 @@ annotate_source (Source_File *sf, unsigned int max_width,
       filename = strrchr (sf->name, '/');
 #ifdef HAVE_DOS_BASED_FILE_SYSTEM
 	{
-	  char *bslash = strrchr (sf->name, '\\');
+	  const char *bslash = strrchr (sf->name, '\\');
 	  if (filename == NULL || (bslash != NULL && bslash > filename))
 	    filename = bslash;
 	  if (filename == NULL && sf->name[0] != '\0' && sf->name[1] == ':')


More information about the Binutils-cvs mailing list