[clang] [llvm] [MTE] Add an attribute to opt-in memory tagging of global variables while using fsanitize=memtag-globals (#166380) (PR #168535)

Florian Mayer via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 5 10:05:00 PST 2025


================
@@ -3659,9 +3659,11 @@ def ForceMemtagDocs : Documentation {
   let Category = DocCatVariable;
   let Content = [{
 Use the ``force_memtag`` attribute on a global variable declaration that also
-has the attribute section and the memory tag sanitizer is active to force the
-global variable to be MTE tagged. Global variables under sections are not
+has the attribute section. If the memory tag sanitizer is active, will force
+the global variable to be MTE tagged. Global variables under sections are not
 tagged by default, so you need to explicitly opt-in using this attribute.
+Please note that, unfortunately, in some non-trivial cases where memory layout
+is assumed, forcing enabling the memtag will cause SIGSEGV/MTE[AS]ERR.
----------------
fmayer wrote:

No that's not true. It can cause _all sorts of things_, depending on what the code assuming the alignment does. It might lead to extremely hard to debug random bugs.

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


More information about the llvm-commits mailing list