[clang] 93737c9 - clang/AMDGPU: Forward host system includes in offload compiles (#208783)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Jul 10 10:53:21 PDT 2026
Author: Matt Arsenault
Date: 2026-07-10T17:53:16Z
New Revision: 93737c9d36ad89f83c64ea201bd6d8f364e1f8c6
URL: https://github.com/llvm/llvm-project/commit/93737c9d36ad89f83c64ea201bd6d8f364e1f8c6
DIFF: https://github.com/llvm/llvm-project/commit/93737c9d36ad89f83c64ea201bd6d8f364e1f8c6.diff
LOG: clang/AMDGPU: Forward host system includes in offload compiles (#208783)
Commit 640079288c5e merged the AMDGPU toolchain subclasses but dropped
the HIPAMDToolChain::AddClangSystemIncludeArgs override, which forwarded to
the host toolchain.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
Added:
Modified:
clang/lib/Driver/ToolChains/AMDGPU.cpp
clang/test/Driver/hip-include-path.hip
Removed:
################################################################################
diff --git a/clang/lib/Driver/ToolChains/AMDGPU.cpp b/clang/lib/Driver/ToolChains/AMDGPU.cpp
index 1bafa26398f1a..8d0b76fe02a2f 100644
--- a/clang/lib/Driver/ToolChains/AMDGPU.cpp
+++ b/clang/lib/Driver/ToolChains/AMDGPU.cpp
@@ -959,6 +959,13 @@ void AMDGPUToolChain::addClangWarningOptions(ArgStringList &CC1Args) const {
void AMDGPUToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
ArgStringList &CC1Args) const {
+ // In an offloading compilation the device toolchain must pick up the host's
+ // system include paths, even when compiling device code.
+ if (HostTC) {
+ HostTC->AddClangSystemIncludeArgs(DriverArgs, CC1Args);
+ return;
+ }
+
if (DriverArgs.hasArg(options::OPT_nostdinc) ||
DriverArgs.hasArg(options::OPT_nostdlibinc))
return;
diff --git a/clang/test/Driver/hip-include-path.hip b/clang/test/Driver/hip-include-path.hip
index 55acfc5e2b915..efa91c651c45f 100644
--- a/clang/test/Driver/hip-include-path.hip
+++ b/clang/test/Driver/hip-include-path.hip
@@ -49,3 +49,13 @@
// ROCM35-NOT: "-include" "__clang_hip_runtime_wrapper.h"
// skip check of standard C++ include path
// ROCM35-SAME: "-internal-isystem" "[[RESOURCE_DIR]]/include"
+
+// The device compilation must pick up the host toolchain's system include paths
+// so host C++ library headers are usable.
+// RUN: %clang -c -### --target=x86_64-unknown-linux-gnu --cuda-gpu-arch=gfx900 \
+// RUN: -std=c++11 --rocm-path=%S/Inputs/rocm -nogpulib \
+// RUN: --sysroot=%S/Inputs/basic_linux_tree %s 2>&1 \
+// RUN: | FileCheck -check-prefixes=HOSTINC %s
+
+// HOSTINC-LABEL: "{{[^"]*}}clang{{[^"]*}}" "-cc1" "-triple" "amdgcn-amd-amdhsa"
+// HOSTINC: "-internal-externc-isystem" "{{[^"]*}}Inputs/basic_linux_tree/usr/include"
More information about the cfe-commits
mailing list