flow: handle POST_OPs correctly
commitc4912d2a16799c4736e682e233120af269af5775
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 15 Mar 2013 19:54:32 +0000 (15 22:54 +0300)
committerDan Carpenter <dan.carpenter@oracle.com>
Fri, 15 Mar 2013 19:54:32 +0000 (15 22:54 +0300)
tree48da0e7f42795ad25049192529410faf45a88c1e
parentdb88a69a40f9964199d155f3b4e49aa64742d47c
flow: handle POST_OPs correctly

Basically we put the POST_OPs onto a stack for processing later when we
hit a sequence point.  In C there are 5 kinds of sequence points.
1) The end of a statement
2) A comma
3) After we finish processing the arguments to a function call
4) When we hit an || or an &&
5) At the end of a condition

So at those points then we process the POST_OPs and empty the POST_OP
stack.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch.h
smatch_conditions.c
smatch_flow.c