diff --git a/clang/lib/Headers/__clang_cuda_builtin_vars.h b/clang/lib/Headers/__clang_cuda_builtin_vars.h --- a/clang/lib/Headers/__clang_cuda_builtin_vars.h +++ b/clang/lib/Headers/__clang_cuda_builtin_vars.h @@ -101,8 +101,12 @@ __CUDA_DISALLOW_BUILTINVAR_ACCESS(__cuda_builtin_gridDim_t); }; +#ifdef __OPENMP_NVPTX__ +#define __CUDA_BUILTIN_VAR extern const __attribute__((weak)) +#else #define __CUDA_BUILTIN_VAR \ extern const __attribute__((device)) __attribute__((weak)) +#endif __CUDA_BUILTIN_VAR __cuda_builtin_threadIdx_t threadIdx; __CUDA_BUILTIN_VAR __cuda_builtin_blockIdx_t blockIdx; __CUDA_BUILTIN_VAR __cuda_builtin_blockDim_t blockDim; diff --git a/clang/lib/Headers/openmp_wrappers/__clang_openmp_device_functions.h b/clang/lib/Headers/openmp_wrappers/__clang_openmp_device_functions.h --- a/clang/lib/Headers/openmp_wrappers/__clang_openmp_device_functions.h +++ b/clang/lib/Headers/openmp_wrappers/__clang_openmp_device_functions.h @@ -30,6 +30,9 @@ /// Provide definitions for these functions. #include <__clang_cuda_device_functions.h> +/// Provide definition for CUDA builtin variables +#include <__clang_cuda_builtin_vars.h> + #undef __OPENMP_NVPTX__ #undef __CUDA__