1c3t3a created this revision. Herald added a project: All. 1c3t3a requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits.
Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D141698 Files: clang/docs/ControlFlowIntegrityDesign.rst Index: clang/docs/ControlFlowIntegrityDesign.rst =================================================================== --- clang/docs/ControlFlowIntegrityDesign.rst +++ 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:
Index: clang/docs/ControlFlowIntegrityDesign.rst =================================================================== --- clang/docs/ControlFlowIntegrityDesign.rst +++ 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:
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits