{
DataRaceErrInfo drei;
- if (drd_is_suppressed(addr, addr + size))
- return;
-
drei.tid = thread_get_running_tid();
drei.addr = addr;
drei.size = size;
drd_trace_mem_access(addr, size, eLoad);
}
if ((s_drd_check_stack_accesses || ! thread_address_on_stack(addr))
- && bm_access_load_triggers_conflict(addr, addr + size))
+ && bm_access_load_triggers_conflict(addr, addr + size)
+ && ! drd_is_suppressed(addr, addr + size))
{
drd_report_race(addr, size, eLoad);
}
drd_trace_mem_access(addr, 1, eLoad);
}
if ((s_drd_check_stack_accesses || ! thread_address_on_stack(addr))
- && bm_access_load_1_triggers_conflict(addr))
+ && bm_access_load_1_triggers_conflict(addr)
+ && ! drd_is_suppressed(addr, addr + 1))
{
drd_report_race(addr, 1, eLoad);
}
drd_trace_mem_access(addr, 2, eLoad);
}
if ((s_drd_check_stack_accesses || ! thread_address_on_stack(addr))
- && bm_access_load_2_triggers_conflict(addr))
+ && bm_access_load_2_triggers_conflict(addr)
+ && ! drd_is_suppressed(addr, addr + 2))
{
drd_report_race(addr, 2, eLoad);
}
drd_trace_mem_access(addr, 4, eLoad);
}
if ((s_drd_check_stack_accesses || ! thread_address_on_stack(addr))
- && bm_access_load_4_triggers_conflict(addr))
+ && bm_access_load_4_triggers_conflict(addr)
+ && ! drd_is_suppressed(addr, addr + 4))
{
drd_report_race(addr, 4, eLoad);
}
drd_trace_mem_access(addr, 8, eLoad);
}
if ((s_drd_check_stack_accesses || ! thread_address_on_stack(addr))
- && bm_access_load_8_triggers_conflict(addr))
+ && bm_access_load_8_triggers_conflict(addr)
+ && ! drd_is_suppressed(addr, addr + 8))
{
drd_report_race(addr, 8, eLoad);
}
drd_trace_mem_access(addr, size, eStore);
}
if ((s_drd_check_stack_accesses || ! thread_address_on_stack(addr))
- && bm_access_store_triggers_conflict(addr, addr + size))
+ && bm_access_store_triggers_conflict(addr, addr + size)
+ && ! drd_is_suppressed(addr, addr + size))
{
drd_report_race(addr, size, eStore);
}
drd_trace_mem_access(addr, 1, eStore);
}
if ((s_drd_check_stack_accesses || ! thread_address_on_stack(addr))
- && bm_access_store_1_triggers_conflict(addr))
+ && bm_access_store_1_triggers_conflict(addr)
+ && ! drd_is_suppressed(addr, addr + 1))
{
drd_report_race(addr, 1, eStore);
}
drd_trace_mem_access(addr, 2, eStore);
}
if ((s_drd_check_stack_accesses || ! thread_address_on_stack(addr))
- && bm_access_store_2_triggers_conflict(addr))
+ && bm_access_store_2_triggers_conflict(addr)
+ && ! drd_is_suppressed(addr, addr + 2))
{
drd_report_race(addr, 2, eStore);
}
drd_trace_mem_access(addr, 4, eStore);
}
if ((s_drd_check_stack_accesses || ! thread_address_on_stack(addr))
- && bm_access_store_4_triggers_conflict(addr))
+ && bm_access_store_4_triggers_conflict(addr)
+ && ! drd_is_suppressed(addr, addr + 4))
{
drd_report_race(addr, 4, eStore);
}
drd_trace_mem_access(addr, 8, eStore);
}
if ((s_drd_check_stack_accesses || ! thread_address_on_stack(addr))
- && bm_access_store_8_triggers_conflict(addr))
+ && bm_access_store_8_triggers_conflict(addr)
+ && ! drd_is_suppressed(addr, addr + 8))
{
drd_report_race(addr, 8, eStore);
}