https://gcc.gnu.org/g:eccfadd5e22abba75138dd9762d8a873db80eaee

commit r15-6626-geccfadd5e22abba75138dd9762d8a873db80eaee
Author: Piotr Trojanek <troja...@adacore.com>
Date:   Mon Dec 16 14:36:13 2024 +0100

    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.

Diff:
---
 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;

Reply via email to