diff --git a/sycl/source/detail/program_impl.cpp b/sycl/source/detail/program_impl.cpp index 4a8197d8f9e2e..d315a0ee23c7a 100644 --- a/sycl/source/detail/program_impl.cpp +++ b/sycl/source/detail/program_impl.cpp @@ -304,23 +304,24 @@ kernel program_impl::get_kernel(string_class KernelName, vector_class> program_impl::get_binaries() const { throw_if_state_is(program_state::none); + if (is_host()) + return {}; + vector_class> Result; const detail::plugin &Plugin = getPlugin(); - if (!is_host()) { - vector_class BinarySizes(MDevices.size()); - Plugin.call( - MProgram, PI_PROGRAM_INFO_BINARY_SIZES, - sizeof(size_t) * BinarySizes.size(), BinarySizes.data(), nullptr); - - vector_class Pointers; - for (size_t I = 0; I < BinarySizes.size(); ++I) { - Result.emplace_back(BinarySizes[I]); - Pointers.push_back(Result[I].data()); - } - Plugin.call(MProgram, PI_PROGRAM_INFO_BINARIES, - sizeof(char *) * Pointers.size(), - Pointers.data(), nullptr); + vector_class BinarySizes(MDevices.size()); + Plugin.call( + MProgram, PI_PROGRAM_INFO_BINARY_SIZES, + sizeof(size_t) * BinarySizes.size(), BinarySizes.data(), nullptr); + + vector_class Pointers; + for (size_t I = 0; I < BinarySizes.size(); ++I) { + Result.emplace_back(BinarySizes[I]); + Pointers.push_back(Result[I].data()); } + Plugin.call(MProgram, PI_PROGRAM_INFO_BINARIES, + sizeof(char *) * Pointers.size(), + Pointers.data(), nullptr); return Result; }