root/usr/src/tools/smatch/src/validation/sm_precedence.c
struct foo {
        unsigned int x:1;
};

int frob();
int a,b,c,d, x, y;
struct foo *z;
static int options_write(void)
{
        if (x & y == 0)
                frob();
        if (x | y == 0)
                frob();
        if (a == b & c == d)
                frob();
        if (a == c == d)
                frob();
        if (!a == b)
                frob();
        c = !a & b;
        if (x + y == 0)
                frob();
        if (!a == !b)
                frob();
        if (!a == z->x)
                frob();
        if (!!a == b)
                frob();

}
/*
 * check-name: Smatch precedence check
 * check-command: smatch sm_precedence.c
 *
 * check-output-start
sm_precedence.c:10 options_write() warn: add some parenthesis here?
sm_precedence.c:12 options_write() warn: add some parenthesis here?
sm_precedence.c:14 options_write() warn: add some parenthesis here?
sm_precedence.c:16 options_write() warn: add some parenthesis here?
sm_precedence.c:18 options_write() warn: add some parenthesis here?
sm_precedence.c:20 options_write() warn: add some parenthesis here?
 * check-output-end
 */