Xcode自动生成用于提交OpenCL内核以调度队列的代码,但似乎它生成的无效代码无法为我的某个内核编译。问题在于结构定义:
typedef struct {
float4 position; ///< The point position.
float4 velocity; ///< The point velocity.
float intensity; ///< The point intensity.
int links[6]; ///< The point links specified as indexes for other points in the array.
float align; ///< Dummy for alignment.
} PointElement;
此代码由Xcode生成:
typedef struct {
cl_float4 position;
cl_float4 velocity;
cl_float intensity;
int [6] links;
cl_float align;
} _PointElement_unalign;
我不是晦涩的C语法变体的专家,但肯定int [6] links;
无效C,因此无法编译。
为什么Xcode会这样做?我自己做错了什么或这是一个错误吗?