summaryrefslogtreecommitdiffstats
path: root/clang/docs/ControlFlowIntegrity.rst
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2018-06-13 23:18:26 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2018-06-13 23:18:26 +0000
commit282ad770cee2fa9dcbfd35f104777f5b6ca02270 (patch)
tree6b62f715734bc7d3b08c09927e9f6d751c617db9 /clang/docs/ControlFlowIntegrity.rst
parent87fb24dd4be212e27e684fc9275cca2a05cfa8eb (diff)
downloadbcm5719-llvm-282ad770cee2fa9dcbfd35f104777f5b6ca02270.tar.gz
bcm5719-llvm-282ad770cee2fa9dcbfd35f104777f5b6ca02270.zip
docs: Correct some misstatements in the control flow integrity docs.
These were true at one point but haven't been true for a long time. llvm-svn: 334669
Diffstat (limited to 'clang/docs/ControlFlowIntegrity.rst')
-rw-r--r--clang/docs/ControlFlowIntegrity.rst19
1 files changed, 10 insertions, 9 deletions
diff --git a/clang/docs/ControlFlowIntegrity.rst b/clang/docs/ControlFlowIntegrity.rst
index 35b03a0e639..5e837db731d 100644
--- a/clang/docs/ControlFlowIntegrity.rst
+++ b/clang/docs/ControlFlowIntegrity.rst
@@ -104,10 +104,10 @@ dynamic type; that is, the dynamic type of the called object must be a
derived class of the static type of the object used to make the call.
This CFI scheme can be enabled on its own using ``-fsanitize=cfi-vcall``.
-For this scheme to work, all translation units containing the definition
-of a virtual member function (whether inline or not), other than members
-of :ref:`blacklisted <cfi-blacklist>` types, must be compiled with
-``-fsanitize=cfi-vcall`` enabled and be statically linked into the program.
+For this scheme to work, all translation units containing the definition of
+a virtual member function (whether inline or not), other than members of
+:ref:`blacklisted <cfi-blacklist>` types, must be compiled with ``-flto``
+or ``-flto=thin`` enabled and be statically linked into the program.
Performance
-----------
@@ -152,9 +152,9 @@ functions may be :ref:`blacklisted <cfi-blacklist>`.
For this scheme to work, all translation units containing the definition
of a virtual member function (whether inline or not), other than members
-of :ref:`blacklisted <cfi-blacklist>` types, must be compiled with
-``-fsanitize=cfi-derived-cast`` or ``-fsanitize=cfi-unrelated-cast`` enabled
-and be statically linked into the program.
+of :ref:`blacklisted <cfi-blacklist>` types or types with public :doc:`LTO
+visibility <LTOVisibility>`, must be compiled with ``-flto`` or ``-flto=thin``
+enabled and be statically linked into the program.
Non-Virtual Member Function Call Checking
=========================================
@@ -168,8 +168,9 @@ polymorphic class type. This CFI scheme can be enabled on its own using
For this scheme to work, all translation units containing the definition
of a virtual member function (whether inline or not), other than members
-of :ref:`blacklisted <cfi-blacklist>` types, must be compiled with
-``-fsanitize=cfi-nvcall`` enabled and be statically linked into the program.
+of :ref:`blacklisted <cfi-blacklist>` types or types with public :doc:`LTO
+visibility <LTOVisibility>`, must be compiled with ``-flto`` or ``-flto=thin``
+enabled and be statically linked into the program.
.. _cfi-strictness:
OpenPOWER on IntegriCloud