richardmembarth added a comment. CUDA maps `__shared__` internally also to `__attribute__((shared))`:
#define __annotate__(a) \ __attribute__((a)) #define __location__(a) \ __annotate__(a) ... #define __shared__ \ __location__(shared) My guess is that Clang does it just the same way and only converts to `LangAS::cuda_shared` for code generation in `GetGlobalVarAddressSpace`: https://clang.llvm.org/doxygen/CodeGenModule_8cpp_source.html#l03305 In contrast, OpenCL uses keywords that are mapped directly to `LangAS::opencl_local` etc. Repository: rC Clang https://reviews.llvm.org/D54258 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits