[Bug]: Failed to generate IR
- Dominant language
- Python
- Stars
- 6.4k
- Forks
- 1.1k
- PR merge metrics
- No merged PRs in 30d
Description
### Describe the issue:
I cannot run the tool as it fails to generate the IR.
### Code example to reproduce the issue:
`# within a library:`
`function d1(uint256 a, uint256 q1, uint256 b) public pure returns (int256 d1_) {`
` int256 q0 = FixedPointMathLib.ln(SignedMath.castInt(a));`
` (uint256 sumQty, bool sumPos) = SignedMath.sum(q0, q1);`
` uint256 res = sumQty.wdiv(b);`
` return SignedMath.revabs(res, sumPos);`
`}`
### Version:
0.9.6
### Relevant log output:
```shell
'forge clean' running (wd: /app)
'forge' returned non-zero exit code 1
Error:
stderr: [31m"/app/out": No such file or directory (os error 2)[0m
'forge build --build-info' running (wd: /app)
ERROR:SlitherSolcParsing:
Failed to generate IR for FooLib.d1. Please open an issue https://github.com/crytic/slither/issues.
FooLib.d1 (src/lib/FooLib.d1.sol#137-143):
q0 = FixedPointMathLib.ln(SignedMath.castInt(a))
(sumQty,sumPos) = SignedMath.sum(q0,q1)
res = sumQty.wdiv(b)
SignedMath.revabs(res,sumPos)
Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/slither/__main__.py", line 814, in main_impl
) = process_all(filename, args, detector_classes, printer_classes)
File "/usr/lib/python3.10/site-packages/slither/__main__.py", line 102, in process_all
) = process_single(compilation, args, detector_classes, printer_classes)
File "/usr/lib/python3.10/site-packages/slither/__main__.py", line 80, in process_single
slither = Slither(target, ast_format=ast, **vars(args))
File "/usr/lib/python3.10/site-packages/slither/slither.py", line 135, in __init__
self._init_parsing_and_analyses(kwargs.get("skip_analyze", False))
File "/usr/lib/python3.10/site-packages/slither/slither.py", line 155, in _init_parsing_and_analyses
raise e
File "/usr/lib/python3.10/site-packages/slither/slither.py", line 151, in _init_parsing_and_analyses
parser.analyze_contracts()
File "/usr/lib/python3.10/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 541, in analyze_contracts
self._convert_to_slithir()
File "/usr/lib/python3.10/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 767, in _convert_to_slithir
raise e
File "/usr/lib/python3.10/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 752, in _convert_to_slithir
func.generate_slithir_and_analyze()
File "/usr/lib/python3.10/site-packages/slither/core/declarations/function.py", line 1760, in generate_slithir_and_analyze
node.slithir_generation()
File "/usr/lib/python3.10/site-packages/slither/core/cfg/node.py", line 708, in slithir_generation
self._find_read_write_call()
File "/usr/lib/python3.10/site-packages/slither/core/cfg/node.py", line 916, in _find_read_write_call
assert isinstance(ir.function, Function)
AssertionError
ERROR:root:Error in .
ERROR:root:Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/slither/__main__.py", line 814, in main_impl
) = process_all(filename, args, detector_classes, printer_classes)
File "/usr/lib/python3.10/site-packages/slither/__main__.py", line 102, in process_all
) = process_single(compilation, args, detector_classes, printer_classes)
File "/usr/lib/python3.10/site-packages/slither/__main__.py", line 80, in process_single
slither = Slither(target, ast_format=ast, **vars(args))
File "/usr/lib/python3.10/site-packages/slither/slither.py", line 135, in __init__
self._init_parsing_and_analyses(kwargs.get("skip_analyze", False))
File "/usr/lib/python3.10/site-packages/slither/slither.py", line 155, in _init_parsing_and_analyses
raise e
File "/usr/lib/python3.10/site-packages/slither/slither.py", line 151, in _init_parsing_and_analyses
parser.analyze_contracts()
File "/usr/lib/python3.10/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 541, in analyze_contracts
self._convert_to_slithir()
File "/usr/lib/python3.10/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 767, in _convert_to_slithir
raise e
File "/usr/lib/python3.10/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 752, in _convert_to_slithir
func.generate_slithir_and_analyze()
File "/usr/lib/python3.10/site-packages/slither/core/declarations/function.py", line 1760, in generate_slithir_and_analyze
node.slithir_generation()
File "/usr/lib/python3.10/site-packages/slither/core/cfg/node.py", line 708, in slithir_generation
self._find_read_write_call()
File "/usr/lib/python3.10/site-packages/slither/core/cfg/node.py", line 916, in _find_read_write_call
assert isinstance(ir.function, Function)
AssertionError
```
Contributor guide
Assessment
This issue has not been assessed yet.