<div dir="ltr">I'm panicking :) but it seems to be only in tools/extra so I'll try to fix this quickly.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jun 19, 2014 at 10:46 AM, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hm,m not even in clang, I think - just clang-tools-extra.<br>
<div class="HOEnZb"><div class="h5"><br>
On Wed, Jun 18, 2014 at 5:45 PM, David Blaikie <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>> wrote:<br>
> On Wed, Jun 18, 2014 at 5:26 PM, Nikola Smiljanic <<a href="mailto:popizdeh@gmail.com">popizdeh@gmail.com</a>> wrote:<br>
>> Author: nikola<br>
>> Date: Wed Jun 18 19:26:49 2014<br>
>> New Revision: 211244<br>
>><br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=211244&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=211244&view=rev</a><br>
>> Log:<br>
>> PR10140 - StringPool's PooledStringPtr has non-const operator== causing bad OR-result.<br>
>><br>
>> Mark conversion operator explicit and const qualify comparison operators.<br>
><br>
> Looks like there's some breakage in Clang due to this (looks like<br>
> making the bool conversion explicit found some more bugs). Not sure if<br>
> you can/want to fix them quickly, or revert then fix.<br>
><br>
> - David<br>
><br>
>><br>
>> Added:<br>
>>     llvm/trunk/unittests/Support/StringPool.cpp<br>
>> Modified:<br>
>>     llvm/trunk/include/llvm/Support/StringPool.h<br>
>>     llvm/trunk/unittests/Support/CMakeLists.txt<br>
>><br>
>> Modified: llvm/trunk/include/llvm/Support/StringPool.h<br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/StringPool.h?rev=211244&r1=211243&r2=211244&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/StringPool.h?rev=211244&r1=211243&r2=211244&view=diff</a><br>


>> ==============================================================================<br>
>> --- llvm/trunk/include/llvm/Support/StringPool.h (original)<br>
>> +++ llvm/trunk/include/llvm/Support/StringPool.h Wed Jun 18 19:26:49 2014<br>
>> @@ -128,10 +128,10 @@ namespace llvm {<br>
>>      }<br>
>><br>
>>      inline const char *operator*() const { return begin(); }<br>
>> -    inline operator bool() const { return S != nullptr; }<br>
>> +    inline explicit operator bool() const { return S != nullptr; }<br>
>><br>
>> -    inline bool operator==(const PooledStringPtr &That) { return S == That.S; }<br>
>> -    inline bool operator!=(const PooledStringPtr &That) { return S != That.S; }<br>
>> +    inline bool operator==(const PooledStringPtr &That) const { return S == That.S; }<br>
>> +    inline bool operator!=(const PooledStringPtr &That) const { return S != That.S; }<br>
>>    };<br>
>><br>
>>  } // End llvm namespace<br>
>><br>
>> Modified: llvm/trunk/unittests/Support/CMakeLists.txt<br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/CMakeLists.txt?rev=211244&r1=211243&r2=211244&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/CMakeLists.txt?rev=211244&r1=211243&r2=211244&view=diff</a><br>


>> ==============================================================================<br>
>> --- llvm/trunk/unittests/Support/CMakeLists.txt (original)<br>
>> +++ llvm/trunk/unittests/Support/CMakeLists.txt Wed Jun 18 19:26:49 2014<br>
>> @@ -30,6 +30,7 @@ add_llvm_unittest(SupportTests<br>
>>    ProgramTest.cpp<br>
>>    RegexTest.cpp<br>
>>    SourceMgrTest.cpp<br>
>> +  StringPool.cpp<br>
>>    SwapByteOrderTest.cpp<br>
>>    ThreadLocalTest.cpp<br>
>>    TimeValueTest.cpp<br>
>><br>
>> Added: llvm/trunk/unittests/Support/StringPool.cpp<br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/StringPool.cpp?rev=211244&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/StringPool.cpp?rev=211244&view=auto</a><br>


>> ==============================================================================<br>
>> --- llvm/trunk/unittests/Support/StringPool.cpp (added)<br>
>> +++ llvm/trunk/unittests/Support/StringPool.cpp Wed Jun 18 19:26:49 2014<br>
>> @@ -0,0 +1,31 @@<br>
>> +//===- llvm/unittest/Support/ThreadLocalTest.cpp - Therad Local tests   ---===//<br>
>> +//<br>
>> +//                    The LLVM Compiler Infrastructure<br>
>> +//<br>
>> +// This file is distributed under the University of Illinois Open Source<br>
>> +// License. See LICENSE.TXT for details.<br>
>> +//<br>
>> +//===----------------------------------------------------------------------===//<br>
>> +<br>
>> +#include "llvm/Support/StringPool.h"<br>
>> +#include "gtest/gtest.h"<br>
>> +<br>
>> +using namespace llvm;<br>
>> +<br>
>> +namespace {<br>
>> +<br>
>> +TEST(PooledStringPtrTest, OperatorEquals) {<br>
>> +  StringPool pool;<br>
>> +  const PooledStringPtr a = pool.intern("a");<br>
>> +  const PooledStringPtr b = pool.intern("b");<br>
>> +  EXPECT_FALSE(a == b);<br>
>> +}<br>
>> +<br>
>> +TEST(PooledStringPtrTest, OperatorNotEquals) {<br>
>> +  StringPool pool;<br>
>> +  const PooledStringPtr a = pool.intern("a");<br>
>> +  const PooledStringPtr b = pool.intern("b");<br>
>> +  EXPECT_TRUE(a != b);<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>
</div></div></blockquote></div><br></div>