Opened 2 months ago

#70908 new defect

xqilla fails to build: error: static assertion failed: comparison object must be invocable as const

Reported by: barracuda156 Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.10.1
Keywords: Cc:
Port: xqilla

Description

In file included from /opt/local/include/gcc14/c++/set:62,
                 from ./include/xqilla/ast/XQDocumentOrder.hpp:27,
                 from src/ast/XQDocumentOrder.cpp:22:
/opt/local/include/gcc14/c++/bits/stl_tree.h: In instantiation of 'static const _Key& std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_S_key(_Const_Link_type) [with _Key = RefCountPointer<const Node>; _Val = RefCountPointer<const Node>; _KeyOfValue = std::_Identity<RefCountPointer<const Node> >; _Compare = UniqueNodesResult::uniqueLessThanCompareFn; _Alloc = std::allocator<RefCountPointer<const Node> >; _Const_Link_type = const std::_Rb_tree_node<RefCountPointer<const Node> >*]':
/opt/local/include/gcc14/c++/bits/stl_tree.h:2114:47:   required from 'std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_unique_pos(const key_type&) [with _Key = RefCountPointer<const Node>; _Val = RefCountPointer<const Node>; _KeyOfValue = std::_Identity<RefCountPointer<const Node> >; _Compare = UniqueNodesResult::uniqueLessThanCompareFn; _Alloc = std::allocator<RefCountPointer<const Node> >; key_type = RefCountPointer<const Node>]'
 2114 |           __comp = _M_impl._M_key_compare(__k, _S_key(__x));
      |                                                ~~~~~~^~~~~
/opt/local/include/gcc14/c++/bits/stl_tree.h:2167:4:   required from 'std::pair<std::_Rb_tree_iterator<_Val>, bool> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_unique(_Arg&&) [with _Arg = RefCountPointer<const Node>; _Key = RefCountPointer<const Node>; _Val = RefCountPointer<const Node>; _KeyOfValue = std::_Identity<RefCountPointer<const Node> >; _Compare = UniqueNodesResult::uniqueLessThanCompareFn; _Alloc = std::allocator<RefCountPointer<const Node> >]'
 2167 |         = _M_get_insert_unique_pos(_KeyOfValue()(__v));
      |           ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_set.h:523:25:   required from 'std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Allocator>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(value_type&&) [with _Key = RefCountPointer<const Node>; _Compare = UniqueNodesResult::uniqueLessThanCompareFn; _Alloc = std::allocator<RefCountPointer<const Node> >; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Allocator>::rebind<_Key>::other>::const_iterator = std::_Rb_tree<RefCountPointer<const Node>, RefCountPointer<const Node>, std::_Identity<RefCountPointer<const Node> >, UniqueNodesResult::uniqueLessThanCompareFn, std::allocator<RefCountPointer<const Node> > >::const_iterator; typename __gnu_cxx::__alloc_traits<_Allocator>::rebind<_Key>::other = std::allocator<RefCountPointer<const Node> >; typename __gnu_cxx::__alloc_traits<_Allocator>::rebind<_Key> = __gnu_cxx::__alloc_traits<std::allocator<RefCountPointer<const Node> >, RefCountPointer<const Node> >::rebind<RefCountPointer<const Node> >; typename _Allocator::value_type = RefCountPointer<const Node>; value_type = RefCountPointer<const Node>]'
  523 |           _M_t._M_insert_unique(std::move(__x));
      |           ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
src/ast/XQDocumentOrder.cpp:104:22:   required from here
  104 |                   if(noDups_.insert(result).second) break;
      |                      ~~~~~~~~~~~~~~^~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_tree.h:768:15: error: static assertion failed: comparison object must be invocable as const
  768 |               is_invocable_v<const _Compare&, const _Key&, const _Key&>,
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_tree.h:768:15: note: 'std::is_invocable_v<const UniqueNodesResult::uniqueLessThanCompareFn&, const RefCountPointer<const Node>&, const RefCountPointer<const Node>&>' evaluates to false
make[1]: *** [XQDocumentOrder.lo] Error 1
make[1]: *** Waiting for unfinished jobs....
mv -f .deps/ConvertFunctionArg.Tpo .deps/ConvertFunctionArg.Plo
mv -f .deps/XQTypeswitch.Tpo .deps/XQTypeswitch.Plo
mv -f .deps/XQValidate.Tpo .deps/XQValidate.Plo
libtool: compile:  ccache /opt/local/bin/g++-mp-14 -DHAVE_CONFIG_H -I. -I./src/config -I./include/ -I/opt/local/include -I./src/lexer/ -I/opt/local/include -isystem/opt/local/include -pipe -Os -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -ftemplate-depth-50 -MT XQPredicate.lo -MD -MP -MF .deps/XQPredicate.Tpo -c src/ast/XQPredicate.cpp -o XQPredicate.o >/dev/null 2>&1
In file included from src/ast/XQReturn.cpp:26:
./include/xqilla/utils/XPath2Utils.hpp: In static member function 'static bool XPath2Utils::equals(const XMLCh*, const XMLCh*)':
./include/xqilla/utils/XPath2Utils.hpp:107:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  107 |   register const XMLCh* psz1 = str1;
      |                         ^~~~
./include/xqilla/utils/XPath2Utils.hpp:108:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  108 |   register const XMLCh* psz2 = str2;
      |                         ^~~~
./include/xqilla/utils/XPath2Utils.hpp: In static member function 'static int XPath2Utils::compare(const XMLCh*, const XMLCh*)':
./include/xqilla/utils/XPath2Utils.hpp:128:16: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  128 |   register int cmp;
      |                ^~~
libtool: compile:  ccache /opt/local/bin/g++-mp-14 -DHAVE_CONFIG_H -I. -I./src/config -I./include/ -I/opt/local/include -I./src/lexer/ -I/opt/local/include -isystem/opt/local/include -pipe -Os -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -ftemplate-depth-50 -MT XQReturn.lo -MD -MP -MF .deps/XQReturn.Tpo -c src/ast/XQReturn.cpp -o XQReturn.o >/dev/null 2>&1
mv -f .deps/XQPredicate.Tpo .deps/XQPredicate.Plo
mv -f .deps/XQReturn.Tpo .deps/XQReturn.Plo
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_xqilla/xqilla/work/XQilla-2.3.4'
make: *** [all-recursive] Error 1

Change History (0)

Note: See TracTickets for help on using tickets.