diff --git a/include/llvm/System/Path.h b/include/llvm/System/Path.h
index 3b73a12..19684d3 100644
--- a/include/llvm/System/Path.h
+++ b/include/llvm/System/Path.h
@@ -380,6 +380,11 @@
       /// in the file system.
       bool canWrite() const;
 
+      /// This function checks that what we're trying to work only on a regular file or Dir.
+      /// Check for things like /dev/null, any block special file,
+      /// or other things that aren't "regular" files.
+      bool isSpecialFile() const;
+
       /// This function determines if the path name references an executable
       /// file in the file system. This function checks for the existence and
       /// executability (by the current program) of the file.
diff --git a/lib/System/Unix/Path.inc b/lib/System/Unix/Path.inc
index 89285b4..d134aaa 100644
--- a/lib/System/Unix/Path.inc
+++ b/lib/System/Unix/Path.inc
@@ -335,7 +335,7 @@
   free(pv);
   return (NULL);
 }
-#endif
+#endif // __FreeBSD__
 
 /// GetMainExecutable - Return the path to the main executable, given the
 /// value of argv[0] from program startup.
@@ -454,6 +454,24 @@
 }
 
 bool
+Path::isSpecialFile() const {
+  // Get the status so we can determine if its a file or directory
+  struct stat buf;
+  std::string *ErrStr;
+
+  if (0 != stat(path.c_str(), &buf)) {
+    MakeErrMsg(ErrStr, path + ": can't get status of file");
+    return true;
+  }
+
+  if (S_ISDIR(buf.st_mode) || S_ISREG(buf.st_mode)) {
+    return false;
+  }
+
+  return true;
+}
+
+bool
 Path::canExecute() const {
   if (0 != access(path.c_str(), R_OK | X_OK ))
     return false;
@@ -723,7 +741,7 @@
 
 bool
 Path::eraseFromDisk(bool remove_contents, std::string *ErrStr) const {
-  // Get the status so we can determin if its a file or directory
+  // Get the status so we can determine if its a file or directory
   struct stat buf;
   if (0 != stat(path.c_str(), &buf)) {
     MakeErrMsg(ErrStr, path + ": can't get status of file");
diff --git a/lib/System/Win32/Path.inc b/lib/System/Win32/Path.inc
index 573369e..9adeca2 100644
--- a/lib/System/Win32/Path.inc
+++ b/lib/System/Win32/Path.inc
@@ -357,6 +357,11 @@
   return attr != INVALID_FILE_ATTRIBUTES;
 }
 
+bool
+Path::isSpecialFile() const {
+  return false;
+}
+
 std::string
 Path::getLast() const {
   // Find the last slash
