ICE in `Z3Interface::fromZ3Expr()` when running tests on Arch Linux
- Dominant language
- C++
- Stars
- 25.7k
- Forks
- 6.2k
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 29
Description
Trying to compile solidity from source I run into this:
```
******************************************/solidity/test/soltest.cpp(120): error: in "smtCheckerTests/try_catch/try_5": Exception during extracted test: /solidity/libsmtutil/Z3Interface.cpp(398): Throw in function solidity::smtutil::Expression solidity::smtutil::Z3Interface::fromZ3Expr(const z3::expr&)
Dynamic exception type: boost::wrapexcept
std::exception::what: SMT assertion failed
[solidity::util::tag_comment*] = SMT assertion failed
```
I think I'm building `solidity_0.8.26`
Steps to repro:
```
yay -S solidity
```
Contributor guide
Research direction
Reproduce the failure with the Arch Linux package build, then inspect libsm tutil/Z3Interface.cpp around Z3Interface::fromZ3Expr() and the failing smtCheckerTests/try_catch/try_5 test in soltest.cpp. Done means the test no longer throws the SMT assertion failure, with the intended behavior confirmed by the existing test suite.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 38/100