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

Hans Wennborg via cfe-commits cfe-commits at lists.llvm.org
Mon Feb 1 09:14:37 PST 2016


On Fri, Jan 29, 2016 at 4:50 PM, Alexey Samsonov <vonosmas at gmail.com> wrote:
>
> On Fri, Jan 29, 2016 at 3:16 PM, Hans Wennborg <hans at chromium.org> wrote:
>>
>> Yes, that seems like a good idea. Go ahead and merge (or let me know
>> if you'd prefer me to do it).
>
>
> I'd appreciate if you could do it. Thanks!

r259371. Thanks.

>> On Fri, Jan 29, 2016 at 3:14 PM, Alexey Samsonov <vonosmas at gmail.com>
>> wrote:
>> > 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
>
>
>
>
> --
> Alexey Samsonov
> vonosmas at gmail.com


More information about the cfe-commits mailing list