https://github.com/vitalybuka updated 
https://github.com/llvm/llvm-project/pull/183590

>From 51fa58317015134e350a7e54621206eafbeb724f Mon Sep 17 00:00:00 2001
From: Vitaly Buka <[email protected]>
Date: Thu, 26 Feb 2026 10:34:42 -0800
Subject: [PATCH 1/2] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20ch?=
 =?UTF-8?q?anges=20to=20main=20this=20commit=20is=20based=20on?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Created using spr 1.3.7

[skip ci]
---
 llvm/include/llvm/ADT/DenseMap.h    | 9 +++++++++
 mlir/tools/mlir-tblgen/OpDocGen.cpp | 6 ++----
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/llvm/include/llvm/ADT/DenseMap.h b/llvm/include/llvm/ADT/DenseMap.h
index d967a231804f6..e1f1ab251d66c 100644
--- a/llvm/include/llvm/ADT/DenseMap.h
+++ b/llvm/include/llvm/ADT/DenseMap.h
@@ -1037,6 +1037,12 @@ class SmallDenseMap
     // Note that this cast does not violate aliasing rules as we assert that
     // the memory's dynamic type is the small, inline bucket buffer, and the
     // 'storage' is a POD containing a char buffer.
+#if defined(__SANITIZE_ADDRESS__) || defined(__SANITIZE_HWADDRESS__)
+    // Unless it's a sanitizer with container overflow detection. In this case
+    // some items in buckets can be partially poisoned, triggering sanitizer
+    // report on load.
+    __asm__ volatile("" ::: "memory");
+#endif
     return reinterpret_cast<const BucketT *>(&storage);
   }
 
@@ -1048,6 +1054,9 @@ class SmallDenseMap
   const LargeRep *getLargeRep() const {
     assert(!Small);
     // Note, same rule about aliasing as with getInlineBuckets.
+#if defined(__SANITIZE_ADDRESS__) || defined(__SANITIZE_HWADDRESS__)
+    __asm__ volatile("" ::: "memory");
+#endif
     return reinterpret_cast<const LargeRep *>(&storage);
   }
 
diff --git a/mlir/tools/mlir-tblgen/OpDocGen.cpp 
b/mlir/tools/mlir-tblgen/OpDocGen.cpp
index ac29225de44b1..5e3cf302ed3ea 100644
--- a/mlir/tools/mlir-tblgen/OpDocGen.cpp
+++ b/mlir/tools/mlir-tblgen/OpDocGen.cpp
@@ -110,9 +110,7 @@ static void emitNamedConstraint(const T &it, raw_ostream 
&os) {
 // Records
 
//===----------------------------------------------------------------------===//
 
-// FIXME: Restore namespace {} when
-// https://github.com/llvm/llvm-project/issues/182720 fixed.
-// namespace {
+namespace {
 struct OpDocGroup {
   const Dialect &getDialect() const { return ops.front().getDialect(); }
 
@@ -141,7 +139,7 @@ struct DialectRecords {
   std::vector<TypeDef> typeDefs;
   std::vector<EnumInfo> enums;
 };
-// } // namespace
+} // namespace
 
 
//===----------------------------------------------------------------------===//
 // Operation Documentation

>From c35717124ce5d9747b11721894ae6375d85795f6 Mon Sep 17 00:00:00 2001
From: Vitaly Buka <[email protected]>
Date: Fri, 27 Feb 2026 11:49:40 -0800
Subject: [PATCH 2/2] reword

Created using spr 1.3.7
---
 clang/docs/AddressSanitizer.rst | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/clang/docs/AddressSanitizer.rst b/clang/docs/AddressSanitizer.rst
index 2139a12d0822c..80b1cdd95d77a 100644
--- a/clang/docs/AddressSanitizer.rst
+++ b/clang/docs/AddressSanitizer.rst
@@ -173,9 +173,9 @@ AddressSanitizer runtime to indicate which memory is 
poisoned etc.
 
 Note that this feature is prone to false positives:
   * Partially poisoning objects on stack, e.g. for small string optimization, 
can
-    cause both, false positives and negatives.
-  * In environments where not all the process binaries can be recompiled with
-    AddressSanitizer enabled, these checks can cause false positives.
+    cause both false positives and negatives.
+  * If the binary is partially AddressSanitizer instrumented, these
+    checks can cause false positives.
 
 See `Disabling container overflow checks`_ for details on suppressing checks.
 

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to