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>