[clang] [compiler-rt] [UBSAN] add null and alignment checks for aggregates (PR #164548)

Hubert Tong via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 23 11:48:20 PDT 2025


================
@@ -2249,6 +2249,24 @@ void CodeGenFunction::EmitAggregateCopy(LValue Dest, LValue Src, QualType Ty,
                                         bool isVolatile) {
   assert(!Ty->isAnyComplexType() && "Shouldn't happen for complex");
 
+  // Sanitizer checks to verify source and destination pointers are
+  // non-null and properly aligned before copying.
+  // Without these checks, undefined behavior from invalid pointers goes undetected.
+  if (SanOpts.hasOneOf(SanitizerKind::Null | SanitizerKind::Alignment)) {
----------------
hubert-reinterpretcast wrote:

I recommend omitting this check and leaving `sanitizePerformTypeCheck` to do its work.

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


More information about the cfe-commits mailing list