From: Viljar Indus <in...@adacore.com> 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. Tested on x86_64-pc-linux-gnu, committed on master. --- 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 0a8030cb923..ca40b5479e0 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; -- 2.43.2