aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem_res.adb
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2023-04-04 13:38:14 +0200
committerMarc Poulhiès <poulhies@adacore.com>2023-05-29 10:23:20 +0200
commit4017d7fddda521dda5f0bc2c89942246d0aeedab (patch)
treead6dae0b26b1fb24a73f1cff832e4d9cc0a87424 /gcc/ada/sem_res.adb
parent8196b58e0a1a466a41d2fd2f3c6eb3f6ee68685c (diff)
downloadgcc-4017d7fddda521dda5f0bc2c89942246d0aeedab.zip
gcc-4017d7fddda521dda5f0bc2c89942246d0aeedab.tar.gz
gcc-4017d7fddda521dda5f0bc2c89942246d0aeedab.tar.bz2
ada: Accept parameters of enclosing subprograms in exceptional cases
Rules about parameters of modes OUT and IN OUT in aspect Exceptional_Cases only apply to the parameters of the current subprogram. gcc/ada/ * sem_res.adb (Resolve_Entity_Name): Refine rules for Exceptional_Cases.
Diffstat (limited to 'gcc/ada/sem_res.adb')
-rw-r--r--gcc/ada/sem_res.adb1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index 6d4bef8..066072a 100644
--- a/gcc/ada/sem_res.adb
+++ b/gcc/ada/sem_res.adb
@@ -8122,6 +8122,7 @@ package body Sem_Res is
-- data from the object.
if Ekind (E) in E_Out_Parameter | E_In_Out_Parameter
+ and then Scope (E) = Current_Scope
and then Within_Exceptional_Cases_Consequence (N)
and then not In_Attribute_Old (N)
and then not (Nkind (Parent (N)) = N_Attribute_Reference