I am facing a weird compile error, which I think it is caused by structure definition in my kernel.cl file.

I have 4 structures in my kernel file as shown below.

Code :
struct my_vec4f {
   float x, y, z, w ;
typedef struct my_vec4f MyVec4f ;
struct my_vec2f { 
	float x, y ;
typedef struct my_vec2f MyVec2f ;
struct my_vec2i { 
	int x, y ;
typedef struct my_vec2i MyVec2i ;
struct my_vec4i{
	int x,y,z,w;
typedef struct my_vec4i MyVec4i;

The first two are used in my kernel function, and the other two (vec2i, vec4i) are not used yet, but I will use them for kernel implementation.

The problem is that compile errors occur when I compile my_kernel.cl file with all four structures.
Moerover, the error message obtained by clGetProgramBuildInfo provide wrong information about the code, which has no errors.

However, when I remove one of them (just removing one of definitions of vec2i and vec4i, so I have only 3 structures),
the kernel is successfully built without errors.

This is very weird.
Anybody can help me how to solve this problem ?

By the way, I'm using GeForce 8800 GTX for OpenCL programming.