libcpp/remap: Only override if string matched

For systems with HAVE_DOS_BASED_FILE_SYSTEM set, only override the
pointer if the backslash pattern matches.

Output without this patch:
.../gcc/testsuite/gcc.dg/cpp/pr71681-2.c:5:10: fatal error: a/t2.h: No such file or directory

With patch applied, no output and the test case succeeds.

libcpp/ChangeLog

	* files.cc: Ensure pattern matches before use.

Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
This commit is contained in:
Torbjörn SVENSSON 2022-10-20 22:38:57 +02:00
parent ccb9c7b129
commit 711f56ad90

View File

@ -1833,7 +1833,7 @@ remap_filename (cpp_reader *pfile, _cpp_file *file)
#ifdef HAVE_DOS_BASED_FILE_SYSTEM
{
const char *p2 = strchr (fname, '\\');
if (!p || (p > p2))
if (!p || (p2 && p > p2))
p = p2;
}
#endif