Print this page
12257 resync smatch to 0.6.1-rc1-il-4
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/tools/smatch/src/validation/sm_locking3.c
+++ new/usr/src/tools/smatch/src/validation/sm_locking3.c
1 1 int _spin_trylock(int name);
2 2 void _spin_lock(int name);
3 3 void _spin_unlock(int name);
4 4
5 5 int func (void)
6 6 {
7 7 int mylock = 1;
8 8
9 9 if (!({frob(); frob(); _spin_trylock(mylock);}))
10 10 return;
11 11
12 12 frob();
13 13 _spin_unlock(mylock);
14 14
15 15 if (((_spin_trylock(mylock)?1:0)?1:0))
16 16 return;
↓ open down ↓ |
16 lines elided |
↑ open up ↑ |
17 17 frob_somemore();
18 18 _spin_unlock(mylock);
19 19
20 20 return;
21 21 }
22 22 /*
23 23 * check-name: Smatch locking #3
24 24 * check-command: smatch --project=kernel sm_locking3.c
25 25 *
26 26 * check-output-start
27 -sm_locking3.c:18 func() error: double unlock 'spin_lock:mylock'
28 -sm_locking3.c:20 func() warn: inconsistent returns 'spin_lock:mylock'.
29 - Locked on: line 16
30 - Unlocked on: line 10
31 - line 20
27 +sm_locking3.c:18 func() error: double unlocked 'mylock' (orig line 15)
28 +sm_locking3.c:20 func() warn: inconsistent returns 'mylock'.
29 + Locked on : 16
30 + Unlocked on: 10,20
32 31 * check-output-end
33 32 */
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX