Z3Interface.cpp:185:49: error: ambiguous overload for 'operator[]'
- Dominant language
- C++
- Stars
- 25.7k
- Forks
- 6.2k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 21
Description
The latest `z3` (4.12.2) is not supported?
```
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp: In member function 'z3::expr solidity::smtutil::Z3Interface::toZ3Expr(const solidity::smtutil::Expression&)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:185:49: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
185 | return z3::ite(arguments[0], arguments[1], arguments[2]);
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:185:49: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
In file included from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.h:22,
from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:19:
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:185:63: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
185 | return z3::ite(arguments[0], arguments[1], arguments[2]);
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:185:63: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:185:77: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
185 | return z3::ite(arguments[0], arguments[1], arguments[2]);
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:185:77: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:187:42: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
187 | return !arguments[0];
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:187:42: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:189:41: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
189 | return arguments[0] && arguments[1];
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:189:41: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:189:57: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
189 | return arguments[0] && arguments[1];
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:189:57: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:191:41: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
191 | return arguments[0] || arguments[1];
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:191:41: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:191:57: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
191 | return arguments[0] || arguments[1];
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:191:57: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:193:53: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
193 | return z3::implies(arguments[0], arguments[1]);
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:193:53: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:193:67: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
193 | return z3::implies(arguments[0], arguments[1]);
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:193:67: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:195:41: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
195 | return arguments[0] == arguments[1];
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:195:41: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:195:57: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
195 | return arguments[0] == arguments[1];
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:195:57: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:197:41: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
197 | return arguments[0] < arguments[1];
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:197:41: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:197:56: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
197 | return arguments[0] < arguments[1];
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:197:56: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:199:41: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
199 | return arguments[0] <= arguments[1];
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:199:41: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:199:57: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
199 | return arguments[0] <= arguments[1];
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:199:57: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:201:41: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
201 | return arguments[0] > arguments[1];
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:201:41: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:201:56: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
201 | return arguments[0] > arguments[1];
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:201:56: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:203:41: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
203 | return arguments[0] >= arguments[1];
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:203:41: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:203:57: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
203 | return arguments[0] >= arguments[1];
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:203:57: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:205:41: error: ambiguous overload for 'operator[]' (operand types are 'z3::expr_vector' {aka 'z3::ast_vector_tpl'} and 'int')
205 | return arguments[0] + arguments[1];
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/libsmtutil/Z3Interface.cpp:205:41: note: candidate: 'operator[](Z3_ast_vector {aka _Z3_ast_vector*}, int)' (built-in)
/opt/local/include/z3++.h:598:11: note: candidate: 'T z3::ast_vector_tpl::operator[](unsigned int) const [with T = z3::expr]'
598 | T operator[](unsigned i) const { Z3_ast r = Z3_ast_vector_get(ctx(), m_vector, i); check_error(); return cast_ast()(ctx(), r); }
| ^~~~~~~~
. . .
/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 >::type)'
117 | ranges::span 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 && CPP_true), int>::type , typename std::enable_if<((forward_range || (input_range && sized_range)) && CPP_true), int>::type > auto ranges::views::slice_base_fn::operator()(Rng&&, ranges::detail::from_end_of_t, 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 block = _items | ranges::views::slice(*lastTag + 1, index + 1);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:268:18: note: candidate: 'template && CPP_true), int>::type , typename std::enable_if<(input_range && CPP_true), int>::type > auto ranges::views::slice_base_fn::operator()(Rng&&, ranges::range_difference_t, ranges::end_fn) const'
268 | auto operator()(Rng && rng, range_difference_t 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 block = _items | ranges::views::slice(*lastTag + 1, index + 1);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:252:18: note: candidate: 'template && CPP_true), int>::type , typename std::enable_if<((forward_range || (input_range && sized_range)) && CPP_true), int>::type > auto ranges::views::slice_base_fn::operator()(Rng&&, ranges::detail::from_end_of_t, ranges::detail::from_end_of_t) 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 block = _items | ranges::views::slice(*lastTag + 1, index + 1);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:235:18: note: candidate: 'template && CPP_true), int>::type , typename std::enable_if<(input_range && CPP_true), int>::type , typename std::enable_if<(sized_range && CPP_true), int>::type > auto ranges::views::slice_base_fn::operator()(Rng&&, ranges::range_difference_t, ranges::detail::from_end_of_t) 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 block = _items | ranges::views::slice(*lastTag + 1, index + 1);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:222:28: note: candidate: 'template && CPP_true), int>::type , typename std::enable_if<(input_range && CPP_true), int>::type > constexpr auto ranges::views::slice_base_fn::operator()(Rng&&, ranges::range_difference_t, ranges::range_difference_t) cons'
222 | constexpr auto operator()(Rng && rng,
| ^~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:222:28: 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 block = _items | ranges::views::slice(*lastTag + 1, index + 1);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:298:28: note: candidate: 'template && CPP_true), int>::type > constexpr auto ranges::views::slice_fn::operator()(Int, Int) const'
298 | constexpr auto operator()(Int from, Int to) const
| ^~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:298:28: 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: deduced conflicting types for parameter 'Int' ('long unsigned int' and 'unsigned int')
117 | ranges::span block = _items | ranges::views::slice(*lastTag + 1, index + 1);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:304:28: note: candidate: 'template && CPP_true), int>::type > constexpr auto ranges::views::slice_fn::operator()(Int, ranges::detail::from_end_) const'
304 | constexpr auto operator()(Int from, detail::from_end_ to) const
| ^~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:304:28: 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: mismatched types 'ranges::detail::from_end_' and 'unsigned int'
117 | ranges::span block = _items | ranges::views::slice(*lastTag + 1, index + 1);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:310:28: note: candidate: 'template && CPP_true), int>::type > constexpr auto ranges::views::slice_fn::operator()(ranges::detail::from_end_, ranges::detail::from_end_) const'
310 | constexpr auto operator()(detail::from_end_ from,
| ^~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:310:28: 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: mismatched types 'ranges::detail::from_end_' and 'long unsigned int'
117 | ranges::span block = _items | ranges::views::slice(*lastTag + 1, index + 1);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:317:28: note: candidate: 'template && CPP_true), int>::type > constexpr auto ranges::views::slice_fn::operator()(Int, ranges::end_fn) const'
317 | constexpr auto operator()(Int from, end_fn) const
| ^~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:317:28: 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:116: note: cannot convert '(index + 1)' (type 'std::tuple_element<0, ranges::common_pair >::type' {aka 'unsigned int'}) to type 'ranges::end_fn' {aka 'ranges::_end_::fn'}
117 | ranges::span block = _items | ranges::views::slice(*lastTag + 1, index + 1);
| ~~~~~~^~~
/opt/local/include/range/v3/view/slice.hpp:324:28: note: candidate: 'template && CPP_true), int>::type > constexpr auto ranges::views::slice_fn::operator()(ranges::detail::from_end_, ranges::end_fn) const'
324 | constexpr auto operator()(detail::from_end_ from, end_fn to) const
| ^~~~~~~~
/opt/local/include/range/v3/view/slice.hpp:324:28: 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: mismatched types 'ranges::detail::from_end_' and 'long unsigned int'
117 | ranges::span block = _items | ranges::views::slice(*lastTag + 1, index + 1);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
[ 14%] Building CXX object liblangutil/CMakeFiles/langutil.dir/SemVerHandler.cpp.o
cd /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/build/liblangutil && /opt/local/bin/g++-mp-13 -DFMT_HEADER_ONLY=1 -DHAVE_Z3 -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/build/include -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21 -isystem /opt/local/include/jsoncpp -isystem /opt/local/libexec/boost/1.81/include -isystem /opt/local/include -isystem /opt/local/include/libfmt10 -pipe -I/opt/local/libexec/boost/1.81/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.81/include -I/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++17 -arch ppc -mmacosx-version-min=10.6 -fstack-protector-strong -Wimplicit-fallthrough -fmacro-prefix-map=/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21=/solidity -Wpessimizing-move -Wredundant-move -Wall -Wextra -Werror -pedantic -Wmissing-declarations -Wno-unknown-pragmas -Wsign-conversion -Wconversion -Wextra-semi -Wno-dangling-reference -Wduplicated-cond -Wlogical-op -fdiagnostics-color -MD -MT liblangutil/CMakeFiles/langutil.dir/SemVerHandler.cpp.o -MF CMakeFiles/langutil.dir/SemVerHandler.cpp.o.d -o CMakeFiles/langutil.dir/SemVerHandler.cpp.o -c /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_solidity/solidity/work/solidity_0.8.21/liblangutil/SemVerHandler.cpp
make[2]: *** [libsmtutil/CMakeFiles/smtutil.dir/Z3Interface.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
```
P. S. While this is on Big-endian platform, the error does not appear to have anything to do with endianness.
Contributor guide
Research direction
Start in libsmtutil/Z3Interface.cpp at lines 185-197 and reproduce the build with Z3 4.12.2. Inspect the expr_vector indexing reported by the compiler and verify that the affected Solidity build completes without the ambiguous operator[] errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100