diff options
Diffstat (limited to 'gcc/ada/sprint.adb')
-rw-r--r-- | gcc/ada/sprint.adb | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/gcc/ada/sprint.adb b/gcc/ada/sprint.adb index 8c936705b47..57b2fe0fdaf 100644 --- a/gcc/ada/sprint.adb +++ b/gcc/ada/sprint.adb @@ -693,14 +693,27 @@ package body Sprint is when N_Access_Definition => - -- Ada 0Y (AI-231) + -- Ada 0Y (AI-254) - if Null_Exclusion_Present (Node) then - Write_Str ("not null "); - end if; + if Present (Access_To_Subprogram_Definition (Node)) then + Sprint_Node (Access_To_Subprogram_Definition (Node)); + else + -- Ada 0Y (AI-231) - Write_Str_With_Col_Check_Sloc ("access "); - Sprint_Node (Subtype_Mark (Node)); + if Null_Exclusion_Present (Node) then + Write_Str ("not null "); + end if; + + Write_Str_With_Col_Check_Sloc ("access "); + + if All_Present (Node) then + Write_Str ("all "); + elsif Constant_Present (Node) then + Write_Str ("constant "); + end if; + + Sprint_Node (Subtype_Mark (Node)); + end if; when N_Access_Function_Definition => |