STEllAR-GROUP / hpx

The C++ Standard Library for Parallelism and Concurrency
https://hpx.stellar-group.org
Boost Software License 1.0
2.51k stars 428 forks source link

Compilation fails on i386: error: no matching function for call to 'bit_cast' #6426

Open yurivict opened 7 months ago

yurivict commented 7 months ago
In file included from /wrkdirs/usr/ports/devel/hpx/work/hpx-1.9.1/libs/core/thread_pools/src/scheduled_thread_pool.cpp:8:
In file included from /wrkdirs/usr/ports/devel/hpx/work/hpx-1.9.1/libs/core/schedulers/include/hpx/schedulers/background_scheduler.hpp:14:
In file included from /wrkdirs/usr/ports/devel/hpx/work/hpx-1.9.1/libs/core/schedulers/include/hpx/schedulers/local_queue_scheduler.hpp:17:
In file included from /wrkdirs/usr/ports/devel/hpx/work/hpx-1.9.1/libs/core/schedulers/include/hpx/schedulers/lockfree_queue_backends.hpp:15:
In file included from /wrkdirs/usr/ports/devel/hpx/work/hpx-1.9.1/libs/core/concurrency/include/hpx/concurrency/deque.hpp:26:
/wrkdirs/usr/ports/devel/hpx/work/hpx-1.9.1/libs/core/concurrency/include/hpx/concurrency/detail/tagged_ptr_pair.hpp:117:27: error: no matching function for call to 'bit_cast'
            cast_unit ret(hpx::bit_cast<compressed_ptr_t>(lptr),
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/devel/hpx/work/hpx-1.9.1/libs/core/concurrency/include/hpx/concurrency/detail/tagged_ptr_pair.hpp:137:13: note: in instantiation of function template specialization 'hpx::lockfree::tagged_ptr_pair<hpx::lockfree::deque_node<hpx::threads::detail::thread_data_reference_counting *>, hpx::lockfree::deque_node<hpx::threads::detail::thread_data_reference_counting *>>::pack_ptr_pair<hpx::lockfree::deque_status_type, int>' requested here
            pack_ptr_pair(pair_, lptr, rptr, ltag, rtag);
            ^
/wrkdirs/usr/ports/devel/hpx/work/hpx-1.9.1/libs/core/concurrency/include/hpx/concurrency/deque.hpp:120:19: note: in instantiation of function template specialization 'hpx::lockfree::tagged_ptr_pair<hpx::lockfree::deque_node<hpx::threads::detail::thread_data_reference_counting *>, hpx::lockfree::deque_node<hpx::threads::detail::thread_data_reference_counting *>>::tagged_ptr_pair<hpx::lockfree::deque_status_type, int>' requested here
          : pair_(pair(nullptr, nullptr, deque_status_type::stable, 0))
                  ^
/wrkdirs/usr/ports/devel/hpx/work/hpx-1.9.1/libs/core/concurrency/include/hpx/concurrency/deque.hpp:394:13: note: in instantiation of member function 'hpx::lockfree::deque_anchor<hpx::threads::detail::thread_data_reference_counting *>::deque_anchor' requested here
          : anchor_()
            ^
/wrkdirs/usr/ports/devel/hpx/work/hpx-1.9.1/libs/core/schedulers/include/hpx/schedulers/lockfree_queue_backends.hpp:55:13: note: in instantiation of member function 'hpx::lockfree::deque<hpx::threads::detail::thread_data_reference_counting *, hpx::lockfree::caching_freelist_t, hpx::util::aligned_allocator<hpx::threads::detail::thread_data_reference_counting *>>::deque' requested here
          : queue_(std::size_t(initial_size))
            ^
/wrkdirs/usr/ports/devel/hpx/work/hpx-1.9.1/libs/core/schedulers/include/hpx/schedulers/thread_queue.hpp:479:13: note: in instantiation of member function 'hpx::threads::policies::lockfree_fifo_backend<hpx::threads::detail::thread_data_reference_counting *>::lockfree_fifo_backend' requested here
          , work_items_(128)
            ^
/wrkdirs/usr/ports/devel/hpx/work/hpx-1.9.1/libs/core/schedulers/include/hpx/schedulers/local_queue_scheduler.hpp:124:38: note: in instantiation of member function 'hpx::threads::policies::thread_queue<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo>::thread_queue' requested here
                    queues_[i] = new thread_queue_type(thread_queue_init_);
                                     ^
/wrkdirs/usr/ports/devel/hpx/work/hpx-1.9.1/libs/core/type_support/include/hpx/type_support/bit_cast.hpp:34:23: note: candidate template ignored: requirement 'sizeof(unsigned long long) == sizeof(hpx::lockfree::deque_node<hpx::threads::detail::thread_data_reference_counting *> *)' was not satisfied [with To = compressed_ptr_t, From = hpx::lockfree::deque_node<hpx::threads::detail::thread_data_reference_counting *> *]
        To> constexpr bit_cast(From const& src) noexcept
                      ^

log

Version: 1.9.1 clang-16 FreeBSD 14.0

hkaiser commented 7 months ago

@yurivict I believe that this has been fixed on master. Could you try that, please? We're about to release V1.10, knowing that this was fixed would be good.