From 2bfb1b72beca469f8ef72ab0a62b5afef417c25d Mon Sep 17 00:00:00 2001 From: Robert Dewar Date: Thu, 7 Oct 2010 12:52:01 +0000 Subject: [PATCH] sem_ch12.adb: Add comment. 2010-10-07 Robert Dewar * sem_ch12.adb: Add comment. * sem_ch6.adb: Minor reformatting. From-SVN: r165102 --- gcc/ada/ChangeLog | 5 +++++ gcc/ada/sem_ch12.adb | 5 ++++- gcc/ada/sem_ch6.adb | 10 +++++----- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 68b651de5f3..06e055610a0 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2010-10-07 Robert Dewar + + * sem_ch12.adb: Add comment. + * sem_ch6.adb: Minor reformatting. + 2010-10-07 Robert Dewar * par-ch3.adb, par-ch6.adb, par-ch7.adb, par-ch9.adb, par-ch10.adb: Add diff --git a/gcc/ada/sem_ch12.adb b/gcc/ada/sem_ch12.adb index 7a2208ef760..085799138ea 100644 --- a/gcc/ada/sem_ch12.adb +++ b/gcc/ada/sem_ch12.adb @@ -2801,9 +2801,12 @@ package body Sem_Ch12 is Result_Type := Access_Definition (Spec, Result_Definition (Spec)); Set_Etype (Id, Result_Type); - -- Check restriction imposed by AI05-073 : a generic function + -- Check restriction imposed by AI05-073: a generic function -- cannot return an abstract type or an access to such. + -- This is a binding interpreration should it apply to earlier + -- versions of Ada as well as Ada 2012??? + if Is_Abstract_Type (Designated_Type (Result_Type)) and then Ada_Version >= Ada_12 then diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb index 7be427e7b63..fab0ba8bee5 100644 --- a/gcc/ada/sem_ch6.adb +++ b/gcc/ada/sem_ch6.adb @@ -2957,13 +2957,13 @@ package body Sem_Ch6 is -- Ada 2005 (AI-251): If the return type is abstract, verify that -- the subprogram is abstract also. This does not apply to renaming -- declarations, where abstractness is inherited. + -- In case of primitives associated with abstract interface types -- the check is applied later (see Analyze_Subprogram_Declaration). - if not Nkind_In (Parent (N), - N_Subprogram_Renaming_Declaration, - N_Abstract_Subprogram_Declaration, - N_Formal_Abstract_Subprogram_Declaration) + if not Nkind_In (Parent (N), N_Subprogram_Renaming_Declaration, + N_Abstract_Subprogram_Declaration, + N_Formal_Abstract_Subprogram_Declaration) then if Is_Abstract_Type (Etype (Designator)) and then not Is_Interface (Etype (Designator)) @@ -2971,7 +2971,7 @@ package body Sem_Ch6 is Error_Msg_N ("function that returns abstract type must be abstract", N); - -- Ada 2012 (AI-0073) : extend this test to subprograms with an + -- Ada 2012 (AI-0073): extend this test to subprograms with an -- access result whose designated type is abstract. elsif Nkind (Result_Definition (N)) = N_Access_Definition -- 2.30.2