diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -746,6 +746,8 @@ [] [, section "name"] [, partition "name"] [, comdat [($name)]] [, align ] + [, 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 @@ Unlike :ref:`function attributes `, attributes on a global variable are grouped into a single :ref:`attribute group `. +``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