[COMMITTED] ada: Revert latest change to Find_Hook_Context

Message ID 20230615080424.939984-1-poulhies@adacore.com
State Committed
Commit 9cdaa52bf8e0529c3d4d13121c440f92113ff05d
Headers
Series [COMMITTED] ada: Revert latest change to Find_Hook_Context |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gcc_build--master-arm fail Patch failed to apply
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 fail Patch failed to apply
linaro-tcwg-bot/tcwg_gcc_check--master-aarch64 fail Patch failed to apply
linaro-tcwg-bot/tcwg_gcc_check--master-arm fail Patch failed to apply

Commit Message

Marc Poulhiès June 15, 2023, 8:04 a.m. UTC
  From: Eric Botcazou <ebotcazou@adacore.com>

The issue is that, if an aggregate is both below a conditional expression
and above another conditional expression in the tree, we have currently no
place to put the finalization actions generated by the innermost expression
in the context of the aggregate before it is expanded, so they end up being
placed after the outermost expression.

But it is not clear whether that's really problematic because this does not
seem to happen for array aggregates with multiple or others choices: in this
case the aggregate is expanded first and the code path is not taken.

gcc/ada/

	* exp_util.adb (Find_Hook_Context): Revert latest change.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/exp_util.adb | 10 ----------
 1 file changed, 10 deletions(-)
  

Patch

diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb
index a4aa5f64447..91959793638 100644
--- a/gcc/ada/exp_util.adb
+++ b/gcc/ada/exp_util.adb
@@ -6500,16 +6500,6 @@  package body Exp_Util is
             then
                Top := Par;
 
-            --  Stop at contexts where temporaries may be contained
-
-            elsif Nkind (Par) in N_Aggregate
-                               | N_Delta_Aggregate
-                               | N_Extension_Aggregate
-                               | N_Block_Statement
-                               | N_Loop_Statement
-            then
-               exit;
-
             --  Prevent the search from going too far
 
             elsif Is_Body_Or_Package_Declaration (Par) then