Procházet zdrojové kódy

Fix assumption about Win32 paths in r360833

Attempt to fix Windows buildbots due to differences in
path handling (caused by r360833).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@360839 91177308-0d34-0410-b5e6-96231b3b80d8
Kristina Brooks před 6 roky
rodič
revize
c81e2857a6
1 změnil soubory, kde provedl 8 přidání a 2 odebrání
  1. 8 2
      lib/Lex/PPMacroExpansion.cpp

+ 8 - 2
lib/Lex/PPMacroExpansion.cpp

@@ -1501,8 +1501,14 @@ void Preprocessor::ExpandBuiltinMacro(Token &Tok) {
       // the last part of __FILE__.
       // the last part of __FILE__.
       if (II == Ident__FILE_NAME__) {
       if (II == Ident__FILE_NAME__) {
         // Try to get the last path component.
         // 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
         // Skip the separator and get the last part, otherwise fall back on
         // returning the original full filename.
         // returning the original full filename.
         if (LastSep != StringRef::npos)
         if (LastSep != StringRef::npos)