r259260 - [UBSan] Add documentation for runtime issue suppression.

Alexey Samsonov via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 29 15:14:37 PST 2016


Hans, do you think it makes sense to merge this patch into 3.8?

On Fri, Jan 29, 2016 at 3:07 PM, Alexey Samsonov via cfe-commits <
cfe-commits at lists.llvm.org> wrote:

> Author: samsonov
> Date: Fri Jan 29 17:07:14 2016
> New Revision: 259260
>
> URL: http://llvm.org/viewvc/llvm-project?rev=259260&view=rev
> Log:
> [UBSan] Add documentation for runtime issue suppression.
>
> Modified:
>     cfe/trunk/docs/UndefinedBehaviorSanitizer.rst
>
> Modified: cfe/trunk/docs/UndefinedBehaviorSanitizer.rst
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/UndefinedBehaviorSanitizer.rst?rev=259260&r1=259259&r2=259260&view=diff
>
> ==============================================================================
> --- cfe/trunk/docs/UndefinedBehaviorSanitizer.rst (original)
> +++ cfe/trunk/docs/UndefinedBehaviorSanitizer.rst Fri Jan 29 17:07:14 2016
> @@ -168,6 +168,38 @@ UndefinedBehaviorSanitizer supports ``sr
>  :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
>  ===================
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>



-- 
Alexey Samsonov
vonosmas at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160129/33439783/attachment.html>


More information about the cfe-commits mailing list