summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/UndefinedBehaviorSanitizer.rst4
-rw-r--r--docs/UsersManual.rst31
2 files changed, 17 insertions, 18 deletions
diff --git a/docs/UndefinedBehaviorSanitizer.rst b/docs/UndefinedBehaviorSanitizer.rst
index c996ea3341..37ff16d9a9 100644
--- a/docs/UndefinedBehaviorSanitizer.rst
+++ b/docs/UndefinedBehaviorSanitizer.rst
@@ -119,7 +119,9 @@ Available checks are:
does not evaluate to a positive value.
- ``-fsanitize=vptr``: Use of an object whose vptr indicates that
it is of the wrong dynamic type, or that its lifetime has not
- begun or has ended. Incompatible with ``-fno-rtti``.
+ begun or has ended. Incompatible with ``-fno-rtti``. Link must
+ be performed by ``clang++``, not ``clang``, to make sure C++-specific
+ parts of the runtime library and C++ standard libraries are present.
You can also use the following check groups:
- ``-fsanitize=undefined``: All of the checks listed above other than
diff --git a/docs/UsersManual.rst b/docs/UsersManual.rst
index c103ef6c5b..5e1a6cfad8 100644
--- a/docs/UsersManual.rst
+++ b/docs/UsersManual.rst
@@ -977,21 +977,8 @@ are listed below.
undefined behavior that can be detected and the :ref:`list <cfi-schemes>`
of control flow integrity schemes.
- You can turn off or modify checks for certain source files, functions
- or even variables by providing a special file:
-
- - ``-fsanitize-blacklist=/path/to/blacklist/file``: disable or modify
- sanitizer checks for objects listed in the file. See
- :doc:`SanitizerSpecialCaseList` for file format description.
- - ``-fno-sanitize-blacklist``: don't use blacklist file, if it was
- specified earlier in the command line.
-
The ``-fsanitize=`` argument must also be provided when linking, in
- order to link to the appropriate runtime library. When using
- ``-fsanitize=vptr`` (or a group that includes it, such as
- ``-fsanitize=undefined``) with a C++ program, the link must be
- performed by ``clang++``, not ``clang``, in order to link against the
- C++-specific parts of the runtime library.
+ order to link to the appropriate runtime library.
It is not possible to combine more than one of the ``-fsanitize=address``,
``-fsanitize=thread``, and ``-fsanitize=memory`` checkers in the same
@@ -1028,14 +1015,24 @@ are listed below.
be used (for instance, when building libc or a kernel module), or where
the binary size increase caused by the sanitizer runtime is a concern.
- This flag is only compatible with ``local-bounds``,
- ``unsigned-integer-overflow``, sanitizers in the ``cfi`` group and
- sanitizers in the ``undefined`` group other than ``vptr``. If this flag
+ This flag is only compatible with :doc:`control flow integrity
+ <ControlFlowIntegrity>` schemes and :doc:`UndefinedBehaviorSanitizer`
+ checks other than ``vptr``. If this flag
is supplied together with ``-fsanitize=undefined``, the ``vptr`` sanitizer
will be implicitly disabled.
This flag is enabled by default for sanitizers in the ``cfi`` group.
+.. option:: -fsanitize-blacklist=/path/to/blacklist/file
+
+ Disable or modify sanitizer checks for objects (source files, functions,
+ variables, types) listed in the file. See
+ :doc:`SanitizerSpecialCaseList` for file format description.
+
+.. option:: -fno-sanitize-blacklist
+
+ Don't use blacklist file, if it was specified earlier in the command line.
+
**-f[no-]sanitize-coverage=[type,features,...]**
Enable simple code coverage in addition to certain sanitizers.