File tree Expand file tree Collapse file tree 2 files changed +35
-1
lines changed
sycl/test-e2e/MemorySanitizer Expand file tree Collapse file tree 2 files changed +35
-1
lines changed Original file line number Diff line number Diff line change 1+ // REQUIRES: linux, cpu || (gpu && level_zero)
2+ // RUN: %{build} %device_msan_flags -O1 -g -o %t2.out
3+ // RUN: %{run} not %t2.out 2>&1 | FileCheck %s
4+ // RUN: %{build} %device_msan_flags -O2 -g -o %t3.out
5+ // RUN: %{run} not %t3.out 2>&1 | FileCheck %s
6+
7+ #include < sycl/detail/core.hpp>
8+
9+ __attribute__ ((noinline)) long long foo(int data1, long long data2) {
10+ return data1 + data2;
11+ }
12+
13+ int main () {
14+ sycl::queue q;
15+ int data1[1 ];
16+ long long data2[1 ];
17+
18+ {
19+ sycl::buffer<int , 1 > buf1 (data1, sycl::range<1 >(1 ));
20+ sycl::buffer<long long , 1 > buf2 (data2, sycl::range<1 >(1 ));
21+ q.submit ([&](sycl::handler &h) {
22+ auto array1 = buf1.get_access <sycl::access::mode::read_write>(h);
23+ auto array2 = buf2.get_access <sycl::access::mode::read_write>(h);
24+ h.single_task <class MyKernel >(
25+ [=]() { array1[0 ] = foo (array1[0 ], array2[0 ]); });
26+ }).wait ();
27+ // CHECK: use-of-uninitialized-value
28+ // CHECK: kernel <{{.*MyKernel}}>
29+ // CHECK: #0 {{.*}} {{.*check_buffer_host_ptr.cpp}}:[[@LINE-4]]
30+ }
31+
32+ return 0 ;
33+ }
Original file line number Diff line number Diff line change @@ -20,9 +20,10 @@ int main() {
2020 [=]() { array[0 ] = foo (array[0 ], array[1 ]); });
2121 });
2222 Q.wait ();
23+ // CHECK-NOT: [kernel]
2324 // CHECK: use-of-uninitialized-value
2425 // CHECK: kernel <{{.*MyKernel}}>
25- // CHECK: #0 {{.*}} {{.*check_call.cpp}}:[[@LINE-5 ]]
26+ // CHECK: #0 {{.*}} {{.*check_call.cpp}}:[[@LINE-6 ]]
2627
2728 sycl::free (array, Q);
2829 return 0 ;
You can’t perform that action at this time.
0 commit comments