diff --git a/sycl/unittests/SYCL2020/KernelBundleStateFiltering.cpp b/sycl/unittests/SYCL2020/KernelBundleStateFiltering.cpp index 7e923ca7728c2..46899d9452df0 100644 --- a/sycl/unittests/SYCL2020/KernelBundleStateFiltering.cpp +++ b/sycl/unittests/SYCL2020/KernelBundleStateFiltering.cpp @@ -105,8 +105,9 @@ ur_result_t redefinedUrProgramCreate(void *pParams) { ur_result_t redefinedUrProgramCreateWithBinary(void *pParams) { auto params = *static_cast(pParams); - for (uint32_t i = 0; i < *params.pnumDevices; ++i) - redefinedUrProgramCreateCommon(*params.pppBinaries[i]); + // All numDevices entries of ppBinaries point to the same image, so only the + // first one needs to be tracked. + redefinedUrProgramCreateCommon(**params.pppBinaries); return UR_RESULT_SUCCESS; } diff --git a/sycl/unittests/helpers/MockDeviceImage.hpp b/sycl/unittests/helpers/MockDeviceImage.hpp index 3e1d56b27d432..e82058eb1cb47 100644 --- a/sycl/unittests/helpers/MockDeviceImage.hpp +++ b/sycl/unittests/helpers/MockDeviceImage.hpp @@ -378,11 +378,10 @@ inline MockProperty makeSpecConstant(std::vector &ValData, std::initializer_list IDs, std::initializer_list Offsets, std::tuple DefaultValues) { - const size_t PropByteArraySize = sizeof...(T) * sizeof(uint32_t) * 3; + const uint64_t PropByteArraySize = sizeof...(T) * sizeof(uint32_t) * 3; std::vector DescData; DescData.resize(8 + PropByteArraySize); - std::uninitialized_copy(&PropByteArraySize, &PropByteArraySize + 8, - DescData.data()); + std::memcpy(DescData.data(), &PropByteArraySize, sizeof(PropByteArraySize)); if (ValData.empty()) ValData.resize(8); // Reserve first 8 bytes for array size. @@ -397,8 +396,7 @@ inline MockProperty makeSpecConstant(std::vector &ValData, decltype(DefaultValues)>::type)); // Update raw data array size uint64_t NewValSize = ValData.size(); - std::uninitialized_copy(&NewValSize, &NewValSize + sizeof(uint64_t), - ValData.data()); + std::memcpy(ValData.data(), &NewValSize, sizeof(NewValSize)); } auto FillData = [PrevOffset = 0, PrevSize, &ValData, &IDs, &Offsets, @@ -516,10 +514,10 @@ inline MockProperty makeAspectsProp(const std::vector &Aspects) { std::vector ValData(BYTES_FOR_SIZE + Aspects.size() * sizeof(sycl::aspect)); uint64_t ValDataSize = ValData.size(); - std::uninitialized_copy(&ValDataSize, &ValDataSize + sizeof(uint64_t), - ValData.data()); + std::memcpy(ValData.data(), &ValDataSize, sizeof(ValDataSize)); auto *AspectsPtr = reinterpret_cast(&Aspects[0]); - std::uninitialized_copy(AspectsPtr, AspectsPtr + Aspects.size(), + std::uninitialized_copy(AspectsPtr, + AspectsPtr + Aspects.size() * sizeof(sycl::aspect), ValData.data() + BYTES_FOR_SIZE); return {"aspects", ValData, SYCL_PROPERTY_TYPE_BYTE_ARRAY}; } @@ -528,8 +526,7 @@ inline MockProperty makeReqdWGSizeProp(const std::vector &ReqdWGSize) { const size_t BYTES_FOR_SIZE = 8; std::vector ValData(BYTES_FOR_SIZE + ReqdWGSize.size() * sizeof(int)); uint64_t ValDataSize = ValData.size(); - std::uninitialized_copy(&ValDataSize, &ValDataSize + sizeof(uint64_t), - ValData.data()); + std::memcpy(ValData.data(), &ValDataSize, sizeof(ValDataSize)); auto *ReqdWGSizePtr = reinterpret_cast(&ReqdWGSize[0]); std::uninitialized_copy(ReqdWGSizePtr, ReqdWGSizePtr + ReqdWGSize.size() * sizeof(int),