diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2015-09-10 02:17:40 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2015-09-10 02:17:40 +0000 |
commit | f29b6351df57100e68c64bc335e9344620a17840 (patch) | |
tree | a3f78b11445005229d6a4922405e53758b38d341 /docs/ControlFlowIntegrityDesign.rst | |
parent | 5bffe679bd98244fd694fcc357193fe96d3723ab (diff) | |
download | clang-f29b6351df57100e68c64bc335e9344620a17840.tar.gz |
CFI: Introduce -fsanitize=cfi-icall flag.
This flag causes the compiler to emit bit set entries for functions as well
as runtime bitset checks at indirect call sites. Depends on the new function
bitset mechanism.
Differential Revision: http://reviews.llvm.org/D11857
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247238 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/ControlFlowIntegrityDesign.rst')
-rw-r--r-- | docs/ControlFlowIntegrityDesign.rst | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/docs/ControlFlowIntegrityDesign.rst b/docs/ControlFlowIntegrityDesign.rst index 89aa038d00..af3744576d 100644 --- a/docs/ControlFlowIntegrityDesign.rst +++ b/docs/ControlFlowIntegrityDesign.rst @@ -273,3 +273,11 @@ Eliminating Bit Vector Checks for All-Ones Bit Vectors If the bit vector is all ones, the bit vector check is redundant; we simply need to check that the address is in range and well aligned. This is more likely to occur if the virtual tables are padded. + +Forward-Edge CFI for Indirect Function Calls +============================================ + +Sorry, no documentation yet, but see the comments at the top of +``LowerBitSets::buildBitSetsFromFunctions`` in `LowerBitSets.cpp`_. + +.. _LowerBitSets.cpp: http://llvm.org/klaus/llvm/blob/master/lib/Transforms/IPO/LowerBitSets.cpp |