For PR495:
Get rid of the difference between file paths and directory paths. The Path
class now simply stores a path that can refer to either a file or a
directory. This required various changes in the implementation and interface
of the class with the corresponding impact to its users. Doxygen comments were
also updated to reflect these changes. Interface changes are:

appendDirectory -> appendComponent
appendFile -> appendComponent
elideDirectory -> eraseComponent
elideFile -> eraseComponent
elideSuffix -> eraseSuffix
renameFile -> rename
setDirectory -> set
setFile -> set

Changes pass Dejagnu and llvm-test/SingleSource tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22349 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/gccld/GenerateCode.cpp b/tools/gccld/GenerateCode.cpp
index 020d883..f6a08ce 100644
--- a/tools/gccld/GenerateCode.cpp
+++ b/tools/gccld/GenerateCode.cpp
@@ -152,15 +152,11 @@
 static bool isBytecodeLPath(const std::string &LibPath) {
   bool isBytecodeLPath = false;
 
-  // Make sure the -L path has a '/' character
-  // because llvm-g++ passes them without the ending
-  // '/' char and sys::Path doesn't think it is a
-  // directory (see: sys::Path::isDirectory) without it
-  std::string dir = LibPath;
-  if ( dir[dir.length()-1] != '/' )
-  dir.append("/");
+  sys::Path LPath(LibPath);
 
-  sys::Path LPath(dir);
+  // Make sure its a directory
+  if (!LPath.isDirectory())
+    return isBytecodeLPath;
 
   // Grab the contents of the -L path
   std::set<sys::Path> Files;
diff --git a/tools/gccld/gccld.cpp b/tools/gccld/gccld.cpp
index 6d49466..7a4dec3 100644
--- a/tools/gccld/gccld.cpp
+++ b/tools/gccld/gccld.cpp
@@ -313,9 +313,9 @@
 
       if (!SaveTemps) {
         // Remove the assembly language file.
-        AssemblyFile.destroyFile();
+        AssemblyFile.destroy();
         // Remove the bytecode language file.
-        sys::Path(RealBytecodeOutput).destroyFile();
+        sys::Path(RealBytecodeOutput).destroy();
       }
 
     } else if (NativeCBE) {
@@ -345,9 +345,9 @@
 
       if (!SaveTemps) {
         // Remove the assembly language file.
-        CFile.destroyFile();
+        CFile.destroy();
         // Remove the bytecode language file.
-        sys::Path(RealBytecodeOutput).destroyFile();
+        sys::Path(RealBytecodeOutput).destroy();
       }
 
     } else if (!LinkAsLibrary) {