Changes in directory llvm/tools/llvm-ar:
llvm-ar.cpp updated: 1.33 -> 1.34 --- Log message: Use Path::getFileStatus --- Diffs of the changes: (+10 -7) llvm-ar.cpp | 17 ++++++++++------- 1 files changed, 10 insertions(+), 7 deletions(-) Index: llvm/tools/llvm-ar/llvm-ar.cpp diff -u llvm/tools/llvm-ar/llvm-ar.cpp:1.33 llvm/tools/llvm-ar/llvm-ar.cpp:1.34 --- llvm/tools/llvm-ar/llvm-ar.cpp:1.33 Fri Jul 28 17:03:44 2006 +++ llvm/tools/llvm-ar/llvm-ar.cpp Tue Aug 1 13:09:46 2006 @@ -270,19 +270,22 @@ // finds with all the files in that directory (recursively). It uses the // sys::Path::getDirectoryContent method to perform the actual directory scans. std::set<sys::Path> recurseDirectories(const sys::Path& path) { - assert(path.isDirectory() && "Oops, can't recurse a file"); std::set<sys::Path> result; if (RecurseDirectories) { std::set<sys::Path> content; path.getDirectoryContents(content); for (std::set<sys::Path>::iterator I = content.begin(), E = content.end(); I != E; ++I) { - if (I->isDirectory()) { - std::set<sys::Path> moreResults = recurseDirectories(*I); - result.insert(moreResults.begin(), moreResults.end()); - } else { - result.insert(*I); - } + // Make sure it exists and is a directory + sys::FileStatus Status; + if (!I->getFileStatus(Status)) { + if (Status.isDir) { + std::set<sys::Path> moreResults = recurseDirectories(*I); + result.insert(moreResults.begin(), moreResults.end()); + } else { + result.insert(*I); + } + } } } return result; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits