Skip to content

Commit b0523f4

Browse files
authored
[DevSAN] Fix logic error in function to set private base (#19063)
early return may cause barrier function not work.
1 parent 3094e69 commit b0523f4

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

libdevice/sanitizer/asan_rtl.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -921,12 +921,12 @@ __asan_set_private_base(__SYCL_PRIVATE__ void *ptr) {
921921
launch_info->PrivateBase == 0)
922922
return;
923923
// Only set on the first sub-group item
924-
if (__spirv_BuiltInSubgroupLocalInvocationId != 0)
925-
return;
926-
const size_t sid = SubGroupLinearId();
927-
launch_info->PrivateBase[sid] = (uptr)ptr;
924+
if (__spirv_BuiltInSubgroupLocalInvocationId == 0) {
925+
const size_t sid = SubGroupLinearId();
926+
launch_info->PrivateBase[sid] = (uptr)ptr;
927+
ASAN_DEBUG(__spirv_ocl_printf(__asan_print_private_base, sid, ptr));
928+
}
928929
SubGroupBarrier();
929-
ASAN_DEBUG(__spirv_ocl_printf(__asan_print_private_base, sid, ptr));
930930
}
931931

932932
#endif // __SPIR__ || __SPIRV__

libdevice/sanitizer/msan_rtl.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -592,12 +592,12 @@ __msan_set_private_base(__SYCL_PRIVATE__ void *ptr) {
592592
GetMsanLaunchInfo->PrivateBase == 0)
593593
return;
594594
// Only set on the first sub-group item
595-
if (__spirv_BuiltInSubgroupLocalInvocationId != 0)
596-
return;
597-
const size_t sid = SubGroupLinearId();
598-
GetMsanLaunchInfo->PrivateBase[sid] = (uptr)ptr;
595+
if (__spirv_BuiltInSubgroupLocalInvocationId == 0) {
596+
const size_t sid = SubGroupLinearId();
597+
GetMsanLaunchInfo->PrivateBase[sid] = (uptr)ptr;
598+
MSAN_DEBUG(__spirv_ocl_printf(__msan_print_private_base, sid, ptr));
599+
}
599600
SubGroupBarrier();
600-
MSAN_DEBUG(__spirv_ocl_printf(__msan_print_private_base, sid, ptr));
601601
}
602602

603603
static __SYCL_CONSTANT__ const char __msan_print_strided_copy_unsupport_type[] =

0 commit comments

Comments
 (0)