Mercurial > illumos > git > illumos-gate
view usr/src/tools/smatch/src/validation/sm_locking3.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
int _spin_trylock(int name); void _spin_lock(int name); void _spin_unlock(int name); int func (void) { int mylock = 1; if (!({frob(); frob(); _spin_trylock(mylock);})) return; frob(); _spin_unlock(mylock); if (((_spin_trylock(mylock)?1:0)?1:0)) return; frob_somemore(); _spin_unlock(mylock); return; } /* * check-name: Smatch locking #3 * check-command: smatch --project=kernel sm_locking3.c * * check-output-start sm_locking3.c:18 func() error: double unlocked 'mylock' (orig line 15) sm_locking3.c:20 func() warn: inconsistent returns 'mylock'. Locked on : 16 Unlocked on: 10,20 * check-output-end */