[clang] Ubsan: warn on -fsanitize-trap=undefined ignored when passed on its own (PR #132319)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Mar 20 19:54:22 PDT 2025
https://github.com/clingfei created https://github.com/llvm/llvm-project/pull/132319
As @delcypher proposed, when the -fsanitize-trap=undefined flag is passed on its own the compiler silently ignores it. Currently Clang requires that the -fsanitize= flag is also passed.
This PR warn about this behavior.
>From b9ecc3169e4f417aef20c0e1c8d3402986ffe6b0 Mon Sep 17 00:00:00 2001
From: clingfei <1599101385 at qq.com>
Date: Fri, 21 Mar 2025 10:47:56 +0800
Subject: [PATCH] Ubsan: warn on -fsanitize-trap=undefined ignored when passed
on its own
---
clang/lib/Driver/SanitizerArgs.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp
index 6e75001585c61..62d93954751f1 100644
--- a/clang/lib/Driver/SanitizerArgs.cpp
+++ b/clang/lib/Driver/SanitizerArgs.cpp
@@ -728,7 +728,9 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC,
RecoverableKinds |= AlwaysRecoverable;
RecoverableKinds &= ~Unrecoverable;
RecoverableKinds &= Kinds;
-
+ if ((TrappingKinds & SanitizerKind::Undefined) &&
+ !(Kinds & SanitizerKind::Undefined))
+ llvm::errs() << "Warning: -fsanitize-trap=undefined ignored\n";
TrappingKinds &= Kinds;
RecoverableKinds &= ~TrappingKinds;
More information about the cfe-commits
mailing list