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

commit r15-562-gc3b570b5d9354a2366c29c4eb8eaa41c1d087e41
Author: Viljar Indus <in...@adacore.com>
Date:   Thu Feb 22 14:27:14 2024 +0200

    ada: Avoid checking parameters of protected procedures
    
    The compiler triggers warnings on generated protected procedures
    if the procedure does not have an explicit spec. Instead check
    if the body was created for a protected procedure if the spec
    is not present.
    
    gcc/ada/
    
            * sem_ch6.adb (Analyze_Subprogram_Body_Helper):
            If the spec is not present for a subprogram body then
            check if the body definiton was created for a protected
            procedure.

Diff:
---
 gcc/ada/sem_ch6.adb | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb
index 0a8030cb9236..ca40b5479e09 100644
--- a/gcc/ada/sem_ch6.adb
+++ b/gcc/ada/sem_ch6.adb
@@ -4971,8 +4971,11 @@ package body Sem_Ch6 is
          --  Skip the check for subprograms generated for protected subprograms
          --  because it is also done for the protected subprograms themselves.
 
-         elsif Present (Spec_Id)
-           and then Present (Protected_Subprogram (Spec_Id))
+         elsif (Present (Spec_Id)
+                 and then Present (Protected_Subprogram (Spec_Id)))
+           or else
+             (Acts_As_Spec (N)
+               and then Present (Protected_Subprogram (Body_Id)))
          then
             null;

Reply via email to