https://github.com/arsenm updated https://github.com/llvm/llvm-project/pull/199642
>From 047afab69f72c1a5535988b776744725b68e4c62 Mon Sep 17 00:00:00 2001 From: Matt Arsenault <[email protected]> Date: Tue, 26 May 2026 10:46:25 +0100 Subject: [PATCH] clang/AMDGPU: Report all runtimeless sanitizers as available --- clang/lib/Driver/ToolChains/AMDGPU.cpp | 2 +- clang/test/Driver/amdgpu-validate-sanitize.cl | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/clang/lib/Driver/ToolChains/AMDGPU.cpp b/clang/lib/Driver/ToolChains/AMDGPU.cpp index c58891b1add56..fd09dcd5da5f4 100644 --- a/clang/lib/Driver/ToolChains/AMDGPU.cpp +++ b/clang/lib/Driver/ToolChains/AMDGPU.cpp @@ -1119,7 +1119,7 @@ static bool isXnackAvailable(const llvm::Triple &TT, llvm::StringRef TargetID) { SanitizerMask AMDGPUToolChain::getSupportedSanitizers( StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const { SanitizerMask SupportedMask = - SanitizerKind::Undefined | SanitizerKind::UndefinedGroup; + ToolChain::getSupportedSanitizers(BoundArch, DeviceOffloadKind); // Address sanitizer is potentially supported, but depends on the exact target // arch xnack support. diff --git a/clang/test/Driver/amdgpu-validate-sanitize.cl b/clang/test/Driver/amdgpu-validate-sanitize.cl index c7df26c95da87..907ad201b15b3 100644 --- a/clang/test/Driver/amdgpu-validate-sanitize.cl +++ b/clang/test/Driver/amdgpu-validate-sanitize.cl @@ -8,6 +8,20 @@ // RUN: -nogpuinc --rocm-path=%S/Inputs/rocm \ // RUN: %s 2>&1 | FileCheck %s +// RUN: %clang -### --target=amdgcn-amd-amdhsa -mcpu=gfx900 \ +// RUN: -fsanitize=undefined \ +// RUN: -fsanitize=unsigned-integer-overflow \ +// RUN: -fsanitize=float-divide-by-zero \ +// RUN: -fsanitize=unsigned-integer-overflow \ +// RUN: -fsanitize=unsigned-shift-base \ +// RUN: -fsanitize=implicit-conversion \ +// RUN: -fsanitize=nullability \ +// RUN: -fsanitize=local-bounds \ +// RUN: -fsanitize=alloc-token \ +// RUN: -nogpuinc --rocm-path=%S/Inputs/rocm \ +// RUN: %s 2>&1 | FileCheck -check-prefix=GENERIC %s + + // FIXME: This should error, but is silently ignored // RUN: %clang -### --target=amdgcn-amd-amdhsa -mcpu=gfx900:xnack- \ // RUN: -fsanitize=address \ @@ -18,6 +32,10 @@ // CHECK-SAME: "-mlink-bitcode-file" "{{.*}}asanrtl.bc" // CHECK-SAME: "-fsanitize=address" + +// GENERIC: "-fsanitize=alignment,array-bounds,bool,builtin,enum,float-cast-overflow,float-divide-by-zero,function,integer-divide-by-zero,nonnull-attribute,null,nullability-arg,nullability-assign,nullability-return,pointer-overflow,return,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,unreachable,vla-bound,unsigned-integer-overflow,unsigned-shift-base,implicit-unsigned-integer-truncation,implicit-signed-integer-truncation,implicit-integer-sign-change,implicit-bitfield-conversion,local-bounds,alloc-token" "-fsanitize-recover=alignment,array-bounds,bool,builtin,enum,float-cast-overflow,float-divide-by-zero,function,integer-divide-by-zero,nonnull-attribute,null,nullability-arg,nullability-assign,nullability-return,pointer-overflow,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,vla-bound,unsigned-integer-overflow,unsigned-shift-base,implicit-unsigned-integer-truncation,implicit-signed-integer-truncation,implicit-integer-sign-change,implicit-bitfield-conversion" "-fsanitize-trap=local-bounds" "-fsanitize-merge=alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,pointer-overflow,return,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,unreachable,vla-bound" + + // FIXME: Should not be forwarding argument // ERR-NOT: asanrtl.bc // ERR: "-fsanitize=address" _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
