remove variable length arrays in gpu lib

This commit is contained in:
Axel Kohlmeyer
2018-05-08 00:48:53 -04:00
parent c9817b0db9
commit e7e1827e57
4 changed files with 11 additions and 7 deletions

View File

@ -353,7 +353,7 @@ int UCL_Device::set_platform(int pid) {
_num_devices=0;
return UCL_ERROR;
}
cl_device_id device_list[_num_devices];
cl_device_id *device_list = new cl_device_id[_num_devices];
CL_SAFE_CALL(clGetDeviceIDs(_cl_platform,CL_DEVICE_TYPE_ALL,n,device_list,
&n));
@ -362,7 +362,7 @@ int UCL_Device::set_platform(int pid) {
_cl_devices.push_back(device_list[i]);
add_properties(device_list[i]);
}
delete[] device_list;
return UCL_SUCCESS;
}
@ -518,13 +518,14 @@ int UCL_Device::device_type(const int i) {
int UCL_Device::set(int num) {
clear();
cl_device_id device_list[_num_devices];
cl_device_id *device_list = new cl_device_id[_num_devices];
cl_uint n;
CL_SAFE_CALL(clGetDeviceIDs(_cl_platform,CL_DEVICE_TYPE_ALL,_num_devices,
device_list,&n));
_device=num;
_cl_device=device_list[_device];
delete[] device_list;
return create_context();
}

View File

@ -111,7 +111,7 @@ class UCL_Program {
size_t ms;
CL_SAFE_CALL(clGetProgramBuildInfo(_program,_device,CL_PROGRAM_BUILD_LOG,0,
NULL, &ms));
char build_log[ms];
char *build_log = new char[ms];
CL_SAFE_CALL(clGetProgramBuildInfo(_program,_device,CL_PROGRAM_BUILD_LOG,ms,
build_log, NULL));
@ -127,8 +127,9 @@ class UCL_Program {
<< "----------------------------------------------------------\n";
std::cerr << build_log << std::endl;
#endif
delete[] build_log;
return UCL_COMPILE_ERROR;
}
} else delete[] build_log;
}
return UCL_SUCCESS;

View File

@ -407,7 +407,7 @@ inline void _ocl_build(cl_program &program, cl_device_id &device,
size_t ms;
CL_SAFE_CALL(clGetProgramBuildInfo(program, device,CL_PROGRAM_BUILD_LOG, 0,
NULL, &ms));
char build_log[ms];
char *build_log = new char[ms];
CL_SAFE_CALL(clGetProgramBuildInfo(program,device,CL_PROGRAM_BUILD_LOG,ms,
build_log, NULL));
@ -416,6 +416,7 @@ inline void _ocl_build(cl_program &program, cl_device_id &device,
<< " Error compiling OpenCL Program...\n"
<< "----------------------------------------------------------\n";
std::cerr << build_log << std::endl;
delete[] build_log;
}
inline void _ocl_kernel_from_source(cl_context &context, cl_device_id &device,