diff options
author | Ronan Desplanques <desplanques@adacore.com> | 2024-04-25 12:09:16 +0200 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2024-06-13 15:30:31 +0200 |
commit | 9fe127c9c6320dea32d6441e10b654a7e2ab004c (patch) | |
tree | 7bd812dd831d53b133d1d4712ff656f4021c0889 /gcc/ada/inline.adb | |
parent | 72ccc99d6fc22aaae4aaf74027329acafd70cbfc (diff) | |
download | gcc-9fe127c9c6320dea32d6441e10b654a7e2ab004c.zip gcc-9fe127c9c6320dea32d6441e10b654a7e2ab004c.tar.gz gcc-9fe127c9c6320dea32d6441e10b654a7e2ab004c.tar.bz2 |
ada: Fix expansion of protected subprogram bodies
System.Tasking.Protected_Objects.Lock can raise exceptions, but that
wasn't taken into account by the expansion of protected subprogram
bodies before this patch. More precisely, there were cases where
calls to System.Tasking.Initialization.Abort_Undefer were
incorrectly omitted. This patch fixes this.
gcc/ada/
* exp_ch7.adb (Build_Cleanup_Statements): Adapt to changes
made to Build_Protected_Subprogram_Call_Cleanup.
* exp_ch9.adb (Make_Unlock_Statement, Wrap_Unprotected_Call):
New functions.
(Build_Protected_Subprogram_Body): Fix resource management in
generated code.
(Build_Protected_Subprogram_Call_Cleanup): Make use of newly
introduced Make_Unlock_Statement.
Diffstat (limited to 'gcc/ada/inline.adb')
0 files changed, 0 insertions, 0 deletions