1 void _spin_lock(int name);
   2 void _spin_unlock(int name);
   3 
   4 void frob(void){}
   5 int a;
   6 int b;
   7 void 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
  31 sm_locking4.c:23 func() warn: inconsistent returns 'spin_lock:mylock'.
  32   Locked on:   line 22
  33                line 23
  34   Unlocked on: line 16
  35  * check-output-end
  36  */