Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SV-COMP 2024 development #1257

Merged
merged 87 commits into from
Nov 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
80b3b72
Add ldv_kzalloc to svcomp malloc wrappers
sim642 Oct 4, 2023
35f6d00
Disable free races in svcomp
sim642 Oct 4, 2023
b6dfb14
Make threadid path sensitive in svcomp
sim642 Oct 4, 2023
11164fd
Use exp.architecture for SV-COMP preprocessing
sim642 Oct 4, 2023
94307d0
Add option ana.race.call
sim642 Oct 5, 2023
35f9323
Use threadflag path-sensitivity instead of threadid in svcomp conf
sim642 Nov 1, 2023
ebc8cf8
Merge branch 'master' into svcomp24-conf
sim642 Nov 1, 2023
b80ba98
Merge branch 'sv-comp-yaml' into svcomp24-dev
sim642 Nov 1, 2023
4910a51
Merge branch 'sv-comp-multiproperty' into svcomp24-dev
sim642 Nov 1, 2023
f4b3710
Copy svcomp conf to svcomp24
sim642 Nov 1, 2023
529a415
Add YAML witness generation to svcomp confs
sim642 Nov 1, 2023
ab9eacc
Copy svcomp24 conf to svcomp24-validate
sim642 Nov 1, 2023
95ee32e
Add YAML witness validation to svcomp24-validate conf
sim642 Nov 1, 2023
ce917e6
Update sv-comp/archive.sh for 2024
sim642 Nov 1, 2023
6bad00c
Fix Apron license for unpinned package for SV-COMP
sim642 Nov 1, 2023
421abcd
Warn whenever there's allocated heap memory that's unreachable from g…
mrstanb Nov 7, 2023
9f7224e
Add test cases for unreachable heap memory from globals
mrstanb Nov 7, 2023
c056b32
Remove //TODO comment from `76/09`
mrstanb Nov 8, 2023
175b003
Don't set `InvalidMemTrack` flag a second time
mrstanb Nov 8, 2023
05e4892
Don't set `InvalidMemTrack` flag a second time
mrstanb Nov 8, 2023
f343d74
Add 3 regr. tests for trying out global struct variables
mrstanb Nov 8, 2023
afdf566
Merge branch 'master' into svcomp24-conf
sim642 Nov 9, 2023
6aed24f
Merge branch 'master' into svcomp24-conf
sim642 Nov 9, 2023
c88a1fa
Merge branch 'svcomp24-conf' into svcomp24-dev
sim642 Nov 9, 2023
0698aad
Merge branch 'yaml-witness-2.0' into svcomp24-dev
sim642 Nov 9, 2023
7fc8343
Fix relation read_globals_to_locals reading untracked variables
sim642 Nov 9, 2023
fbc66e3
Remove default Apron polyhedra in svcomp24-validate conf
sim642 Nov 9, 2023
39b9834
Merge branch 'yaml-witness-2.0' into svcomp24-dev
sim642 Nov 9, 2023
24fd4e8
Merge branch 'master' into improve-valid-memtrack-for-single-threaded…
michael-schwarz Nov 15, 2023
6decbdd
Improve the detection of reachable memory through global struct vars
mrstanb Nov 15, 2023
c380426
Add regr. tests for reachable memory through global struct vars
mrstanb Nov 15, 2023
0bec1ac
Merge branch 'improve-valid-memtrack-for-single-threaded-programs' of…
mrstanb Nov 15, 2023
8459104
Fix semgrep warning for using `List.length` for an emptiness check
mrstanb Nov 15, 2023
f209afd
First attempt to improve precision for multi-threaded valid-memcleanup
mrstanb Nov 16, 2023
c0fe89e
Add regr. test cases for multi-threaded valid-memcleanup
mrstanb Nov 16, 2023
6f54991
Fix YAML witness invariants for unrolled loops (closes #1225)
sim642 Nov 17, 2023
eabb461
Merge branch 'yaml-witness-2.0' into yaml-witness-location-hack
sim642 Nov 17, 2023
952b90d
Fix bisect_ppx build
sim642 Nov 17, 2023
b699aa0
Merge branch 'yaml-witness-location-hack' into svcomp24-dev
sim642 Nov 17, 2023
4ae3556
Fix missing unrolled iterations in YAML witness invariants
sim642 Nov 17, 2023
0fb479f
Refactor YAML witness fundec lookup
sim642 Nov 17, 2023
3c89ece
Fix YamlWitness indentation
sim642 Nov 17, 2023
a69e5b6
Merge branch 'yaml-witness-location-hack' into svcomp24-dev
sim642 Nov 17, 2023
b57e80d
Bump YAML entry size for large unrolled invariants
sim642 Nov 17, 2023
f709482
Make YAML output buffer sizing exponential
sim642 Nov 17, 2023
7289ec3
Use solely local state for multi-threaded valid-memcleanup
mrstanb Nov 18, 2023
6cc01b5
Use `unrollType` and `GVarDecl` for global vars
mrstanb Nov 18, 2023
80492cc
Check that addresses in struct fields are singletons and not top
mrstanb Nov 18, 2023
720cfee
IsMallocCalled should be `may`
michael-schwarz Nov 19, 2023
f2ca6d1
Use `unrollType` for non-pointer global struct vars
mrstanb Nov 19, 2023
0e09d09
Don't forget to prepend to `acc` when collecting globally reachable mem
mrstanb Nov 19, 2023
af9ddc7
Add unsound example
michael-schwarz Nov 19, 2023
0655fd6
Merge branch 'master' into improve-multi-threaded-valid-memcleanup
michael-schwarz Nov 19, 2023
ada8491
Make sound by accounting for alloc in global invariant
michael-schwarz Nov 19, 2023
e7d6302
Cleanup
michael-schwarz Nov 19, 2023
e6cee27
Fix `memtrack` for multi-threaded case
michael-schwarz Nov 19, 2023
97eb715
Account for failing assertions in the multi-threaded case as well
mrstanb Nov 19, 2023
987795e
Add a few more test cases
mrstanb Nov 19, 2023
8d55024
Add options to produce warnings only for memory leaks
mrstanb Nov 19, 2023
ecd48aa
Make SV-COMP validation strict
sim642 Nov 20, 2023
71517e6
Merge branch 'master' into svcomp24-dev
sim642 Nov 20, 2023
6797cbb
Add ana.autotune.activated schema
sim642 Nov 20, 2023
3af192d
Deactivate mhp and region for single-threaded programs
sim642 Nov 20, 2023
0ee71a0
Update SV-COMP releasing guide for 2024
sim642 Nov 20, 2023
8b79948
Fix invariant_set elements schema in YAML witnesses
sim642 Nov 21, 2023
ca61360
Add example where better privatization helps
michael-schwarz Nov 21, 2023
f75a5ac
Merge branch 'master' into svcomp24-dev
sim642 Nov 21, 2023
2cc915f
Check at end of main thread that the program is certainly single-thre…
jerhard Nov 21, 2023
45ec8a6
Add test case for memory leaking from a thead that is not joined, add…
jerhard Nov 21, 2023
56c4d62
Add test case with pthread_exit called in main, remove threadid analy…
jerhard Nov 21, 2023
2fef812
Add testcases for thread return and pthread_exit in thread different …
jerhard Nov 21, 2023
645b03c
ThreadAnalysis: Handle pthread_exit like return from thread.
jerhard Nov 21, 2023
9153eb3
Use `AD.fold` instead of `List.fold_left`
mrstanb Nov 21, 2023
c6cb63e
Update tests/regression/76-memleak/16-no-mem-leak-thread-exit-main.c
jerhard Nov 22, 2023
f12a392
Remove call to free.
jerhard Nov 22, 2023
be9171b
Add annotation of nowarn next to pthread_exit.
jerhard Nov 22, 2023
585a65d
Check in TheadAnalysis.return whether the return is actually a thread…
jerhard Nov 22, 2023
bc7694b
Add test case that checking that analysis distinguishes between threa…
jerhard Nov 22, 2023
666795f
MemLeak: Do not consider unions
michael-schwarz Nov 22, 2023
dd45d19
Add initial CHANGELOG for SV-COMP 2024
sim642 Nov 22, 2023
bf754c0
Add initial CHANGELOG for v2.3.0
sim642 Nov 22, 2023
9c65057
Add CHANGELOG for v2.3.0
sim642 Nov 22, 2023
af1ddef
Merge branch 'master' into svcomp24-dev
sim642 Nov 22, 2023
765a64e
Merge remote-tracking branch 'mrstanb/improve-valid-memtrack-for-sing…
sim642 Nov 22, 2023
d629d14
Merge remote-tracking branch 'mrstanb/improve-multi-threaded-valid-me…
sim642 Nov 22, 2023
e0a0692
Merge branch 'master' into svcomp24-dev
sim642 Nov 23, 2023
c2e9465
Merge branch 'master' into svcomp24-dev
sim642 Nov 24, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
## v2.3.0 (unreleased)
Functionally equivalent to Goblint in SV-COMP 2024.

* Add termination analysis for loops (#1093).
* Add memory out-of-bounds analysis (#1094, #1197).
* Add memory leak analysis (#1127, #1241, #1246).
* Add SV-COMP `termination`, `valid-memsafety` and `valid-memcleanup` properties support (#1220, #1228, #1201, #1199, #1259, #1262).
* Add YAML witness version 2.0 support (#1238, #1240, #1217, #1226, #1225, #1248).
* Add final warnings about unsound results (#1190, #1191).
* Add many library function specifications (#1167, #1174, #1203, #1205, #1212, #1220, #1239, #1242, #1244, #1254, #1269).
* Adapt automatic configuration tuning (#912, #921, #987, #1168, #1214, #1234).

## v2.2.1
* Bump batteries lower bound to 3.5.0.
* Fix flaky dead code elimination transformation test.
Expand Down
47 changes: 44 additions & 3 deletions conf/svcomp.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,15 @@
"thread",
"threadJoins"
],
"path_sens": [
"mutex",
"malloc_null",
"uninit",
"expsplit",
"activeSetjmp",
"memLeak",
"threadflag"
],
"context": {
"widen": false
},
Expand All @@ -52,14 +61,19 @@

"ldv_xmalloc",
"ldv_xzalloc",
"ldv_calloc"
"ldv_calloc",
"ldv_kzalloc"
]
},
"base": {
"arrays": {
"domain": "partitioned"
}
},
"race": {
"free": false,
"call": false
},
"autotune": {
"enabled": true,
"activated": [
Expand All @@ -72,8 +86,8 @@
"wideningThresholds",
"loopUnrollHeuristic",
"memsafetySpecification",
"tmpSpecialAnalysis",
"termination"
"termination",
"tmpSpecialAnalysis"
]
}
},
Expand All @@ -97,6 +111,33 @@
"enabled": true,
"id": "enumerate",
"unknown": false
},
"yaml": {
"enabled": true,
"format-version": "2.0",
"entry-types": [
"invariant_set"
],
"invariant-types": [
"loop_invariant"
]
},
"invariant": {
"loop-head": true,
"after-lock": false,
"other": false,
"accessed": false,
"exact": true,
"exclude-vars": [
"tmp\\(___[0-9]+\\)?",
"cond",
"RETURN",
"__\\(cil_\\)?tmp_?[0-9]*\\(_[0-9]+\\)?",
".*____CPAchecker_TMP_[0-9]+",
"__VERIFIER_assert__cond",
"__ksymtab_.*",
"\\(ldv_state_variable\\|ldv_timer_state\\|ldv_timer_list\\|ldv_irq_\\(line_\\|data_\\)?[0-9]+\\|ldv_retval\\)_[0-9]+"
]
}
},
"pre": {
Expand Down
140 changes: 140 additions & 0 deletions conf/svcomp24-validate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
{
"ana": {
"sv-comp": {
"enabled": true,
"functions": true
},
"int": {
"def_exc": true,
"enums": false,
"interval": true
},
"float": {
"interval": true
},
"activated": [
"base",
"threadid",
"threadflag",
"threadreturn",
"mallocWrapper",
"mutexEvents",
"mutex",
"access",
"race",
"escape",
"expRelation",
"mhp",
"assert",
"var_eq",
"symb_locks",
"region",
"thread",
"threadJoins",
"unassume"
],
"path_sens": [
"mutex",
"malloc_null",
"uninit",
"expsplit",
"activeSetjmp",
"memLeak",
"threadflag"
],
"context": {
"widen": false
},
"malloc": {
"wrappers": [
"kmalloc",
"__kmalloc",
"usb_alloc_urb",
"__builtin_alloca",
"kzalloc",

"ldv_malloc",

"kzalloc_node",
"ldv_zalloc",
"kmalloc_array",
"kcalloc",

"ldv_xmalloc",
"ldv_xzalloc",
"ldv_calloc",
"ldv_kzalloc"
]
},
"base": {
"arrays": {
"domain": "partitioned"
}
},
"race": {
"free": false,
"call": false
},
"autotune": {
"enabled": true,
"activated": [
"singleThreaded",
"mallocWrappers",
"noRecursiveIntervals",
"enums",
"congruence",
"octagon",
"wideningThresholds",
"loopUnrollHeuristic",
"memsafetySpecification",
"termination",
"tmpSpecialAnalysis"
]
},
"widen": {
"tokens": true
}
},
"exp": {
"region-offsets": true
},
"solver": "td3",
"sem": {
"unknown_function": {
"spawn": false
},
"int": {
"signed_overflow": "assume_none"
},
"null-pointer": {
"dereference": "assume_none"
}
},
"witness": {
"graphml": {
"enabled": false
},
"yaml": {
"enabled": false,
"strict": true,
"format-version": "2.0",
"entry-types": [
"location_invariant",
"loop_invariant",
"invariant_set"
],
"invariant-types": [
"location_invariant",
"loop_invariant"
]
},
"invariant": {
"loop-head": true,
"after-lock": true,
"other": true
}
},
"pre": {
"enabled": false
}
}
146 changes: 146 additions & 0 deletions conf/svcomp24.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
{
"ana": {
"sv-comp": {
"enabled": true,
"functions": true
},
"int": {
"def_exc": true,
"enums": false,
"interval": true
},
"float": {
"interval": true
},
"activated": [
"base",
"threadid",
"threadflag",
"threadreturn",
"mallocWrapper",
"mutexEvents",
"mutex",
"access",
"race",
"escape",
"expRelation",
"mhp",
"assert",
"var_eq",
"symb_locks",
"region",
"thread",
"threadJoins"
],
"path_sens": [
"mutex",
"malloc_null",
"uninit",
"expsplit",
"activeSetjmp",
"memLeak",
"threadflag"
],
"context": {
"widen": false
},
"malloc": {
"wrappers": [
"kmalloc",
"__kmalloc",
"usb_alloc_urb",
"__builtin_alloca",
"kzalloc",

"ldv_malloc",

"kzalloc_node",
"ldv_zalloc",
"kmalloc_array",
"kcalloc",

"ldv_xmalloc",
"ldv_xzalloc",
"ldv_calloc",
"ldv_kzalloc"
]
},
"base": {
"arrays": {
"domain": "partitioned"
}
},
"race": {
"free": false,
"call": false
},
"autotune": {
"enabled": true,
"activated": [
"singleThreaded",
"mallocWrappers",
"noRecursiveIntervals",
"enums",
"congruence",
"octagon",
"wideningThresholds",
"loopUnrollHeuristic",
"memsafetySpecification",
"termination",
"tmpSpecialAnalysis"
]
}
},
"exp": {
"region-offsets": true
},
"solver": "td3",
"sem": {
"unknown_function": {
"spawn": false
},
"int": {
"signed_overflow": "assume_none"
},
"null-pointer": {
"dereference": "assume_none"
}
},
"witness": {
"graphml": {
"enabled": true,
"id": "enumerate",
"unknown": false
},
"yaml": {
"enabled": true,
"format-version": "2.0",
"entry-types": [
"invariant_set"
],
"invariant-types": [
"loop_invariant"
]
},
"invariant": {
"loop-head": true,
"after-lock": false,
"other": false,
"accessed": false,
"exact": true,
"exclude-vars": [
"tmp\\(___[0-9]+\\)?",
"cond",
"RETURN",
"__\\(cil_\\)?tmp_?[0-9]*\\(_[0-9]+\\)?",
".*____CPAchecker_TMP_[0-9]+",
"__VERIFIER_assert__cond",
"__ksymtab_.*",
"\\(ldv_state_variable\\|ldv_timer_state\\|ldv_timer_list\\|ldv_irq_\\(line_\\|data_\\)?[0-9]+\\|ldv_retval\\)_[0-9]+"
]
}
},
"pre": {
"enabled": false
}
}
Loading
Loading