IndexError thrown when parsing loop where break-statement precedes a continue-statement
- Dominant language
- Python
- Stars
- 6.4k
- Forks
- 1.1k
- PR merge metrics
- No merged PRs in 30d
Description
The following contract causes an index error:
```
contract UnreachableContinue {
function f() public {
while(true) {
break;
continue;
}
}
}
```
Output:
```
ERROR:root:Error in .\unreachable_continue.sol
ERROR:root:Traceback (most recent call last):
File "c:\users\x\documents\github\slither\slither\__main__.py", line 610, in main_impl
(slither_instances, results_detectors, results_printers, number_contracts) = process_all(filename, args,
File "c:\users\x\documents\github\slither\slither\__main__.py", line 67, in process_all
(slither, current_results_detectors, current_results_printers, current_analyzed_count) = process_single(
File "c:\users\x\documents\github\slither\slither\__main__.py", line 57, in process_single
return _process(slither, detector_classes, printer_classes)
File "c:\users\x\documents\github\slither\slither\__main__.py", line 89, in _process
detector_results = slither.run_detectors()
File "c:\users\x\documents\github\slither\slither\slither.py", line 162, in run_detectors
results = [d.detect() for d in self._detectors]
File "c:\users\x\documents\github\slither\slither\slither.py", line 162, in
results = [d.detect() for d in self._detectors]
File "c:\users\x\documents\github\slither\slither\detectors\abstract_detector.py", line 109, in detect
all_results = self._detect()
File "c:\users\x\documents\github\slither-private\slither_priv\detectors\statements\controlled_loop_iteration.py", line 67, in _detect
nodes = self.controlled_loop_iteration(f)
File "c:\users\x\documents\github\slither-private\slither_priv\detectors\statements\controlled_loop_iteration.py", line 51, in controlled_loop_iteration
last_ir = node.irs[-1]
IndexError: list index out of range
```
Contributor guide
Assessment
This issue has not been assessed yet.