flow: handle backwards goto hooks
commit0ab967b4d8f398f1376b9ffc1deb99d9acb95030
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 4 Nov 2014 07:59:25 +0000 (4 10:59 +0300)
committerDan Carpenter <dan.carpenter@oracle.com>
Tue, 4 Nov 2014 07:59:25 +0000 (4 10:59 +0300)
tree9ea0c1405865495dc80ef59f75199c1129de3c81
parentf0a66ec2e249794b1350c543bcc8f1d68081dd3a
flow: handle backwards goto hooks

I have had an idea for a long time that I need to do two passes and there
is already a --two-passes option.  But getting that to work seems like a
complicated step and this is an easy step small step because it's only
enabled for some functions and only when --info is turned on.

This is those functions where you have stuff like:

if (ret)
goto error;
out:
return ret;
error:
printk("i had an error\n");
goto out;

People write this kind of ugly crap all the time and I don't know why.
I guess it must be a speed up on benchmarks?  Anyway, now we can parse
their code.

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