[profile] Fix finding the first and last directory separators on Windows.

Until now, our code preferred backslashes to slashes, whereas Windows
allows using both types of directory separators in one path string.

Differential Revision: https://reviews.llvm.org/D49664

llvm-svn: 337826
This commit is contained in:
Igor Kudrin 2018-07-24 13:06:19 +00:00
parent 54529146c6
commit 356c2aeffe
1 changed files with 8 additions and 10 deletions

View File

@ -243,23 +243,21 @@ lprofApplyPathPrefix(char *Dest, const char *PathStr, const char *Prefix,
COMPILER_RT_VISIBILITY const char *
lprofFindFirstDirSeparator(const char *Path) {
const char *Sep;
Sep = strchr(Path, DIR_SEPARATOR);
if (Sep)
return Sep;
const char *Sep = strchr(Path, DIR_SEPARATOR);
#if defined(DIR_SEPARATOR_2)
Sep = strchr(Path, DIR_SEPARATOR_2);
const char *Sep2 = strchr(Path, DIR_SEPARATOR_2);
if (Sep2 && (!Sep || Sep2 < Sep))
Sep = Sep2;
#endif
return Sep;
}
COMPILER_RT_VISIBILITY const char *lprofFindLastDirSeparator(const char *Path) {
const char *Sep;
Sep = strrchr(Path, DIR_SEPARATOR);
if (Sep)
return Sep;
const char *Sep = strrchr(Path, DIR_SEPARATOR);
#if defined(DIR_SEPARATOR_2)
Sep = strrchr(Path, DIR_SEPARATOR_2);
const char *Sep2 = strrchr(Path, DIR_SEPARATOR_2);
if (Sep2 && (!Sep || Sep2 > Sep))
Sep = Sep2;
#endif
return Sep;
}