@@ -77,6 +77,27 @@ int main() {
77
77
static_assert (std::is_error_code_enum<sycl::errc>::value, " errc enum should identify as error code" );
78
78
static_assert (!std::is_error_condition_enum<sycl::errc>::value, " errc enum should not identify as error condition" );
79
79
80
+ // Test errc_for and backends. Should compile without complaint.
81
+ constexpr int EC = 1 ;
82
+ sycl::backend_traits<sycl::backend::opencl>::errc someOpenCLErrCode{EC};
83
+ sycl::errc_for<sycl::backend::opencl> anotherOpenCLErrCode{EC};
84
+ assert (someOpenCLErrCode == anotherOpenCLErrCode);
85
+ sycl::backend_traits<sycl::backend::level_zero>::errc someL0ErrCode{EC};
86
+ sycl::errc_for<sycl::backend::level_zero> anotherL0ErrCode{EC};
87
+ assert (someL0ErrCode == anotherL0ErrCode);
88
+ sycl::backend_traits<sycl::backend::host>::errc someHOSTErrCode{EC};
89
+ sycl::errc_for<sycl::backend::host> anotherHOSTErrCode{EC};
90
+ assert (someHOSTErrCode == anotherHOSTErrCode);
91
+ sycl::backend_traits<sycl::backend::cuda>::errc someCUDAErrCode{EC};
92
+ sycl::errc_for<sycl::backend::cuda> anotherCUDAErrCode{EC};
93
+ assert (someCUDAErrCode == anotherCUDAErrCode);
94
+ sycl::backend_traits<sycl::backend::esimd_cpu>::errc someESIMDErrCode{EC};
95
+ sycl::errc_for<sycl::backend::esimd_cpu> anotherESIMDErrCode{EC};
96
+ assert (someESIMDErrCode == anotherESIMDErrCode);
97
+ sycl::backend_traits<sycl::backend::rocm>::errc someROCMErrCode{EC};
98
+ sycl::errc_for<sycl::backend::rocm> anotherROCMErrCode{EC};
99
+ assert (someROCMErrCode == anotherROCMErrCode);
100
+
80
101
std::cout << " OK" << std::endl;
81
102
return 0 ;
82
103
}
0 commit comments