Skip to content

Commit 4d3ffae

Browse files
authored
[DevMSAN] Only return clean shadow for device usm and ptr with global as (#16567)
1 parent 93de8f1 commit 4d3ffae

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed

libdevice/sanitizer/msan_rtl.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,12 @@ inline uptr __msan_get_shadow_cpu(uptr addr) {
139139
inline uptr __msan_get_shadow_pvc(uptr addr, uint32_t as) {
140140
if (as == ADDRESS_SPACE_GENERIC) {
141141
ConvertGenericPointer(addr, as);
142-
if (as != ADDRESS_SPACE_GLOBAL)
143-
return (uptr)((__SYCL_GLOBAL__ MsanLaunchInfo *)__MsanLaunchInfo.get())
144-
->CleanShadow;
145142
}
146143

144+
if (as != ADDRESS_SPACE_GLOBAL || !(addr & 0xFF00000000000000))
145+
return (uptr)((__SYCL_GLOBAL__ MsanLaunchInfo *)__MsanLaunchInfo.get())
146+
->CleanShadow;
147+
147148
// Device USM only
148149
auto shadow_begin = ((__SYCL_GLOBAL__ MsanLaunchInfo *)__MsanLaunchInfo.get())
149150
->GlobalShadowOffset;
@@ -196,11 +197,6 @@ DEVICE_EXTERN_C_NOINLINE uptr __msan_get_shadow(uptr addr, uint32_t as) {
196197
if (!__MsanLaunchInfo.get())
197198
return shadow_ptr;
198199

199-
if (UNLIKELY(!__MsanLaunchInfo)) {
200-
__spirv_ocl_printf(__msan_print_warning_nolaunchinfo);
201-
return shadow_ptr;
202-
}
203-
204200
auto launch_info = (__SYCL_GLOBAL__ MsanLaunchInfo *)__MsanLaunchInfo.get();
205201
MSAN_DEBUG(__spirv_ocl_printf(__msan_print_launchinfo, (void *)launch_info,
206202
launch_info->GlobalShadowOffset));

0 commit comments

Comments
 (0)