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 normally performed just
-before return, but when a nonreturning call or a tail-call opportunity
-is detected, verification is moved before that (presumed) final call.
-
-If an exception from a nonreturning call is handled by its caller,
-verification at the caller may run again if another verification point
-is reached. The additional verifications are desirable and benign.
-
-Conversely, since no verification is inserted before calls that are
-expected to return, if they never do, the caller's own
-verification-and-return points are never reached.
-
-Subprogram executions that complete by raising or propagating an
-exception also bypass verification-and-return points. A subprogram
-that can only complete by raising or propagating an exception may have
-instrumentation disabled altogether.
+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.
The instrumentation for hardening with control flow redundancy can be
observed in dump files generated by the command-line option
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 normally performed just
-before return, but when a nonreturning call or a tail-call opportunity
-is detected, verification is moved before that (presumed) final call.
-
-If an exception from a nonreturning call is handled by its caller,
-verification at the caller may run again if another verification point
-is reached. The additional verifications are desirable and benign.
-
-Conversely, since no verification is inserted before calls that are
-expected to return, if they never do, the caller’s own
-verification-and-return points are never reached.
-
-Subprogram executions that complete by raising or propagating an
-exception also bypass verification-and-return points. A subprogram
-that can only complete by raising or propagating an exception may have
-instrumentation disabled altogether.
+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.
The instrumentation for hardening with control flow redundancy can be
observed in dump files generated by the command-line option