[llvm] r362766 - [ADT] Enable set_difference() to be used on StringSet

Michael Pozulp via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 7 12:39:31 PDT 2019


Sorry about that. I have a fix here https://reviews.llvm.org/D63000 which I
will apply to D62992 and re-commit. -Mike

On Fri, Jun 7, 2019 at 11:32 AM Vlad Tsyrklevich <vlad at tsyrklevich.net>
wrote:

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


More information about the llvm-commits mailing list