ada: Run-time error with GNAT-LLVM on container aggregate with finalization
When unnesting is enabled, the compiler was failing to copy the At_End_Proc field from a block statement to the procedure created to replace it when unnesting of top-level blocks is done. At run time this could lead to exceptions due to missing finalization calls. gcc/ada/ * exp_ch7.adb (Unnest_Block): Copy the At_End_Proc from the block statement to the newly created subprogram body.
This commit is contained in:
parent
352d1478bc
commit
85f2ffd80e
1 changed files with 2 additions and 1 deletions
|
@ -8932,7 +8932,8 @@ package body Exp_Ch7 is
|
|||
Defining_Unit_Name => Local_Proc),
|
||||
Declarations => Declarations (Decl),
|
||||
Handled_Statement_Sequence =>
|
||||
Handled_Statement_Sequence (Decl));
|
||||
Handled_Statement_Sequence (Decl),
|
||||
At_End_Proc => New_Copy_Tree (At_End_Proc (Decl)));
|
||||
|
||||
-- Handlers in the block may contain nested subprograms that require
|
||||
-- unnesting.
|
||||
|
|
Loading…
Add table
Reference in a new issue