Xcode は、ディスパッチ キューに OpenCL カーネルを送信するためのコードを自動的に生成しますが、カーネルの 1 つに対してコンパイルできない無効なコードを生成するようです。問題は構造体定義にあります:
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はこれを行うのですか? 自分で何か間違ったことをしたのでしょうか、それともバグですか?