1void _spin_lock(int name);
2void _spin_unlock(int name);
3
4void frob(void){}
5int a;
6int b;
7void func (void)
8{
9	int mylock = 1;
10	int mylock2 = 2;
11
12	if (1)
13	      	_spin_unlock(mylock);
14	frob();
15	if (a)
16		return;
17	if (!0)
18	      	_spin_lock(mylock);
19	if (0)
20	      	_spin_unlock(mylock);
21	if (b)
22		return;
23	if (!1)
24	      	_spin_lock(mylock);
25}
26/*
27 * check-name: Smatch locking #4
28 * check-command: smatch --project=kernel sm_locking4.c
29 *
30 * check-output-start
31sm_locking4.c:23 func() warn: inconsistent returns 'mylock'.
32  Locked on  : 22-23
33  Unlocked on: 16
34 * check-output-end
35 */
36