<div dir="ltr">Sorry about that. I have a fix here <a href="https://reviews.llvm.org/D63000">https://reviews.llvm.org/D63000</a> which I will apply to D62992 and re-commit. -Mike<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 7, 2019 at 11:32 AM Vlad Tsyrklevich <<a href="mailto:vlad@tsyrklevich.net">vlad@tsyrklevich.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">This change was causing ASan failures on the sanitizer bots and has been reverted in r362823 <a href="http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/32800" target="_blank">http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/32800</a></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 7, 2019 at 1:46 AM Michael Pozulp via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Author: pozulp<br>
Date: Thu Jun  6 20:23:00 2019<br>
New Revision: 362766<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=362766&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=362766&view=rev</a><br>
Log:<br>
[ADT] Enable set_difference() to be used on StringSet<br>
<br>
Subscribers: mgorny, mgrang, dexonsmith, llvm-commits<br>
<br>
Tags: #llvm<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D62992" rel="noreferrer" target="_blank">https://reviews.llvm.org/D62992</a><br>
<br>
Added:<br>
    llvm/trunk/unittests/ADT/StringSetTest.cpp<br>
Modified:<br>
    llvm/trunk/include/llvm/ADT/StringMap.h<br>
    llvm/trunk/include/llvm/ADT/StringSet.h<br>
    llvm/trunk/unittests/ADT/CMakeLists.txt<br>
    llvm/trunk/unittests/ADT/StringMapTest.cpp<br>
<br>
Modified: llvm/trunk/include/llvm/ADT/StringMap.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/StringMap.h?rev=362766&r1=362765&r2=362766&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/StringMap.h?rev=362766&r1=362765&r2=362766&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/ADT/StringMap.h (original)<br>
+++ llvm/trunk/include/llvm/ADT/StringMap.h Thu Jun  6 20:23:00 2019<br>
@@ -359,6 +359,11 @@ public:<br>
     return find(Key) == end() ? 0 : 1;<br>
   }<br>
<br>
+  template <typename InputTy><br>
+  size_type count(const StringMapEntry<InputTy> &MapEntry) const {<br>
+    return count(MapEntry.getKey());<br>
+  }<br>
+<br>
   /// insert - Insert the specified key/value pair into the map.  If the key<br>
   /// already exists in the map, return false and ignore the request, otherwise<br>
   /// insert it and return true.<br>
<br>
Modified: llvm/trunk/include/llvm/ADT/StringSet.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/StringSet.h?rev=362766&r1=362765&r2=362766&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/StringSet.h?rev=362766&r1=362765&r2=362766&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/ADT/StringSet.h (original)<br>
+++ llvm/trunk/include/llvm/ADT/StringSet.h Thu Jun  6 20:23:00 2019<br>
@@ -45,6 +45,12 @@ namespace llvm {<br>
       for (auto It = Begin; It != End; ++It)<br>
         base::insert(std::make_pair(*It, '\0'));<br>
     }<br>
+<br>
+    template <typename ValueTy><br>
+    std::pair<typename base::iterator, bool><br>
+    insert(const StringMapEntry<ValueTy> &MapEntry) {<br>
+      return insert(MapEntry.getKey());<br>
+    }<br>
   };<br>
<br>
 } // end namespace llvm<br>
<br>
Modified: llvm/trunk/unittests/ADT/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ADT/CMakeLists.txt?rev=362766&r1=362765&r2=362766&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ADT/CMakeLists.txt?rev=362766&r1=362765&r2=362766&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/unittests/ADT/CMakeLists.txt (original)<br>
+++ llvm/trunk/unittests/ADT/CMakeLists.txt Thu Jun  6 20:23:00 2019<br>
@@ -65,6 +65,7 @@ add_llvm_unittest(ADTTests<br>
   StringExtrasTest.cpp<br>
   StringMapTest.cpp<br>
   StringRefTest.cpp<br>
+  StringSetTest.cpp<br>
   StringSwitchTest.cpp<br>
   TinyPtrVectorTest.cpp<br>
   TripleTest.cpp<br>
<br>
Modified: llvm/trunk/unittests/ADT/StringMapTest.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ADT/StringMapTest.cpp?rev=362766&r1=362765&r2=362766&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ADT/StringMapTest.cpp?rev=362766&r1=362765&r2=362766&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/unittests/ADT/StringMapTest.cpp (original)<br>
+++ llvm/trunk/unittests/ADT/StringMapTest.cpp Thu Jun  6 20:23:00 2019<br>
@@ -7,7 +7,6 @@<br>
 //===----------------------------------------------------------------------===//<br>
<br>
 #include "llvm/ADT/StringMap.h"<br>
-#include "llvm/ADT/StringSet.h"<br>
 #include "llvm/ADT/Twine.h"<br>
 #include "llvm/Support/DataTypes.h"<br>
 #include "gtest/gtest.h"<br>
@@ -281,20 +280,6 @@ TEST_F(StringMapTest, IterMapKeys) {<br>
   llvm::sort(Keys);<br>
<br>
   SmallVector<StringRef, 4> Expected = {"A", "B", "C", "D"};<br>
-  EXPECT_EQ(Expected, Keys);<br>
-}<br>
-<br>
-TEST_F(StringMapTest, IterSetKeys) {<br>
-  StringSet<> Set;<br>
-  Set.insert("A");<br>
-  Set.insert("B");<br>
-  Set.insert("C");<br>
-  Set.insert("D");<br>
-<br>
-  auto Keys = to_vector<4>(Set.keys());<br>
-  llvm::sort(Keys);<br>
-<br>
-  SmallVector<StringRef, 4> Expected = {"A", "B", "C", "D"};<br>
   EXPECT_EQ(Expected, Keys);<br>
 }<br>
<br>
<br>
Added: llvm/trunk/unittests/ADT/StringSetTest.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ADT/StringSetTest.cpp?rev=362766&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ADT/StringSetTest.cpp?rev=362766&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/unittests/ADT/StringSetTest.cpp (added)<br>
+++ llvm/trunk/unittests/ADT/StringSetTest.cpp Thu Jun  6 20:23:00 2019<br>
@@ -0,0 +1,43 @@<br>
+//===- llvm/unittest/ADT/StringSetTest.cpp - StringSet unit tests ----------===//<br>
+//<br>
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.<br>
+// See <a href="https://llvm.org/LICENSE.txt" rel="noreferrer" target="_blank">https://llvm.org/LICENSE.txt</a> for license information.<br>
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception<br>
+//<br>
+//===----------------------------------------------------------------------===//<br>
+<br>
+#include "llvm/ADT/StringSet.h"<br>
+#include "gtest/gtest.h"<br>
+using namespace llvm;<br>
+<br>
+namespace {<br>
+<br>
+// Test fixture<br>
+class StringSetTest : public testing::Test {};<br>
+<br>
+TEST_F(StringSetTest, IterSetKeys) {<br>
+  StringSet<> Set;<br>
+  Set.insert("A");<br>
+  Set.insert("B");<br>
+  Set.insert("C");<br>
+  Set.insert("D");<br>
+<br>
+  auto Keys = to_vector<4>(Set.keys());<br>
+  llvm::sort(Keys);<br>
+<br>
+  SmallVector<StringRef, 4> Expected = {"A", "B", "C", "D"};<br>
+  EXPECT_EQ(Expected, Keys);<br>
+}<br>
+<br>
+TEST_F(StringSetTest, InsertAndCountStringMapEntry) {<br>
+  // Test insert(StringMapEntry) and count(StringMapEntry)<br>
+  // which are required for set_difference(StringSet, StringSet).<br>
+  StringSet<> Set;<br>
+  StringMapEntry<StringRef> Element(1, "A");<br>
+  Set.insert(Element);<br>
+  size_t Count = Set.count(Element);<br>
+  size_t Expected = 1;<br>
+  EXPECT_EQ(Expected, Count);<br>
+}<br>
+<br>
+} // end anonymous namespace<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>
</blockquote></div>