summaryrefslogtreecommitdiffstats
path: root/clang/docs/SafeStack.rst
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2016-05-24 23:38:02 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2016-05-24 23:38:02 +0000
commita9f38983e805b2894aa7838685fe59a1c8527128 (patch)
treebfb629fea41edd3eaf49fa8bf0d7e6ddc4e5669c /clang/docs/SafeStack.rst
parent9464491aa710a7dab1939420ea137effe4876592 (diff)
downloadbcm5719-llvm-a9f38983e805b2894aa7838685fe59a1c8527128.tar.gz
bcm5719-llvm-a9f38983e805b2894aa7838685fe59a1c8527128.zip
docs: Document how safestack handles setjmp and exceptions.
llvm-svn: 270634
Diffstat (limited to 'clang/docs/SafeStack.rst')
-rw-r--r--clang/docs/SafeStack.rst11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/docs/SafeStack.rst b/clang/docs/SafeStack.rst
index 21e9b6c621a..f01b75f5cb3 100644
--- a/clang/docs/SafeStack.rst
+++ b/clang/docs/SafeStack.rst
@@ -178,6 +178,17 @@ Please refer to the `Code-Pointer Integrity <http://dslab.epfl.ch/proj/cpi/>`__
project page for more information about the design of the SafeStack and its
related technologies.
+setjmp and exception handling
+-----------------------------
+
+The `OSDI'14 paper <http://dslab.epfl.ch/pubs/cpi.pdf>`_ mentions that
+on Linux the instrumentation pass finds calls to setjmp or functions that
+may throw an exception, and inserts required instrumentation at their call
+sites. Specifically, the instrumentation pass saves the shadow stack pointer
+on the safe stack before the call site, and restores it either after the
+call to setjmp or after an exception has been caught. This is implemented
+in the function ``SafeStack::createStackRestorePoints``.
+
Publications
------------
OpenPOWER on IntegriCloud