Mercurial > illumos > git > illumos-gate
view usr/src/tools/smatch/src/validation/sm_locking2.c @ 19430:6e69910f8ded
12257 resync smatch to 0.6.1-rc1-il-4
Reviewed by: Toomas Soome <tsoome@me.com>
Reviewed by: Robert Mustacchi <rm@fingolfin.org>
Approved by: Dan McDonald <danmcd@joyent.com>
author | John Levon <john.levon@joyent.com> |
---|---|
date | Wed, 22 Jan 2020 16:05:13 -0800 |
parents | b73b4fe381d3 |
children |
line wrap: on
line source
void _spin_lock(int name); void _spin_unlock(int name); int _spin_trylock(int name); int a; int b; int func (void) { int mylock = 1; int mylock2 = 1; int mylock3 = 1; if (!_spin_trylock(mylock)) { return; } _spin_unlock(mylock); _spin_unlock(mylock2); if (a) _spin_unlock(mylock); _spin_lock(mylock2); if (!_spin_trylock(mylock3)) return; return; } /* * check-name: Smatch locking #2 * check-command: smatch --project=kernel sm_locking2.c * * check-output-start sm_locking2.c:21 func() error: double unlocked 'mylock' (orig line 17) sm_locking2.c:26 func() warn: inconsistent returns 'mylock3'. Locked on : 26 Unlocked on: 25 * check-output-end */