[SMTChecker] Stack overflow due to nested SMT expressions in Gnosis safe contract
- Dominant language
- C++
- Stars
- 25.7k
- Forks
- 6.2k
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 29
Description
Moved from https://github.com/ethereum/solidity/pull/10961
This test https://gist.github.com/bshastry/395f7484727b9f42060d54d26dc9caec
when copied to `test/libsolidity/syntaxTests/multiSource/gnosisSafe.sol`
and invoked like so
```
$ isoltest -t syntaxTests/multiSouce/gnosisSafe
```
leads to a SIGKILL because of running out of stack memory. The associated stack trace may be found here: https://gist.github.com/bshastry/c0752f16c3952e8a1fcbe0813c033318#file-smt_segfault_gnosissafe_stacktrace-txt-L759
Also see https://github.com/ethereum/solidity/pull/10961#issuecomment-779112262
Contributor guide
Research direction
Start with test/libsolidity/syntaxTests/multiSource/gnosisSafe.sol and reproduce the failure using isoltest, correcting the reported path typo if needed. Read the linked stack trace and related pull request discussion to locate the nested SMT expression path. Done means the Gnosis Safe test no longer exhausts stack memory or receives SIGKILL.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, solidity
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100