【发布时间】:2012-02-25 02:19:33
【问题描述】:
以下代码使用 intel/nVidia OpenCL 编译器(均基于 LLVM)进行编译:
struct Foo{ float2 bar; };
void baz(){
global struct Foo* foo;
((float*)(&foo->bar))[1]=1;
}
AMD 编译器说invalid type conversion,并且只接受带有global 资格的代码:
((global float*))(&foo->bar))[1]=1;
根据规范,哪些是正确的? (并且:我应该在某处报告不合格的编译器吗?)
【问题讨论】:
-
可能是 AMD 编译器,因为 nVidia 编译器通常更宽松。 Intel/nVidia 编译器是否接受具有全局资格的代码?
-
global的变体被所有人接受。 -
抱歉,我们真的不再鼓励列出问题了。
标签: opencl intel nvidia amd-processor