diff --git a/clang/lib/Basic/Targets/NVPTX.cpp b/clang/lib/Basic/Targets/NVPTX.cpp --- a/clang/lib/Basic/Targets/NVPTX.cpp +++ b/clang/lib/Basic/Targets/NVPTX.cpp @@ -179,7 +179,7 @@ MacroBuilder &Builder) const { Builder.defineMacro("__PTX__"); Builder.defineMacro("__NVPTX__"); - if (Opts.CUDAIsDevice) { + if (Opts.CUDAIsDevice || Opts.OpenMPIsDevice) { // Set __CUDA_ARCH__ for the GPU specified. std::string CUDAArchCode = [this] { switch (GPU) { diff --git a/clang/test/OpenMP/driver-openmp-target.c b/clang/test/OpenMP/driver-openmp-target.c --- a/clang/test/OpenMP/driver-openmp-target.c +++ b/clang/test/OpenMP/driver-openmp-target.c @@ -1,4 +1,8 @@ // REQUIRES: x86-registered-target +// REQUIRES: nvptx-registered-target // REQUIRES: clang-target-64-bits + // RUN: %clang %s -c -E -dM -fopenmp=libomp -fopenmp-version=45 -fopenmp-targets=x86_64-unknown-unknown -o - | FileCheck --check-prefix=CHECK-45-VERSION %s // CHECK-45-VERSION: #define _OPENMP 201511 +// RUN: %clang %s -c -E -dM -fopenmp=libomp -nogpulib --offload-arch=sm_70 --offload-device-only -o - | FileCheck --check-prefix=CHECK-CUDA-ARCH %s +// CHECK-CUDA-ARCH: #define __CUDA_ARCH__ 700