[Ada] Extend hardcfr testing (documentation)
authorAlexandre Oliva <oliva@adacore.com>
Wed, 23 Feb 2022 15:57:15 +0000 (12:57 -0300)
committerPierre-Marie de Rodat <derodat@adacore.com>
Fri, 13 May 2022 08:04:44 +0000 (08:04 +0000)
commit8150f295ec3b9b147c1355d136609c8226300375
tree2fe060f1c7fb80e2ad90fe10dc948579fe0ab8b7
parenta2cff9e9af15b179ff7a2c7e147e88ec8ce52936
[Ada] Extend hardcfr testing (documentation)

Having realized that noreturn calls of __builtin_return are special,
and other noreturn calls don't get edges to the exit block, I've
realized the consequences of the logic to insert checking before
noreturn and tail calls were not quite what I'd expected before.

Specifically, noreturn calls other than __builtin_return don't get any
checking whatsoever.  Moreover, optional tail calls are only detected
long after hardcfr; the logic should work for must-tail calls, but
there doesn't seem to be a way to test it.

Documentation has been simplified so as to remove mention of these
possibilities, that can't really be relied on.

gcc/ada/

* doc/gnat_rm/security_hardening_features.rst (Control Flow
Redundancy): Drop mentions of noreturn and tail calls.
* gnat_rm.texi: Regenerate.
gcc/ada/doc/gnat_rm/security_hardening_features.rst
gcc/ada/gnat_rm.texi