From: Yaxun Liu Date: Tue, 28 Aug 2018 21:09:09 +0000 (+0000) Subject: [HIP] Fix output file extension X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bc0fa1d5d54aa0b04e621e51c661f4203b3f2c2b;p=clang [HIP] Fix output file extension OffloadBundlingJobAction constructor accepts a list of JobAction as inputs. The host JobAction is the last one. The file type of OffloadBundlingJobAction should be determined by the host JobAction (the last one) instead of the first one. Since HIP emits LLVM bitcode for device compilation, device JobAction has different file type as host Job Action. This bug causes incorrect output file extension for HIP. This patch fixes it by using the last input JobAction (host JobAction) to determine file type of OffloadBundlingJobAction. Differential Revision: https://reviews.llvm.org/D51336 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@340873 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/Action.cpp b/lib/Driver/Action.cpp index 99d588d9c0..f909043875 100644 --- a/lib/Driver/Action.cpp +++ b/lib/Driver/Action.cpp @@ -382,7 +382,7 @@ VerifyPCHJobAction::VerifyPCHJobAction(Action *Input, types::ID Type) void OffloadBundlingJobAction::anchor() {} OffloadBundlingJobAction::OffloadBundlingJobAction(ActionList &Inputs) - : JobAction(OffloadBundlingJobClass, Inputs, Inputs.front()->getType()) {} + : JobAction(OffloadBundlingJobClass, Inputs, Inputs.back()->getType()) {} void OffloadUnbundlingJobAction::anchor() {} diff --git a/test/Driver/hip-output-file-name.hip b/test/Driver/hip-output-file-name.hip new file mode 100644 index 0000000000..65887f44d4 --- /dev/null +++ b/test/Driver/hip-output-file-name.hip @@ -0,0 +1,9 @@ +// REQUIRES: clang-driver +// REQUIRES: x86-registered-target +// REQUIRES: amdgpu-registered-target + +// RUN: %clang -### -c -target x86_64-linux-gnu \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: 2>&1 | FileCheck %s + +// CHECK: {{.*}}clang-offload-bundler{{.*}}"-outputs=hip-output-file-name.o"