repo.or.cz
/
smatch.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
print message on false compares because of signed vs unsigned.
[smatch.git]
/
validation
/
sm_locking4.c
blob
f97f1b4746659bcfe6ab4ee6eb1da8fe45b6c570
1
void
_spin_lock
(
int
name
);
2
void
_spin_unlock
(
int
name
);
3
4
void
frob
(
void
){}
5
int
a
;
6
int
b
;
7
int
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
return
0
;
26
}
27
/*
28
* check-name: Smatch locking #4
29
* check-command: smatch --project=kernel sm_locking4.c
30
*
31
* check-output-start
32
sm_locking4.c +25 func(18) warn: inconsistent returns mylock: locked (22,25) unlocked (16)
33
* check-output-end
34
*/