slither
slither copied to clipboard
[Bug]: Failed to generate IR
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:
'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
Similar assertion failure on https://github.com/delegatexyz/delegate-registry