db: fix ignoring wrong callers
commit19f5e2551a96c8ffccd8bbd9f65cc3c11e292802
authorDan Carpenter <dan.carpenter@oracle.com>
Thu, 5 Oct 2017 07:03:25 +0000 (5 10:03 +0300)
committerDan Carpenter <dan.carpenter@oracle.com>
Thu, 5 Oct 2017 07:03:25 +0000 (5 10:03 +0300)
tree4a12254faad44c6650f0a305c5de9a110bd40702
parent28febcd4c3347a2bffba56d7bc03c92f6d714e0f
db: fix ignoring wrong callers

We ignore callers if the prototypes don't match.  This normally happens
with function pointers because there can be two (struct struct_name)->frob
pointers, but the parameters are different.

It should be ignoring after func_id != data->prev_func_id otherwise it's
looking at the wrong caller.

Then after handling the direct_callers we should to a merge of that tree.
Probably there aren't that many functions that have both direct and function
pointer callers so that's why I didn't notice this before.

Also there was a one merge where we should have been checking ignore before
doing the merge.

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