the parser is very wrong in my context
I'm having parsing issues that reders the SDK unusable.
My platform :
OS : linux AMD64 (virtual machine with ubuntu 11.10 AMD64 guest on a windows7 x64 host)
CPU : AMD A8
APP SDK version : 2.6
The following code will build and execute fine, but as soon as I change some random meaning less part of it it fails. For example, if I remove the blank line before #pragma [...] the build fails with :
BUILD LOG
************************************************
/tmp/OCLQcu9fF.cl(1): warning: null (zero) character in input line ignored
pragma OPENCL EXTENSION cl_amd_printf : enable
^
/tmp/OCLQcu9fF.cl(1): error: identifier "pragma" is undefined
pragma OPENCL EXTENSION cl_amd_printf : enable
^
/tmp/OCLQcu9fF.cl(1): error: expected a ";"
pragma OPENCL EXTENSION cl_amd_printf : enable
^
./src/Types.h(33): warning: parsing restarts here after previous syntax error
} Transform;
^
./src/ElementData.h(16): error: identifier "Transform" is undefined
Transform transform;
^
/tmp/OCLQcu9fF.cl(11): error: function "printf" declared implicitly
printf("global id = %u element id = %u \n", id, iid);
^
4 errors detected in the compilation of "/tmp/OCLQcu9fF.cl".
Internal error: clc compiler invocation failed.
************************************************
Program::build() failed (-11)
#pragma OPENCL EXTENSION cl_amd_printf : enable #include "Types.h" #include "ElementData.h" __kernel void transform(__global ElementData * elements, __global const size_t * ids) { int id = get_global_id(0); size_t iid = ids[id]; printf("global id = %u element id = %u \n", id, iid); }