summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang-tools-extra/modularize/ModularizeUtilities.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/clang-tools-extra/modularize/ModularizeUtilities.cpp b/clang-tools-extra/modularize/ModularizeUtilities.cpp
index 50dd8b1f258..c54a6f44b72 100644
--- a/clang-tools-extra/modularize/ModularizeUtilities.cpp
+++ b/clang-tools-extra/modularize/ModularizeUtilities.cpp
@@ -341,8 +341,10 @@ bool ModularizeUtilities::collectUmbrellaHeaders(StringRef UmbrellaDirName,
}
return true;
}
-
-std::string normalize(StringRef Path) {
+
+// Replace .. embedded in path for purposes of having
+// a canonical path.
+std::string replaceDotDot(StringRef Path) {
SmallString<128> Buffer;
llvm::sys::path::const_iterator B = llvm::sys::path::begin(Path),
E = llvm::sys::path::end(Path);
@@ -365,7 +367,7 @@ std::string normalize(StringRef Path) {
// \param FilePath The file path, relative to the module map directory.
// \returns The file path in canonical form.
std::string ModularizeUtilities::getCanonicalPath(StringRef FilePath) {
- std::string Tmp(normalize(FilePath));
+ std::string Tmp(replaceDotDot(FilePath));
std::replace(Tmp.begin(), Tmp.end(), '\\', '/');
StringRef Tmp2(Tmp);
if (Tmp2.startswith("./"))
OpenPOWER on IntegriCloud