./deagle --no-assertions --datarace --32 /mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c


--------------------------------------------------------------------------------


Deagle version 2.1 64-bit x86_64 linux
which contains:
CBMC version 5.67.0 (SVCOMP2023_221122-2-g2121ef1a2) 64-bit x86_64 linux
Parsing /mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c
Converting
Type-checking popl20-bad-ring-nondet.wvr
Generating GOTO Program
Adding CPROVER library (x86_64)
file <builtin-library-pthread_create> line 20: warning: pointer parameter types differ between declaration and definition "pthread_create"
old definition in module popl20-bad-ring-nondet.wvr file /mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c line 22
signed int (pthread_t *, const pthread_attr_t *, void * (*)(void *), void *)
new definition in module <built-in-library> file <builtin-library-pthread_create> line 20
signed int (pthread_t *thread, const pthread_attr_t *attr, void * (*start_routine)(void *), void *arg)
Removal of function pointers and virtual functions
file <builtin-library-__spawned_thread> line 34 function __spawned_thread: replacing function pointer by 3 possible targets
Generic Property Instrumentation
Running with 8 object bits, 24 offset bits (default)
Starting Bounded Model Checking
Use SV-COMP unwinding strategy: 2
Deagle's solver is set!!!!!!
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 0
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 0
Unwinding loop create_fresh_int_array.0 iteration 1 file /mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c line 166 function create_fresh_int_array thread 0
Not unwinding loop create_fresh_int_array.0 iteration 2 file /mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c line 166 function create_fresh_int_array thread 0
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 0
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 0
Unwinding loop create_fresh_int_array.0 iteration 1 file /mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c line 166 function create_fresh_int_array thread 0
Not unwinding loop create_fresh_int_array.0 iteration 2 file /mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c line 166 function create_fresh_int_array thread 0
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 0
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 0
Unwinding loop create_fresh_int_array.0 iteration 1 file /mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c line 166 function create_fresh_int_array thread 0
Not unwinding loop create_fresh_int_array.0 iteration 2 file /mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c line 166 function create_fresh_int_array thread 0
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 0
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 0
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 1
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 1
Unwinding loop thread1.0 iteration 1 file /mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c line 52 function thread1 thread 1
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 1
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 1
Not unwinding loop thread1.0 iteration 2 file /mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c line 52 function thread1 thread 1
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 1
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 2
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 2
Unwinding loop thread2.0 iteration 1 file /mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c line 82 function thread2 thread 2
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 2
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 2
Not unwinding loop thread2.0 iteration 2 file /mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c line 82 function thread2 thread 2
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 3
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 3
Unwinding loop thread3.0 iteration 1 file /mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c line 104 function thread3 thread 3
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 3
aborting path on assume(false) at file <builtin-library-abort> line 6 function abort thread 3
Not unwinding loop thread3.0 iteration 2 file /mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring[Warning][Unknown] Invalidating expressions: AddrOf(Var(N,
                                     NoOffset)) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:127:3)
[Warning][Unknown] Invalidating expressions: AddrOf(Var(n1, NoOffset)) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:129:3)
[Warning][Unknown] Invalidating expressions: AddrOf(Var(n2, NoOffset)) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:130:3)
[Warning][Unknown] Invalidating expressions: AddrOf(Var(n3, NoOffset)) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:131:3)
[Warning][Unknown] Invalidating expressions: IndexPI(Lval(Var(arr, NoOffset)), Lval(Var(i, NoOffset))) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:167:5)
[Warning][Unknown] Invalidating expressions: IndexPI(Lval(Var(arr,
                                           NoOffset)), Lval(Var(i, NoOffset))) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:167:5)
[Warning][Unknown] Invalidating expressions: IndexPI(Lval(Var(arr,
                                           NoOffset)), Lval(Var(i, NoOffset))) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:167:5)
[Warning][Unknown] Invalidating expressions: AddrOf(Var(q1_front,
                                     NoOffset)) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:137:3)
[Warning][Unknown] Invalidating expressions: AddrOf(Var(q2_front, NoOffset)) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:138:3)
[Warning][Unknown] Invalidating expressions: AddrOf(Var(q3_front, NoOffset)) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:139:3)
[Warning][Race] Memory location q2_back@popl20-bad-ring-nondet.wvr.c:44:34 (race with conf. 110):
  read with {thread:([thread2@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:150:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:89:5)
  read with {thread:([thread2@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:150:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:90:5)
  read with {thread:([thread3@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:151:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:106:5)
  write with {thread:([thread2@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:150:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:90:5)
[Warning][Race] Memory location q3_back@popl20-bad-ring-nondet.wvr.c:44:53 (race with conf. 110):
  read with {thread:([thread1@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:149:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:55:5)
  read with {thread:([thread3@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:151:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:111:5)
  read with {thread:([thread3@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:151:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:112:5)
  write with {thread:([thread3@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:151:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:112:5)
[Warning][Race] Memory location q1_back@popl20-bad-ring-nondet.wvr.c:44:15 (race with conf. 110):
  read with {thread:([thread1@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:149:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:53:5)
  read with {thread:([thread1@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:149:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:57:5)
  read with {thread:([thread1@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:149:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:59:7)
  read with {thread:([thread1@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:149:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:72:3)
  read with {thread:([thread1@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:149:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:73:3)
  read with {thread:([thread2@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:150:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:84:5)
  write with {thread:([thread1@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:149:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:59:7)
  write with {thread:([thread1@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:149:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:73:3)
[Warning][Race] Memory location r@popl20-bad-ring-nondet.wvr.c:44:65 (race with conf. 110):
  read with {thread:([thread1@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:149:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:67:7)
  read with {thread:([main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:155:3)
  write with {thread:([thread1@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:149:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:50:3)
  write with {thread:([thread1@/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:149:3, main], {})} (conf. 110) (/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c:67:7)

Summary for all memory locations:
	safe:           11
	vulnerable:      0
	unsafe:          4
	-------------------
	total:          15
-nondet.wvr.c line 104 function thread3 thread 3
Handling datarace, passing the problem to goblint first
getcwd: /mnt/goblint-svcomp/benchexec/tools-pldi/deagle
/mnt/goblint-svcomp/benchexec/tools-pldi/deagle/goblint/goblint /mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c | tee goblint/goblint_output: 0
Lines where datarace may occur: 106 107 111 112 113 127 128 137 138 155 156 167 168 50 51 53 54 55 56 57 58 59 60 67 68 72 73 74 84 85 89 90 91 
The number of races before goblint filter: 202
The number of races after goblint filter: 24
Race categories: 7
	155(1) - 50(1) r:
		r#2 r#4
		r#3 r#4
	155(1) - 68(1) r:
		r#2 r#7
		r#2 r#10
		r#3 r#7
		r#3 r#10
	167(1) - 57(1) symex_dynamic::dynamic_object1:
		symex_dynamic::dynamic_object1#2 symex_dynamic::dynamic_object1#5
		symex_dynamic::dynamic_object1#2 symex_dynamic::dynamic_object1#6
		symex_dynamic::dynamic_object1#3 symex_dynamic::dynamic_object1#5
		symex_dynamic::dynamic_object1#3 symex_dynamic::dynamic_object1#6
	167(1) - 74(1) symex_dynamic::dynamic_object1:
		symex_dynamic::dynamic_object1#2 symex_dynamic::dynamic_object1#7
		symex_dynamic::dynamic_object1#3 symex_dynamic::dynamic_object1#7
	167(1) - 91(1) symex_dynamic::dynamic_object2:
		symex_dynamic::dynamic_object2#2 symex_dynamic::dynamic_object2#5
		symex_dynamic::dynamic_object2#2 symex_dynamic::dynamic_object2#7
		symex_dynamic::dynamic_object2#3 symex_dynamic::dynamic_object2#5
		symex_dynamic::dynamic_object2#3 symex_dynamic::dynamic_object2#7
	167(1) - 113(1) symex_dynamic::dynamic_object3:
		symex_dynamic::dynamic_object3#2 symex_dynamic::dynamic_object3#9
		symex_dynamic::dynamic_object3#2 symex_dynamic::dynamic_object3#11
		symex_dynamic::dynamic_object3#3 symex_dynamic::dynamic_object3#9
		symex_dynamic::dynamic_object3#3 symex_dynamic::dynamic_object3#11
	167(1) - 68(1) symex_dynamic::dynamic_object3:
		symex_dynamic::dynamic_object3#2 symex_dynamic::dynamic_object3#5
		symex_dynamic::dynamic_object3#2 symex_dynamic::dynamic_object3#7
		symex_dynamic::dynamic_object3#3 symex_dynamic::dynamic_object3#5
		symex_dynamic::dynamic_object3#3 symex_dynamic::dynamic_object3#7
Runtime Symex: 1.5728s
Adding SC constraints
Shared __CPROVER_threads_exited: 6R/4W
Shared __CPROVER_next_thread_id: 5R/4W
Shared q1: 5R/2W
Shared q2: 4R/2W
Shared q3: 4R/2W
Shared q1_front: 2R/4W
Shared q1_back: 17R/5W
Shared q2_front: 2R/4W
Shared q2_back: 4R/4W
Shared q3_front: 4R/4W
Shared q3_back: 4R/4W
Shared N: 2R/2W
Shared r: 4R/4W
Shared n1: 7R/2W
Shared n2: 4R/2W
Shared n3: 4R/2W
Shared main::1::t1!0@1: 2R/2W
Shared main::1::t2!0@1: 2R/2W
Shared main::1::t3!0@1: 2R/2W
Shared symex_dynamic::dynamic_object1: 5R/3W
Shared symex_dynamic::dynamic_object2: 4R/3W
Shared symex_dynamic::dynamic_object3: 4R/3W
size of program expression: 1358 steps
no slicing due to threads
Generated 0 VCC(s), 0 remaining after simplification
Runtime Postprocess Equation: 0.00684368s
Passing problem to propositional reduction
converting SSA
Runtime Convert SSA: 0.00994624s
Set Deagle solver's graph
Running propositional reduction
Post-processing
Runtime Post-process: 0.0427966s
Solving with Deagle's Closure solver
69252 variables, 254063 clauses
ClosureSolver finishes with 23 conflicts, 375 decisions, and 22295 propagations. 153 theory propagations and 1 cycles included.
SAT checker: instance is UNSATISFIABLE
Runtime Solver: 0.0494341s
Runtime decision procedure: 0.0803032s

** Results:
/mnt/goblint-svcomp/benchexec/sv-benchmarks/c/weaver/popl20-bad-ring-nondet.wvr.c function main
[nodatarace.assertion.0] line 151 No data races on variable r between line 155 and line 50: SUCCESS
[nodatarace.assertion.1] line 151 No data races on variable r between line 155 and line 68: SUCCESS
[nodatarace.assertion.2] line 151 No data races on variable symex_dynamic::dynamic_object1 between line 167 and line 57: SUCCESS
[nodatarace.assertion.3] line 151 No data races on variable symex_dynamic::dynamic_object1 between line 167 and line 74: SUCCESS
[nodatarace.assertion.4] line 151 No data races on variable symex_dynamic::dynamic_object2 between line 167 and line 91: SUCCESS
[nodatarace.assertion.5] line 151 No data races on variable symex_dynamic::dynamic_object3 between line 167 and line 113: SUCCESS
[nodatarace.assertion.6] line 151 No data races on variable symex_dynamic::dynamic_object3 between line 167 and line 68: SUCCESS

** 0 of 7 failed (1 iterations)
VERIFICATION SUCCESSFUL
