issues about assigning string literal to __constant char* in OpenCL

I was trying to compile some simple OpenCL source with clang:

__constant char* __constant a = “hello”; // <----- error in line 1

int myprintf(__constant char * restrict format, …);

void foo() {

myprintf("%d\n", 5); // <------------ error in line 6


Clang emits error msg:

1:18: error: initializing ‘__constant char *’ with an expression of type ‘char *’ changes address space of pointer

:6:12: error: passing ‘char *’ to parameter of type ‘__constant char *’ changes address space of pointer

Is this a bug? Otherwise how do I initialize a __constant char* __constant? Thanks.