+2015-03-04 Robert Dewar <dewar@adacore.com>
+
+ * atree.h: Add entries for Flag287-Flag309.
+ * einfo.adb: Add (unused) flags Flag287-Flag309.
+
+2015-03-04 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_util.adb (Collect_Interfaces, Collect): When gathering
+ interfaces of ancestors, handle properly a subtype of a private
+ extension.
+
2015-03-04 Robert Dewar <dewar@adacore.com>
* einfo.adb (Is_ARECnF_Entity): New flag (ARECnF is an extra formal).
#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
}
-- 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 --
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
-- 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))) =