@@ -21,28 +21,22 @@ namespace detail {
2121void adapter_impl::ur_failed_throw_exception (sycl::errc errc,
2222 ur_result_t ur_result) const {
2323 assert (ur_result != UR_RESULT_SUCCESS);
24+ std::string message =
25+ __SYCL_UR_ERROR_REPORT (MBackend) + codeToString (ur_result);
26+
2427 if (ur_result == UR_RESULT_ERROR_ADAPTER_SPECIFIC) {
2528 assert (!adapterReleased);
26- const char *message = nullptr ;
29+ const char *last_error_message = nullptr ;
2730 int32_t adapter_error = 0 ;
2831 ur_result = call_nocheck<UrApiKind::urAdapterGetLastError>(
29- MAdapter, &message, &adapter_error);
30- throw sycl::detail::set_ur_error (
31- sycl::exception (sycl::make_error_code (errc),
32- __SYCL_UR_ERROR_REPORT (MBackend) +
33- sycl::detail::codeToString (ur_result) +
34- (message ? " \n " + std::string (message) +
35- " (adapter error )" +
36- std::to_string (adapter_error) + " \n "
37- : std::string{})),
38- ur_result);
32+ MAdapter, &last_error_message, &adapter_error);
33+ if (last_error_message)
34+ message += " \n " + std::string (last_error_message) + " (adapter error )" +
35+ std::to_string (adapter_error) + " \n " ;
3936 }
4037
41- throw sycl::detail::set_ur_error (
42- sycl::exception (sycl::make_error_code (errc),
43- __SYCL_UR_ERROR_REPORT (MBackend) +
44- sycl::detail::codeToString (ur_result)),
45- ur_result);
38+ throw set_ur_error (sycl::exception (sycl::make_error_code (errc), message),
39+ ur_result);
4640}
4741
4842} // namespace detail
0 commit comments