[llvm-commits] CVS: llvm/tools/llvm-ar/llvm-ar.cpp
Chris Lattner
lattner at cs.uiuc.edu
Tue Aug 1 11:10:02 PDT 2006
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;
More information about the llvm-commits
mailing list