Follow-up to the reverting of r51218. This puts the checks out-of-line. Because
authorBill Wendling <isanbard@gmail.com>
Wed, 21 May 2008 21:20:07 +0000 (21:20 +0000)
committerBill Wendling <isanbard@gmail.com>
Wed, 21 May 2008 21:20:07 +0000 (21:20 +0000)
they aren't in the header file, systems with a <string> header file that isn't
64-bit clean shouldn't warn if #including Path.h and specifying
-Wshorten-64-to-32.

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

include/llvm/System/Path.h
lib/System/Path.cpp

index ba251a9dbbc825d5266b0463f99eb2a78098dc4e..ac0c6cbca2e481785fee683e5d6f6fad0c4a7fd5 100644 (file)
@@ -205,16 +205,12 @@ namespace sys {
       /// Compares \p this Path with \p that Path for equality.
       /// @returns true if \p this and \p that refer to the same thing.
       /// @brief Equality Operator
-      bool operator==(const Path &that) const {
-        return path == that.path;
-      }
+      bool operator==(const Path &that) const;
 
       /// Compares \p this Path with \p that Path for inequality.
       /// @returns true if \p this and \p that refer to different things.
       /// @brief Inequality Operator
-      bool operator!=(const Path &that) const {
-        return path != that.path;
-      }
+      bool operator!=(const Path &that) const;
 
       /// Determines if \p this Path is less than \p that Path. This is required
       /// so that Path objects can be placed into ordered collections (e.g.
@@ -222,9 +218,7 @@ namespace sys {
       /// the std::string::compare method.
       /// @returns true if \p this path is lexicographically less than \p that.
       /// @brief Less Than Operator
-      bool operator<(const Path& that) const {
-        return path < that.path;
-      }
+      bool operator<(const Path& that) const;
 
     /// @}
     /// @name Path Accessors
index 086c9f0238c42715cbb7e5b719530cdbc4aa5fe9..03cdbf7764ec3613f0d4c5ba983dc8120323c545 100644 (file)
@@ -24,6 +24,18 @@ using namespace sys;
 //===          independent code.
 //===----------------------------------------------------------------------===//
 
+bool Path::operator==(const Path &that) const {
+  return path == that.path;
+}
+
+bool Path::operator!=(const Path &that) const {
+  return path != that.path;
+}
+
+bool Path::operator<(const Path& that) const {
+  return path < that.path;
+}
+
 std::ostream& llvm::operator<<(std::ostream &strm, const sys::Path &aPath) {
   strm << aPath.toString();
   return strm;