Repository navigation
[GNATS 27807] Boost header spurious diagnostic with xxx is inaccessible friend #158
jhsedg
started this conversation in
Issue Triage - General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Customer bug ID
27807.C (reduced test case), _27807.C (full test case)
Description
The boost header,../boost/interprocess/mem_algo/rbtree_best_fit.hpp, triggers a diagnostic with our front end. THis is blocking 65 boost test cases.
cpfe -DTEST_NUMBER=1 --c++20 -tused --gnu_version=120100 -w Test_name.c
"../boost/interprocess/mem_algo/rbtree_best_fit.hpp", line 136: error: class
"boost::interprocess::rbtree_best_fit<MutexFamily, VoidPointer,
MemAlignment>::SizeHolder [with
MutexFamily=boost::interprocess::ipcdetail::intermodule_singleton_mut
ex_family, VoidPointer=boost::interprocess::offset_ptr<void,
std::ptrdiff_t, uintptr_t, 0UL>, MemAlignment=0UL]" (declared at line
108) is inaccessible
{ return a.SizeHolder::m_size < b.SizeHolder::m_size; }
^
detected during:
instantiation of class
"boost::interprocess::rbtree_best_fit<MutexFamily,
VoidPointer, MemAlignment>::block_ctrl [with
MutexFamily=boost::interprocess::ipcdetail::intermodule_s
ingleton_mutex_family,
VoidPointer=boost::interprocess::offset_ptr<void,
std::ptrdiff_t, uintptr_t, 0UL>, MemAlignment=0UL]" at
line 408 of
"/mds/gnu/build/gcc-12.1.0/lib/gcc/x86_64-pc-linux-gnu/12
.1.0/../../../../include/c++/12.1.0/bits/stl_function.h"
instantiation of "bool std::less<_Tp>::operator()(const _Tp &,
const _Tp &) const [with
_Tp=boost::interprocess::rbtree_best_fit<boost::interproc
ess::ipcdetail::intermodule_singleton_mutex_family,
boost::interprocess::offset_ptr<void, std::ptrdiff_t,
uintptr_t, 0UL>, 0UL>::block_ctrl]" at line 170 of
"../boost/intrusive/detail/tree_value_compare.hpp"
instantiation of "Ret
boost::intrusive::tree_value_compare<ValuePtr,
KeyCompare, KeyOfValue, Ret, true>::operator()(const
boost::intrusive::tree_value_compare<ValuePtr,
KeyCompare, KeyOfValue, Ret, true>::key_type &, const
boost::intrusive::tree_value_compare<ValuePtr,
KeyCompare, KeyOfValue, Ret, true>::key_type &) const
[with
ValuePtr=boost::interprocess::offset_ptr<boost::interproc
ess::rbtree_best_fit<boost::interprocess::ipcdetail::inte
rmodule_singleton_mutex_family,
boost::interprocess::offset_ptr<void, std::ptrdiff_t,
uintptr_t, 0UL>, 0UL>::block_ctrl, long, unsigned long,
0UL>,
KeyCompare=std::less<boost::interprocess::rbtree_best_fit
<boost::interprocess::ipcdetail::intermodule_singleton_mu
tex_family, boost::interprocess::offset_ptr<void,
std::ptrdiff_t, uintptr_t, 0UL>, 0UL>::block_ctrl>,
KeyOfValue=boost::move_detail::identity<boost::interproce
ss::rbtree_best_fit<boost::interprocess::ipcdetail::inter
module_singleton_mutex_family,
boost::interprocess::offset_ptr<void, std::ptrdiff_t,
uintptr_t, 0UL>, 0UL>::block_ctrl>, Ret=bool]" at line 98
of "../boost/intrusive/detail/key_nodeptr_comp.hpp"
.....
THere is a reduced test case , 27807.C and the full preprocessed test case is _27807.C
All reactions