P4 to Git Change 1200677 by mbareghe@mbareghe_stg_win30 on 2015/10/16 10:11:30
SWDEV-78915 - SYCL - segfault building SPIR binary where the kernel name exceeds 255 characters - changed kernel/arg name type from char[] to string to avoid the 256 character limitation.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#304 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.hpp#122 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#211 edit
[ROCm/clr commit: fab877c56d]
Tá an tiomantas seo le fáil i:
@@ -144,7 +144,7 @@ expect(const std::string& str, size_t* pos, const std::string& sym)
|
||||
}
|
||||
|
||||
bool
|
||||
getword(const std::string& str, size_t* pos, char* sym)
|
||||
getword(const std::string& str, size_t* pos, std::string& sym)
|
||||
{
|
||||
if (*pos == std::string::npos) {
|
||||
return false;
|
||||
@@ -155,9 +155,7 @@ getword(const std::string& str, size_t* pos, char* sym)
|
||||
size_t count = posEnd - *pos;
|
||||
|
||||
if (count != 0) {
|
||||
if (!str.copy(sym, count, *pos)) {
|
||||
return false;
|
||||
}
|
||||
sym = str.substr(*pos, count);
|
||||
}
|
||||
sym[count] = 0;
|
||||
*pos = posEnd + 1;
|
||||
@@ -2527,7 +2525,7 @@ NullKernel::parseArguments(const std::string& metaData, uint* uavRefCount)
|
||||
break;
|
||||
}
|
||||
|
||||
char argName[256];
|
||||
std::string argName;
|
||||
// Save the argument type
|
||||
arg.type_ = ArgState[i].type_;
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ bool expect(
|
||||
bool getword(
|
||||
const std::string& str, //!< The original std::string
|
||||
size_t* pos, //!< Position to start
|
||||
char* sym //!< Returned word
|
||||
std::string& sym //!< Returned word
|
||||
);
|
||||
|
||||
/*! \brief Helper function for the std::string processing.
|
||||
|
||||
@@ -1085,7 +1085,7 @@ NullProgram::findILFuncs(const std::string& source,
|
||||
|
||||
// Loop through all provided program arguments
|
||||
while (pos != std::string::npos) {
|
||||
char funcName[256];
|
||||
std::string funcName;
|
||||
ILFunc func;
|
||||
|
||||
func.code_.begin_ = pos;
|
||||
@@ -1445,7 +1445,7 @@ NullProgram::parseKernels(const std::string& source)
|
||||
pos = 0;
|
||||
// Find all available metadata structures
|
||||
for (size_t i = 0; i < funcs_.size(); ++i) {
|
||||
char funcName[256];
|
||||
std::string funcName;
|
||||
ILFunc::SourceRange range;
|
||||
|
||||
// Find function metadata start
|
||||
|
||||
Tagairt in Eagrán Nua
Cuir bac ar úsáideoir