Skip to content

Commit e980c21

Browse files
committed
Merge branch 'master' into svcomp26-dev
2 parents ec4fb6e + 057588f commit e980c21

27 files changed

+963
-262
lines changed

.semgrep/apron.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
rules:
2+
- id: apron-linexp0-get_size
3+
pattern-either:
4+
- pattern: Linexpr0.get_size
5+
- pattern: Apron.Linexpr0.get_size
6+
- pattern: GobApron.Linexpr0.get_size
7+
message: don't use (returns some internal size, not number of dimensions)
8+
languages: [ocaml]
9+
severity: ERROR

.semgrep/batio.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
rules:
2+
- id: batio-to_input_channel
3+
pattern: BatIO.to_input_channel
4+
message: don't use (leaks two file descriptors)
5+
languages: [ocaml]
6+
severity: ERROR

conf/svcomp26/level02.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@
6262
"noRecursiveIntervals",
6363
"enums",
6464
"congruence",
65-
"octagon",
6665
"wideningThresholds",
6766
"loopUnrollHeuristic",
6867
"memsafetySpecification",

conf/svcomp26/level03.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@
3333
"mutexGhosts",
3434
"pthreadMutexType",
3535
"affeq",
36-
"apron"
36+
"apron",
37+
"branchSet"
3738
],
3839
"apron": {
3940
"domain": "octagon"
@@ -45,7 +46,8 @@
4546
"expsplit",
4647
"activeSetjmp",
4748
"memLeak",
48-
"threadflag"
49+
"threadflag",
50+
"branchSet"
4951
],
5052
"base": {
5153
"arrays": {

conf/svcomp26/seq-validate.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
--conf conf/svcomp26/common.json --conf conf/svcomp26/validate.json --conf conf/svcomp26/level00.json --set ana.activated[+] unassume
66
# standard run based on svcomp 25 settings, but with context gas
77
--conf conf/svcomp26/common.json --conf conf/svcomp26/validate.json --conf conf/svcomp26/level01.json --set ana.activated[+] unassume
8-
# apron/affeq run with enums,congruence, bitfield and sets for structs, sporting (side_)widen_gas 30
9-
--conf conf/svcomp26/common.json --conf conf/svcomp26/validate.json --conf conf/svcomp26/level02.json --set ana.activated[+] unassume
108
# apron/affeq run with enums,congruence, bitfield and sets for structs, sporting (side_)widen_gas 30, no autotuner for apron
9+
--conf conf/svcomp26/common.json --conf conf/svcomp26/validate.json --conf conf/svcomp26/level02.json --set ana.activated[+] unassume
10+
# apron/affeq run with enums,congruence, bitfield and sets for structs, sporting (side_)widen_gas 30, no autotuner for apron, branchset-sensitive
1111
--conf conf/svcomp26/common.json --conf conf/svcomp26/validate.json --conf conf/svcomp26/level03.json --set ana.activated[+] unassume
1212
# base-pathsensitive run
1313
--conf conf/svcomp26/common.json --conf conf/svcomp26/validate.json --conf conf/svcomp26/level04-validate.json --set ana.activated[+] unassume

conf/svcomp26/seq.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
--conf conf/svcomp26/common.json --conf conf/svcomp26/verify.json --conf conf/svcomp26/level00.json
66
# standard run based on svcomp 25 settings, but with context gas
77
--conf conf/svcomp26/common.json --conf conf/svcomp26/verify.json --conf conf/svcomp26/level01.json
8-
# apron/affeq run with enums,congruence, bitfield and sets for structs, sporting (side_)widen_gas 30
9-
--conf conf/svcomp26/common.json --conf conf/svcomp26/verify.json --conf conf/svcomp26/level02.json
108
# apron/affeq run with enums,congruence, bitfield and sets for structs, sporting (side_)widen_gas 30, no autotuner for apron
9+
--conf conf/svcomp26/common.json --conf conf/svcomp26/verify.json --conf conf/svcomp26/level02.json
10+
# apron/affeq run with enums,congruence, bitfield and sets for structs, sporting (side_)widen_gas 30, no autotuner for apron, branchset-sensitive
1111
--conf conf/svcomp26/common.json --conf conf/svcomp26/verify.json --conf conf/svcomp26/level03.json
1212
# base-pathsensitive run
1313
--conf conf/svcomp26/common.json --conf conf/svcomp26/verify.json --conf conf/svcomp26/level04.json

src/analyses/accessAnalysis.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ struct
2929
let init _ =
3030
collect_local := get_bool "witness.yaml.enabled" && get_bool "witness.invariant.accessed";
3131
let activated = get_string_list "ana.activated" in
32-
emit_single_threaded := List.mem (ModifiedSinceSetjmp.Spec.name ()) activated || List.mem (PoisonVariables.Spec.name ()) activated
32+
emit_single_threaded := List.mem (ModifiedSinceSetjmp.Spec.name ()) activated || List.mem (PoisonVariables.Spec.name ()) activated || List.mem (UseAfterFree.Spec.name ()) activated (* TODO: some of these don't have access as dependency *)
3333

3434
let do_access (man: (D.t, G.t, C.t, V.t) man) (kind:AccessKind.t) (reach:bool) (e:exp) =
3535
if M.tracing then M.trace "access" "do_access %a %a %B" d_exp e AccessKind.pretty kind reach;

src/analyses/apron/apronAnalysis.apron.ml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ let spec_module: (module MCPSpec) Lazy.t =
88
lazy (
99
let module Man = (val ApronDomain.get_manager ()) in
1010
let module AD = ApronDomain.D2 (Man) in
11-
let diff_box = GobConfig.get_bool "ana.apron.invariant.diff-box" in
12-
let module AD = (val if diff_box then (module ApronDomain.BoxProd (AD): RelationDomain.RD) else (module AD)) in
1311
let module Priv = (val RelationPriv.get_priv ()) in
1412
let module Spec =
1513
struct

src/analyses/apron/relationAnalysis.apron.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -613,7 +613,7 @@ struct
613613
if (one_var || GobApron.Lincons1.num_vars lincons1 >= 2) && (exact || Apron.Lincons1.get_typ lincons1 <> EQ) then
614614
RD.cil_exp_of_lincons1 lincons1
615615
|> Option.map e_inv
616-
|> Option.filter (fun exp -> not (InvariantCil.exp_contains_tmp exp) && InvariantCil.exp_is_in_scope scope exp)
616+
|> Option.filter (InvariantCil.exp_is_suitable ~scope)
617617
else
618618
None
619619
)

src/analyses/apron/relationPriv.apron.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -733,7 +733,7 @@ struct
733733
(* RD.invariant simplifies two octagon SUPEQ constraints to one EQ, so exact works *)
734734
if (one_var || GobApron.Lincons1.num_vars lincons1 >= 2) && (exact || Apron.Lincons1.get_typ lincons1 <> EQ) then
735735
RD.cil_exp_of_lincons1 lincons1
736-
|> Option.filter (fun exp -> not (InvariantCil.exp_contains_tmp exp))
736+
|> Option.filter (InvariantCil.exp_is_suitable ?scope:None)
737737
else
738738
None
739739
)

0 commit comments

Comments
 (0)