mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-26 08:06:08 +00:00
[Docs] One more cleanup of -fsanitize= section.
Describe -fsanitize-blacklist flags in separate paragraphs, move notes about importance of clang++ for vptr down to UBSan docs. llvm-svn: 254798
This commit is contained in:
parent
24423e9d03
commit
b6761c2e1e
@ -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
|
||||
|
@ -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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user