aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2015-03-04 12:51:48 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2015-03-04 12:51:48 +0100
commit85799cb98e9e3ed25eeeb43ece1c5aaea4a2a4fc (patch)
tree12299fa10bb1621d18809154eaf7f5a4370f50ae
parent47a6f66054936affc847afa61eed3d245381e58b (diff)
downloadgcc-85799cb98e9e3ed25eeeb43ece1c5aaea4a2a4fc.zip
gcc-85799cb98e9e3ed25eeeb43ece1c5aaea4a2a4fc.tar.gz
gcc-85799cb98e9e3ed25eeeb43ece1c5aaea4a2a4fc.tar.bz2
[multiple changes]
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. From-SVN: r221183
-rw-r--r--gcc/ada/ChangeLog11
-rw-r--r--gcc/ada/atree.h23
-rw-r--r--gcc/ada/einfo.adb20
-rw-r--r--gcc/ada/sem_util.adb8
4 files changed, 57 insertions, 5 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 386ae31..5c3816b 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,16 @@
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).
(Next_Formal): Don't return ARECnF formal.
(Last_Formal): Don't consider ARECnF formal.
diff --git a/gcc/ada/atree.h b/gcc/ada/atree.h
index 170bd95..dadfce0 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 95776da..0961b2d 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 e048e21..724a9ae 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))) =