From 85799cb98e9e3ed25eeeb43ece1c5aaea4a2a4fc Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Wed, 4 Mar 2015 12:51:48 +0100 Subject: [PATCH] [multiple changes] 2015-03-04 Robert Dewar * atree.h: Add entries for Flag287-Flag309. * einfo.adb: Add (unused) flags Flag287-Flag309. 2015-03-04 Ed Schonberg * sem_util.adb (Collect_Interfaces, Collect): When gathering interfaces of ancestors, handle properly a subtype of a private extension. From-SVN: r221183 --- gcc/ada/ChangeLog | 11 +++++++++++ gcc/ada/atree.h | 23 +++++++++++++++++++++++ gcc/ada/einfo.adb | 20 +++++++++++++++++--- gcc/ada/sem_util.adb | 8 ++++++-- 4 files changed, 57 insertions(+), 5 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 386ae314f26..5c3816b4099 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,14 @@ +2015-03-04 Robert Dewar + + * atree.h: Add entries for Flag287-Flag309. + * einfo.adb: Add (unused) flags Flag287-Flag309. + +2015-03-04 Ed Schonberg + + * sem_util.adb (Collect_Interfaces, Collect): When gathering + interfaces of ancestors, handle properly a subtype of a private + extension. + 2015-03-04 Robert Dewar * einfo.adb (Is_ARECnF_Entity): New flag (ARECnF is an extra formal). diff --git a/gcc/ada/atree.h b/gcc/ada/atree.h index 170bd959a64..dadfce041f4 100644 --- a/gcc/ada/atree.h +++ b/gcc/ada/atree.h @@ -847,6 +847,29 @@ extern Node_Id Current_Error_Node; #define Flag284(N) (Nodes_Ptr[(N) - First_Node_Id + 5].V.EX.U.fw5.flag284) #define Flag285(N) (Nodes_Ptr[(N) - First_Node_Id + 5].V.EX.U.fw5.flag285) #define Flag286(N) (Nodes_Ptr[(N) - First_Node_Id + 5].V.EX.U.fw5.flag286) +#define Flag287(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.in_list) +#define Flag288(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.has_aspects) +#define Flag289(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.rewrite_ins) +#define Flag290(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.analyzed +#define Flag291(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.c_f_s) +#define Flag292(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.error_posted) +#define Flag293(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.flag4) +#define Flag294(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.flag5) +#define Flag295(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.flag6) +#define Flag296(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.flag7) +#define Flag297(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.flag8) +#define Flag298(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.flag9) +#define Flag299(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.flag10) +#define Flag300(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.flag11) +#define Flag301(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.flag12) +#define Flag302(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.flag13) +#define Flag303(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.flag14) +#define Flag304(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.flag15) +#define Flag305(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.flag16) +#define Flag306(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.flag17) +#define Flag307(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.flag18) +#define Flag308(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.pflag1) +#define Flag309(N) (Nodes_Ptr[(N) - First_Node_Id + 5].U.K.pflag2) #ifdef __cplusplus } diff --git a/gcc/ada/einfo.adb b/gcc/ada/einfo.adb index 95776dad601..0961b2d708e 100644 --- a/gcc/ada/einfo.adb +++ b/gcc/ada/einfo.adb @@ -584,12 +584,26 @@ package body Einfo is -- Is_Static_Type Flag281 -- Has_Nested_Subprogram Flag282 -- Uplevel_Reference_Noted Flag283 - -- Is_ARECnF_Entity Flag284 + -- (unused) Flag285 -- (unused) Flag286 - - -- Note: Flag287-317 are defined in atree.ads/adb, but not yet in atree.h + -- (unused) Flag287 + -- (unused) Flag288 + -- (unused) Flag289 + -- (unused) Flag300 + + -- (unused) Flag301 + -- (unused) Flag302 + -- (unused) Flag303 + -- (unused) Flag304 + -- (unused) Flag305 + -- (unused) Flag306 + -- (unused) Flag307 + -- (unused) Flag308 + -- (unused) Flag309 + + -- Note: Flag310-317 are defined in atree.ads/adb, but not yet in atree.h ----------------------- -- Local subprograms -- diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index e048e216be9..724a9ae87ba 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -3516,13 +3516,17 @@ package body Sem_Util is begin Full_T := Typ; - -- Handle private types + -- Handle private types and subtypes if Use_Full_View and then Is_Private_Type (Typ) and then Present (Full_View (Typ)) then Full_T := Full_View (Typ); + + if Ekind (Full_T) = E_Record_Subtype then + Full_T := Full_View (Etype (Typ)); + end if; end if; -- Include the ancestor if we are generating the whole list of @@ -15147,7 +15151,7 @@ package body Sem_Util is -- If the entity is the loop variable in an iteration over -- a container, retrieve container expression to indicate - -- possible modificastion. + -- possible modification. if Present (Related_Expression (Ent)) and then Nkind (Parent (Related_Expression (Ent))) = -- 2.30.2