Index: lib/Driver/ToolChains/Cuda.cpp =================================================================== --- lib/Driver/ToolChains/Cuda.cpp +++ lib/Driver/ToolChains/Cuda.cpp @@ -438,11 +438,13 @@ if (!II.isFilename()) continue; - SmallString<256> Name = llvm::sys::path::filename(II.getFilename()); + SmallString<256> Name = llvm::sys::path::relative_path(II.getFilename()); + SmallString<256> FullPath = llvm::sys::path::root_path(II.getFilename()); llvm::sys::path::replace_extension(Name, "cubin"); + llvm::sys::path::append(FullPath, Name); const char *CubinF = - C.addTempFile(C.getArgs().MakeArgString(Name)); + C.addTempFile(C.getArgs().MakeArgString(FullPath)); CmdArgs.push_back(CubinF); } Index: test/Driver/openmp-offload-gpu.c =================================================================== --- test/Driver/openmp-offload-gpu.c +++ test/Driver/openmp-offload-gpu.c @@ -89,7 +89,7 @@ // RUN: %clang -### -no-canonical-prefixes -fopenmp=libomp -fopenmp-targets=nvptx64-nvidia-cuda %t1.o %t2.o 2>&1 \ // RUN: | FileCheck -check-prefix=CHK-TWOCUBIN %s -// CHK-TWOCUBIN: nvlink"{{.*}}"openmp-offload-{{.*}}.cubin" "openmp-offload-{{.*}}.cubin" +// CHK-TWOCUBIN: nvlink{{.*}}openmp-offload-{{.*}}.cubin" "{{.*}}openmp-offload-{{.*}}.cubin" /// ########################################################################### @@ -99,7 +99,7 @@ // RUN: %clang -### -no-canonical-prefixes -target x86_64-apple-darwin17.0.0 -fopenmp=libomp -fopenmp-targets=nvptx64-nvidia-cuda %t1.o %t2.o 2>&1 \ // RUN: | FileCheck -check-prefix=CHK-TWOCUBIN-DARWIN %s -// CHK-TWOCUBIN-DARWIN: nvlink"{{.*}}"openmp-offload-{{.*}}.cubin" "openmp-offload-{{.*}}.cubin" +// CHK-TWOCUBIN-DARWIN: nvlink{{.*}}openmp-offload-{{.*}}.cubin" "{{.*}}openmp-offload-{{.*}}.cubin" /// ###########################################################################