yaxunl added a comment.

In https://reviews.llvm.org/D23086#515506, @Anastasia wrote:

>




> Surely vendors can re-implement all OpenCL types with an implicit typedef. 
> For example this would just work:

> 

>   typedef int queue_t;

>   void bar(queue_t q);

>    

> 

> I am afraid we will need to provide some implementation to ndrange_t in Clang 
> itself, otherwise I don't see how it could work. Also it would be good to 
> offer standard functionality without any extra includes just like it worked 
> up to now for all other features.


It will work if we have a way to identify whether a type is ndrange_t type. So 
far I have suggested to compare the canonical types. Basically when we see a 
declaration of typedef with name 'ndrange_t', we save its canonical type X to 
ASTContext. When we need to check if type Y is ndrange_t, we just need to check 
Y->getCanonicalType() == X.

On the other hand, pre-define ndrange_t in Clang does not solve the problem of 
how to decide if a type is ndrange_t, since user can define typedefs for 
ndrange_t, e.g.

  typedef ndrange_t my_ndrange_t;

In this case, we still need to check the canonical type.


Repository:
  rL LLVM

https://reviews.llvm.org/D23086



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to