martinus / unordered_dense

A fast & densely stored hashmap and hashset based on robin-hood backward shift deletion
MIT License
898 stars 72 forks source link

Rebinding to boost::small_vector stops working starting from GCC 13 #73

Closed jcelerier closed 1 year ago

jcelerier commented 1 year ago

Online repro: https://gcc.godbolt.org/z/aMaTWeWj5

I'm not sure if the issue wrt allocator rebinding is in here or in boost::small_vector, if you happen to have an idea...

martinus commented 1 year ago

I looked into this, as far as I can say this is a bug in boost::small_vector. In this commit libstdc++ added some safety checks to ensure the allocators are working correctly: https://github.com/gcc-mirror/gcc/commit/64c986b49558a7c356b85bda85195216936c29a3

And I think due to these the build fails. I don't think I can do anything about this in my code, I'd report a bug in boost

Also, semi-related, I have created an issue to add allocator support to ankerl::svector, then this would be an alternative: https://github.com/martinus/svector/issues/51

martinus commented 1 year ago

Here is a smaller reproducer, with just boost: https://gcc.godbolt.org/z/b4TnYdWxK Best report that issue here: https://github.com/boostorg/container/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc

jcelerier commented 1 year ago

thanks!