From fbaa37937f58a8fcd32e4c6f0dce8773d7be9837 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Sat, 17 May 2008 09:10:40 +0000 Subject: [PATCH] On Darwin, the string header file isn't 64-bit clean. The use of "-Wshorten-64-to-32 -Werror" will cause a failure when compiling this complex program: #include class Path { mutable std::string path; public: bool operator == (const Path &that) { return path == that.path; } }; Using strcmp gets us past this annoying error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51218 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/System/Path.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/llvm/System/Path.h b/include/llvm/System/Path.h index ba251a9dbbc..00e4ea3af01 100644 --- a/include/llvm/System/Path.h +++ b/include/llvm/System/Path.h @@ -206,14 +206,14 @@ namespace sys { /// @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; + return strcmp(path.c_str(), that.path.c_str()) == 0; } /// 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; + return strcmp(path.c_str(), that.path.c_str()) != 0; } /// Determines if \p this Path is less than \p that Path. This is required @@ -223,7 +223,7 @@ namespace sys { /// @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; + return strcmp(path.c_str(), that.path.c_str()) < 0; } /// @}