diff options
author | sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> | 2008-12-08 00:12:28 +0000 |
---|---|---|
committer | sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> | 2008-12-08 00:12:28 +0000 |
commit | a781be6728a28c94aec57f793f4d084456e93684 (patch) | |
tree | 1eae8d18b75bccabf21581d668bee0daeb6d2199 /helgrind/hg_errors.c | |
parent | 8f5374ee1084af8cb46ec405a1de38c5aeb9194b (diff) | |
download | valgrind-a781be6728a28c94aec57f793f4d084456e93684.tar.gz |
event_map_lookup: when looking for a previous access to an address,
find conflicting accesses that overlap the current access in any way,
rather than just match at the addresses. This allows reporting of
conflicts between accesses which overlap but are not the same
size/alignment.
Doesn't seem to always work reliably, for reasons I don't understand,
but I so far failed to make a small test case.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8811 a5019735-40e9-0310-863c-91ae7b9d1cf9
Diffstat (limited to 'helgrind/hg_errors.c')
-rw-r--r-- | helgrind/hg_errors.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/helgrind/hg_errors.c b/helgrind/hg_errors.c index 2c70ff62b..008e82bcb 100644 --- a/helgrind/hg_errors.c +++ b/helgrind/hg_errors.c @@ -315,7 +315,7 @@ UInt HG_(update_extra) ( Error* err ) } void HG_(record_error_Race) ( Thread* thr, - Addr data_addr, Bool isWrite, Int szB, + Addr data_addr, Int szB, Bool isWrite, ExeContext* mb_lastlock ) { XError xe; @@ -343,7 +343,7 @@ void HG_(record_error_Race) ( Thread* thr, xe.XE.Race.mb_lastlock = mb_lastlock; xe.XE.Race.thr = thr; tl_assert(isWrite == False || isWrite == True); - // tl_assert(szB == 8 || szB == 4 || szB == 2 || szB == 1); + tl_assert(szB == 8 || szB == 4 || szB == 2 || szB == 1); xe.XE.Race.descr1[0] = xe.XE.Race.descr2[0] = 0; // FIXME: tid vs thr // Skip on any of the conflicting-access info at this point. |