[llvm] r362766 - [ADT] Enable set_difference() to be used on StringSet
Vlad Tsyrklevich via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 7 11:32:28 PDT 2019
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/11fd21af/attachment.html>
More information about the llvm-commits
mailing list