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 @@ -1570,9 +1572,9 @@ Specify the desired alignment, which must be a power of two, in parentheses. ``"alloc-family"="FAMILY"`` - This indicates which "family" an allocator function is part of. To avoid - collisions, the family name should match the mangled name of the primary - allocator function, that is "malloc" for malloc/calloc/realloc/free, + This indicates which "family" an allocator function is part of. To avoid + collisions, the family name should match the mangled name of the primary + allocator function, that is "malloc" for malloc/calloc/realloc/free, "_Znwm" for ``::operator::new`` and ``::operator::delete``, and "_ZnwmSt11align_val_t" for aligned ``::operator::new`` and ``::operator::delete``. Matching malloc/realloc/free calls within a family @@ -2291,6 +2293,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 @@ -20461,7 +20482,7 @@ The '``llvm.vp.fpext``' intrinsic extends the ``value`` from a smaller :ref:`floating-point ` type to a larger :ref:`floating-point ` type. The '``llvm.vp.fpext``' cannot be used to make a -*no-op cast* because it always changes bits. Use ``bitcast`` to make a +*no-op cast* because it always changes bits. Use ``bitcast`` to make a *no-op cast* for a floating-point cast. The conversion is performed on lane positions below the explicit vector length and where the vector mask is true. Masked-off lanes are undefined.