db: preserve unmerged states in the ->possible better
smatch_db.c uses the ->possible list to see places where a variable was
set.
The problem is that not all the places were recorded in a ->possible list.
The ->possible list was only saving it if it hadn't been set to that same
value before. This meant that some return values were skipped.
Once I tried to store everything then I started using too much memory. The
work around is only to save the extra ->possible states for SMATCH_EXTRA
and to cap it at 100 which is the limit the smatch_db.c code was already
using.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>