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
extra: make set_extra_mod_helper() void and static
2017-05-16
Dan
Car
p
enter
ext
r
a: make set_extra_mod
_
h
e
lpe
r
()
v
oid an
d
static
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-16
Dan Carpente
r
e
x
tra: ma
k
e set_
e
xtra_mod() a
v
oid function
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-16
Dan Carpent
e
r
extra: mak
e
set_extra_expr_mod() a v
o
id fu
n
ction
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-16
Dan Carpenter
generic_data: fix u
p
so
m
e
p
roject relat
e
d things
f
or
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-16
Dan Carp
e
n
ter
s
m
db
.
p
y: fix s
u
mmar
y
(it was t
o
tally broken before)
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-15
Dan Carpen
t
er
links, v
a
r
_sym:
all
o
cate fewe
r
stat
e
s
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-15
Dan Carpe
n
ter
modification_hooks:
d
on't
s
ave so much dat
a
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-11
Dan Carp
e
nter
r
e
turn_to_para
m
: d
o
n't modify memory
on
the sta
c
k
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-11
Dan C
a
rpenter
e
x
tra: h
a
n
d
le integer overflows
b
etter for
"int_foo
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-10
Da
n
Carpe
n
ter
bui
l
d_ge
n
eric_data: sev
e
r
a
l imp
r
ovements
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-10
Dan Car
p
ente
r
t
e
st_generic
.
sh:
l
i
ke test_
k
e
r
nel
.
sh but for gen
e
ric
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-10
Dan Carpenter
g
eneri
c
_data: rename to match build_kerne
l
_data
.
sh
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-10
Dan Carpenter
g
e
neric_
i
nfo: allow people to build a spe
c
ifi
c
dire
c
t
o
ry
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-10
Dan Carpenter
unr
e
achable:
d
on't compla
i
n about static declarations
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-10
D
a
n Carpenter
i
n
dex_overflow: silence som
e
glibc f
a
lse p
o
sitives
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-10
D
a
n Carpen
t
er
p
r
o
j
ect: creat
e
a
wa
y
t
o gene
r
ate smatch_
d
ata for a
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-10
D
an
Carpenter
core: improve Function too
hairy calcula
t
i
o
n
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
D
a
n
Carpenter
helper:
don
'
t cr
a
sh so much on invalid
c
ode
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
Dan Ca
r
penter
compari
s
o
n: fix some me
m
ory leak
s
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
Dan Carpenter
db/build_early_index: b
u
i
l
d anoth
e
r
index on parameter_nam
e
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
Dan C
a
rpenter
db/kernel
.
return_fixes: atom
i
c_read()
r
e
turns the
value
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
Dan C
a
r
pente
r
debug
.
c: add
s
ome
new (not very useful) fe
a
t
ure
s
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
Da
n
Car
p
enter
buf_compari
s
on
:
fix build and add make new code f
u
nctional
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
Dan Ca
r
p
e
n
t
e
r
f
r
e
e: fix
b
uild error
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
Dan Carpe
n
t
e
r
err_ptr_deref
:
m
a
k
e
e
rr_p
t
r_
m
in/max stat
i
c
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
Da
n
Carpenter
fre
e
: don't
c
omplain when p
e
ople do frob(&freed_v
a
ri
a
ble
)
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
Dan Carpenter
kern
e
l_printf:
f
ix %
p
G tes
t
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
Da
n
Carpente
r
logical_instead_of_bitwi
s
e: silence some f
a
lse p
o
si
t
i
ves
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
Dan Carpenter
unu
s
ed_
r
et: make warning messages
consiste
n
t
w
i
t
h every
o
ne
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
Dan Carpenter
user_data2: t
a
g all union
m
ember
s
as untrusted
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
Dan Carpenter
user_data2: if users c
a
n only sp
e
ci
f
y
a single value
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
Da
n
Carpenter
extra
:
use long to short mappings fo
r
PARAM_LIMIT and
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
D
an Carpenter
user_data2:
h
and
l
e "if
(
u
n
trusted != trusted) {"
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
Dan C
a
r
p
enter
b
u
f_
c
omparison:
c
lea
r
ar
r
ay <-
>
size link
s
better on
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
Dan Car
p
ente
r
bu
f
_co
m
parison
:
record if w
e
pass an ARRAY_SIZE to
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-08
Dan Carpenter
return_to_p
a
ram (mapping
s
)
:
map r
e
gular ass
i
gnments
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-04
Dan
Carpenter
u
ser_data2: handle in
l
ines bett
e
r
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-04
D
a
n
C
arpe
n
te
r
math: prefer
rea
l
absol
u
tes
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-04
Dan Carpente
r
modifi
c
a
t
ion
_
hooks:
u
se long t
o
s
h
o
r
t
mappings
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-04
Dan Carpenter
retur
n
_to_param:
h
andle "ret
u
rn
get_f
o
o
(bar);"
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-02
Da
n
Carpenter
expression
:
fix expr_get_parent_st
m
t()
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-05-02
Dan Carpe
n
ter
fu
n
ction_ho
o
k
s: only add
comparisons when neede
d
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-27
Dan Carpenter
flow:
fix some parent transition fal
l
out
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-27
Dan Carpenter
flow: set parent s
t
ate
m
ents
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-27
Dan Carpenter
core: add expr_get/se
t
_parent_stm
t
() accessor fu
n
ctio
n
s
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-27
Dan Ca
r
penter
f
l
ow: cr
e
ate
a
n
accessor m
e
thod expr_get_parent
_
ex
p
r()
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-27
Dan Carpenter
flow: rename set_parent_st
m
t
(
) => stmt_s
e
t_p
a
rent_stmt()
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-27
D
a
n Carpenter
flow: rename se
t
_parent_expr() => expr_set_parent_expr()
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-26
Dan Carpenter
return_to_param: Use the DB
r
etu
r
n str
i
ngs like "[
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-21
Da
n
Carpenter
sm
d
b
.
p
y
:
translate more pa
r
a
mete
r
na
m
es
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-21
D
an Carpenter
smdb
.
p
y
: guess the
parameter
n
a
m
es even if the
f
i
le
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-21
Dan C
a
r
penter
smdb: don
'
t crash
if the parameter nam
e
s aren't kno
w
n
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-20
Dan Carp
e
n
t
er
flow
:
fix fake env
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-20
D
an Carpenter
b
a
lanced: delete this
c
h
eck
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-20
D
a
n
Carpenter
flow
:
a
d
d
i
nit
_
f
ake_env(
)
/end_fake_en
v
()
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-19
Dan
C
arp
e
nter
stored
_
conditions:
s
t
o
re as expres
s
ion pointers
instea
d
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-19
Da
n
Carpenter
flow, d
b
:
fix how inline functio
n
ass
i
gn
m
en
t
s are h
a
ndled
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-12
Dan Carpenter
flow: remov
e
s
o
m
e buggy unused c
o
d
e
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-12
Dan Carpenter
f
l
ow: fix initialization o
f
n
e
sted structs
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-12
Dan
C
ar
p
en
t
er
db:
build an in
d
ex on the parameter names
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-12
Dan
C
arp
e
nte
r
math: improve M
O
D hand
l
ing
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-12
Dmit
r
y Monakhov
test_kernel
.
sh:
a
dd config options
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-12
Dmitry Mon
a
kh
o
v
Makefile: Install scri
p
ts to /usr/sha
r
e/sma
t
ch/sma
t
ch_scri
p
ts
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-12
Dmi
t
r
y
M
o
nakhov
Makefi
l
e: make install p
r
efix configurable
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-11
Dan Car
p
enter
paramete
r
_n
a
m
es:
s
t
ore parameter names i
n
the DB
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-11
Dan Carpente
r
smdb
.
py:
reforma
t
call_info output
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-11
Dan Carpe
n
ter
Makefile:
u
s
e
quiet link to link
s
match
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-11
Da
n
Carpent
e
r
states: fix
handling switc
h
es insid
e
conditions (fake_c
u
r_s
t
ree)
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-11
Dan
C
arpe
n
ter
states: split upda
t
e_fake_stree_with_me
r
ged()
a
nd
a
d
d
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-11
Dan Carpente
r
type_val: small tweak for arrays and compl
i
cate
d
l
v
alues
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-04-11
Dan Carpe
n
ter
extra:
h
an
d
le indirection
l
ike "p = &foo; *p = 42;
"
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-29
D
an Car
p
e
nter
extra: handle MOD co
n
ditions like "if (a % 4)
{
" bett
e
r
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-29
D
a
n Carpente
r
mod
i
f
i
cation
_
hooks: rem
o
ve un
u
sed indirect modifi
c
ation
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-17
Dan Carpenter
validation/sk
b
3:
d
e
lete some acci
d
e
n
ta
l
debug
c
ode
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-16
Dan
Carpenter
u
s
er_data2: don't se
t
par
a
mete
r
s to u
s
er_data
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-16
D
a
n Carp
e
nter
us
e
r_data2: han
d
le skb-
>
data
math a little bett
e
r
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-16
Dan Carpenter
u
s
er_dat
a
2:
re-work handling
o
f sk
b
->
d
ata
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-15
Dan Car
p
enter
parse_call_ma
t
h
: work
a
round for loops
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-15
Dan C
a
rpe
n
ter
leaks: don'
t
complai
n
i
f we overw
r
it
e
NU
L
L
p
oint
e
r
s
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-15
Dan Carpente
r
free: ig
n
ore
impossi
b
le code
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-15
Dan
C
arpenter
shi
f
t_to_ze
r
o
: mak
e
th
e
er
r
or m
e
ssage more infor
m
a
t
iv
e
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-15
Dan Carpenter
test_b
i
t: add
t
est_
a
nd_cl
e
ar_b
i
t
()
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-15
Dan C
a
r
penter
smdb
.
py:
print
t
he return_i
m
plie
s
value
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-15
Dan C
a
rpenter
db/fixu
p
_kernel
.
s
h
: ignore do_loop_readv_write
v
(
)
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-15
Da
n
Carpen
t
er
extra: set
h
ard max if a function is called
with a
.
.
.
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-15
Dan C
a
rpenter
extra: fix handling of known condition
s
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-15
Dan
C
a
r
penter
param_limit: d
o
n
'
t
s
et some unchang
e
d lim
i
ts
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-15
Dan Ca
r
penter
d
b: pre
v
en
t
slow d
o
wns split
t
ing returns apart
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-03-15
Dan Carpenter
db: set parse_error
if the SQL
f
a
i
l
s
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-02-16
D
an Carpenter
param_set: handle i
f
t
h
e
parent
w
as se
t
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-02-10
Dan
C
arpenter
buf_siz
e
: fix type_bytes()
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-02-10
Dan C
a
rpenter
d
b
: filter poin
t
er ca
l
ls by f
u
nc
t
ion signatures
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-01-27
Dan
Carpenter
implied:
revert
"
tiny
sp
e
e
d
up"
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-01-27
Dan Carpenter
assign_vs_compare: warn about "if (foo = &b
a
r) "
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-01-27
Da
n
Carpenter
ty
p
e
: fix typ
e
_b
i
t
s() f
o
r arra
y
s
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-01-27
Dan C
a
rpenter
shift_
t
o_zero:
d
o a small clean up
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-01-27
Dan Carpen
t
e
r
s
matc
h
.
c:
r
emove a blank line
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-01-27
Dan Carp
e
nter
d
b: split
r
eturn states b
y
null
v
s non-null p
a
rameter
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-01-27
Dan Carpenter
e
x
tra: filter PARAM_
V
ALUEs w
i
t
h
both extra
a
nd
r
eal_ab
s
olute
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
2017-01-27
Dan Carpente
r
math: handl
e
-
f
oo bette
r
Signed-off-by: Dan Carpenter <
dan.carpenter@oracle.com
>
commit
|
commitdiff
|
tree
next