fixes to the -> possible setting.
commitc9e5f91d4e3ee48d850848a522af5fdf95de15a0
authorDan Carpenter <error27@gmail.com>
Wed, 18 Feb 2009 08:42:32 +0000 (18 11:42 +0300)
committerDan Carpenter <error27@gmail.com>
Wed, 18 Feb 2009 08:42:32 +0000 (18 11:42 +0300)
treeed695567825abc655762ca8f517dfebb0e302b49
parent7fdb8f8941c6c58d7f000b04640b565cc8b19184
fixes to the -> possible setting.

The new rule is that ->possible should never  be NULL.  It should always
at least point to itself.

When you "or" the states the ->possible list was not getting updated.

When you merge a state with a NULL path then that adds an &undefined to
the ->possible list.  This is important for "if (a || b)".   In that case
you merge a &nonnull with a NULL which means the possible states are
&nonnull, &merged, and &undefined.

The second fix was that clone_state() and as result overwrite_sm_state()
were not saving the ->possible list.

Signed-off-by: Dan Carpenter <error27@gmail.com>
smatch_slist.c