repo.or.cz
/
smatch.git
/
search
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
first
·
prev
·
next
kernel.silenced_functions: add some more "asm goto" functions
2013-12-20
D
a
n Car
p
enter
k
e
rnel
.
s
i
lenc
e
d_
f
unctions: add some more "asm goto
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-20
Dan Carpent
e
r
e
x
tra: assume in
d
e
x
es
are in boun
d
s
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-19
Dan Carpen
t
e
r
flow: fix s
t
ruct i
n
itiali
z
at
i
on bug
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-19
Da
n
Carpenter
*new
*
check_array_c
o
ndition
.
c:
a
rr
a
ys can't
b
e
NULL
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-19
Dan
C
arpenter
buf_siz
e
: store ranges in t
h
e database instead of single
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-19
Da
n
Carpenter
strlen:
r
e
m
ove
s
o
m
e
blank lin
e
s
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-19
Dan Carpenter
unreach
a
ble
code: d
o
n't warn a
b
o
u
t unreachable break
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-19
Dan
Carpenter
unre
a
chab
l
e
code: do
n
'
t
warn about empty statem
e
nts
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-19
D
a
n Carpenter
d
e
bug: introd
u
ce _
_
smatch_buf_
s
i
ze_rl() which is mor
e
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-19
D
an Carpenter
de
b
ug
:
add __sma
t
c
h
_member_name()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-19
Dan
C
a
r
pente
r
kernel, db: add hweight() functions t
o
the d
a
tabase
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-19
D
an
C
a
r
p
e
nter
kernel, db: consider x
= htonl(10) and x =
1
0 e
q
uivalent
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-19
Dan Carpenter
introduce: smatch_data/kernel
.
no_inline_fu
n
c
tions
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-18
Dan
C
a
r
penter
*new* a
d
d smatch_data/
k
ernel
.
silenced_f
u
nc
t
ions to
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-17
Dan Ca
r
p
e
nter
comm
o
n
_
fu
n
ctions
.
c: ha
n
d
l
e strle
n
() and
strnlen(
)
better
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-17
Dan Carpenter
acce
s
s
_
ok_ma
t
h: restrict th
i
s
check
to --spammy out
p
ut
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-17
Dan Carpenter
*new* check_cast_assign
.
c: che
c
k casting a smaller
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-13
D
an Carpent
e
r
ch
e
ck_debug: fix crash
i
ng
b
u
g
on
prin
t
ing non-existant
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-11
Dan C
a
rpenter
buf_si
z
e: buffer
a
llocat
i
o
ns
in the same file are
not
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-11
Dan Car
p
enter
buf_size: ignore un
k
now
n
array sizes better
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-11
Dan Carpenter
strlen: record str
i
ng
l
en
g
ths across func
t
i
on ca
l
l
s
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-06
Dan
C
a
r
p
e
nt
e
r
strlen: reco
r
d assigned strings
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-06
Dan Car
p
ente
r
strlen: add a comment
a
n
d r
e
name
s
o
m
e things
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-06
Dan Carpen
t
er
str
l
en: handle s
t
ring l
i
terals
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-06
Dan Carpenter
debug
:
introduce __sm
a
tch_strlen
(
)
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-06
Dan Carpen
t
e
r
strl
e
n
:
introduce
g
et_
i
m
p
lied_str
l
en
(
)
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-06
Dan Car
p
ente
r
math: revert accidentally commit
t
e
d
code
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-06
Da
n
Carpenter
buf
_
s
ize:
re
a
d a ran
g
e_list f
r
om the
databas
e
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-06
Dan
Carpent
e
r
buf_size: store t
y
pe_size in two
tables the same as
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-06
Dan Carpe
n
ter
buf_size: m
a
ke size_f
r
om_db() work again
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-06
Dan Carpente
r
buf_size
,
strlen: separate buf_size and strlen int
o
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-06
Dan Carpenter
over
f
low: use fuz
z
y_max to war
n
about array overflows
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-06
Dan Carpenter
math: fix get_fuzzy_min/max()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-12-06
Da
n
Carpen
t
er
buf_size: represen
t
buffer
s
ize as a range l
i
s
t
inst
e
ad
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-29
Da
n
Carpenter
buf_size: handle pl
a
ces that dynamically alocate som
e
times
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-29
D
a
n Carpe
n
ter
flow: int
r
o
du
c
e __in_f
u
nction_d
e
f
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-29
D
a
n Carpenter
ex
t
ra, math:
r
ework how fu
z
zy max is handled
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-29
D
an Carpenter
buf
_
s
i
ze
:
h
andle
devm_kma
l
loc() allocations
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-28
Dan Car
p
ent
e
r
ker
n
el
.
ignored_macros: add RT_ASSERT and SKD_
A
SSERT
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-28
Dan
C
arpenter
s
m
db: impro
v
e "wh
e
re"
output
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-28
Dan Carpenter
rang
e
s
:
i
n
trod
u
ce
rl_has_sval()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-28
Dan
C
a
rpente
r
helper
:
work
a
round cras
h
i
ng
bu
g
i
n get
_
mem
b
er
_
n
a
me()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-28
Dan Carpe
n
ter
l
o
ca
l
_
v
alues: pull
c
o
d
e in
o
ne indent
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-22
Dan Carpenter
c
heck_signed: ignore things
w
ith ne
g
ative num
b
er of
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-22
Dan Carp
e
nter
f
l
ow: igno
r
e structs and unio
n
s in set_
u
ns
e
t_to_zero
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-22
Dan C
a
rpenter
modification_hooks: delete a bla
n
k
li
n
e
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-22
Dan
Car
p
enter
r
e
curse: i
n
t
roduce has_
i
nc_dec
(
)
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-22
D
a
n
C
arpen
t
e
r
t
y
p
e_val:
f
ix
a bu
i
ld wa
r
nin
g
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-22
Dan Carpe
n
ter
t
y
pe_val:
actually run the code
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-22
Dan Carpenter
smatch: a
c
o
uple crashing bugs on i
n
valid cod
e
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-21
D
an Carpenter
al
l
ow ch
a
r
to be unsigned
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-21
Dan Carpenter
helper: im
p
rove is_error_retur
n
()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-21
D
an Carpenter
type_val: introduce storing struct member limit
s
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-21
Da
n
Carpente
r
data
_
so
u
r
c
e: load
where data comes f
r
om into the
d
atabase
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-21
Dan
Carpenter
.
gitignore: ignore bak
.
s
m
atch
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-21
Dan C
a
r
penter
db: fixup
_
kerne
l
.
sh: sa
y
that
w
e only
h
a
v
e 64 CPUs
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-21
Dan
C
a
rpenter
db: preserve unmerged states in the ->possible better
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-21
Dan Carp
e
nte
r
db: group f
u
nction pointer retur
n
states
t
ogether
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-21
Da
n
Carpent
e
r
db: order the return_st
a
tes
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-20
D
a
n Carpenter
db: fixup_kerne
l
.
sh: i
g
nore ti
m
e
r
_
list
functions
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-20
D
an C
a
r
p
e
n
ter
d
b
: fixup
_
kernel
.
s
h:
r
emove
some USER_DA
T
A c
a
lls
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-20
D
a
n Carpenter
d
b
:
i
m
p
ro
v
e database
debuggi
n
g
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-11-14
Dan
C
arpenter
smatch
.
h: s
h
ift some struct m
e
mbers aroun
d
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-10-25
Dan
Carpenter
flo
w
:
c
le
a
r_buffe
r
: revert
p
ar
t
of com
m
it
t
hat
u
s
es
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-10-11
D
a
n
C
arpent
e
r
f
l
ow
:
re-write ho
w
struct
m
e
m
bers are initialized
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-10-11
D
a
n Carpenter
s
m
a
t
ch_c
l
ear_bu
f
fer: memc
p
y() should set the de
s
tin
a
tion
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-10-11
Dan Car
p
enter
sma
t
ch_clear_buffer: make a functi
o
n
s
t
a
tic
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-10-11
Dan
Carpe
n
t
er
sm
a
tch_dat
a
/k
e
rnel
.
cl
e
a
r
s_arg
u
ment:
r
e
move memset()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-10-08
Dan Carpenter
flow: introduc
e
o
u
tsi
d
e_of_
f
unction() to fix
global
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-09-17
Dan
Carpenter
db:
k
ernel: ign
o
re i40e_dbg_netdev_op
s
_
w
r
i
t
e()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-09-16
Dan
C
arpenter
f
l
ow: set members
to zero by def
a
u
l
t
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-09-16
Da
n
Carpenter
db,
e
xtra, us
e
r_data
:
h
andle:
*
x = 1; r
e
turn x;"
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-09-16
Dan Ca
r
penter
use
r
_
data:
rem
o
ve kmemdup_
u
s
er(
)
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-09-16
Da
n
C
arpenter
user
_
data:
mak
e
a
functi
o
n static
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-09-16
Dan
C
arpenter
conta
i
ner_
o
f: people checking the return valu
e
of nla_data
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-09-12
Dan Carpenter
helper: fix cr
a
s
hing bug
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-09-10
Dan Car
p
enter
user_
d
ata: make a
f
unction static
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-09-05
Dan
C
arpenter
math: ex
p
ort get_c
o
ns
t
_v
a
l
u
e()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-09-05
D
an Carpenter
m
a
t
h: ha
n
d
le
b
i
twise OR
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-09-05
D
a
n
Carpenter
mat
h
: handle LEFT_SHIFT (a << b)
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-09-05
Dan
Car
p
en
t
er
m
a
th: re
m
ove an
impossible c
o
ndition
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-09-04
Dan
Carpenter
F
ix -
-
no-da
t
a
s
o it doesn't spew database errors
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-08-15
Da
n
C
a
r
pe
n
ter
ext
r
a: fix a cr
a
sh p
a
r
s
ing invali
d
code
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-08-15
D
an Carpente
r
sizeof: f
i
x typo in erro
r
message
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-08-15
Dan Carpenter
sizeof: c
o
mplain
i
f
c
o
d
e does s
i
z
e
o
f(4)
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-08-15
Dan Carp
e
n
t
er
type: let get_real_ba
s
e_type() take NULL parameters
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-07-18
Dan
C
arpen
t
er
db: ren
a
me add_return
e
d_sta
t
e
_
call
b
a
c
k() => add_split_return
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-07-16
Dan Carpenter
rosenber
g
info l
e
aks: ch
e
ck __copy_to_
u
s
er()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-07-16
D
an Carpe
n
ter
r
osenberg
i
nfo l
e
ak
s
:
u
se PARAM_CLEARED
data from the
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-07-16
Da
n
Carpenter
rosenberg
i
nfo leaks: use stripped d
a
ta
from copy
_
to_us
e
r()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-07-16
Dan
C
a
rpenter
rosenberg info leaks
:
m
a
ke
check_members_initialized
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-07-16
Dan
Carpenter
extra: handle "if (a
& 0x1)" condi
t
i
o
n
s
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-07-16
Dan Carpen
t
er
f
l
ow:
f
ake assigns bett
e
r for
nested
s
tructs and ar
r
ay
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-07-16
Da
n
Car
p
e
n
ter
helper: get_
m
em
b
er_n
a
me() co
u
ld store unions (sort of)
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-07-15
Dan Carp
e
nter
user_da
t
a: fix crash
i
ng bug
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-07-15
Dan Ca
r
penter
math: improv
e
how casts are handled
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-07-15
Dan Carpenter
math:
i
ntroduce get_abs
o
lute_rl()
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-07-15
Dan Carpenter
math: improve h
o
w bitwise ANDs
a
re handled
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-07-15
Dan C
a
rpen
t
er
ke
r
nel data/: u
p
date to recent linux-next (3
.
11-rc1
.
.
.
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
2013-07-15
Dan Carpenter
db: d
e
clare strnlen() as returning "0-s32max[<=p1]"
Signed-off-by:
Dan Carpenter
<dan.carpenter@oracle.com>
commit
|
commitdiff
|
tree
next