From 8bdbb04f9b1b79a75677b1ff6217cadc3b660af9 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 1 Aug 2006 18:09:46 +0000 Subject: Use Path::getFileStatus git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29445 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/llvm-ar/llvm-ar.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'tools') diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp index 2ec431727a..d2d8c85e27 100644 --- a/tools/llvm-ar/llvm-ar.cpp +++ b/tools/llvm-ar/llvm-ar.cpp @@ -270,19 +270,22 @@ ArchiveOperation parseCommandLine() { // finds with all the files in that directory (recursively). It uses the // sys::Path::getDirectoryContent method to perform the actual directory scans. std::set recurseDirectories(const sys::Path& path) { - assert(path.isDirectory() && "Oops, can't recurse a file"); std::set result; if (RecurseDirectories) { std::set content; path.getDirectoryContents(content); for (std::set::iterator I = content.begin(), E = content.end(); I != E; ++I) { - if (I->isDirectory()) { - std::set 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 moreResults = recurseDirectories(*I); + result.insert(moreResults.begin(), moreResults.end()); + } else { + result.insert(*I); + } + } } } return result; -- cgit v1.2.3