@@ -77,6 +77,27 @@ int main() {
7777 static_assert (std::is_error_code_enum<sycl::errc>::value, " errc enum should identify as error code" );
7878 static_assert (!std::is_error_condition_enum<sycl::errc>::value, " errc enum should not identify as error condition" );
7979
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+
80101 std::cout << " OK" << std::endl;
81102 return 0 ;
82103}
0 commit comments