gcc: Make strchr return value pointers const
authorMartin Storsjö <martin@martin.st>
Mon, 7 Sep 2020 11:18:42 +0000 (13:18 +0200)
committerJakub Jelinek <jakub@redhat.com>
Mon, 7 Sep 2020 11:20:21 +0000 (13:20 +0200)
This fixes compilation of codepaths for dos-like filesystems
with Clang. When built with clang, it treats C input files as C++
when the compiler driver is invoked in C++ mode, triggering errors
when the return value of strchr() on a pointer to const is assigned
to a pointer to non-const variable.

This matches similar variables outside of the ifdefs for dos-like
path handling.

2020-09-07  Martin Storsjö  <martin@martin.st>

gcc/
* dwarf2out.c (file_name_acquire): Make a strchr return value
pointer to const.
libcpp/
* files.c (remap_filename): Make a strchr return value pointer
to const.

gcc/dwarf2out.c
libcpp/files.c

index b6ab49bb548214ce4a17cd0386bc0a1b10f4a2ca..4096c0c0d69f70bc2e6f331d5d9d220c24a3162d 100644 (file)
@@ -12118,7 +12118,7 @@ file_name_acquire (dwarf_file_data **slot, file_name_acquire_data *fnad)
   f = strrchr (f, DIR_SEPARATOR);
 #if defined (DIR_SEPARATOR_2)
   {
-    char *g = strrchr (fi->path, DIR_SEPARATOR_2);
+    const char *g = strrchr (fi->path, DIR_SEPARATOR_2);
 
     if (g != NULL)
       {
index 3d48c38fc0a8c497c5b1f68471f30edcd7c0a382..b890b8ebf1e07c82dbfe1b32166337b6ea8f73e7 100644 (file)
@@ -1693,7 +1693,7 @@ remap_filename (cpp_reader *pfile, _cpp_file *file)
       p = strchr (fname, '/');
 #ifdef HAVE_DOS_BASED_FILE_SYSTEM
       {
-       char *p2 = strchr (fname, '\\');
+       const char *p2 = strchr (fname, '\\');
        if (!p || (p > p2))
          p = p2;
       }