Don't rely on destructed local storage. Thanks, Chris.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35769 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp
index fc40f78..7f6afc6 100644
--- a/tools/llvm-ar/llvm-ar.cpp
+++ b/tools/llvm-ar/llvm-ar.cpp
@@ -281,8 +281,8 @@
     for (std::set<sys::Path>::iterator I = content.begin(), E = content.end();
          I != E; ++I) {
       // Make sure it exists and is a directory
-      const sys::FileStatus *Status =
-        sys::PathWithStatus(*I).getFileStatus(false, ErrMsg);
+      sys::PathWithStatus PwS(*I);
+      const sys::FileStatus *Status = PwS.getFileStatus(false, ErrMsg);
       if (!Status)
         return true;
       if (Status->isDir) {
@@ -310,8 +310,8 @@
       if (!aPath.exists())
         throw std::string("File does not exist: ") + Members[i];
       std::string Err;
-      const sys::FileStatus *si = 
-        sys::PathWithStatus(aPath).getFileStatus(false, &Err);
+      sys::PathWithStatus PwS(aPath);
+      const sys::FileStatus *si = PwS.getFileStatus(false, &Err);
       if (!si)
         throw Err;
       if (si->isDir) {
@@ -647,8 +647,8 @@
 
     if (found != remaining.end()) {
       std::string Err;
-      const sys::FileStatus *si = 
-        sys::PathWithStatus(*found).getFileStatus(false, &Err);
+      sys::PathWithStatus PwS(*found); 
+      const sys::FileStatus *si = PwS.getFileStatus(false, &Err);
       if (!si)
         return true;
       if (si->isDir) {