diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2024-12-11 13:06:07 +0100 |
---|---|---|
committer | Marc Poulhiès <dkm@gcc.gnu.org> | 2025-01-06 10:14:48 +0100 |
commit | 6be06ae88b8be8543094d712f24c52a4d2d73220 (patch) | |
tree | f7acba52f856b91dfb072d79416c5ad79b7dfcbb /gcc | |
parent | 75e126db1e5c08261e3fb9fd0b831403c094d1f1 (diff) | |
download | gcc-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.adb | 13 |
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". |