Open yuffon opened 4 months ago
Hi @yuffon,
this is actually intended behavior. We use getAllExitPoints (and isExitInst) to get the locations from where data flows have to be mapped back to the callers. This happens for ret
and resume
instructions. For exit()
, abort()
and others the program ends more or less immediately and data-flows will never reach the callers from there.
I see that the naming is confusing. Maybe, we can add another function that covers these cases as well.
Hi @yuffon, this is actually intended behavior. We use getAllExitPoints (and isExitInst) to get the locations from where data flows have to be mapped back to the callers. This happens for
ret
andresume
instructions. Forexit()
,abort()
and others the program ends more or less immediately and data-flows will never reach the callers from there. I see that the naming is confusing. Maybe, we can add another function that covers these cases as well.
OK. Thanks. I need to get all exit points of main function for seed facts in backward dataflow analysis.
I am using an old branch f-IDESolverStrategy because I need PropagateOntoStrategy in my project. (https://github.com/secure-software-engineering/phasar/tree/f-IDESolverStrategy)
Recently, I find that Phasar does not support using
exit()
as exit point of function.For example, the source code is
The IR is
The code using Phasar is as follows:
getAllExitPoints()
gets nothing. Currently, I scan all instructions in a function and tag all calls toexit()
as exit points.