Final Changes For PR495:

This chagne just renames some sys::Path methods to ensure they are not
misused. The Path documentation now divides methods into two dimensions:
Path/Disk and accessor/mutator. Path accessors and mutators only operate
on the Path object itself without making any disk accesses. Disk accessors
and mutators will also access or modify the file system. Because of the
potentially destructive nature of disk mutators, it was decided that all
such methods should end in the work "Disk" to ensure the user recognizes
that the change will occur on the file system. This patch makes that
change. The method name changes are:

makeReadable        -> makeReadableOnDisk
makeWriteable       -> makeWriteableOnDisk
makeExecutable      -> makeExecutableOnDisk
setStatusInfo       -> setStatusInfoOnDisk
createDirectory     -> createDirectoryOnDisk
createFile          -> createFileOnDisk
createTemporaryFile -> createTemporaryFileOnDisk
destroy             -> eraseFromDisk
rename              -> renamePathOnDisk

These changes pass the Linux Deja Gnu tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22354 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/bugpoint/CrashDebugger.cpp b/tools/bugpoint/CrashDebugger.cpp
index 2ede20f..b63ce21 100644
--- a/tools/bugpoint/CrashDebugger.cpp
+++ b/tools/bugpoint/CrashDebugger.cpp
@@ -67,7 +67,7 @@
                 << PrefixOutput << "'!\n";
       exit(1);
     }
-    PrefixOutput.destroy();
+    PrefixOutput.eraseFromDisk();
   }
 
   std::cout << "Checking to see if these passes crash: "
diff --git a/tools/bugpoint/ExecutionDriver.cpp b/tools/bugpoint/ExecutionDriver.cpp
index 936f546..142faee 100644
--- a/tools/bugpoint/ExecutionDriver.cpp
+++ b/tools/bugpoint/ExecutionDriver.cpp
@@ -281,7 +281,7 @@
     exit(1);
 
   // Remove the intermediate C file
-  OutputCFile.destroy();
+  OutputCFile.eraseFromDisk();
 
   return "./" + SharedObjectFile;
 }
@@ -302,9 +302,9 @@
 
   // If we're checking the program exit code, assume anything nonzero is bad.
   if (CheckProgramExitCode && ProgramExitedNonzero) {
-    Output.destroy();
+    Output.eraseFromDisk();
     if (RemoveBytecode)
-      sys::Path(BytecodeFile).destroy();
+      sys::Path(BytecodeFile).eraseFromDisk();
     return true;
   }
 
@@ -321,11 +321,11 @@
   }
 
   // Remove the generated output.
-  Output.destroy();
+  Output.eraseFromDisk();
 
   // Remove the bytecode file if we are supposed to.
   if (RemoveBytecode) 
-    sys::Path(BytecodeFile).destroy();
+    sys::Path(BytecodeFile).eraseFromDisk();
   return FilesDifferent;
 }
 
diff --git a/tools/bugpoint/Miscompilation.cpp b/tools/bugpoint/Miscompilation.cpp
index 4caf0d4..2e0bdb3 100644
--- a/tools/bugpoint/Miscompilation.cpp
+++ b/tools/bugpoint/Miscompilation.cpp
@@ -99,7 +99,7 @@
   // If the prefix maintains the predicate by itself, only keep the prefix!
   if (BD.diffProgram(BytecodeResult)) {
     std::cout << " nope.\n";
-    sys::Path(BytecodeResult).destroy();
+    sys::Path(BytecodeResult).eraseFromDisk();
     return KeepPrefix;
   }
   std::cout << " yup.\n";      // No miscompilation!
@@ -113,7 +113,7 @@
               << BytecodeResult << "'!\n";
     exit(1);
   }
-  sys::Path(BytecodeResult).destroy();  // No longer need the file on disk
+  sys::Path(BytecodeResult).eraseFromDisk();  // No longer need the file on disk
 
   // Don't check if there are no passes in the suffix.
   if (Suffix.empty())
@@ -775,9 +775,9 @@
     std::cerr << ": still failing!\n";
   else
     std::cerr << ": didn't fail.\n";
-  TestModuleBC.destroy();
-  SafeModuleBC.destroy();
-  sys::Path(SharedObject).destroy();
+  TestModuleBC.eraseFromDisk();
+  SafeModuleBC.eraseFromDisk();
+  sys::Path(SharedObject).eraseFromDisk();
 
   return Result;
 }
diff --git a/tools/bugpoint/OptimizerDriver.cpp b/tools/bugpoint/OptimizerDriver.cpp
index c6e58fd..3a77e16 100644
--- a/tools/bugpoint/OptimizerDriver.cpp
+++ b/tools/bugpoint/OptimizerDriver.cpp
@@ -161,7 +161,7 @@
   // If we are supposed to delete the bytecode file or if the passes crashed,
   // remove it now.  This may fail if the file was never created, but that's ok.
   if (DeleteOutput || !ExitedOK)
-    sys::Path(OutputFilename).destroy();
+    sys::Path(OutputFilename).eraseFromDisk();
 
 #ifndef PLATFORMINDEPENDENT
   if (!Quiet) {
@@ -214,6 +214,6 @@
               << BytecodeResult << "'!\n";
     exit(1);
   }
-  sys::Path(BytecodeResult).destroy();  // No longer need the file on disk
+  sys::Path(BytecodeResult).eraseFromDisk();  // No longer need the file on disk
   return Ret;
 }
diff --git a/tools/bugpoint/ToolRunner.cpp b/tools/bugpoint/ToolRunner.cpp
index 3cea338..f516986 100644
--- a/tools/bugpoint/ToolRunner.cpp
+++ b/tools/bugpoint/ToolRunner.cpp
@@ -65,7 +65,7 @@
     ErrorFile.close();
   }
 
-  ErrorFilename.destroy();
+  ErrorFilename.eraseFromDisk();
   throw ToolExecutionError(OS.str());
 }
 
@@ -176,7 +176,7 @@
 void LLC::compileProgram(const std::string &Bytecode) {
   sys::Path OutputAsmFile;
   OutputAsm(Bytecode, OutputAsmFile);
-  OutputAsmFile.destroy();
+  OutputAsmFile.eraseFromDisk();
 }
 
 int LLC::ExecuteProgram(const std::string &Bytecode,
@@ -321,7 +321,7 @@
 void CBE::compileProgram(const std::string &Bytecode) {
   sys::Path OutputCFile;
   OutputC(Bytecode, OutputCFile);
-  OutputCFile.destroy();
+  OutputCFile.eraseFromDisk();
 }
 
 int CBE::ExecuteProgram(const std::string &Bytecode,
diff --git a/tools/gccld/gccld.cpp b/tools/gccld/gccld.cpp
index 7a4dec3..2ae13aa 100644
--- a/tools/gccld/gccld.cpp
+++ b/tools/gccld/gccld.cpp
@@ -313,9 +313,9 @@
 
       if (!SaveTemps) {
         // Remove the assembly language file.
-        AssemblyFile.destroy();
+        AssemblyFile.eraseFromDisk();
         // Remove the bytecode language file.
-        sys::Path(RealBytecodeOutput).destroy();
+        sys::Path(RealBytecodeOutput).eraseFromDisk();
       }
 
     } else if (NativeCBE) {
@@ -345,21 +345,21 @@
 
       if (!SaveTemps) {
         // Remove the assembly language file.
-        CFile.destroy();
+        CFile.eraseFromDisk();
         // Remove the bytecode language file.
-        sys::Path(RealBytecodeOutput).destroy();
+        sys::Path(RealBytecodeOutput).eraseFromDisk();
       }
 
     } else if (!LinkAsLibrary) {
       EmitShellScript(argv);
 
       // Make the bytecode file readable and directly executable in LLEE
-      sys::Path(RealBytecodeOutput).makeExecutable();
-      sys::Path(RealBytecodeOutput).makeReadable();
+      sys::Path(RealBytecodeOutput).makeExecutableOnDisk();
+      sys::Path(RealBytecodeOutput).makeReadableOnDisk();
     }
 
     // Make the output, whether native or script, executable as well...
-    sys::Path(OutputFilename).makeExecutable();
+    sys::Path(OutputFilename).makeExecutableOnDisk();
 
   } catch (const char*msg) {
     std::cerr << argv[0] << ": " << msg << "\n";
diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp
index 3725a17..09efeca 100644
--- a/tools/llvm-ar/llvm-ar.cpp
+++ b/tools/llvm-ar/llvm-ar.cpp
@@ -432,7 +432,7 @@
       if (I->hasPath()) {
         sys::Path dirs(I->getPath());
         dirs.eraseComponent();
-        dirs.createDirectory(/*create_parents=*/true);
+        dirs.createDirectoryOnDisk(/*create_parents=*/true);
       }
 
       // Open up a file stream for writing
@@ -455,7 +455,7 @@
       // If we're supposed to retain the original modification times, etc. do so
       // now.
       if (OriginalDates)
-        I->getPath().setStatusInfo(I->getStatusInfo());
+        I->getPath().setStatusInfoOnDisk(I->getStatusInfo());
     }
   }
 }
diff --git a/tools/llvm-ld/llvm-ld.cpp b/tools/llvm-ld/llvm-ld.cpp
index 23efb48..65a220a 100644
--- a/tools/llvm-ld/llvm-ld.cpp
+++ b/tools/llvm-ld/llvm-ld.cpp
@@ -480,7 +480,7 @@
                        gcc, envp);
 
         // Remove the assembly language file.
-        AssemblyFile.destroy();
+        AssemblyFile.eraseFromDisk();
       } else if (NativeCBE) {
         sys::Path CFile (OutputFilename);
         CFile.appendSuffix("cbe.c");
@@ -505,18 +505,18 @@
         GenerateNative(OutputFilename, CFile.toString(), Libraries, gcc, envp);
 
         // Remove the assembly language file.
-        CFile.destroy();
+        CFile.eraseFromDisk();
 
       } else {
         EmitShellScript(argv);
       }
 
       // Make the script executable...
-      sys::Path(OutputFilename).makeExecutable();
+      sys::Path(OutputFilename).makeExecutableOnDisk();
 
       // Make the bytecode file readable and directly executable in LLEE as well
-      sys::Path(RealBytecodeOutput).makeExecutable();
-      sys::Path(RealBytecodeOutput).makeReadable();
+      sys::Path(RealBytecodeOutput).makeExecutableOnDisk();
+      sys::Path(RealBytecodeOutput).makeReadableOnDisk();
     }
 
     return 0;
diff --git a/tools/llvmc/CompilerDriver.cpp b/tools/llvmc/CompilerDriver.cpp
index 659af16..ff7c48a 100644
--- a/tools/llvmc/CompilerDriver.cpp
+++ b/tools/llvmc/CompilerDriver.cpp
@@ -188,7 +188,7 @@
   void cleanup() {
     if (!isSet(KEEP_TEMPS_FLAG)) {
       if (TempDir.isDirectory() && TempDir.canWrite())
-        TempDir.destroy(/*remove_contents=*/true);
+        TempDir.eraseFromDisk(/*remove_contents=*/true);
     } else {
       std::cout << "Temporary files are in " << TempDir << "\n";
     }