diff --git a/openmp/libomptarget/plugins-nextgen/amdgpu/src/rtl.cpp b/openmp/libomptarget/plugins-nextgen/amdgpu/src/rtl.cpp --- a/openmp/libomptarget/plugins-nextgen/amdgpu/src/rtl.cpp +++ b/openmp/libomptarget/plugins-nextgen/amdgpu/src/rtl.cpp @@ -2448,9 +2448,8 @@ if (Status != HSA_STATUS_SUCCESS) return Status; - // TODO: This is not allowed by the standard. - char ISAName[Length]; - Status = hsa_isa_get_info_alt(ISA, HSA_ISA_INFO_NAME, ISAName); + std::string ISAName(Length, '\0'); + Status = hsa_isa_get_info_alt(ISA, HSA_ISA_INFO_NAME, ISAName.data()); if (Status != HSA_STATUS_SUCCESS) return Status; @@ -2462,10 +2461,10 @@ if (Err) return std::move(Err); - if (!utils::isImageCompatibleWithEnv(Info, Target)) - return false; + if (utils::isImageCompatibleWithEnv(Info, Target)) + return true; } - return true; + return false; } /// This plugin does not support exchanging data between two devices. diff --git a/openmp/libomptarget/plugins-nextgen/common/PluginInterface/PluginInterface.cpp b/openmp/libomptarget/plugins-nextgen/common/PluginInterface/PluginInterface.cpp --- a/openmp/libomptarget/plugins-nextgen/common/PluginInterface/PluginInterface.cpp +++ b/openmp/libomptarget/plugins-nextgen/common/PluginInterface/PluginInterface.cpp @@ -1165,7 +1165,7 @@ bool Compatible = *CompatibleOrErr; DP("Image is %scompatible with current environment: %s\n", - (Compatible) ? "" : "not", Info->Arch); + (Compatible) ? "" : "not ", Info->Arch); return Compatible; } diff --git a/openmp/libomptarget/plugins-nextgen/cuda/src/rtl.cpp b/openmp/libomptarget/plugins-nextgen/cuda/src/rtl.cpp --- a/openmp/libomptarget/plugins-nextgen/cuda/src/rtl.cpp +++ b/openmp/libomptarget/plugins-nextgen/cuda/src/rtl.cpp @@ -962,10 +962,10 @@ // A cubin generated for a certain compute capability is supported to run // on any GPU with the same major revision and same or higher minor // revision. - if (Major != ImageMajor || Minor < ImageMinor) - return false; + if (Major == ImageMajor && Minor >= ImageMinor) + return true; } - return true; + return false; } };