docs: Correct some misstatements in the control flow integrity docs.
authorPeter Collingbourne <peter@pcc.me.uk>
Wed, 13 Jun 2018 23:18:26 +0000 (23:18 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Wed, 13 Jun 2018 23:18:26 +0000 (23:18 +0000)
These were true at one point but haven't been true for a long time.

llvm-svn: 334669

clang/docs/ControlFlowIntegrity.rst

index 35b03a0e6390f2b3911373d322358fd89a24ad1f..5e837db731dc7d96c7815f9f1ad1b2aa06700d41 100644 (file)
@@ -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: