jhuber6 wrote: > > They should not "just work" if you're compiling for vanilla C/C++ (so not > > CUDA C++, or SYCL, or OpenCL C/C++ etc.) because neither of those defines > > such a notion. > > [a6a237f](https://github.com/llvm/llvm-project/commit/a6a237f2046ad8993db30481c8b61aeb2f73a5ad) > added an explicit addrspace_cast operator. It would be better to use > something like this rather than just freely enabling any implicit cast
That's only enabled in OpenCLC++ I think? We could probably make a patch to enable it in C++. (Guessing we'd need to call it `__addrspace_cast` or `__builtin_addrspace_cast`. However it's still a huge pain to work with. I tried adding an option to relax the rules but it's much more difficult than I anticipated because it requires forwarding the language options to every 100 or so places that Sema wants to check if the types are legal. OpenCL3.0 lets you enable it for convenience so I'd like that kind of behavior (We probably also do want addrspace cast in general). But it seems like it might be really, really annoying to enable that without becoming beholden to OpenCL rules. The only way I could thing to change these rules optionally would be to introduce a ton of new addrspace rules which are basically just OpenCL but not. https://github.com/llvm/llvm-project/pull/112248 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits