* Add a std::ostream inserter for sys::Path
* Correct the std::string constructor to take a const reference.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18877 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/llvm/System/Path.h b/include/llvm/System/Path.h
index 7862e21..10c8bcc 100644
--- a/include/llvm/System/Path.h
+++ b/include/llvm/System/Path.h
@@ -18,6 +18,7 @@
 #include <set>
 #include <string>
 #include <vector>
+#include <ostream>
 
 namespace llvm {
 namespace sys {
@@ -161,7 +162,7 @@
       /// @throws std::string if the path string is not legal.
       /// @param unverified_path The path to verify and assign.
       /// @brief Construct a Path from a string.
-      explicit Path(std::string unverified_path);
+      explicit Path(const std::string& unverified_path);
 
     /// @}
     /// @name Operators
@@ -547,6 +548,11 @@
   LLVMFileType IdentifyFileType(const char*magic, unsigned length);
 }
 
+inline std::ostream& operator<<(std::ostream& strm, const sys::Path& aPath) {
+  strm << aPath.toString();
+  return strm;
+}
+
 }
 
 // vim: sw=2
diff --git a/lib/System/Unix/Path.cpp b/lib/System/Unix/Path.cpp
index 63184f6..e655ef4 100644
--- a/lib/System/Unix/Path.cpp
+++ b/lib/System/Unix/Path.cpp
@@ -27,7 +27,7 @@
 namespace llvm {
 using namespace sys;
 
-Path::Path(std::string unverified_path) 
+Path::Path(const std::string& unverified_path) 
   : path(unverified_path)
 {
   if (unverified_path.empty())
diff --git a/lib/System/Unix/Path.inc b/lib/System/Unix/Path.inc
index 63184f6..e655ef4 100644
--- a/lib/System/Unix/Path.inc
+++ b/lib/System/Unix/Path.inc
@@ -27,7 +27,7 @@
 namespace llvm {
 using namespace sys;
 
-Path::Path(std::string unverified_path) 
+Path::Path(const std::string& unverified_path) 
   : path(unverified_path)
 {
   if (unverified_path.empty())
diff --git a/lib/System/Win32/Path.cpp b/lib/System/Win32/Path.cpp
index 095417f..070ebb3 100644
--- a/lib/System/Win32/Path.cpp
+++ b/lib/System/Win32/Path.cpp
@@ -97,7 +97,7 @@
   return *TempDirectory;
 }
 
-Path::Path(std::string unverified_path)
+Path::Path(const std::string& unverified_path)
   : path(unverified_path)
 {
   FlipBackSlashes(path);
diff --git a/lib/System/Win32/Path.inc b/lib/System/Win32/Path.inc
index 095417f..070ebb3 100644
--- a/lib/System/Win32/Path.inc
+++ b/lib/System/Win32/Path.inc
@@ -97,7 +97,7 @@
   return *TempDirectory;
 }
 
-Path::Path(std::string unverified_path)
+Path::Path(const std::string& unverified_path)
   : path(unverified_path)
 {
   FlipBackSlashes(path);