implied: handle impossible paths from complicated switch expressions better
commiteb33fac1a3f30aeb79e69e25d58340f327a75d88
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 1 Jul 2016 10:43:22 +0000 (1 13:43 +0300)
committerDan Carpenter <dan.carpenter@oracle.com>
Fri, 1 Jul 2016 10:43:22 +0000 (1 13:43 +0300)
treec72f6ce920ed9f1a9a69f382d6d8517bc04b52fe
parent4c224173641396468c3f7556ab90fd53a9632102
implied: handle impossible paths from complicated switch expressions better

In the original code, we only handled switch statements if there was a
chunk expression (something that we track in smatch_extra.c).  This makes
sense most of the time.

Where it doesn't make sense is for code like this:

switch (frob(42)) { ...

Maybe we know the return values from frob() and we know that if we pass
42 to it then it can't return 5.  So we can mark case 5: as an impossible
path.

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