Add documentation of new sanitizer-specific GV attributes.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D126922
This commit is contained in:
Mitch Phillips 2022-06-10 12:45:26 -07:00
parent 8db981d463
commit 35b1a64589
1 changed files with 21 additions and 0 deletions

View File

@ -746,6 +746,8 @@ Syntax::
<global | constant> <Type> [<InitializerConstant>]
[, section "name"] [, partition "name"]
[, comdat [($name)]] [, align <Alignment>]
[, no_sanitize] [, no_sanitize_address]
[, no_sanitize_hwaddress] [, sanitize_address_dyninit]
(, !name !N)*
For example, the following defines a global in a numbered address space
@ -2321,6 +2323,25 @@ Attributes may be set to communicate additional information about a global varia
Unlike :ref:`function attributes <fnattrs>`, attributes on a global variable
are grouped into a single :ref:`attribute group <attrgrp>`.
``no_sanitize``
This attribute indicates that the global variable should not have any
sanitizers applied to it, either because it was in the sanitizer ignore
list, or it was annotated with
`__attribute__((disable_sanitizer_instrumentation))`.
``no_sanitize_address``
This attribute indicates that the global variable should not have
AddressSanitizer instrumentation applied to it, because it was annotated
with `__attribute__((no_sanitize("address")))`.
``no_sanitize_hwaddress``
This attribute indicates that the global variable should not have
HWAddressSanitizer instrumentation applied to it, because it was annotated
with `__attribute__((no_sanitize("hwaddress")))`.
``sanitize_address_dyninit``
This attribute indicates that the global variable, when instrumented with
AddressSanitizer, should be checked for ODR violations. This attribute is
applied to global variables that are dynamically initialized according to
C++ rules.
.. _opbundles:
Operand Bundles