diff options
Diffstat (limited to 'gcc/ada/sem_ch6.adb')
-rw-r--r-- | gcc/ada/sem_ch6.adb | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb index 215c4ad..8bf5889 100644 --- a/gcc/ada/sem_ch6.adb +++ b/gcc/ada/sem_ch6.adb @@ -672,9 +672,9 @@ package body Sem_Ch6 is end if; end Analyze_Expression_Function; - ---------------------------------------- - -- Analyze_Extended_Return_Statement -- - ---------------------------------------- + --------------------------------------- + -- Analyze_Extended_Return_Statement -- + --------------------------------------- procedure Analyze_Extended_Return_Statement (N : Node_Id) is begin @@ -12282,6 +12282,27 @@ package body Sem_Ch6 is end if; end if; + -- Deal with aspects on formal parameters. Only Unreferenced is + -- supported for the time being. + + if Has_Aspects (Param_Spec) then + declare + Aspect : Node_Id := First (Aspect_Specifications (Param_Spec)); + begin + while Present (Aspect) loop + if Chars (Identifier (Aspect)) = Name_Unreferenced then + Set_Has_Pragma_Unreferenced (Formal); + else + Error_Msg_NE + ("unsupported aspect& on parameter", + Aspect, Identifier (Aspect)); + end if; + + Next (Aspect); + end loop; + end; + end if; + <<Continue>> Next (Param_Spec); end loop; |