Teach Path::GetCurrentDirectory to use $PWD, to support users who like to do
authorNick Lewycky <nicholas@mxc.ca>
Fri, 29 Jul 2011 04:42:39 +0000 (04:42 +0000)
committerNick Lewycky <nicholas@mxc.ca>
Fri, 29 Jul 2011 04:42:39 +0000 (04:42 +0000)
screwy things by setting PWD != getcwd(). For example, some developers I know
will use this to control the value in gcc's DW_AT_comp_dir value in debug
output. With this patch, that trick will now work on clang too.

The only other effect of this change is that the static analysis will now
respect $PWD when reporting the directory of the files in its HTML output. I
think that's fine.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136459 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/Unix/Path.inc

index f295b92e4a5ba6ab449a6d8c42445a6ac0bea0f3..a139399cba3b7040f9cdc529120497fe341e9b0f 100644 (file)
@@ -251,9 +251,12 @@ Path::GetUserHomeDirectory() {
 
 Path
 Path::GetCurrentDirectory() {
+  if (char *pwd = getenv("PWD"))
+    return Path(pwd);
+
   char pathname[MAXPATHLEN];
-  if (!getcwd(pathname,MAXPATHLEN)) {
-    assert (false && "Could not query current working directory.");
+  if (!getcwd(pathname, MAXPATHLEN)) {
+    assert(false && "Could not query current working directory.");
     return Path();
   }