aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/ADT/DenseMapTest.cpp
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2014-08-04 22:18:25 +0000
committerAndrew Trick <atrick@apple.com>2014-08-04 22:18:25 +0000
commitfd4f32be90e654752de1155d32dc90256cb94537 (patch)
treeb62f784bcaadccb50d6c40a739c62d256fe83f53 /llvm/unittests/ADT/DenseMapTest.cpp
parent3efd0495a0813896e1559e532c5d9e581dd48c0e (diff)
downloadllvm-fd4f32be90e654752de1155d32dc90256cb94537.zip
llvm-fd4f32be90e654752de1155d32dc90256cb94537.tar.gz
llvm-fd4f32be90e654752de1155d32dc90256cb94537.tar.bz2
Fix SmallDenseMap assignment operator.
Self assignment would lead to buckets of garbage, causing quadratic probing to hang. llvm-svn: 214790
Diffstat (limited to 'llvm/unittests/ADT/DenseMapTest.cpp')
-rw-r--r--llvm/unittests/ADT/DenseMapTest.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/unittests/ADT/DenseMapTest.cpp b/llvm/unittests/ADT/DenseMapTest.cpp
index 75a910a..f497983 100644
--- a/llvm/unittests/ADT/DenseMapTest.cpp
+++ b/llvm/unittests/ADT/DenseMapTest.cpp
@@ -244,6 +244,11 @@ TYPED_TEST(DenseMapTest, AssignmentTest) {
EXPECT_EQ(1u, copyMap.size());
EXPECT_EQ(this->getValue(), copyMap[this->getKey()]);
+
+ // test self-assignment.
+ copyMap = copyMap;
+ EXPECT_EQ(1u, copyMap.size());
+ EXPECT_EQ(this->getValue(), copyMap[this->getKey()]);
}
// Test swap method