Skip to content
Snippets Groups Projects
Commit c487462c authored by Alexey Samsonov's avatar Alexey Samsonov
Browse files

[UBSan] Add documentation for runtime issue suppression.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@259260 91177308-0d34-0410-b5e6-96231b3b80d8
parent 669f2f08
No related branches found
No related tags found
No related merge requests found
......@@ -168,6 +168,38 @@ UndefinedBehaviorSanitizer supports ``src`` and ``fun`` entity types in
:doc:`SanitizerSpecialCaseList`, that can be used to suppress error reports
in the specified source files or functions.
Runtime suppressions
--------------------
Sometimes you can suppress UBSan error reports for specific files, functions,
or libraries without recompiling the code. You need to pass a path to
suppression file in a ``UBSAN_OPTIONS`` environment variable.
.. code-block:: bash
UBSAN_OPTIONS=suppressions=MyUBSan.supp
You need to specify a :ref:`check <ubsan-checks>` you are suppressing and the
bug location. For example:
.. code-block:: bash
signed-integer-overflow:file-with-known-overflow.cpp
alignment:function_doing_unaligned_access
vptr:shared_object_with_vptr_failures.so
There are several limitations:
* Sometimes your binary must have enough debug info and/or symbol table, so
that the runtime could figure out source file or function name to match
against the suppression.
* It is only possible to suppress recoverable checks. For the example above,
you can additionally pass
``-fsanitize-recover=signed-integer-overflow,alignment,vptr``, although
most of UBSan checks are recoverable by default.
* Check groups (like ``undefined``) can't be used in suppressions file, only
fine-grained checks are supported.
Supported Platforms
===================
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment