]> git.ipfire.org Git - thirdparty/gcc.git/commit
[Ada] Ignore exceptions in task termination handlers
authorBob Duff <duff@adacore.com>
Mon, 20 Jun 2022 17:59:03 +0000 (13:59 -0400)
committerPierre-Marie de Rodat <derodat@adacore.com>
Tue, 12 Jul 2022 12:24:10 +0000 (12:24 +0000)
commitfe6f256d5ba85a588493a489af1bdbe8087e368a
tree6e0a038d2a2e3a239beb5879574b9ad28031adca
parent1ef1ac768ff108a6a2c08e18eec3309e182df142
[Ada] Ignore exceptions in task termination handlers

This patch fixes a bug in which if the environment task has a specific
termination handler, and that handler raises an exception, the handler
is called recursively, causing infinite recursion. The RM requires such
exceptions to be ignored.

gcc/ada/

* libgnarl/s-solita.adb (Task_Termination_Handler_T): Ignore all
exceptions propagated by Specific_Handler.
* libgnarl/s-tassta.adb, libgnarl/s-taskin.ads: Minor.
gcc/ada/libgnarl/s-solita.adb
gcc/ada/libgnarl/s-taskin.ads
gcc/ada/libgnarl/s-tassta.adb