This make compiling fails on Fedora 9 GCC 4.3. <br>It says 'strcmp' was not declared in this scope.<br>Should also include <cstring>.<br><br><div class="gmail_quote">On Sat, May 17, 2008 at 5:10 PM, Bill Wendling <<a href="mailto:isanbard@gmail.com">isanbard@gmail.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Author: void<br>
Date: Sat May 17 04:10:40 2008<br>
New Revision: 51218<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=51218&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=51218&view=rev</a><br>
Log:<br>
On Darwin, the string header file isn't 64-bit clean. The use of<br>
"-Wshorten-64-to-32 -Werror" will cause a failure when compiling this complex<br>
program:<br>
<br>
#include <string><br>
<br>
class Path {<br>
  mutable std::string path;<br>
public:<br>
  bool operator == (const Path &that) {<br>
    return path == that.path;<br>
  }<br>
};<br>
<br>
Using strcmp gets us past this annoying error.<br>
<br>
Modified:<br>
    llvm/trunk/include/llvm/System/Path.h<br>
<br>
Modified: llvm/trunk/include/llvm/System/Path.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/System/Path.h?rev=51218&r1=51217&r2=51218&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/System/Path.h?rev=51218&r1=51217&r2=51218&view=diff</a><br>

<br>
==============================================================================<br>
--- llvm/trunk/include/llvm/System/Path.h (original)<br>
+++ llvm/trunk/include/llvm/System/Path.h Sat May 17 04:10:40 2008<br>
@@ -206,14 +206,14 @@<br>
       /// @returns true if \p this and \p that refer to the same thing.<br>
       /// @brief Equality Operator<br>
       bool operator==(const Path &that) const {<br>
-        return path == that.path;<br>
+        return strcmp(path.c_str(), that.path.c_str()) == 0;<br>
       }<br>
<br>
       /// Compares \p this Path with \p that Path for inequality.<br>
       /// @returns true if \p this and \p that refer to different things.<br>
       /// @brief Inequality Operator<br>
       bool operator!=(const Path &that) const {<br>
-        return path != that.path;<br>
+        return strcmp(path.c_str(), that.path.c_str()) != 0;<br>
       }<br>
<br>
       /// Determines if \p this Path is less than \p that Path. This is required<br>
@@ -223,7 +223,7 @@<br>
       /// @returns true if \p this path is lexicographically less than \p that.<br>
       /// @brief Less Than Operator<br>
       bool operator<(const Path& that) const {<br>
-        return path < that.path;<br>
+        return strcmp(path.c_str(), that.path.c_str()) < 0;<br>
       }<br>
<br>
     /// @}<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br>