During the decompilation, the tool can be lost if functions that never return are encountered. In particularly when the call was put in the middle of the function, the flow continue and it can generate unwanted loops.
2 solutions :
abort decompilation if too many loops have been computed
create a list of known noreturn functions, and propagate the flag if there are some wrappers. What to do with this simple example : eax = exit ... call eax ?
During the decompilation, the tool can be lost if functions that never return are encountered. In particularly when the call was put in the middle of the function, the flow continue and it can generate unwanted loops.
2 solutions :
eax = exit ... call eax
?