ethereum / solidity

Solidity, the Smart Contract Programming Language
https://soliditylang.org
GNU General Public License v3.0
23.46k stars 5.8k forks source link

[PowerPC] error: no match for call to '(const ranges::views::slice_fn) #14593

Open barracuda156 opened 1 year ago

barracuda156 commented 1 year ago

This is on a big-endian platform, with z3 disabled due to https://github.com/ethereum/solidity/issues/14592

/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libevmasm/Inliner.cpp: In member function 'std::map<long unsigned int, solidity::evmasm::Inliner::InlinableBlock> solidity::evmasm::Inliner:determineInlinableBlocks(const solidity::evmasm::AssemblyItems&) const':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libevmasm/Inliner.cpp:117:95: error: no match for call to '(const ranges::views::slice_fn) (long unsigned int, std::tuple_element<0, ranges::common_pair<unsigned int, const solidity::evmasm::AssemblyItem&> >::type)'
  117 |                         ranges::span<AssemblyItem const> block = _items | ranges::views::slice(*lastTag + 1, index + 1);
      |                                                                           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libevmasm/Inliner.cpp:35:
/opt/local/include/range/v3/view/slice.hpp:277:18: note: candidate: 'template<class Rng, bool CPP_true, typename std::enable_if<(viewable_range<T> && CPP_true), int>::type <anonymous>, typename std::enable_if<((forward_range<Rng> || (input_range<Rng> && sized_range<Rng>)) && CPP_true), int>::type <anonymous> > auto ranges::views::slice_base_fn::operator()(Rng&&, ranges::detail::from_end_of_t<Rng>, ranges::end_fn) const'
  277 |             auto operator()(Rng && rng,
      |                  ^~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:277:18: note:   template argument deduction/substitution failed:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libevmasm/Inliner.cpp:117:95: note:   candidate expects 3 arguments, 2 provided
  117 |                         ranges::span<AssemblyItem const> block = _items | ranges::views::slice(*lastTag + 1, index + 1);
      |                                                                           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:268:18: note: candidate: 'template<class Rng, bool CPP_true, typename std::enable_if<(viewable_range<T> && CPP_true), int>::type <anonymous>, typename std::enable_if<(input_range<Rng> && CPP_true), int>::type <anonymous> > auto ranges::views::slice_base_fn::operator()(Rng&&, ranges::range_difference_t<Rng>, ranges::end_fn) const'
  268 |             auto operator()(Rng && rng, range_difference_t<Rng> from, end_fn) const
      |                  ^~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:268:18: note:   template argument deduction/substitution failed:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libevmasm/Inliner.cpp:117:95: note:   candidate expects 3 arguments, 2 provided
  117 |                         ranges::span<AssemblyItem const> block = _items | ranges::views::slice(*lastTag + 1, index + 1);
      |                                                                           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:252:18: note: candidate: 'template<class Rng, bool CPP_true, typename std::enable_if<(viewable_range<T> && CPP_true), int>::type <anonymous>, typename std::enable_if<((forward_range<Rng> || (input_range<Rng> && sized_range<Rng>)) && CPP_true), int>::type <anonymous> > auto ranges::views::slice_base_fn::operator()(Rng&&, ranges::detail::from_end_of_t<Rng>, ranges::detail::from_end_of_t<Rng>) const'
  252 |             auto operator()(Rng && rng,
      |                  ^~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:252:18: note:   template argument deduction/substitution failed:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libevmasm/Inliner.cpp:117:95: note:   candidate expects 3 arguments, 2 provided
  117 |                         ranges::span<AssemblyItem const> block = _items | ranges::views::slice(*lastTag + 1, index + 1);
      |                                                                           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:235:18: note: candidate: 'template<class Rng, bool CPP_true, typename std::enable_if<(viewable_range<T> && CPP_true), int>::type <anonymous>, typename std::enable_if<(input_range<Rng> && CPP_true), int>::type <anonymous>, typename std::enable_if<(sized_range<Rng> && CPP_true), int>::type <anonymous> > auto ranges::views::slice_base_fn::operator()(Rng&&, ranges::range_difference_t<Rng>, ranges::detail::from_end_of_t<Rng>) const'
  235 |             auto operator()(Rng && rng,
      |                  ^~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:235:18: note:   template argument deduction/substitution failed:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libevmasm/Inliner.cpp:117:95: note:   candidate expects 3 arguments, 2 provided
  117 |                         ranges::span<AssemblyItem const> block = _items | ranges::views::slice(*lastTag + 1, index + 1);
      |                                                                           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:222:28: note: candidate: 'template<class Rng, bool CPP_true, typename std::enable_if<(viewable_range<T> && CPP_true), int>::type <anonymous>, typename std::enable_if<(input_range<Rng> && CPP_true), int>::type <anonymous> > constexpr auto ranges::views::slice_base_fn::operator()(Rng&&, ranges::range_difference_t<Rng>, ranges::range_difference_t<Rng>) cons'
  222 |             constexpr auto operator()(Rng && rng,
      |                            ^~~~~~~~                                                                       ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
barracuda156 commented 1 year ago

Log with attempts to build it. All errors are still present with 0.8.22. solidity.log.txt