folly icon indicating copy to clipboard operation
folly copied to clipboard

StringKeyedTest.cpp fails to compile on Alpine/Arm

Open benstadin opened this issue 2 years ago • 3 comments

I'm trying to build Folly in Alpine 3.15 Docker on a Raspberry PI 4. The same build worked on x86 Alpine (same docker) before, thus I'm not sure what's going on. I get the error below for StringKeyedTest.cpp.

Also, is it possible to disable the experimental classes entirely from the build?

/home/builduser/aports/src/folly/container/detail/F14SetFallback.h:85:16:   required from here
/usr/include/c++/10.3.1/bits/hashtable.h:1069:16: error: no matching function for call to 'std::_Hashtable<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >, std::__detail::_Identity, folly::transparent<std::equal_to<folly::Range<const char*> > >, folly::transparent<folly::hasher<folly::Range<const char*> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >::insert(folly::Range<const char*>&)'
 1069 |    this->insert(*__f);
      |    ~~~~~~~~~~~~^~~~~~
In file included from /usr/include/c++/10.3.1/bits/hashtable.h:35,
                 from /usr/include/c++/10.3.1/unordered_map:46,
                 from /usr/include/c++/10.3.1/functional:61,
                 from /home/builduser/aports/src/folly/Traits.h:22,
                 from /home/builduser/aports/src/folly/lang/Exception.h:26,
                 from /home/builduser/aports/src/folly/Range.h:25,
                 from /home/builduser/aports/src/folly/experimental/StringKeyedMap.h:25,
                 from /home/builduser/aports/src/folly/experimental/test/StringKeyedTest.cpp:17:
/usr/include/c++/10.3.1/bits/hashtable_policy.h:967:7: note: candidate: 'std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::__ireturn_type std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::insert(std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::value_type&&) [with _Key = std::__cxx11::basic_string<char>; _Value = std::__cxx11::basic_string<char>; _Alloc = MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >; _ExtractKey = std::__detail::_Identity; _Equal = folly::transparent<std::equal_to<folly::Range<const char*> > >; _H1 = folly::transparent<folly::hasher<folly::Range<const char*> > >; _H2 = std::__detail::_Mod_range_hashing; _Hash = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, true, true>; std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::__ireturn_type = std::__detail::_Insert<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >, std::__detail::_Identity, folly::transparent<std::equal_to<folly::Range<const char*> > >, folly::transparent<folly::hasher<folly::Range<const char*> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true>, true>::__ireturn_type; std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::value_type = std::__cxx11::basic_string<char>]'
  967 |       insert(value_type&& __v)
      |       ^~~~~~

benstadin avatar May 23 '22 17:05 benstadin

Which CPU architecture is this using? arm32 or aarch64? F14 is an unordered_map that uses SSE (for x86_64) and neon (for aarch64) instructions for higher speed and falls back to the standard library hash tables when those aren't available. It looks like the string keyed test might be dependent on an interface provided by the full F14 maps that's not present on the standard library ones.

Do you have the full error message? This one has the trace for where it's been included from, and where the error actually occurred, but doesn't have the traceback to StringKeyedTest.cpp that I'd expect, which should say what part of F14 is actually causing issues.

There is not currently an easy way to disable everything in experimental/ since at this point it's mostly just a name rather than the contents actually being experimental, due to how hard it is to actually move things around in Folly due to how much ends up depending on it.

What you should be able to do is not build with tests enabled. You may still run into other issues further down the line, but it would bypass this issue.

Orvid avatar May 23 '22 19:05 Orvid

Below is a bit more logging before and after the error occurred. The building takes pretty long, thus I hope this is enough. Otherwise I'll start again and collect the output to a file.

The CPU is an ARM v7 on a 32 bit host (Raspbian is available for 64 bit, alas experimental).

Is it possible to turn the particular test off via a CMake flag?

In file included from /home/builduser/aports/src/folly/container/F14Map.h:1297,
                 from /home/builduser/aports/src/folly/experimental/StringKeyedUnorderedMap.h:20,
                 from /home/builduser/aports/src/folly/experimental/test/StringKeyedTest.cpp:19:
/home/builduser/aports/src/folly/container/detail/F14MapFallback.h: In instantiation of 'static std::enable_if_t<(! std::is_constructible<Iter, const LocalIter&>::value), Iter> folly::f14::detail::F14BasicMap<K, M, H, E, A>::fromLocal(const LocalIter&) [with Iter = std::__detail::_Node_iterator<std::pair<const std::__cxx11::basic_string<char>, int>, false, true>; LocalIter = std::__detail::_Local_iterator<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, int>, std::__detail::_Select1st, folly::transparent<folly::hasher<folly::Range<const char*> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, false, true>; K = std::__cxx11::basic_string<char>; M = int; H = folly::transparent<folly::hasher<folly::Range<const char*> > >; E = folly::transparent<std::equal_to<folly::Range<const char*> > >; A = MemoryLeakCheckerAllocator<std::allocator<std::pair<const std::__cxx11::basic_string<char>, int> > >; std::enable_if_t<(! std::is_constructible<Iter, const LocalIter&>::value), Iter> = std::enable_if<true, std::__detail::_Node_iterator<std::pair<const std::__cxx11::basic_string<char>, int>, false, true> >::type]':
/home/builduser/aports/src/folly/container/detail/F14MapFallback.h:400:29:   required from 'static Iter folly::f14::detail::F14BasicMap<K, M, H, E, A>::findImpl(Self&, const K2&) [with Iter = std::__detail::_Node_iterator<std::pair<const std::__cxx11::basic_string<char>, int>, false, true>; Self = folly::f14::detail::F14BasicMap<std::__cxx11::basic_string<char>, int, folly::transparent<folly::hasher<folly::Range<const char*> > >, folly::transparent<std::equal_to<folly::Range<const char*> > >, MemoryLeakCheckerAllocator<std::allocator<std::pair<const std::__cxx11::basic_string<char>, int> > > >; K2 = char [6]; K = std::__cxx11::basic_string<char>; M = int; H = folly::transparent<folly::hasher<folly::Range<const char*> > >; E = folly::transparent<std::equal_to<folly::Range<const char*> > >; A = MemoryLeakCheckerAllocator<std::allocator<std::pair<const std::__cxx11::basic_string<char>, int> > >]'
/home/builduser/aports/src/folly/container/detail/F14MapFallback.h:411:30:   required from 'folly::f14::detail::F14BasicMap<K, M, H, E, A>::EnableHeterogeneousFind<K2, typename std::unordered_map<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1>::iterator> folly::f14::detail::F14BasicMap<K, M, H, E, A>::find(const K2&) [with K2 = char [6]; K = std::__cxx11::basic_string<char>; M = int; H = folly::transparent<folly::hasher<folly::Range<const char*> > >; E = folly::transparent<std::equal_to<folly::Range<const char*> > >; A = MemoryLeakCheckerAllocator<std::allocator<std::pair<const std::__cxx11::basic_string<char>, int> > >; folly::f14::detail::F14BasicMap<K, M, H, E, A>::EnableHeterogeneousFind<K2, typename std::unordered_map<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1>::iterator> = std::enable_if<true, std::__detail::_Node_iterator<std::pair<const std::__cxx11::basic_string<char>, int>, false, true> >::type; typename std::unordered_map<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1>::iterator = std::__detail::_Hashtable_base<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, int>, std::__detail::_Select1st, folly::transparent<std::equal_to<folly::Range<const char*> > >, folly::transparent<folly::hasher<folly::Range<const char*> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<true, false, true> >::iterator]'
/home/builduser/aports/src/folly/experimental/test/StringKeyedTest.cpp:147:3:   required from here
/home/builduser/aports/src/folly/container/detail/F14MapFallback.h:387:16: warning: 'void* memcpy(void*, const void*, size_t)' copying an object of non-trivial type 'struct std::__detail::_Node_iterator<std::pair<const std::__cxx11::basic_string<char>, int>, false, true>' from an array of 'const struct std::__detail::_Local_iterator<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, int>, std::__detail::_Select1st, folly::transparent<folly::hasher<folly::Range<const char*> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, false, true>' [-Wclass-memaccess]
  387 |     std::memcpy(std::addressof(dst), std::addressof(src), sizeof(dst));
      |     ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/10.3.1/bits/hashtable.h:35,
                 from /usr/include/c++/10.3.1/unordered_map:46,
                 from /usr/include/c++/10.3.1/functional:61,
                 from /home/builduser/aports/src/folly/Traits.h:22,
                 from /home/builduser/aports/src/folly/lang/Exception.h:26,
                 from /home/builduser/aports/src/folly/Range.h:25,
                 from /home/builduser/aports/src/folly/experimental/StringKeyedMap.h:25,
                 from /home/builduser/aports/src/folly/experimental/test/StringKeyedTest.cpp:17:
/usr/include/c++/10.3.1/bits/hashtable_policy.h:318:12: note: 'struct std::__detail::_Node_iterator<std::pair<const std::__cxx11::basic_string<char>, int>, false, true>' declared here
  318 |     struct _Node_iterator
      |            ^~~~~~~~~~~~~~
In file included from /home/builduser/aports/src/folly/container/F14Set.h:1023,
                 from /home/builduser/aports/src/folly/experimental/StringKeyedUnorderedSet.h:19,
                 from /home/builduser/aports/src/folly/experimental/test/StringKeyedTest.cpp:20:
/home/builduser/aports/src/folly/container/detail/F14SetFallback.h: In instantiation of 'static std::enable_if_t<(! std::is_constructible<Iter, const LocalIter&>::value), Iter> folly::f14::detail::F14BasicSet<KeyType, Hasher, KeyEqual, Alloc>::fromLocal(const LocalIter&) [with Iter = std::__detail::_Node_iterator<std::__cxx11::basic_string<char>, true, true>; LocalIter = std::__detail::_Local_iterator<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::__detail::_Identity, folly::transparent<folly::hasher<folly::Range<const char*> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, true, true>; KeyType = std::__cxx11::basic_string<char>; Hasher = folly::transparent<folly::hasher<folly::Range<const char*> > >; KeyEqual = folly::transparent<std::equal_to<folly::Range<const char*> > >; Alloc = MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >; std::enable_if_t<(! std::is_constructible<Iter, const LocalIter&>::value), Iter> = std::enable_if<true, std::__detail::_Node_iterator<std::__cxx11::basic_string<char>, true, true> >::type]':
/home/builduser/aports/src/folly/container/detail/F14SetFallback.h:224:31:   required from 'static Iter folly::f14::detail::F14BasicSet<KeyType, Hasher, KeyEqual, Alloc>::findImpl(Self&, const K&) [with Iter = std::__detail::_Node_iterator<std::__cxx11::basic_string<char>, true, true>; Self = folly::f14::detail::F14BasicSet<std::__cxx11::basic_string<char>, folly::transparent<folly::hasher<folly::Range<const char*> > >, folly::transparent<std::equal_to<folly::Range<const char*> > >, MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > > >; K = char [6]; KeyType = std::__cxx11::basic_string<char>; Hasher = folly::transparent<folly::hasher<folly::Range<const char*> > >; KeyEqual = folly::transparent<std::equal_to<folly::Range<const char*> > >; Alloc = MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >]'
/home/builduser/aports/src/folly/container/detail/F14SetFallback.h:250:30:   required from 'folly::f14::detail::F14BasicSet<KeyType, Hasher, KeyEqual, Alloc>::EnableHeterogeneousFind<K, typename std::unordered_set<_Value1, _Hash1, _Pred1, _Alloc1>::iterator> folly::f14::detail::F14BasicSet<KeyType, Hasher, KeyEqual, Alloc>::find(const K&) [with K = char [6]; KeyType = std::__cxx11::basic_string<char>; Hasher = folly::transparent<folly::hasher<folly::Range<const char*> > >; KeyEqual = folly::transparent<std::equal_to<folly::Range<const char*> > >; Alloc = MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >; folly::f14::detail::F14BasicSet<KeyType, Hasher, KeyEqual, Alloc>::EnableHeterogeneousFind<K, typename std::unordered_set<_Value1, _Hash1, _Pred1, _Alloc1>::iterator> = std::enable_if<true, std::__detail::_Node_iterator<std::__cxx11::basic_string<char>, true, true> >::type; typename std::unordered_set<_Value1, _Hash1, _Pred1, _Alloc1>::iterator = std::__detail::_Hashtable_base<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::__detail::_Identity, folly::transparent<std::equal_to<folly::Range<const char*> > >, folly::transparent<folly::hasher<folly::Range<const char*> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<true, true, true> >::iterator]'
/home/builduser/aports/src/folly/experimental/test/StringKeyedTest.cpp:315:3:   required from here
/home/builduser/aports/src/folly/container/detail/F14SetFallback.h:201:16: warning: 'void* memcpy(void*, const void*, size_t)' copying an object of non-trivial type 'struct std::__detail::_Node_iterator<std::__cxx11::basic_string<char>, true, true>' from an array of 'const struct std::__detail::_Local_iterator<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::__detail::_Identity, folly::transparent<folly::hasher<folly::Range<const char*> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, true, true>' [-Wclass-memaccess]
  201 |     std::memcpy(std::addressof(dst), std::addressof(src), sizeof(dst));
      |     ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/10.3.1/bits/hashtable.h:35,
                 from /usr/include/c++/10.3.1/unordered_map:46,
                 from /usr/include/c++/10.3.1/functional:61,
                 from /home/builduser/aports/src/folly/Traits.h:22,
                 from /home/builduser/aports/src/folly/lang/Exception.h:26,
                 from /home/builduser/aports/src/folly/Range.h:25,
                 from /home/builduser/aports/src/folly/experimental/StringKeyedMap.h:25,
                 from /home/builduser/aports/src/folly/experimental/test/StringKeyedTest.cpp:17:
/usr/include/c++/10.3.1/bits/hashtable_policy.h:318:12: note: 'struct std::__detail::_Node_iterator<std::__cxx11::basic_string<char>, true, true>' declared here
  318 |     struct _Node_iterator
      |            ^~~~~~~~~~~~~~
In file included from /usr/include/c++/10.3.1/unordered_map:46,
                 from /usr/include/c++/10.3.1/functional:61,
                 from /home/builduser/aports/src/folly/Traits.h:22,
                 from /home/builduser/aports/src/folly/lang/Exception.h:26,
                 from /home/builduser/aports/src/folly/Range.h:25,
                 from /home/builduser/aports/src/folly/experimental/StringKeyedMap.h:25,
                 from /home/builduser/aports/src/folly/experimental/test/StringKeyedTest.cpp:17:
/usr/include/c++/10.3.1/bits/hashtable.h: In instantiation of 'std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::_Hashtable(_InputIterator, _InputIterator, std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::size_type, const _H1&, const _H2&, const _Hash&, const _Equal&, const _ExtractKey&, const allocator_type&) [with _InputIterator = std::_List_iterator<folly::Range<const char*> >; _Key = std::__cxx11::basic_string<char>; _Value = std::__cxx11::basic_string<char>; _Alloc = MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >; _ExtractKey = std::__detail::_Identity; _Equal = folly::transparent<std::equal_to<folly::Range<const char*> > >; _H1 = folly::transparent<folly::hasher<folly::Range<const char*> > >; _H2 = std::__detail::_Mod_range_hashing; _Hash = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, true, true>; std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::size_type = unsigned int; std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::allocator_type = MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >]':
/usr/include/c++/10.3.1/bits/hashtable.h:526:28:   required from 'std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::_Hashtable(_InputIterator, _InputIterator, std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::size_type, const _H1&, const key_equal&, const allocator_type&) [with _InputIterator = std::_List_iterator<folly::Range<const char*> >; _Key = std::__cxx11::basic_string<char>; _Value = std::__cxx11::basic_string<char>; _Alloc = MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >; _ExtractKey = std::__detail::_Identity; _Equal = folly::transparent<std::equal_to<folly::Range<const char*> > >; _H1 = folly::transparent<folly::hasher<folly::Range<const char*> > >; _H2 = std::__detail::_Mod_range_hashing; _Hash = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, true, true>; std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::size_type = unsigned int; std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::key_equal = folly::transparent<std::equal_to<folly::Range<const char*> > >; std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::allocator_type = MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >]'
/usr/include/c++/10.3.1/bits/unordered_set.h:171:47:   required from 'std::unordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(_InputIterator, _InputIterator, std::unordered_set<_Value, _Hash, _Pred, _Alloc>::size_type, const hasher&, const key_equal&, const allocator_type&) [with _InputIterator = std::_List_iterator<folly::Range<const char*> >; _Value = std::__cxx11::basic_string<char>; _Hash = folly::transparent<folly::hasher<folly::Range<const char*> > >; _Pred = folly::transparent<std::equal_to<folly::Range<const char*> > >; _Alloc = MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >; std::unordered_set<_Value, _Hash, _Pred, _Alloc>::size_type = unsigned int; std::unordered_set<_Value, _Hash, _Pred, _Alloc>::hasher = folly::transparent<folly::hasher<folly::Range<const char*> > >; std::unordered_set<_Value, _Hash, _Pred, _Alloc>::key_equal = folly::transparent<std::equal_to<folly::Range<const char*> > >; std::unordered_set<_Value, _Hash, _Pred, _Alloc>::allocator_type = MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >]'
/home/builduser/aports/src/folly/container/detail/F14SetFallback.h:85:16:   required from here
/usr/include/c++/10.3.1/bits/hashtable.h:1069:16: error: no matching function for call to 'std::_Hashtable<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >, std::__detail::_Identity, folly::transparent<std::equal_to<folly::Range<const char*> > >, folly::transparent<folly::hasher<folly::Range<const char*> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >::insert(folly::Range<const char*>&)'
 1069 |    this->insert(*__f);
      |    ~~~~~~~~~~~~^~~~~~
In file included from /usr/include/c++/10.3.1/bits/hashtable.h:35,
                 from /usr/include/c++/10.3.1/unordered_map:46,
                 from /usr/include/c++/10.3.1/functional:61,
                 from /home/builduser/aports/src/folly/Traits.h:22,
                 from /home/builduser/aports/src/folly/lang/Exception.h:26,
                 from /home/builduser/aports/src/folly/Range.h:25,
                 from /home/builduser/aports/src/folly/experimental/StringKeyedMap.h:25,
                 from /home/builduser/aports/src/folly/experimental/test/StringKeyedTest.cpp:17:
/usr/include/c++/10.3.1/bits/hashtable_policy.h:967:7: note: candidate: 'std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::__ireturn_type std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::insert(std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::value_type&&) [with _Key = std::__cxx11::basic_string<char>; _Value = std::__cxx11::basic_string<char>; _Alloc = MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >; _ExtractKey = std::__detail::_Identity; _Equal = folly::transparent<std::equal_to<folly::Range<const char*> > >; _H1 = folly::transparent<folly::hasher<folly::Range<const char*> > >; _H2 = std::__detail::_Mod_range_hashing; _Hash = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, true, true>; std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::__ireturn_type = std::__detail::_Insert<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >, std::__detail::_Identity, folly::transparent<std::equal_to<folly::Range<const char*> > >, folly::transparent<folly::hasher<folly::Range<const char*> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true>, true>::__ireturn_type; std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::value_type = std::__cxx11::basic_string<char>]'
  967 |       insert(value_type&& __v)
      |       ^~~~~~
/usr/include/c++/10.3.1/bits/hashtable_policy.h:967:27: note:   no known conversion for argument 1 from 'folly::Range<const char*>' to 'std::__detail::_Insert<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >, std::__detail::_Identity, folly::transparent<std::equal_to<folly::Range<const char*> > >, folly::transparent<folly::hasher<folly::Range<const char*> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true>, true>::value_type&&' {aka 'std::__cxx11::basic_string<char>&&'}
  967 |       insert(value_type&& __v)
      |              ~~~~~~~~~~~~~^~~
/usr/include/c++/10.3.1/bits/hashtable_policy.h:975:7: note: candidate: 'std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::iterator std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::insert(std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::const_iterator, std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::value_type&&) [with _Key = std::__cxx11::basic_string<char>; _Value = std::__cxx11::basic_string<char>; _Alloc = MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >; _ExtractKey = std::__detail::_Identity; _Equal = folly::transparent<std::equal_to<folly::Range<const char*> > >; _H1 = folly::transparent<folly::hasher<folly::Range<const char*> > >; _H2 = std::__detail::_Mod_range_hashing; _Hash = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, true, true>; std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::iterator = std::__detail::_Hashtable_base<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::__detail::_Identity, folly::transparent<std::equal_to<folly::Range<const char*> > >, folly::transparent<folly::hasher<folly::Range<const char*> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<true, true, true> >::iterator; std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::const_iterator = std::__detail::_Hashtable_base<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::__detail::_Identity, folly::transparent<std::equal_to<folly::Range<const char*> > >, folly::transparent<folly::hasher<folly::Range<const char*> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<true, true, true> >::const_iterator; std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::value_type = std::__cxx11::basic_string<char>]'
  975 |       insert(const_iterator __hint, value_type&& __v)
      |       ^~~~~~
/usr/include/c++/10.3.1/bits/hashtable_policy.h:975:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/10.3.1/bits/hashtable_policy.h:857:2: note: candidate: 'template<class _InputIterator> void std::__detail::_Insert_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::insert(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; _Key = std::__cxx11::basic_string<char>; _Value = std::__cxx11::basic_string<char>; _Alloc = MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >; _ExtractKey = std::__detail::_Identity; _Equal = folly::transparent<std::equal_to<folly::Range<const char*> > >; _H1 = folly::transparent<folly::hasher<folly::Range<const char*> > >; _H2 = std::__detail::_Mod_range_hashing; _Hash = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, true, true>]'
  857 |  insert(_InputIterator __first, _InputIterator __last)
      |  ^~~~~~
/usr/include/c++/10.3.1/bits/hashtable_policy.h:857:2: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/10.3.1/unordered_map:46,
                 from /usr/include/c++/10.3.1/functional:61,
                 from /home/builduser/aports/src/folly/Traits.h:22,
                 from /home/builduser/aports/src/folly/lang/Exception.h:26,
                 from /home/builduser/aports/src/folly/Range.h:25,
                 from /home/builduser/aports/src/folly/experimental/StringKeyedMap.h:25,
                 from /home/builduser/aports/src/folly/experimental/test/StringKeyedTest.cpp:17:
/usr/include/c++/10.3.1/bits/hashtable.h:1069:16: note:   candidate expects 2 arguments, 1 provided
 1069 |    this->insert(*__f);
      |    ~~~~~~~~~~~~^~~~~~
In file included from /usr/include/c++/10.3.1/bits/hashtable.h:35,
                 from /usr/include/c++/10.3.1/unordered_map:46,
                 from /usr/include/c++/10.3.1/functional:61,
                 from /home/builduser/aports/src/folly/Traits.h:22,
                 from /home/builduser/aports/src/folly/lang/Exception.h:26,
                 from /home/builduser/aports/src/folly/Range.h:25,
                 from /home/builduser/aports/src/folly/experimental/StringKeyedMap.h:25,
                 from /home/builduser/aports/src/folly/experimental/test/StringKeyedTest.cpp:17:
/usr/include/c++/10.3.1/bits/hashtable_policy.h:852:7: note: candidate: 'void std::__detail::_Insert_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::insert(std::initializer_list<typename std::__detail::_Hashtable_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits>::value_type>) [with _Key = std::__cxx11::basic_string<char>; _Value = std::__cxx11::basic_string<char>; _Alloc = MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >; _ExtractKey = std::__detail::_Identity; _Equal = folly::transparent<std::equal_to<folly::Range<const char*> > >; _H1 = folly::transparent<folly::hasher<folly::Range<const char*> > >; _H2 = std::__detail::_Mod_range_hashing; _Hash = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, true, true>; typename std::__detail::_Hashtable_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, _Hash, _Traits>::value_type = std::__cxx11::basic_string<char>]'
  852 |       insert(initializer_list<value_type> __l)
      |       ^~~~~~
/usr/include/c++/10.3.1/bits/hashtable_policy.h:852:43: note:   no known conversion for argument 1 from 'folly::Range<const char*>' to 'std::initializer_list<std::__cxx11::basic_string<char> >'
  852 |       insert(initializer_list<value_type> __l)
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/10.3.1/bits/hashtable_policy.h:844:7: note: candidate: 'std::__detail::_Insert_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::iterator std::__detail::_Insert_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::insert(std::__detail::_Insert_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::const_iterator, const value_type&) [with _Key = std::__cxx11::basic_string<char>; _Value = std::__cxx11::basic_string<char>; _Alloc = MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >; _ExtractKey = std::__detail::_Identity; _Equal = folly::transparent<std::equal_to<folly::Range<const char*> > >; _H1 = folly::transparent<folly::hasher<folly::Range<const char*> > >; _H2 = std::__detail::_Mod_range_hashing; _Hash = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, true, true>; std::__detail::_Insert_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::iterator = std::__detail::_Hashtable_base<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::__detail::_Identity, folly::transparent<std::equal_to<folly::Range<const char*> > >, folly::transparent<folly::hasher<folly::Range<const char*> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<true, true, true> >::iterator; std::__detail::_Insert_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::const_iterator = std::__detail::_Hashtable_base<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::__detail::_Identity, folly::transparent<std::equal_to<folly::Range<const char*> > >, folly::transparent<folly::hasher<folly::Range<const char*> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<true, true, true> >::const_iterator; std::__detail::_Insert_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::value_type = std::__cxx11::basic_string<char>]'
  844 |       insert(const_iterator __hint, const value_type& __v)
      |       ^~~~~~
/usr/include/c++/10.3.1/bits/hashtable_policy.h:844:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/10.3.1/bits/hashtable_policy.h:836:7: note: candidate: 'std::__detail::_Insert_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::__ireturn_type std::__detail::_Insert_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::insert(const value_type&) [with _Key = std::__cxx11::basic_string<char>; _Value = std::__cxx11::basic_string<char>; _Alloc = MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >; _ExtractKey = std::__detail::_Identity; _Equal = folly::transparent<std::equal_to<folly::Range<const char*> > >; _H1 = folly::transparent<folly::hasher<folly::Range<const char*> > >; _H2 = std::__detail::_Mod_range_hashing; _Hash = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, true, true>; std::__detail::_Insert_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::__ireturn_type = std::__detail::_Insert_base<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, MemoryLeakCheckerAllocator<std::allocator<std::__cxx11::basic_string<char> > >, std::__detail::_Identity, folly::transparent<std::equal_to<folly::Range<const char*> > >, folly::transparent<folly::hasher<folly::Range<const char*> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >::__ireturn_type; std::__detail::_Insert_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::value_type = std::__cxx11::basic_string<char>]'
  836 |       insert(const value_type& __v)
      |       ^~~~~~

benstadin avatar May 23 '22 19:05 benstadin

Unfortunately the larger log still doesn't have what call is actually triggering this, so I'll need a larger log to actually see the error.

There is no way to disable a specific test from the command line, but they can be disabled by commenting out the line that adds them in CMakeLists.txt: https://github.com/facebook/folly/blob/main/CMakeLists.txt#L632

Orvid avatar May 24 '22 19:05 Orvid