<div dir="ltr">Hans, do you think it makes sense to merge this patch into 3.8?</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jan 29, 2016 at 3:07 PM, Alexey Samsonov via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: samsonov<br>
Date: Fri Jan 29 17:07:14 2016<br>
New Revision: 259260<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=259260&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=259260&view=rev</a><br>
Log:<br>
[UBSan] Add documentation for runtime issue suppression.<br>
<br>
Modified:<br>
    cfe/trunk/docs/UndefinedBehaviorSanitizer.rst<br>
<br>
Modified: cfe/trunk/docs/UndefinedBehaviorSanitizer.rst<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/UndefinedBehaviorSanitizer.rst?rev=259260&r1=259259&r2=259260&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/UndefinedBehaviorSanitizer.rst?rev=259260&r1=259259&r2=259260&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/docs/UndefinedBehaviorSanitizer.rst (original)<br>
+++ cfe/trunk/docs/UndefinedBehaviorSanitizer.rst Fri Jan 29 17:07:14 2016<br>
@@ -168,6 +168,38 @@ UndefinedBehaviorSanitizer supports ``sr<br>
 :doc:`SanitizerSpecialCaseList`, that can be used to suppress error reports<br>
 in the specified source files or functions.<br>
<br>
+Runtime suppressions<br>
+--------------------<br>
+<br>
+Sometimes you can suppress UBSan error reports for specific files, functions,<br>
+or libraries without recompiling the code. You need to pass a path to<br>
+suppression file in a ``UBSAN_OPTIONS`` environment variable.<br>
+<br>
+.. code-block:: bash<br>
+<br>
+    UBSAN_OPTIONS=suppressions=MyUBSan.supp<br>
+<br>
+You need to specify a :ref:`check <ubsan-checks>` you are suppressing and the<br>
+bug location. For example:<br>
+<br>
+.. code-block:: bash<br>
+<br>
+  signed-integer-overflow:file-with-known-overflow.cpp<br>
+  alignment:function_doing_unaligned_access<br>
+  vptr:shared_object_with_vptr_failures.so<br>
+<br>
+There are several limitations:<br>
+<br>
+* Sometimes your binary must have enough debug info and/or symbol table, so<br>
+  that the runtime could figure out source file or function name to match<br>
+  against the suppression.<br>
+* It is only possible to suppress recoverable checks. For the example above,<br>
+  you can additionally pass<br>
+  ``-fsanitize-recover=signed-integer-overflow,alignment,vptr``, although<br>
+  most of UBSan checks are recoverable by default.<br>
+* Check groups (like ``undefined``) can't be used in suppressions file, only<br>
+  fine-grained checks are supported.<br>
+<br>
 Supported Platforms<br>
 ===================<br>
<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Alexey Samsonov<br><a href="mailto:vonosmas@gmail.com" target="_blank">vonosmas@gmail.com</a></div></div>
</div>