sem_ch3.adb, [...]: Minor reformatting

2010-10-11  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_aux.adb, sem_ch6.adb: Minor reformatting

2010-10-11  Robert Dewar  <dewar@adacore.com>

	* einfo.adb, atree.h, atree.ads, atree.adb: Define seven new flags
	Flag248-Flag254.  Define new field Field29.

From-SVN: r165271
This commit is contained in:
Robert Dewar 2010-10-11 06:59:29 +00:00 committed by Arnaud Charlet
parent 922a06c370
commit e0ae93e2ea
8 changed files with 516 additions and 392 deletions

View File

@ -1,3 +1,12 @@
2010-10-11 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb, sem_aux.adb, sem_ch6.adb: Minor reformatting
2010-10-11 Robert Dewar <dewar@adacore.com>
* einfo.adb, atree.h, atree.ads, atree.adb: Define seven new flags
Flag248-Flag254. Define new field Field29.
2010-10-10 Olivier Hainque <hainque@adacore.com> 2010-10-10 Olivier Hainque <hainque@adacore.com>
Eric Botcazou <ebotcazou@adacore.com> Eric Botcazou <ebotcazou@adacore.com>

File diff suppressed because it is too large Load Diff

View File

@ -981,6 +981,9 @@ package Atree is
function Field28 (N : Node_Id) return Union_Id; function Field28 (N : Node_Id) return Union_Id;
pragma Inline (Field28); pragma Inline (Field28);
function Field29 (N : Node_Id) return Union_Id;
pragma Inline (Field29);
function Node1 (N : Node_Id) return Node_Id; function Node1 (N : Node_Id) return Node_Id;
pragma Inline (Node1); pragma Inline (Node1);
@ -1065,6 +1068,9 @@ package Atree is
function Node28 (N : Node_Id) return Node_Id; function Node28 (N : Node_Id) return Node_Id;
pragma Inline (Node28); pragma Inline (Node28);
function Node29 (N : Node_Id) return Node_Id;
pragma Inline (Node29);
function List1 (N : Node_Id) return List_Id; function List1 (N : Node_Id) return List_Id;
pragma Inline (List1); pragma Inline (List1);
@ -1925,6 +1931,27 @@ package Atree is
function Flag247 (N : Node_Id) return Boolean; function Flag247 (N : Node_Id) return Boolean;
pragma Inline (Flag247); pragma Inline (Flag247);
function Flag248 (N : Node_Id) return Boolean;
pragma Inline (Flag248);
function Flag249 (N : Node_Id) return Boolean;
pragma Inline (Flag249);
function Flag250 (N : Node_Id) return Boolean;
pragma Inline (Flag250);
function Flag251 (N : Node_Id) return Boolean;
pragma Inline (Flag251);
function Flag252 (N : Node_Id) return Boolean;
pragma Inline (Flag252);
function Flag253 (N : Node_Id) return Boolean;
pragma Inline (Flag253);
function Flag254 (N : Node_Id) return Boolean;
pragma Inline (Flag254);
-- Procedures to set value of indicated field -- Procedures to set value of indicated field
procedure Set_Nkind (N : Node_Id; Val : Node_Kind); procedure Set_Nkind (N : Node_Id; Val : Node_Kind);
@ -2014,6 +2041,9 @@ package Atree is
procedure Set_Field28 (N : Node_Id; Val : Union_Id); procedure Set_Field28 (N : Node_Id; Val : Union_Id);
pragma Inline (Set_Field28); pragma Inline (Set_Field28);
procedure Set_Field29 (N : Node_Id; Val : Union_Id);
pragma Inline (Set_Field29);
procedure Set_Node1 (N : Node_Id; Val : Node_Id); procedure Set_Node1 (N : Node_Id; Val : Node_Id);
pragma Inline (Set_Node1); pragma Inline (Set_Node1);
@ -2098,6 +2128,9 @@ package Atree is
procedure Set_Node28 (N : Node_Id; Val : Node_Id); procedure Set_Node28 (N : Node_Id; Val : Node_Id);
pragma Inline (Set_Node28); pragma Inline (Set_Node28);
procedure Set_Node29 (N : Node_Id; Val : Node_Id);
pragma Inline (Set_Node29);
procedure Set_List1 (N : Node_Id; Val : List_Id); procedure Set_List1 (N : Node_Id; Val : List_Id);
pragma Inline (Set_List1); pragma Inline (Set_List1);
@ -2953,6 +2986,27 @@ package Atree is
procedure Set_Flag247 (N : Node_Id; Val : Boolean); procedure Set_Flag247 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag247); pragma Inline (Set_Flag247);
procedure Set_Flag248 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag248);
procedure Set_Flag249 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag249);
procedure Set_Flag250 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag250);
procedure Set_Flag251 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag251);
procedure Set_Flag252 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag252);
procedure Set_Flag253 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag253);
procedure Set_Flag254 (N : Node_Id; Val : Boolean);
pragma Inline (Set_Flag254);
-- The following versions of Set_Noden also set the parent -- The following versions of Set_Noden also set the parent
-- pointer of the referenced node if it is non_Empty -- pointer of the referenced node if it is non_Empty
@ -3069,33 +3123,33 @@ package Atree is
Flag18 : Boolean; Flag18 : Boolean;
-- The eighteen flags for a normal node -- The eighteen flags for a normal node
-- The above fields are used as follows in components 2-4 of -- The above fields are used as follows in components 2-5 of
-- an extended node entry. These fields are not currently -- an extended node entry. These fields are not currently
-- used in component 5 (where we still have lots of room!) -- used in component 5 (where we still have lots of room!)
-- In_List used as Flag19, Flag40, Flag129 -- In_List used as Flag19, Flag40, Flag129, Flag216
-- Unused_1 used as Flag20, Flag41, Flag130 -- Unused_1 used as Flag20, Flag41, Flag130, Flag217
-- Rewrite_Ins used as Flag21, Flag42, Flag131 -- Rewrite_Ins used as Flag21, Flag42, Flag131, Flag218
-- Analyzed used as Flag22, Flag43, Flag132 -- Analyzed used as Flag22, Flag43, Flag132, Flag219
-- Comes_From_Source used as Flag23, Flag44, Flag133 -- Comes_From_Source used as Flag23, Flag44, Flag133, Flag220
-- Error_Posted used as Flag24, Flag45, Flag134 -- Error_Posted used as Flag24, Flag45, Flag134, Flag221
-- Flag4 used as Flag25, Flag46, Flag135 -- Flag4 used as Flag25, Flag46, Flag135, Flag222
-- Flag5 used as Flag26, Flag47, Flag136 -- Flag5 used as Flag26, Flag47, Flag136, Flag223
-- Flag6 used as Flag27, Flag48, Flag137 -- Flag6 used as Flag27, Flag48, Flag137, Flag224
-- Flag7 used as Flag28, Flag49, Flag138 -- Flag7 used as Flag28, Flag49, Flag138, Flag225
-- Flag8 used as Flag29, Flag50, Flag139 -- Flag8 used as Flag29, Flag50, Flag139, Flag226
-- Flag9 used as Flag30, Flag51, Flag140 -- Flag9 used as Flag30, Flag51, Flag140, Flag227
-- Flag10 used as Flag31, Flag52, Flag141 -- Flag10 used as Flag31, Flag52, Flag141, Flag228
-- Flag11 used as Flag32, Flag53, Flag142 -- Flag11 used as Flag32, Flag53, Flag142, Flag229
-- Flag12 used as Flag33, Flag54, Flag143 -- Flag12 used as Flag33, Flag54, Flag143, Flag230
-- Flag13 used as Flag34, Flag55, Flag144 -- Flag13 used as Flag34, Flag55, Flag144, Flag231
-- Flag14 used as Flag35, Flag56, Flag145 -- Flag14 used as Flag35, Flag56, Flag145, Flag232
-- Flag15 used as Flag36, Flag57, Flag146 -- Flag15 used as Flag36, Flag57, Flag146, Flag233
-- Flag16 used as Flag37, Flag58, Flag147 -- Flag16 used as Flag37, Flag58, Flag147, Flag234
-- Flag17 used as Flag38, Flag59, Flag148 -- Flag17 used as Flag38, Flag59, Flag148, Flag235
-- Flag18 used as Flag39, Flag60, Flag149 -- Flag18 used as Flag39, Flag60, Flag149, Flag236
-- Pflag1 used as Flag61, Flag62, Flag150 -- Pflag1 used as Flag61, Flag62, Flag150, Flag237
-- Pflag2 used as Flag63, Flag64, Flag151 -- Pflag2 used as Flag63, Flag64, Flag151, Flag238
Nkind : Node_Kind; Nkind : Node_Kind;
-- For a non-extended node, or the initial section of an extended -- For a non-extended node, or the initial section of an extended
@ -3104,7 +3158,8 @@ package Atree is
-- --
-- Second entry: holds the Ekind field of the entity -- Second entry: holds the Ekind field of the entity
-- Third entry: holds 8 additional flags (Flag65-Flag72) -- Third entry: holds 8 additional flags (Flag65-Flag72)
-- Fourth entry: not currently used -- Fourth entry: holds 8 additional flags (Flag239-246)
-- Fifth entry: holds 8 additional flags (Flag247-254)
-- Now finally (on an 32-bit boundary!) comes the variant part -- Now finally (on an 32-bit boundary!) comes the variant part
@ -3167,9 +3222,8 @@ package Atree is
-- above is used to hold additional general fields and flags -- above is used to hold additional general fields and flags
-- as follows: -- as follows:
-- Field6-10 Holds Field24-Field28 -- Field6-11 Holds Field24-Field29
-- Field11 Holds Flag184-Flag215 -- Field12 Holds Flag184-Flag215
-- Field12 Holds Flag216-Flag247
end case; end case;
end record; end record;

View File

@ -6,7 +6,7 @@
* * * *
* C Header File * * C Header File *
* * * *
* Copyright (C) 1992-2008, Free Software Foundation, Inc. * * Copyright (C) 1992-2010, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
@ -215,7 +215,7 @@ struct Flag_Word3
Boolean flag183 : 1; Boolean flag183 : 1;
}; };
/* Structure used for extra flags in fifth component overlaying Field11 */ /* Structure used for extra flags in fifth component overlaying Field12 */
struct Flag_Word4 struct Flag_Word4
{ {
Boolean flag184 : 1; Boolean flag184 : 1;
@ -255,46 +255,6 @@ struct Flag_Word4
Boolean flag215 : 1; Boolean flag215 : 1;
}; };
/* Structure used for extra flags in fifth component overlaying Field12 */
struct Flag_Word5
{
Boolean flag216 : 1;
Boolean flag217 : 1;
Boolean flag218 : 1;
Boolean flag219 : 1;
Boolean flag220 : 1;
Boolean flag221 : 1;
Boolean flag222 : 1;
Boolean flag223 : 1;
Boolean flag224 : 1;
Boolean flag225 : 1;
Boolean flag226 : 1;
Boolean flag227 : 1;
Boolean flag228 : 1;
Boolean flag229 : 1;
Boolean flag230 : 1;
Boolean flag231 : 1;
Boolean flag232 : 1;
Boolean flag233 : 1;
Boolean flag234 : 1;
Boolean flag235 : 1;
Boolean flag236 : 1;
Boolean flag237 : 1;
Boolean flag238 : 1;
Boolean flag239 : 1;
Boolean flag240 : 1;
Boolean flag241 : 1;
Boolean flag242 : 1;
Boolean flag243 : 1;
Boolean flag244 : 1;
Boolean flag245 : 1;
Boolean flag246 : 1;
Boolean flag247 : 1;
};
struct Non_Extended struct Non_Extended
{ {
Source_Ptr sloc; Source_Ptr sloc;
@ -318,7 +278,6 @@ struct Extended
{ {
Int field11; Int field11;
struct Flag_Word3 fw3; struct Flag_Word3 fw3;
struct Flag_Word4 fw4;
} X; } X;
union union
@ -326,7 +285,7 @@ struct Extended
Int field12; Int field12;
struct Flag_Word fw; struct Flag_Word fw;
struct Flag_Word2 fw2; struct Flag_Word2 fw2;
struct Flag_Word5 fw5; struct Flag_Word4 fw4;
} U; } U;
}; };
@ -423,6 +382,7 @@ extern Node_Id Current_Error_Node;
#define Field26(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.field8) #define Field26(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.field8)
#define Field27(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.field9) #define Field27(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.field9)
#define Field28(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.field10) #define Field28(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.field10)
#define Field29(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.field11)
#define Node1(N) Field1 (N) #define Node1(N) Field1 (N)
#define Node2(N) Field2 (N) #define Node2(N) Field2 (N)
@ -452,6 +412,7 @@ extern Node_Id Current_Error_Node;
#define Node26(N) Field26 (N) #define Node26(N) Field26 (N)
#define Node27(N) Field27 (N) #define Node27(N) Field27 (N)
#define Node28(N) Field28 (N) #define Node28(N) Field28 (N)
#define Node29(N) Field29 (N)
#define List1(N) Field1 (N) #define List1(N) Field1 (N)
#define List2(N) Field2 (N) #define List2(N) Field2 (N)
@ -695,68 +656,78 @@ extern Node_Id Current_Error_Node;
#define Flag182(N) (Nodes_Ptr[(N) - First_Node_Id + 3].V.EX.X.fw3.flag182) #define Flag182(N) (Nodes_Ptr[(N) - First_Node_Id + 3].V.EX.X.fw3.flag182)
#define Flag183(N) (Nodes_Ptr[(N) - First_Node_Id + 3].V.EX.X.fw3.flag183) #define Flag183(N) (Nodes_Ptr[(N) - First_Node_Id + 3].V.EX.X.fw3.flag183)
#define Flag184(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag184) #define Flag184(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag184)
#define Flag185(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag185) #define Flag185(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag185)
#define Flag186(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag186) #define Flag186(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag186)
#define Flag187(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag187) #define Flag187(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag187)
#define Flag188(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag188) #define Flag188(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag188)
#define Flag189(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag189) #define Flag189(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag189)
#define Flag190(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag190) #define Flag190(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag190)
#define Flag191(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag191) #define Flag191(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag191)
#define Flag192(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag192) #define Flag192(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag192)
#define Flag193(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag193) #define Flag193(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag193)
#define Flag194(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag194) #define Flag194(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag194)
#define Flag195(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag195) #define Flag195(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag195)
#define Flag196(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag196) #define Flag196(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag196)
#define Flag197(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag197) #define Flag197(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag197)
#define Flag198(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag198) #define Flag198(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag198)
#define Flag199(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag199) #define Flag199(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag199)
#define Flag200(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag200) #define Flag200(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag200)
#define Flag201(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag201) #define Flag201(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag201)
#define Flag202(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag202) #define Flag202(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag202)
#define Flag203(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag203) #define Flag203(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag203)
#define Flag204(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag204) #define Flag204(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag204)
#define Flag205(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag205) #define Flag205(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag205)
#define Flag206(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag206) #define Flag206(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag206)
#define Flag207(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag207) #define Flag207(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag207)
#define Flag208(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag208) #define Flag208(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag208)
#define Flag209(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag209) #define Flag209(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag209)
#define Flag210(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag210) #define Flag210(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag210)
#define Flag211(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag211) #define Flag211(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag211)
#define Flag212(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag212) #define Flag212(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag212)
#define Flag213(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag213) #define Flag213(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag213)
#define Flag214(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag214) #define Flag214(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag214)
#define Flag215(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag215) #define Flag215(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw4.flag215)
#define Flag216(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.in_list)
#define Flag217(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.rewrite_sub)
#define Flag218(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.rewrite_ins)
#define Flag219(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.analyzed)
#define Flag220(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.c_f_s)
#define Flag221(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.error_posted)
#define Flag222(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag4)
#define Flag223(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag5)
#define Flag224(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag6)
#define Flag225(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag7)
#define Flag226(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag8)
#define Flag227(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag9)
#define Flag228(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag10)
#define Flag229(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag11)
#define Flag230(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag12)
#define Flag231(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag13)
#define Flag232(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag14)
#define Flag233(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag15)
#define Flag234(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag16)
#define Flag235(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag17)
#define Flag236(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.flag18)
#define Flag237(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.pflag1)
#define Flag238(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.K.pflag2)
#define Flag239(N) (Nodes_Ptr[(N) - First_Node_Id + 3].U.NK.flag65)
#define Flag240(N) (Nodes_Ptr[(N) - First_Node_Id + 3].U.NK.flag66)
#define Flag241(N) (Nodes_Ptr[(N) - First_Node_Id + 3].U.NK.flag67)
#define Flag242(N) (Nodes_Ptr[(N) - First_Node_Id + 3].U.NK.flag68)
#define Flag243(N) (Nodes_Ptr[(N) - First_Node_Id + 3].U.NK.flag69)
#define Flag244(N) (Nodes_Ptr[(N) - First_Node_Id + 3].U.NK.flag70)
#define Flag245(N) (Nodes_Ptr[(N) - First_Node_Id + 3].U.NK.flag71)
#define Flag246(N) (Nodes_Ptr[(N) - First_Node_Id + 3].U.NK.flag72)
#define Flag247(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag65)
#define Flag248(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag66)
#define Flag249(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag67)
#define Flag250(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag68)
#define Flag251(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag69)
#define Flag252(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag70)
#define Flag253(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag71)
#define Flag254(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag72)
#define Flag216(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag216)
#define Flag217(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag217)
#define Flag218(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag218)
#define Flag219(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag219)
#define Flag220(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag220)
#define Flag221(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag221)
#define Flag222(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag222)
#define Flag223(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag223)
#define Flag224(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag224)
#define Flag225(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag225)
#define Flag226(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag226)
#define Flag227(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag227)
#define Flag228(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag228)
#define Flag229(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag229)
#define Flag230(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag230)
#define Flag231(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag231)
#define Flag232(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag232)
#define Flag233(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag233)
#define Flag234(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag234)
#define Flag235(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag235)
#define Flag236(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag236)
#define Flag237(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag237)
#define Flag238(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag238)
#define Flag239(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag239)
#define Flag240(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag240)
#define Flag241(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag241)
#define Flag242(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag242)
#define Flag243(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag243)
#define Flag244(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag244)
#define Flag245(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag245)
#define Flag246(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag246)
#define Flag247(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.U.fw5.flag247)

View File

@ -230,6 +230,8 @@ package body Einfo is
-- Extra_Formals Node28 -- Extra_Formals Node28
-- Underlying_Record_View Node28 -- Underlying_Record_View Node28
-- (unused) Node29
--------------------------------------------- ---------------------------------------------
-- Usage of Flags in Defining Entity Nodes -- -- Usage of Flags in Defining Entity Nodes --
--------------------------------------------- ---------------------------------------------
@ -513,6 +515,14 @@ package body Einfo is
-- (unused) Flag200 -- (unused) Flag200
-- (unused) Flag232 -- (unused) Flag232
-- (unused) Flag248
-- (unused) Flag249
-- (unused) Flag250
-- (unused) Flag251
-- (unused) Flag252
-- (unused) Flag253
-- (unused) Flag254
----------------------- -----------------------
-- Local subprograms -- -- Local subprograms --
----------------------- -----------------------

View File

@ -585,8 +585,9 @@ package body Sem_Aux is
end if; end if;
if Is_Private_Type (Btype) then if Is_Private_Type (Btype) then
-- AI05-0063 : a type derived from a limited private formal type
-- is not immutably limited in a generic body. -- AI05-0063: A type derived from a limited private formal type is
-- not immutably limited in a generic body.
if Is_Derived_Type (Btype) if Is_Derived_Type (Btype)
and then Is_Generic_Type (Etype (Btype)) and then Is_Generic_Type (Etype (Btype))

View File

@ -8795,14 +8795,21 @@ package body Sem_Ch3 is
-- with the reserved word 'limited' in its definition or in one of its -- with the reserved word 'limited' in its definition or in one of its
-- ancestors. (RM 3.7(10)) -- ancestors. (RM 3.7(10))
-- AI-0063 : the proper condition is that type must be immutably -- AI-0063 : the proper condition is that type must be immutably
-- limited. -- limited, or else be a partial view.
if Nkind (Discriminant_Type (D)) = N_Access_Definition if Nkind (Discriminant_Type (D)) = N_Access_Definition then
and then not Is_Immutably_Limited_Type (Current_Scope) if Is_Immutably_Limited_Type (Current_Scope)
or else
(Nkind (Parent (Current_Scope)) = N_Private_Type_Declaration
and then Limited_Present (Parent (Current_Scope)))
then then
null;
else
Error_Msg_N Error_Msg_N
("access discriminants allowed only for limited types", Loc); ("access discriminants allowed only for limited types", Loc);
end if; end if;
end if;
end Check_Access_Discriminant_Requires_Limited; end Check_Access_Discriminant_Requires_Limited;
----------------------------------- -----------------------------------

View File

@ -483,6 +483,7 @@ package body Sem_Ch6 is
Error_Msg_N Error_Msg_N
("(Ada 2005) cannot copy object of a limited type " & ("(Ada 2005) cannot copy object of a limited type " &
"(RM-2005 6.5(5.5/2))", Expr); "(RM-2005 6.5(5.5/2))", Expr);
if Is_Immutably_Limited_Type (R_Type) then if Is_Immutably_Limited_Type (R_Type) then
Error_Msg_N Error_Msg_N
("\return by reference not permitted in Ada 2005", Expr); ("\return by reference not permitted in Ada 2005", Expr);
@ -4254,11 +4255,9 @@ package body Sem_Ch6 is
declare declare
Typ : constant Entity_Id := Etype (Designator); Typ : constant Entity_Id := Etype (Designator);
Utyp : constant Entity_Id := Underlying_Type (Typ); Utyp : constant Entity_Id := Underlying_Type (Typ);
begin begin
if Is_Immutably_Limited_Type (Typ) then if Is_Immutably_Limited_Type (Typ) then
Set_Returns_By_Ref (Designator); Set_Returns_By_Ref (Designator);
elsif Present (Utyp) and then CW_Or_Has_Controlled_Part (Utyp) then elsif Present (Utyp) and then CW_Or_Has_Controlled_Part (Utyp) then
Set_Returns_By_Ref (Designator); Set_Returns_By_Ref (Designator);
end if; end if;