[gcc(refs/users/aoliva/heads/testme)] hardcfr docs: add checking at exceptions and noreturn calls
Alexandre Oliva
aoliva@gcc.gnu.org
Wed Aug 24 22:59:36 GMT 2022
https://gcc.gnu.org/g:f2eb2a1c61110fbed1729123656bb58aa035d251
commit f2eb2a1c61110fbed1729123656bb58aa035d251
Author: Alexandre Oliva <oliva@adacore.com>
Date: Wed Aug 24 19:58:01 2022 -0300
hardcfr docs: add checking at exceptions and noreturn calls
Diff:
---
gcc/ada/doc/gnat_rm/security_hardening_features.rst | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/gcc/ada/doc/gnat_rm/security_hardening_features.rst b/gcc/ada/doc/gnat_rm/security_hardening_features.rst
index f5fdc8e46b4..b7803cde588 100644
--- a/gcc/ada/doc/gnat_rm/security_hardening_features.rst
+++ b/gcc/ada/doc/gnat_rm/security_hardening_features.rst
@@ -263,11 +263,16 @@ For each block that is marked as visited, the mechanism checks that at
least one of its predecessors, and at least one of its successors, are
also marked as visited.
-Verification is performed just before returning. Subprogram
-executions that complete by raising or propagating an exception bypass
-verification-and-return points. A subprogram that can only complete
-by raising or propagating an exception may have instrumentation
-disabled altogether.
+Verification is performed just before returns, tail- and noreturn
+calls. Furthermore, any subprogram from which an exception may
+escape, i.e., that may raise or propagate an exception that isn't
+handled internally, is automatically enclosed by a cleanup handler
+that performs verification. When a noreturn call returns control to
+its caller through an exception, verification will have already been
+performed before the call, but it will take place again when the
+caller reaches the next verification point, whether it is the end of
+the enclosing cleanup handler, a return or reraise statement after the
+exception is otherwise handled, or even another noreturn call.
The instrumentation for hardening with control flow redundancy can be
observed in dump files generated by the command-line option
More information about the Gcc-cvs
mailing list