From eccfadd5e22abba75138dd9762d8a873db80eaee Mon Sep 17 00:00:00 2001 From: Piotr Trojanek <trojanek@adacore.com> Date: Mon, 16 Dec 2024 14:36:13 +0100 Subject: [PATCH] ada: Reject references to attribute Result in Exceptional_Cases Functions with aspect Side_Effects should not reference attribute Result in consequences of their aspect Exceptional_Cases. gcc/ada/ChangeLog: * sem_prag.adb (Analyze_Exceptional_Cases_In_Decl_Part): Reject references to attribute Result. --- gcc/ada/sem_prag.adb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index b7de1cd8afa3..64b5b01869da 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -2216,7 +2216,8 @@ package body Sem_Prag is -- in the consequences of an exceptional contract unless they are either -- passed by reference or occur in the prefix of a reference to the 'Old -- attribute or as direct prefixes of attributes that do not actually - -- read data from the object (SPARK RM 6.1.9(1)). + -- read data from the object (SPARK RM 6.1.9(1)). References to + -- attribute Result should not occur either. ----------------- -- Check_Param -- @@ -2266,6 +2267,10 @@ package body Sem_Prag is then return Skip; end if; + when Name_Result => + Error_Msg_N + ("attribute Result in consequence of Exceptional_Cases", + N); when others => null; end case; -- GitLab