db: don't store recursive struct members
commit90908f11daf6644a2fe93cd043d1a9c9f0f93053
authorDan Carpenter <dan.carpenter@oracle.com>
Mon, 4 Feb 2019 08:45:04 +0000 (4 11:45 +0300)
committerDan Carpenter <dan.carpenter@oracle.com>
Mon, 4 Feb 2019 08:45:04 +0000 (4 11:45 +0300)
treedd759ce5966af30d7a13052cd950cf7b7d1503c2
parent86898ad9886b2e61eb2afce5b2fee9a363fe2e4a
db: don't store recursive struct members

Recently, (I think it may because I have improved get_other_name()) then
the DB has grown from 20GB to 42GB.  We are storing too much recursive
information like:

foo->parent->parent->parent->parent->value = 2-400

This change looks for struct members with the same name and says we don't
store them.  So foo->parent->value gets stored, but
foo->parent->parent->value does not.

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