Skip to content

Commit 07d0812

Browse files
[SYCL] Fix minor issues found from Klocwork review (#2780)
Signed-off-by: Chris Perkins <chris.perkins@intel.com>
1 parent e8f0b98 commit 07d0812

File tree

1 file changed

+29
-16
lines changed

1 file changed

+29
-16
lines changed

sycl/source/detail/program_manager/program_manager.cpp

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -477,30 +477,43 @@ ProgramManager::getPiProgramFromPiKernel(RT::PiKernel Kernel,
477477

478478
string_class ProgramManager::getProgramBuildLog(const RT::PiProgram &Program,
479479
const ContextImplPtr Context) {
480-
size_t Size = 0;
480+
size_t PIDevicesSize = 0;
481481
const detail::plugin &Plugin = Context->getPlugin();
482482
Plugin.call<PiApiKind::piProgramGetInfo>(Program, PI_PROGRAM_INFO_DEVICES, 0,
483-
nullptr, &Size);
484-
vector_class<RT::PiDevice> PIDevices(Size / sizeof(RT::PiDevice));
483+
nullptr, &PIDevicesSize);
484+
vector_class<RT::PiDevice> PIDevices(PIDevicesSize / sizeof(RT::PiDevice));
485485
Plugin.call<PiApiKind::piProgramGetInfo>(Program, PI_PROGRAM_INFO_DEVICES,
486-
Size, PIDevices.data(), nullptr);
486+
PIDevicesSize, PIDevices.data(),
487+
nullptr);
487488
string_class Log = "The program was built for " +
488489
std::to_string(PIDevices.size()) + " devices";
489490
for (RT::PiDevice &Device : PIDevices) {
491+
std::string DeviceBuildInfoString;
492+
size_t DeviceBuildInfoStrSize = 0;
490493
Plugin.call<PiApiKind::piProgramGetBuildInfo>(
491-
Program, Device, CL_PROGRAM_BUILD_LOG, 0, nullptr, &Size);
492-
vector_class<char> DeviceBuildInfo(Size);
493-
Plugin.call<PiApiKind::piProgramGetBuildInfo>(
494-
Program, Device, CL_PROGRAM_BUILD_LOG, Size, DeviceBuildInfo.data(),
495-
nullptr);
496-
Plugin.call<PiApiKind::piDeviceGetInfo>(Device, PI_DEVICE_INFO_NAME, 0,
497-
nullptr, &Size);
498-
vector_class<char> DeviceName(Size);
499-
Plugin.call<PiApiKind::piDeviceGetInfo>(Device, PI_DEVICE_INFO_NAME, Size,
500-
DeviceName.data(), nullptr);
494+
Program, Device, CL_PROGRAM_BUILD_LOG, 0, nullptr,
495+
&DeviceBuildInfoStrSize);
496+
if (DeviceBuildInfoStrSize > 0) {
497+
vector_class<char> DeviceBuildInfo(DeviceBuildInfoStrSize);
498+
Plugin.call<PiApiKind::piProgramGetBuildInfo>(
499+
Program, Device, CL_PROGRAM_BUILD_LOG, DeviceBuildInfoStrSize,
500+
DeviceBuildInfo.data(), nullptr);
501+
DeviceBuildInfoString = std::string(DeviceBuildInfo.data());
502+
}
501503

502-
Log += "\nBuild program log for '" + string_class(DeviceName.data()) +
503-
"':\n" + string_class(DeviceBuildInfo.data());
504+
std::string DeviceNameString;
505+
size_t DeviceNameStrSize = 0;
506+
Plugin.call<PiApiKind::piDeviceGetInfo>(Device, PI_DEVICE_INFO_NAME, 0,
507+
nullptr, &DeviceNameStrSize);
508+
if (DeviceNameStrSize > 0) {
509+
vector_class<char> DeviceName(DeviceNameStrSize);
510+
Plugin.call<PiApiKind::piDeviceGetInfo>(Device, PI_DEVICE_INFO_NAME,
511+
DeviceNameStrSize,
512+
DeviceName.data(), nullptr);
513+
DeviceNameString = std::string(DeviceName.data());
514+
}
515+
Log += "\nBuild program log for '" + DeviceNameString + "':\n" +
516+
DeviceBuildInfoString;
504517
}
505518
return Log;
506519
}

0 commit comments

Comments
 (0)