User manual chapter on MemorySanitizer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170879 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/docs/UsersManual.rst b/docs/UsersManual.rst
index f92eb9c..4d6c4e9 100644
--- a/docs/UsersManual.rst
+++ b/docs/UsersManual.rst
@@ -855,6 +855,11 @@
- .. _opt_fsanitize_thread:
``-fsanitize=thread``: :doc:`ThreadSanitizer`, a data race detector.
+ - .. _opt_fsanitize_memory:
+
+ ``-fsanitize=memory``: :doc:`MemorySanitizer`,
+ an *experimental* detector of uninitialized reads. Not ready for
+ widespread use.
- .. _opt_fsanitize_undefined:
``-fsanitize=undefined``: Fast and compatible undefined behavior
@@ -917,6 +922,14 @@
- ``-fsanitize=use-after-scope``: Check for use-after-scope errors
(accesing local variable after it went out of scope).
+ Extra features of MemorySanitizer (require explicit
+ ``-fsanitize=memory``):
+
+ - ``-fsanitize-memory-track-origins``: Enables origin tracking in
+ MemorySanitizer. Adds a second stack trace to MemorySanitizer
+ reports pointing to the allocation the uninitialized bits came
+ from. Slows down execution by additional 1.5x-2x.
+
The ``-fsanitize=`` argument must also be provided when linking, in
order to link to the appropriate runtime library. It is not possible
to combine the ``-fsanitize=address`` and ``-fsanitize=thread``