[PATCH] D55850: [OpenCL] Allow address spaces as method qualifiers

Anastasia Stulova via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 24 07:07:42 PST 2019


Anastasia added a comment.

In D55850#1369008 <https://reviews.llvm.org/D55850#1369008>, @ebevhan wrote:

> I think the code that comes to mind is mostly like in `GetTypeSourceInfoForDeclarator`:
>
>   LangAS AS =
>       (ASIdx == LangAS::Default ? LangAS::opencl_generic : ASIdx);
>   
>
> It's behind an OpenCLCPlusPlus guard so it won't add generic on anything if it's not OpenCL++, but there shouldn't be a reason why the rest of the code in that block won't work for regular C++.
>
> In fact, in most regular C++ this would be an issue, since Default typically _is_ the 'generic' address space there.


Yes, `opencl_generic` is something quite specific to OpenCL I feel. I am not sure we can generalize it to C++.  I would quite like to understand this better. However, I think we could potentially implement `opencl_generic` using `Default` if only earlier OpenCL implementations wouldn't use `Default` for `opencl_private`. And because everything was built on top of this assumption it's now a big and a scary refactoring change to make. However, I think we can align different language modes better if `opencl_generic` could be implemented as `Default`. I might look into this at some point.


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D55850/new/

https://reviews.llvm.org/D55850





More information about the cfe-commits mailing list