const BmAccessTypeT access_type);
VG_REGPARM(2) void DRD_(trace_load)(Addr addr, SizeT size);
VG_REGPARM(2) void DRD_(trace_store)(Addr addr, SizeT size);
+void DRD_(clean_memory)(const Addr a1, const SizeT len);
#endif // __DRD_LOAD_STORE_H
drd_stop_using_mem(a1, len, False);
}
+/**
+ * Discard all information DRD has about memory accesses and client objects
+ * in the specified address range.
+ */
+void DRD_(clean_memory)(const Addr a1, const SizeT len)
+{
+ const Bool is_stack_memory = DRD_(thread_address_on_any_stack)(a1);
+ drd_stop_using_mem(a1, len, is_stack_memory);
+ drd_start_using_mem(a1, len);
+}
+
/**
* Suppress data race reports on all addresses contained in .plt and
* .got.plt sections inside the address range [ a, a + len [. The data in