diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2024-09-11 19:26:18 +0200 |
---|---|---|
committer | Marc Poulhiès <dkm@gcc.gnu.org> | 2024-10-08 10:37:14 +0200 |
commit | da2a85ac53cbb9a9162cfb9a6da1c2bd47fc0b1b (patch) | |
tree | 24e452322aa1b6e500ded3bdb9c192869a296148 | |
parent | 48fd89dc4a49cf07dbde6d26c5eb39c97a0490de (diff) | |
download | gcc-da2a85ac53cbb9a9162cfb9a6da1c2bd47fc0b1b.zip gcc-da2a85ac53cbb9a9162cfb9a6da1c2bd47fc0b1b.tar.gz gcc-da2a85ac53cbb9a9162cfb9a6da1c2bd47fc0b1b.tar.bz2 |
ada: Fix internal error on elsif part of if-statement containing if-expression
The problem occurs when the compiler is trying to find a context to which
it can hoist finalization actions coming from the if-expression, because
Find_Hook_Context incorrectly returns the N_Elsif_Part node.
gcc/ada/ChangeLog:
PR ada/114640
* exp_util.adb (Find_Hook_Context): For a node present within a
conditional expression, do not return an N_Elsif_Part node.
-rw-r--r-- | gcc/ada/exp_util.adb | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb index 5aa0f77..8b9ce9a 100644 --- a/gcc/ada/exp_util.adb +++ b/gcc/ada/exp_util.adb @@ -6742,6 +6742,7 @@ package body Exp_Util is | N_Aggregate | N_Delta_Aggregate | N_Extension_Aggregate + | N_Elsif_Part and then Nkind (Parent (Par)) not in N_Function_Call | N_Procedure_Call_Statement | N_Entry_Call_Statement |