aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2024-12-11 13:06:07 +0100
committerMarc Poulhiès <dkm@gcc.gnu.org>2025-01-06 10:14:48 +0100
commit6be06ae88b8be8543094d712f24c52a4d2d73220 (patch)
treef7acba52f856b91dfb072d79416c5ad79b7dfcbb /gcc
parent75e126db1e5c08261e3fb9fd0b831403c094d1f1 (diff)
downloadgcc-6be06ae88b8be8543094d712f24c52a4d2d73220.zip
gcc-6be06ae88b8be8543094d712f24c52a4d2d73220.tar.gz
gcc-6be06ae88b8be8543094d712f24c52a4d2d73220.tar.bz2
ada: Fix assertion failure on 'Old in post-condition with -gnat2022
It comes from a small oversight in the updated implementation for Ada 2022. gcc/ada/ChangeLog: PR ada/117956 * sem_util.adb (Is_Known_On_Entry): Be prepared for constants coming from a renaming declaration.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/sem_util.adb13
1 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index 595d3d1..ffc631a 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -31188,8 +31188,17 @@ package body Sem_Util is
-- removal, e.g. by validity checks.
if not Comes_From_Source (Obj) then
- return
- Is_Known_On_Entry (Expression (Parent (Obj)));
+ declare
+ D : constant Node_Id :=
+ Declaration_Node (Obj);
+ begin
+ if Nkind (D) = N_Object_Renaming_Declaration
+ then
+ return Is_Known_On_Entry (Name (D));
+ else
+ return Is_Known_On_Entry (Expression (D));
+ end if;
+ end;
end if;
-- return False if not "all views are constant".