diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-12-08 16:13:24 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-12-08 16:13:24 +0000 |
commit | 52b1ed3685c80cb436f2a616c3c13a066f9d1e31 (patch) | |
tree | a96c9e6b8be9c3fb029a86dde8e020668cbeb41c /lib/Lex/ModuleMap.cpp | |
parent | e3ca33aba226c7b5d50703df008ef0ef5f9ea7da (diff) |
Convert paths to native format before constructing a
directory_iterator for them.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146154 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Lex/ModuleMap.cpp')
-rw-r--r-- | lib/Lex/ModuleMap.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/Lex/ModuleMap.cpp b/lib/Lex/ModuleMap.cpp index b6ad71a030..0c9922ff2a 100644 --- a/lib/Lex/ModuleMap.cpp +++ b/lib/Lex/ModuleMap.cpp @@ -273,10 +273,14 @@ ModuleMap::inferFrameworkModule(StringRef ModuleName, // Look for subframeworks. llvm::error_code EC; - llvm::SmallString<128> SubframeworksDirName = StringRef(FrameworkDir->getName()); + llvm::SmallString<128> SubframeworksDirName + = StringRef(FrameworkDir->getName()); llvm::sys::path::append(SubframeworksDirName, "Frameworks"); - for (llvm::sys::fs::directory_iterator Dir(SubframeworksDirName.str(), EC), - DirEnd; + llvm::SmallString<128> SubframeworksDirNameNative; + llvm::sys::path::native(SubframeworksDirName.str(), + SubframeworksDirNameNative); + for (llvm::sys::fs::directory_iterator + Dir(SubframeworksDirNameNative.str(), EC), DirEnd; Dir != DirEnd && !EC; Dir.increment(EC)) { if (!StringRef(Dir->path()).endswith(".framework")) continue; @@ -293,8 +297,11 @@ ModuleMap::inferFrameworkModule(StringRef ModuleName, Module *ModulePrivate = 0; llvm::SmallString<128> PrivateHeadersDirName(FrameworkDir->getName()); llvm::sys::path::append(PrivateHeadersDirName, "PrivateHeaders"); - for (llvm::sys::fs::directory_iterator Dir(PrivateHeadersDirName.str(), EC), - DirEnd; + llvm::SmallString<128> PrivateHeadersDirNameNative; + llvm::sys::path::native(PrivateHeadersDirName.str(), + PrivateHeadersDirNameNative); + for (llvm::sys::fs::directory_iterator + Dir(PrivateHeadersDirNameNative.str(), EC), DirEnd; Dir != DirEnd && !EC; Dir.increment(EC)) { // Check whether this entry has an extension typically associated with // headers. |