[Lldb-commits] [lldb] r331082 - Fix build bots after r331049 broke them.

Greg Clayton via lldb-commits lldb-commits at lists.llvm.org
Fri Apr 27 14:10:07 PDT 2018


Author: gclayton
Date: Fri Apr 27 14:10:07 2018
New Revision: 331082

URL: http://llvm.org/viewvc/llvm-project?rev=331082&view=rev
Log:
Fix build bots after r331049 broke them.


Modified:
    lldb/trunk/source/Utility/FileSpec.cpp

Modified: lldb/trunk/source/Utility/FileSpec.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/FileSpec.cpp?rev=331082&r1=331081&r2=331082&view=diff
==============================================================================
--- lldb/trunk/source/Utility/FileSpec.cpp (original)
+++ lldb/trunk/source/Utility/FileSpec.cpp Fri Apr 27 14:10:07 2018
@@ -244,9 +244,13 @@ inline char safeCharAtIndex(const llvm::
 //------------------------------------------------------------------
 bool needsNormalization(const llvm::StringRef &path,
                         FileSpec::PathSyntax syntax) {
-  const auto separator = GetPreferredPathSeparator(syntax);
-  for (auto i = path.find(separator); i != llvm::StringRef::npos;
-       i = path.find(separator, i + 1)) {
+  if (path.empty())
+    return false;
+  // We strip off leading "." values so these paths need to be normalized
+  if (path[0] == '.')
+    return true;
+  for (auto i = path.find_first_of("\\/"); i != llvm::StringRef::npos;
+       i = path.find_first_of("\\/", i + 1)) {
     const auto next = safeCharAtIndex(path, i+1);
     switch (next) {
       case 0:
@@ -257,7 +261,7 @@ bool needsNormalization(const llvm::Stri
       case '\\':
         // two path separator chars in the middle of a path needs to be
         // normalized
-        if (next == separator && i > 0)
+        if (i > 0)
           return true;
         ++i;
         break;
@@ -269,9 +273,7 @@ bool needsNormalization(const llvm::Stri
             case 0: return true; // ends with "/."
             case '/':
             case '\\':
-              if (next_next == separator)
-                return true; // contains "/./"
-              break;
+              return true; // contains "/./"
             case '.': {
               const auto next_next_next = safeCharAtIndex(path, i+3);
               switch (next_next_next) {
@@ -279,9 +281,7 @@ bool needsNormalization(const llvm::Stri
                 case 0: return true; // ends with "/.."
                 case '/':
                 case '\\':
-                  if (next_next_next == separator)
-                    return true; // contains "/../"
-                  break;
+                  return true; // contains "/../"
               }
               break;
             }




More information about the lldb-commits mailing list