[clang] [clang][Driver] Enable -fsanitize=type for Hexagon Linux (PR #191604)
Brian Cain via cfe-commits
cfe-commits at lists.llvm.org
Sat Apr 11 09:18:13 PDT 2026
https://github.com/androm3da updated https://github.com/llvm/llvm-project/pull/191604
>From e6ae80592a73dea346b177a247c14975e0966e8b Mon Sep 17 00:00:00 2001
From: Brian Cain <brian.cain at oss.qualcomm.com>
Date: Fri, 10 Apr 2026 21:50:54 -0700
Subject: [PATCH 1/2] [clang][Driver] Enable -fsanitize=type for Hexagon Linux
Allow the TypeSanitizer to be used on Hexagon Linux targets.
---
clang/lib/Driver/ToolChains/Linux.cpp | 2 +-
clang/test/Driver/sanitizer-ld.c | 10 ++++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
index bde99a3dac860..ffbfded75db3e 100644
--- a/clang/lib/Driver/ToolChains/Linux.cpp
+++ b/clang/lib/Driver/ToolChains/Linux.cpp
@@ -961,7 +961,7 @@ SanitizerMask Linux::getSupportedSanitizers() const {
if (IsX86_64 || IsMIPS64 || IsAArch64 || IsPowerPC64 || IsSystemZ ||
IsLoongArch64 || IsRISCV64)
Res |= SanitizerKind::Thread;
- if (IsX86_64 || IsAArch64 || IsSystemZ)
+ if (IsX86_64 || IsAArch64 || IsSystemZ || IsHexagon)
Res |= SanitizerKind::Type;
if (IsX86_64 || IsSystemZ || IsPowerPC64)
Res |= SanitizerKind::KernelMemory;
diff --git a/clang/test/Driver/sanitizer-ld.c b/clang/test/Driver/sanitizer-ld.c
index 53a138e31b801..02665fe21296a 100644
--- a/clang/test/Driver/sanitizer-ld.c
+++ b/clang/test/Driver/sanitizer-ld.c
@@ -372,6 +372,16 @@
// CHECK-TYSAN-DARWIN-CXX: libclang_rt.tysan_osx_dynamic.dylib
// CHECK-TYSAN-DARWIN-CXX-NOT: -lc++abi
+// RUN: %clang %s -### -o %t.o 2>&1 \
+// RUN: --target=hexagon-unknown-linux-musl -fuse-ld=ld \
+// RUN: -fsanitize=type \
+// RUN: -resource-dir=%S/Inputs/resource_dir \
+// RUN: --sysroot=%S/Inputs/basic_linux_tree \
+// RUN: | %{filecheck} --check-prefix=CHECK-TYSAN-HEXAGON
+//
+// CHECK-TYSAN-HEXAGON: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-TYSAN-HEXAGON: "--whole-archive" "{{.*}}libclang_rt.tysan{{[^.]*}}.a" "--no-whole-archive"
+
// RUN: %clangxx -### %s 2>&1 \
// RUN: --target=x86_64-unknown-linux -fuse-ld=ld -stdlib=platform -lstdc++ \
// RUN: -fsanitize=thread \
>From f21538d652064b8da8a9ff3fd9e2a19a293c0d51 Mon Sep 17 00:00:00 2001
From: Brian Cain <brian.cain at oss.qualcomm.com>
Date: Sat, 11 Apr 2026 08:33:09 -0700
Subject: [PATCH 2/2] fixup! [clang][Driver] Enable -fsanitize=type for Hexagon
Linux
fixup! [clang][Driver] Enable -fsanitize=type for Hexagon Linux
Fix linker name pattern in test: Hexagon uses ld.lld, not plain ld.
---
clang/test/Driver/sanitizer-ld.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/clang/test/Driver/sanitizer-ld.c b/clang/test/Driver/sanitizer-ld.c
index 02665fe21296a..90fd66ca45bf7 100644
--- a/clang/test/Driver/sanitizer-ld.c
+++ b/clang/test/Driver/sanitizer-ld.c
@@ -379,7 +379,7 @@
// RUN: --sysroot=%S/Inputs/basic_linux_tree \
// RUN: | %{filecheck} --check-prefix=CHECK-TYSAN-HEXAGON
//
-// CHECK-TYSAN-HEXAGON: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-TYSAN-HEXAGON: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.lld)?(.exe)?}}"
// CHECK-TYSAN-HEXAGON: "--whole-archive" "{{.*}}libclang_rt.tysan{{[^.]*}}.a" "--no-whole-archive"
// RUN: %clangxx -### %s 2>&1 \
More information about the cfe-commits
mailing list