Re: bizarre build behaviour from PoolingAllocator on OpenBSD/clang
Alex Rousskov <[email protected]> Mon, 16 Aug 2021 15:37:23 -0400
| Newsgroups | gmane.comp.web.squid.devel |
|---|---|
| Message-ID | <[email protected]> |
On 8/16/21 10:44 AM, Alex Rousskov wrote: > On 8/16/21 7:29 AM, Stuart Henderson wrote: > >> -c .../src/log/access_log.cc -fPIC -DPIC -o .libs/access_log.o >> In file included from .../src/log/access_log.cc:12: >> In file included from .../src/AccessLogEntry.h:19: >> In file included from .../src/HttpHeader.h:13: >> In file included from .../src/base/LookupTable.h:15: > >> /usr/include/c++/v1/unordered_map:857:5: error: static_assert failed >> due to requirement 'is_same<std::__1::pair<const SBuf, unsigned long >> long>, std::__1::pair<uf, unsigned long long>>::value' "Invalid >> allocator::value_type" > >> static_assert((is_same<value_type, typename allocator_type::value_type>::value), >> ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Yes, that could be the smoking gun missing from the earlier error log, > thank you, Stuart! > > Francesco, can you reproduce the same false is_same<> result using a toy > example? You might not even need Squid-specific types. > > If you can reproduce it, is the result valid/expected or is that a clang > bug? BTW, since LookupTable.h was mentioned in the above error, I think it might be important to mention that the unordered_map declaration in that file (lookupTable_t) is probably buggy because it is missing the custom equality operator. I have recently discovered that bug but did not have the time to properly report or address it. BTW, LookupTable.h is unrelated to PoolingAllocator -- lookupTable_t does not pool (yet?). HTH, Alex.