|
|
@ -1461,13 +1461,13 @@ let report_unsafe_accesses (aggregated_access_map: reported_access list AccessLi
|
|
|
|
let conflicting_writes =
|
|
|
|
let conflicting_writes =
|
|
|
|
List.filter
|
|
|
|
List.filter
|
|
|
|
~f:(fun {access; precondition; threads= other_threads} ->
|
|
|
|
~f:(fun {access; precondition; threads= other_threads} ->
|
|
|
|
|
|
|
|
TraceElem.is_write access
|
|
|
|
|
|
|
|
&&
|
|
|
|
match precondition with
|
|
|
|
match precondition with
|
|
|
|
| AccessPrecondition.Unprotected _ ->
|
|
|
|
| Unprotected _ | TotallyUnprotected ->
|
|
|
|
TraceElem.is_write access && ThreadsDomain.is_any other_threads
|
|
|
|
ThreadsDomain.is_any other_threads
|
|
|
|
| AccessPrecondition.Protected other_excl when is_opposite (excl, other_excl) ->
|
|
|
|
| Protected other_excl ->
|
|
|
|
TraceElem.is_write access
|
|
|
|
is_opposite (excl, other_excl) )
|
|
|
|
| _ ->
|
|
|
|
|
|
|
|
false )
|
|
|
|
|
|
|
|
accesses
|
|
|
|
accesses
|
|
|
|
in
|
|
|
|
in
|
|
|
|
if not (List.is_empty conflicting_writes) then
|
|
|
|
if not (List.is_empty conflicting_writes) then
|
|
|
|