[PATCH] D25326: [StaticAnalyser] Don't merge different returns in ExplodedGraph

Artem Dergachev via cfe-commits cfe-commits at lists.llvm.org
Fri Oct 7 03:23:38 PDT 2016


NoQ added a comment.

In https://reviews.llvm.org/D25326#564239, @danielmarjamaki wrote:

> ok. As far as I see it's not trivial to know which ReturnStmt there was when CallExitBegin is created.


We're in `HandleBlockEdge`, just pass down the statement from CFG here?

In https://reviews.llvm.org/D25326#564239, @danielmarjamaki wrote:

> .. unless that is better apprach


It seems to have something to do with separation of duties between CoreEngine and ExprEngine. Kind of, CoreEngine explores the CFG, ExprEngine models effects of statements, and noticing end of function is CoreEngine's duty, while binding the return value is ExprEngine's duty, and CallExitBegin acts like a message from CoreEngine to ExprEngine so that they could work together. That's how it seems to me, but i'm not sure of the original intention here.


Repository:
  rL LLVM

https://reviews.llvm.org/D25326





More information about the cfe-commits mailing list