try wihout *.
EDIT: ust tryed
/tmp/OCLr2eqzX.cl(7): error: field type cannot be qualified with named address
__global int a;
you have struct of pointers which point into different address space. so it is somehow valid as that pointers are in same address space.
nou is correct. The pointers are in the same address space, but they point to data in different address spaces.