Skip to content

Commit 964dac8

Browse files
authored
Eliminate unwanted report when deleting device array (llvm#2046)
2 parents 30ae782 + 0cf1859 commit 964dac8

File tree

1 file changed

+2
-1
lines changed
  • amd/device-libs/asanrtl/src

1 file changed

+2
-1
lines changed

amd/device-libs/asanrtl/src/dm.cl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ static const __constant uchar kAsanHeapLeftRedzoneMagic = (uchar)0xfa;
1515
static const __constant uint kAsanHeapLeftRedzoneMagicx4 = 0xfafafafaU;
1616
static const __constant ulong kAsanHeapLeftRedzoneMagicx8 = 0xfafafafafafafafaUL;
1717
static const __constant uchar kAsanHeapFreeMagic = (uchar)0xfd;
18+
static const __constant uchar kAsanArrayCookieMagic = (uchar)0xac;
1819

1920
extern ulong __ockl_devmem_request(ulong addr, ulong size);
2021

@@ -321,7 +322,7 @@ __asan_free_impl(ulong aa, ulong pc)
321322

322323
uptr sa = MEM_TO_SHADOW(aa);
323324
s8 sb = *(__global s8*) sa;
324-
if (sb != 0 && ((s8)(aa & (SHADOW_GRANULARITY-1)) >= sb)) {
325+
if (sb != 0 && sb != (s8)kAsanArrayCookieMagic && ((s8)(aa & (SHADOW_GRANULARITY-1)) >= sb)) {
325326
REPORT_IMPL(pc, aa, 1, 1, false);
326327
}
327328

0 commit comments

Comments
 (0)