]> granicus.if.org Git - clang/commitdiff
docs: Use the term "whole-program devirtualization" instead of "virtual function...
authorPeter Collingbourne <peter@pcc.me.uk>
Mon, 10 Apr 2017 23:54:28 +0000 (23:54 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Mon, 10 Apr 2017 23:54:28 +0000 (23:54 +0000)
The former term is probably more familiar to users. Also add references to
the command line flags used to enable the features described in the doc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@299902 91177308-0d34-0410-b5e6-96231b3b80d8

docs/LTOVisibility.rst

index 67367f3d635eaeac56e233d045a496d652a16ce9..e1372d667a1a2b24c9faf69da56fb0909c685f4b 100644 (file)
@@ -10,15 +10,16 @@ using link-time optimization; in the case where LTO is not being used, the
 linkage unit's LTO unit is empty. Each linkage unit has only a single LTO unit.
 
 The LTO visibility of a class is used by the compiler to determine which
-classes the virtual function call optimization and control flow integrity
-features apply to. These features use whole-program information, so they
-require the entire class hierarchy to be visible in order to work correctly.
-
-If any translation unit in the program uses either of the virtual function
-call optimization or control flow integrity features, it is effectively an
-ODR violation to define a class with hidden LTO visibility in multiple linkage
+classes the whole-program devirtualization (``-fwhole-program-vtables``) and
+control flow integrity (``-fsanitize=cfi-vcall``) features apply to. These
+features use whole-program information, so they require the entire class
+hierarchy to be visible in order to work correctly.
+
+If any translation unit in the program uses either of the whole-program
+devirtualization or control flow integrity features, it is effectively an ODR
+violation to define a class with hidden LTO visibility in multiple linkage
 units. A class with public LTO visibility may be defined in multiple linkage
-units, but the tradeoff is that the virtual function call optimization and
+units, but the tradeoff is that the whole-program devirtualization and
 control flow integrity features can only be applied to classes with hidden LTO
 visibility. A class's LTO visibility is treated as an ODR-relevant property
 of its definition, so it must be consistent between translation units.