This is an archive of the discontinued LLVM Phabricator instance.

[ADT] Fix for ImmutableMapRef
ClosedPublic

Authored by baloghadamsoftware on Oct 15 2020, 10:11 AM.

Details

Summary

The Root member of ImmutableMapRef was changed recently from a plain pointer to IntrusiveRefCntPtr. However, the Profile member function
was not adjusted. This results in comilation error whenever the Profile method is used on an ImmutableMapRef. This patch fixes this issue and also adds unit tests for ImmutableMapRef. See bug 47863.

Diff Detail

Event Timeline

baloghadamsoftware requested review of this revision.Oct 15 2020, 10:11 AM
bkramer accepted this revision.Oct 21 2020, 1:36 AM

Thanks

This revision is now accepted and ready to land.Oct 21 2020, 1:36 AM
This revision was landed with ongoing or failed builds.Oct 21 2020, 3:11 AM
This revision was automatically updated to reflect the committed changes.
hctim added a subscriber: hctim.Oct 27 2020, 8:05 PM

Looks like this caused a regression on the sanitizer buildbots. In particular, running check-llvm under ASan produces the following error:

http://lab.llvm.org:8011/#/builders/5/builds/239

FAIL: LLVM-Unit :: ADT/./ADTTests/ImmutableMapTest.EmptyIntMapRefTest (680 of 39834)
******************** TEST 'LLVM-Unit :: ADT/./ADTTests/ImmutableMapTest.EmptyIntMapRefTest' FAILED ********************
Note: Google Test filter = ImmutableMapTest.EmptyIntMapRefTest
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from ImmutableMapTest
[ RUN      ] ImmutableMapTest.EmptyIntMapRefTest
[       OK ] ImmutableMapTest.EmptyIntMapRefTest (1 ms)
[----------] 1 test from ImmutableMapTest (1 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (1 ms total)
[  PASSED  ] 1 test.
=================================================================
==32148==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 104 byte(s) in 1 object(s) allocated from:
    #0 0x688cdd in operator new(unsigned long) /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cpp:99:3
    #1 0xe68e8f in ImutAVLFactory /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/ImmutableSet.h:399:45
    #2 0xe68e8f in (anonymous namespace)::ImmutableMapTest_EmptyIntMapRefTest_Test::TestBody() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/unittests/ADT/ImmutableMapTest.cpp:52:9
    #3 0x166de90 in HandleExceptionsInMethodIfSupported<testing::Test, void> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc
    #4 0x166de90 in testing::Test::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2474:5
    #5 0x16704a5 in testing::TestInfo::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2656:11
    #6 0x1671912 in testing::TestCase::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2774:28
    #7 0x169081b in testing::internal::UnitTestImpl::RunAllTests() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:4649:43
    #8 0x168fac0 in HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc
    #9 0x168fac0 in testing::UnitTest::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:4257:10
    #10 0x164f820 in RUN_ALL_TESTS /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/include/gtest/gtest.h:2233:46
    #11 0x164f820 in main /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/UnitTestMain/TestMain.cpp:50:10
    #12 0x7fbdb063209a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
SUMMARY: AddressSanitizer: 104 byte(s) leaked in 1 allocation(s).
********************
Testing: 
FAIL: LLVM-Unit :: ADT/./ADTTests/ImmutableMapTest.MultiElemIntMapRefTest (684 of 39834)
******************** TEST 'LLVM-Unit :: ADT/./ADTTests/ImmutableMapTest.MultiElemIntMapRefTest' FAILED ********************
Note: Google Test filter = ImmutableMapTest.MultiElemIntMapRefTest
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from ImmutableMapTest
[ RUN      ] ImmutableMapTest.MultiElemIntMapRefTest
[       OK ] ImmutableMapTest.MultiElemIntMapRefTest (0 ms)
[----------] 1 test from ImmutableMapTest (0 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (0 ms total)
[  PASSED  ] 1 test.
=================================================================
==32156==ERROR: LeakSanitizer: detected memory leaks
Indirect leak of 4096 byte(s) in 1 object(s) allocated from:
    #0 0x688cdd in operator new(unsigned long) /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cpp:99:3
    #1 0xa56f14 in Allocate /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/Support/AllocatorBase.h:85:12
    #2 0xa56f14 in StartNewSlab /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/Support/Allocator.h:336:19
    #3 0xa56f14 in llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>::Allocate(unsigned long, llvm::Align) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/Support/Allocator.h:188:5
    #4 0xe66faf in Allocate /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/Support/Allocator.h:202:12
    #5 0xe66faf in Allocate /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/Support/AllocatorBase.h:46:43
    #6 0xe66faf in Allocate<llvm::ImutAVLTree<llvm::ImutKeyValueInfo<int, int> > > /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/Support/AllocatorBase.h:69:29
    #7 0xe66faf in llvm::ImutAVLFactory<llvm::ImutKeyValueInfo<int, int> >::createNode(llvm::ImutAVLTree<llvm::ImutKeyValueInfo<int, int> >*, std::__1::pair<int, int> const&, llvm::ImutAVLTree<llvm::ImutKeyValueInfo<int, int> >*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/ImmutableSet.h:477:23
    #8 0xe65d81 in llvm::ImutAVLFactory<llvm::ImutKeyValueInfo<int, int> >::add(llvm::ImutAVLTree<llvm::ImutKeyValueInfo<int, int> >*, std::__1::pair<int, int> const&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/ImmutableSet.h:409:9
    #9 0xe6a581 in add /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/ImmutableMap.h:280:18
    #10 0xe6a581 in (anonymous namespace)::ImmutableMapTest_MultiElemIntMapRefTest_Test::TestBody() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/unittests/ADT/ImmutableMapTest.cpp:70:36
    #11 0x166de90 in HandleExceptionsInMethodIfSupported<testing::Test, void> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc
    #12 0x166de90 in testing::Test::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2474:5
    #13 0x16704a5 in testing::TestInfo::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2656:11
    #14 0x1671912 in testing::TestCase::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2774:28
    #15 0x169081b in testing::internal::UnitTestImpl::RunAllTests() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:4649:43
    #16 0x168fac0 in HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc
    #17 0x168fac0 in testing::UnitTest::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:4257:10
    #18 0x164f820 in RUN_ALL_TESTS /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/include/gtest/gtest.h:2233:46
    #19 0x164f820 in main /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/UnitTestMain/TestMain.cpp:50:10
    #20 0x7f25c660609a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
Indirect leak of 104 byte(s) in 1 object(s) allocated from:
    #0 0x688cdd in operator new(unsigned long) /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cpp:99:3
    #1 0xe6a42a in ImutAVLFactory /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/ImmutableSet.h:399:45
    #2 0xe6a42a in (anonymous namespace)::ImmutableMapTest_MultiElemIntMapRefTest_Test::TestBody() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/unittests/ADT/ImmutableMapTest.cpp:66:9
    #3 0x166de90 in HandleExceptionsInMethodIfSupported<testing::Test, void> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc
    #4 0x166de90 in testing::Test::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2474:5
    #5 0x16704a5 in testing::TestInfo::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2656:11
    #6 0x1671912 in testing::TestCase::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2774:28
    #7 0x169081b in testing::internal::UnitTestImpl::RunAllTests() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:4649:43
    #8 0x168fac0 in HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc
    #9 0x168fac0 in testing::UnitTest::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:4257:10
    #10 0x164f820 in RUN_ALL_TESTS /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/include/gtest/gtest.h:2233:46
    #11 0x164f820 in main /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/UnitTestMain/TestMain.cpp:50:10
    #12 0x7f25c660609a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
Indirect leak of 88 byte(s) in 1 object(s) allocated from:
    #0 0x688cdd in operator new(unsigned long) /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cpp:99:3
    #1 0xe6a40e in (anonymous namespace)::ImmutableMapTest_MultiElemIntMapRefTest_Test::TestBody() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/unittests/ADT/ImmutableMapTest.cpp:66:5
    #2 0x166de90 in HandleExceptionsInMethodIfSupported<testing::Test, void> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc
    #3 0x166de90 in testing::Test::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2474:5
    #4 0x16704a5 in testing::TestInfo::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2656:11
    #5 0x1671912 in testing::TestCase::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2774:28
    #6 0x169081b in testing::internal::UnitTestImpl::RunAllTests() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:4649:43
    #7 0x168fac0 in HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc
    #8 0x168fac0 in testing::UnitTest::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:4257:10
    #9 0x164f820 in RUN_ALL_TESTS /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/include/gtest/gtest.h:2233:46
    #10 0x164f820 in main /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/UnitTestMain/TestMain.cpp:50:10
    #11 0x7f25c660609a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
Indirect leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x688cdd in operator new(unsigned long) /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cpp:99:3
    #1 0xe629b4 in __libcpp_operator_new<unsigned long> /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/new:236:10
    #2 0xe629b4 in __libcpp_allocate /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/new:262:10
    #3 0xe629b4 in allocate /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/memory:1684:38
    #4 0xe629b4 in allocate /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/memory:1429:21
    #5 0xe629b4 in __split_buffer /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/__split_buffer:314:29
    #6 0xe629b4 in void std::__1::vector<llvm::ImutAVLTree<llvm::ImutKeyValueInfo<int, int> >*, std::__1::allocator<llvm::ImutAVLTree<llvm::ImutKeyValueInfo<int, int> >*> >::__push_back_slow_path<llvm::ImutAVLTree<llvm::ImutKeyValueInfo<int, int> >*>(llvm::ImutAVLTree<llvm::ImutKeyValueInfo<int, int> >*&&) /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/vector:1627:49
    #7 0xe60e46 in push_back /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/vector:1659:9
    #8 0xe60e46 in llvm::ImutAVLTree<llvm::ImutKeyValueInfo<int, int> >::destroy() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/ImmutableSet.h:357:24
    #9 0xe60c33 in release /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/ImmutableSet.h:336:7
    #10 0xe60c33 in llvm::ImutAVLTree<llvm::ImutKeyValueInfo<int, int> >::destroy() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/ImmutableSet.h:343:14
    #11 0xe6bc59 in release /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/ImmutableSet.h:336:7
    #12 0xe6bc59 in release /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/ImmutableSet.h:364:60
    #13 0xe6bc59 in release /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:189:7
    #14 0xe6bc59 in ~IntrusiveRefCntPtr /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:156:27
    #15 0xe6bc59 in ~ImmutableMapRef /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/ImmutableMap.h:239:7
    #16 0xe6bc59 in (anonymous namespace)::ImmutableMapTest_MultiElemIntMapRefTest_Test::TestBody() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/unittests/ADT/ImmutableMapTest.cpp:84:1
    #17 0x166de90 in HandleExceptionsInMethodIfSupported<testing::Test, void> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc
    #18 0x166de90 in testing::Test::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2474:5
    #19 0x16704a5 in testing::TestInfo::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2656:11
    #20 0x1671912 in testing::TestCase::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2774:28
    #21 0x169081b in testing::internal::UnitTestImpl::RunAllTests() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:4649:43
    #22 0x168fac0 in HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc
    #23 0x168fac0 in testing::UnitTest::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:4257:10
    #24 0x164f820 in RUN_ALL_TESTS /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/include/gtest/gtest.h:2233:46
    #25 0x164f820 in main /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/UnitTestMain/TestMain.cpp:50:10
    #26 0x7f25c660609a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x688cdd in operator new(unsigned long) /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cpp:99:3
    #1 0xe679f4 in __libcpp_operator_new<unsigned long> /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/new:236:10
    #2 0xe679f4 in __libcpp_allocate /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/new:262:10
    #3 0xe679f4 in allocate /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/memory:1684:38
    #4 0xe679f4 in allocate /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/memory:1429:21
    #5 0xe679f4 in __split_buffer /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/__split_buffer:314:29
    #6 0xe679f4 in void std::__1::vector<llvm::ImutAVLTree<llvm::ImutKeyValueInfo<int, int> >*, std::__1::allocator<llvm::ImutAVLTree<llvm::ImutKeyValueInfo<int, int> >*> >::__push_back_slow_path<llvm::ImutAVLTree<llvm::ImutKeyValueInfo<int, int> >* const&>(llvm::ImutAVLTree<llvm::ImutKeyValueInfo<int, int> >* const&) /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/vector:1627:49
    #7 0xe67315 in push_back /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/vector:1644:9
    #8 0xe67315 in llvm::ImutAVLFactory<llvm::ImutKeyValueInfo<int, int> >::createNode(llvm::ImutAVLTree<llvm::ImutKeyValueInfo<int, int> >*, std::__1::pair<int, int> const&, llvm::ImutAVLTree<llvm::ImutKeyValueInfo<int, int> >*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/ImmutableSet.h:480:18
    #9 0xe65d81 in llvm::ImutAVLFactory<llvm::ImutKeyValueInfo<int, int> >::add(llvm::ImutAVLTree<llvm::ImutKeyValueInfo<int, int> >*, std::__1::pair<int, int> const&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/ImmutableSet.h:409:9
    #10 0xe6a679 in add /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/ImmutableMap.h:280:18
    #11 0xe6a679 in (anonymous namespace)::ImmutableMapTest_MultiElemIntMapRefTest_Test::TestBody() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/unittests/ADT/ImmutableMapTest.cpp:70:58
    #12 0x166de90 in HandleExceptionsInMethodIfSupported<testing::Test, void> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc
    #13 0x166de90 in testing::Test::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2474:5
    #14 0x16704a5 in testing::TestInfo::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2656:11
    #15 0x1671912 in testing::TestCase::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2774:28
    #16 0x169081b in testing::internal::UnitTestImpl::RunAllTests() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:4649:43
    #17 0x168fac0 in HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc
    #18 0x168fac0 in testing::UnitTest::Run() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:4257:10
    #19 0x164f820 in RUN_ALL_TESTS /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/googletest/include/gtest/gtest.h:2233:46
    #20 0x164f820 in main /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/unittest/UnitTestMain/TestMain.cpp:50:10
    #21 0x7f25c660609a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
SUMMARY: AddressSanitizer: 4384 byte(s) leaked in 5 allocation(s).
********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.. 
********************
Failed Tests (2):
  LLVM-Unit :: ADT/./ADTTests/ImmutableMapTest.EmptyIntMapRefTest
  LLVM-Unit :: ADT/./ADTTests/ImmutableMapTest.MultiElemIntMapRefTest