Hello,

 

In this patch I added restrictions for conversions of pointers to different
address spaces as explained below.

 

OpenCLv2.0 C spec s6.5 adds __generic (unnamed) address space to be used as
a place holder in case an address space is not known statically or multiple
are intended to be used with the same fragment of code. 

 

All named address spaces (that existed in the previous OpenCL standards)
except for __constant are subset of __generic one. Conversions between
pointers of different address spaces are regulated by rules in s6.5.5 as
follows:

 

-          The named address spaces  ( __global, __local, and __private) can
be converted to __generic implicitly. Generic -> named can only be done with
an explicit cast.

-          Conversions between pointers of named address spaces are  not
allowed.

-          A pointer to the __constant address space can only be converted
to a pointer to the  __constant address space (either by an implicit cast or
by an explicit one).

 

This patch depends on the change submitted previously:

https://www.mail-archive.com/[email protected]/msg109232.html

 

Thanks,

Anastasia

Attachment: address_space_coversions.patch
Description: Binary data

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to