flow: don't call scope hooks until after the END_FUNC_HOOKs
commit348944bd3f21c7a11bdac37fb56daaccf2628be7
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 12 Jul 2016 09:23:29 +0000 (12 12:23 +0300)
committerDan Carpenter <dan.carpenter@oracle.com>
Tue, 12 Jul 2016 09:23:29 +0000 (12 12:23 +0300)
treea2538b8964c20f83c0d283d460e86acdfdf17af9
parentbfbb27c68a2696fc2a7bb49e288ba775fa17168d
flow: don't call scope hooks until after the END_FUNC_HOOKs

This feels wrong, but it's the definitely practical thing and *probably*
it's actually the right thing.  Here is why.

The situation is that we're interested in who parameters are set so we can
load information to the cross function db.  But often we do stuff like:

struct whatever *p = parameter->foo->bar->baz->p;

So checks want access to "p" at the END_FUNC_HOOKs (if the function is
void, if it's not void then we get the information at the return statement
so it's within scope).  Of course, it's possible for people to make
assignments like that at an inside scope and instead of at the start of
the function but 97% of the time that's where it is so that's fine.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch_flow.c