root/usr/src/tools/smatch/src/validation/sm_implied4.c
void _spin_lock(int name);
void _spin_unlock(int name);

void frob(void){}
int a;
int b;
int c;
int func (void)
{
        int mylock = 1;
        int mylock2 = 2;

        if (a == 3)
                _spin_lock(mylock);
        if (b)
                frob();
        if (a == 3)
                _spin_unlock(mylock);
        if (a)
                _spin_lock(mylock);
        if (c)
                return 0;
        if (!!a)
                _spin_unlock(mylock);
        return 0;
}

/*
 * check-name: Smatch implied #4
 * check-command: smatch --project=kernel --spammy sm_implied4.c
 *
 * check-output-start
sm_implied4.c:22 func() warn: 'spin_lock:mylock' is sometimes locked here and sometimes unlocked.
 * check-output-end
 */