[COMMITTED] ada: Further cleanup in finalization machinery

2023-12-19 Thread Marc Poulhiès
From: Eric Botcazou This removes the setting of the Is_Ignored_Transient flag on the temporaries needing finalization created by Expand_Ctrl_Function_Call when invoked from within the dependent expressions of conditional expressions. This flag tells the general finalization machinery to disregar

[COMMITTED] ada: Further cleanup in finalization machinery

2023-12-19 Thread Marc Poulhiès
From: Eric Botcazou This streamlines the submachinery that makes it so that the finalization of temporaries created for EWAs and conditional expressions is deferred to the enclosing context. The original implementation was using a deep tree traversal for EWAs, which was later restricted to immed

[COMMITTED] ada: Further cleanup in finalization machinery

2023-11-28 Thread Marc Poulhiès
From: Eric Botcazou When transient scopes are being materialized, they can give rise to a block created around the construct being wrapped or not, depending on the kind of construct. In both cases finalization actions for the transient objects of the scope are generated the same way, with normal

[COMMITTED] ada: Further cleanup in finalization machinery

2023-11-21 Thread Marc Poulhiès
From: Eric Botcazou The bodies of generic units are instantiated separately by GNAT at the end of the processing of the compilation unit. This requires the deferral of the generation of cleanups and finalization actions in enclosing scopes, except for instantiations in generic units where they a

[COMMITTED] ada: Further cleanup in finalization machinery

2023-11-21 Thread Marc Poulhiès
From: Eric Botcazou This removes the specific treatment of transient scopes in initialization procedures, which is obsolete. gcc/ada/ * exp_aggr.adb (Convert_To_Assignments): Do not treat initialization procedures specially when it comes to creating a transient scope. *