aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/FileManager.cpp
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2018-04-10 13:36:38 +0000
committerNico Weber <nicolasweber@gmx.de>2018-04-10 13:36:38 +0000
commit148c8cb4bf0ce5f328a5bfac822e1b16353bbe8c (patch)
tree732829aa7be754e335525336195e10c177c6fd99 /clang/lib/Basic/FileManager.cpp
parentb1cb0b7957ecb048955bda8f088e34c477938f7f (diff)
downloadllvm-148c8cb4bf0ce5f328a5bfac822e1b16353bbe8c.zip
llvm-148c8cb4bf0ce5f328a5bfac822e1b16353bbe8c.tar.gz
llvm-148c8cb4bf0ce5f328a5bfac822e1b16353bbe8c.tar.bz2
Use llvm::sys::fs::real_path() in clang.
No expected behavior change. https://reviews.llvm.org/D45165 llvm-svn: 329698
Diffstat (limited to 'clang/lib/Basic/FileManager.cpp')
-rw-r--r--clang/lib/Basic/FileManager.cpp18
1 files changed, 2 insertions, 16 deletions
diff --git a/clang/lib/Basic/FileManager.cpp b/clang/lib/Basic/FileManager.cpp
index a3e226d..54cd0b0 100644
--- a/clang/lib/Basic/FileManager.cpp
+++ b/clang/lib/Basic/FileManager.cpp
@@ -534,23 +534,9 @@ StringRef FileManager::getCanonicalName(const DirectoryEntry *Dir) {
StringRef CanonicalName(Dir->getName());
-#ifdef LLVM_ON_UNIX
- char CanonicalNameBuf[PATH_MAX];
- if (realpath(Dir->getName().str().c_str(), CanonicalNameBuf))
+ SmallString<PATH_MAX> CanonicalNameBuf;
+ if (!llvm::sys::fs::real_path(Dir->getName(), CanonicalNameBuf))
CanonicalName = StringRef(CanonicalNameBuf).copy(CanonicalNameStorage);
-#else
- SmallString<256> CanonicalNameBuf(CanonicalName);
- llvm::sys::fs::make_absolute(CanonicalNameBuf);
- llvm::sys::path::native(CanonicalNameBuf);
- // We've run into needing to remove '..' here in the wild though, so
- // remove it.
- // On Windows, symlinks are significantly less prevalent, so removing
- // '..' is pretty safe.
- // Ideally we'd have an equivalent of `realpath` and could implement
- // sys::fs::canonical across all the platforms.
- llvm::sys::path::remove_dots(CanonicalNameBuf, /* remove_dot_dot */ true);
- CanonicalName = StringRef(CanonicalNameBuf).copy(CanonicalNameStorage);
-#endif
CanonicalDirNames.insert(std::make_pair(Dir, CanonicalName));
return CanonicalName;