On Tue, Sep 01, 2020 at 04:01:42PM +0300, Martin Storsjö wrote: > 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.
Not really specific to clang, e.g. glibc does that in its headers too as the C++ standard mandates that (and I guess mingw should do that too). > This matches similar variables outside of the ifdefs for dos-like > path handling. > > 2020-09-01 Martin Storsjö <mar...@martin.st> > > gcc/Changelog: > * dwarf2out.c (file_name_acquire): Make a strchr return value > pointer to const. > > libcpp/Changelog: > * files.c (remap_filename): Make a strchr return value pointer > to const. LGTM. And it is short enough not to need copyright assignment, so ok for trunk. > --- > gcc/dwarf2out.c | 2 +- > libcpp/files.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c > index b6ab49bb548..4096c0c0d69 100644 > --- a/gcc/dwarf2out.c > +++ b/gcc/dwarf2out.c > @@ -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) > { > diff --git a/libcpp/files.c b/libcpp/files.c > index 3d48c38fc0a..b890b8ebf1e 100644 > --- a/libcpp/files.c > +++ b/libcpp/files.c > @@ -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; > } > -- > 2.17.1 Jakub