diff --git a/clang/docs/ControlFlowIntegrityDesign.rst b/clang/docs/ControlFlowIntegrityDesign.rst --- a/clang/docs/ControlFlowIntegrityDesign.rst +++ b/clang/docs/ControlFlowIntegrityDesign.rst @@ -8,11 +8,12 @@ Forward-Edge CFI for Virtual Calls ================================== -This scheme works by allocating, for each static type used to make a virtual -call, a region of read-only storage in the object file holding a bit vector -that maps onto to the region of storage used for those virtual tables. Each -set bit in the bit vector corresponds to the `address point`_ for a virtual -table compatible with the static type for which the bit vector is being built. +This scheme works by allocating a region of read-only storage in the object +file that holds a bit vector which maps onto the region of storage used for +the virtual tables. This is done for each static type that is used to make a +virtual call. Each set bit in the bit vector corresponds to the `address point`_ +for a virtual table compatible with the static type for which the bit vector is +being built. For example, consider the following three C++ classes: