I reproducibly get data race reports for sword internal functions when applying sword to no-race kernels from DataRaceBench (e.g. DRB053):
--------------------------------------------------
WARNING: SWORD: data race (program=a.out)
Two different threads made the following accesses:
Write of size 4 in operator==(Access const&, Access const&) at sword/rtl/sword_common.h:134:27
Write of size 4 in operator==(Access const&, Access const&) at sword/rtl/sword_common.h:134:27
--------------------------------------------------
--------------------------------------------------
WARNING: SWORD: data race (program=a.out)
Two different threads made the following accesses:
Write of size 4 in operator==(Access const&, Access const&) at sword/rtl/sword_common.h:134:27
Read of size 4 in Access::getPC() const at sword/rtl/sword_common.h:128:15
(inlined by) operator==(Access const&, Access const&) at sword/rtl/sword_common.h:135:0
--------------------------------------------------
In other cases I get:
--------------------------------------------------
WARNING: SWORD: data race (program=a.out)
Two different threads made the following accesses:
Write of size 4 in _fini at ??:0:0
Write of size 4 in _fini at ??:0:0
--------------------------------------------------
--------------------------------------------------
WARNING: SWORD: data race (program=a.out)
Two different threads made the following accesses:
Write of size 4 in _fini at ??:0:0
Read of size 4 in _fini at ??:0:0
--------------------------------------------------
I reproducibly get data race reports for sword internal functions when applying sword to no-race kernels from DataRaceBench (e.g. DRB053):
In other cases I get: