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 <1599101...@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;
 

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to