Author: labath Date: Mon Apr 30 05:59:14 2018 New Revision: 331172 URL: http://llvm.org/viewvc/llvm-project?rev=331172&view=rev Log: Fixup r331049 (FileSpec auto-normalization)
A typo in the patch (using syntax instead of m_syntax) resulted in the normalization not working properly for windows filespecs when the syntax was passed as host-native. This did not affect the unit tests, as all of those pass an explicity syntax, but failed gloriously when running the full test suite. I also fix an expectation in an lldb-mi test, which was now failing because it was expecting a path to be echoed verbatim, but we were now normalizing it. As a drive-by, this also fixes the default-in-fully-covered-switch warning and removes an unused argument from the NeedsNormalization function. Modified: lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/startup_options/TestMiStartupOptions.py lldb/trunk/source/Utility/FileSpec.cpp Modified: lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/startup_options/TestMiStartupOptions.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/startup_options/TestMiStartupOptions.py?rev=331172&r1=331171&r2=331172&view=diff ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/startup_options/TestMiStartupOptions.py (original) +++ lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/startup_options/TestMiStartupOptions.py Mon Apr 30 05:59:14 2018 @@ -117,7 +117,7 @@ class MiStartupOptionsTestCase(lldbmi_te """Test that 'lldb-mi --interpreter %s' fails on executable file which is specified via unknown path.""" # Prepare path to executable - path = "unknown_dir/%s" % self.myexe + path = "unknown_dir" + self.myexe self.spawnLldbMi(args="%s" % path) Modified: lldb/trunk/source/Utility/FileSpec.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/FileSpec.cpp?rev=331172&r1=331171&r2=331172&view=diff ============================================================================== --- lldb/trunk/source/Utility/FileSpec.cpp (original) +++ lldb/trunk/source/Utility/FileSpec.cpp Mon Apr 30 05:59:14 2018 @@ -69,7 +69,6 @@ LLVMPathSyntax(FileSpec::PathSyntax lldb return llvm::sys::path::Style::posix; case FileSpec::ePathSyntaxWindows: return llvm::sys::path::Style::windows; - default: case FileSpec::ePathSyntaxHostNative: return llvm::sys::path::Style::native; }; @@ -236,14 +235,10 @@ inline char safeCharAtIndex(const llvm:: /// @param[in] path /// A full, partial, or relative path to a file. /// -/// @param[in] syntax -/// The syntax enumeration for the path in \a path. -/// /// @return /// Returns \b true if the path needs to be normalized. //------------------------------------------------------------------ -bool needsNormalization(const llvm::StringRef &path, - FileSpec::PathSyntax syntax) { +bool needsNormalization(const llvm::StringRef &path) { if (path.empty()) return false; // We strip off leading "." values so these paths need to be normalized @@ -338,12 +333,11 @@ void FileSpec::SetFile(llvm::StringRef p } // Normalize the path by removing ".", ".." and other redundant components. - if (needsNormalization(llvm::StringRef(resolved.data(), resolved.size()), - syntax)) - llvm::sys::path::remove_dots(resolved, true, LLVMPathSyntax(syntax)); + if (needsNormalization(resolved)) + llvm::sys::path::remove_dots(resolved, true, LLVMPathSyntax(m_syntax)); // Normalize back slashes to forward slashes - if (syntax == FileSpec::ePathSyntaxWindows) + if (m_syntax == FileSpec::ePathSyntaxWindows) std::replace(resolved.begin(), resolved.end(), '\\', '/'); llvm::StringRef resolve_path_ref(resolved.c_str()); _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits