From 69e927662dc959ad4fd057619f6511bb65537213 Mon Sep 17 00:00:00 2001 From: Kristina Brooks Date: Thu, 16 May 2019 02:46:12 +0000 Subject: [PATCH] Fix assumption about Win32 paths in r360833 Attempt to fix Windows buildbots due to differences in path handling (caused by r360833). llvm-svn: 360839 --- clang/lib/Lex/PPMacroExpansion.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/clang/lib/Lex/PPMacroExpansion.cpp b/clang/lib/Lex/PPMacroExpansion.cpp index 148fc67c431d..bc25dcd8eadf 100644 --- a/clang/lib/Lex/PPMacroExpansion.cpp +++ b/clang/lib/Lex/PPMacroExpansion.cpp @@ -1501,8 +1501,14 @@ void Preprocessor::ExpandBuiltinMacro(Token &Tok) { // the last part of __FILE__. if (II == Ident__FILE_NAME__) { // Try to get the last path component. - StringRef PLFileName = PLoc.getFilename(); - size_t LastSep = PLFileName.find_last_of('/'); + StringRef PLFileName = PLoc.getFilename(); + size_t LastSep = PLFileName.find_last_of('/'); +#ifdef _WIN32 + // On Windows targets, absolute paths can be normalized to use + // backslashes instead - handle this potential case here. + if (LastSep == StringRef::npos) + LastSep = PLFileName.find_last_of('\\'); +#endif // Skip the separator and get the last part, otherwise fall back on // returning the original full filename. if (LastSep != StringRef::npos)