diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp index cab97b1a601a..3ebbd30195b3 100644 --- a/clang/lib/Driver/ToolChain.cpp +++ b/clang/lib/Driver/ToolChain.cpp @@ -68,7 +68,8 @@ static ToolChain::RTTIMode CalculateRTTIMode(const ArgList &Args, } // -frtti is default, except for the PS4 CPU. - return (Triple.isPS4CPU()) ? ToolChain::RM_Disabled : ToolChain::RM_Enabled; + return (Triple.isPS4CPU() || Triple.isNVPTX()) ? ToolChain::RM_Disabled + : ToolChain::RM_Enabled; } ToolChain::ToolChain(const Driver &D, const llvm::Triple &T, diff --git a/clang/test/Driver/openmp-offload-gpu.cpp b/clang/test/Driver/openmp-offload-gpu.cpp new file mode 100644 index 000000000000..9da7308506ae --- /dev/null +++ b/clang/test/Driver/openmp-offload-gpu.cpp @@ -0,0 +1,20 @@ +/// +/// Perform several driver tests for OpenMP offloading +/// + +// REQUIRES: clang-driver +// REQUIRES: x86-registered-target +// REQUIRES: powerpc-registered-target +// REQUIRES: nvptx-registered-target + +/// ########################################################################### + +/// PTXAS is passed -c flag by default when offloading to an NVIDIA device using OpenMP +/// Check that the flag is passed when -fopenmp-relocatable-target is used. +// RUN: %clangxx -### -fopenmp=libomp -fopenmp-targets=nvptx64-nvidia-cuda \ +// RUN: -save-temps -no-canonical-prefixes %s -x c++ -c 2>&1 \ +// RUN: | FileCheck -check-prefix=CHK-RTTI %s + +// CHK-RTTI: clang{{.*}}" "-triple" "nvptx64-nvidia-cuda" +// CHK-RTTI-SAME: "-fno-rtti" +