revert r128199 until it can be made to work with Frontend/dependency-gen.c.
authorAndrew Trick <atrick@apple.com>
Thu, 24 Mar 2011 16:43:37 +0000 (16:43 +0000)
committerAndrew Trick <atrick@apple.com>
Thu, 24 Mar 2011 16:43:37 +0000 (16:43 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128218 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/Unix/PathV2.inc

index c9267c06b39d147211f856de0ae42114a0d4ccd5..03ff28367e44c5e653f6080e5e89e43aaec714f5 100644 (file)
@@ -93,8 +93,7 @@ namespace sys  {
 namespace fs {
 
 error_code current_path(SmallVectorImpl<char> &result) {
-  // Reserve an arbitrary amount of space.
-  result.reserve(128);
+  result.reserve(MAXPATHLEN);
 
   while (true) {
     if (::getcwd(result.data(), result.capacity()) == 0) {
@@ -418,13 +417,18 @@ rety_open_create:
   }
 
    // Make the path absolute.
-  if (error_code ec = make_absolute(RandomPath)) {
+  char real_path_buff[PATH_MAX + 1];
+  if (realpath(RandomPath.c_str(), real_path_buff) == NULL) {
+    int error = errno;
     ::close(RandomFD);
     ::unlink(RandomPath.c_str());
-    return ec;
+    return error_code(error, system_category());
   }
 
-  result_path = RandomPath;
+  result_path.clear();
+  StringRef d(real_path_buff);
+  result_path.append(d.begin(), d.end());
+
   result_fd = RandomFD;
   return success;
 }