[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:55:11 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang

Author: clf (clingfei)

<details>
<summary>Changes</summary>

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.


---
Full diff: https://github.com/llvm/llvm-project/pull/132319.diff


1 Files Affected:

- (modified) clang/lib/Driver/SanitizerArgs.cpp (+3-1) 


``````````diff
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;
 

``````````

</details>


https://github.com/llvm/llvm-project/pull/132319


More information about the cfe-commits mailing list