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>
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;
pragma Inline (Field28);
function Field29 (N : Node_Id) return Union_Id;
pragma Inline (Field29);
function Node1 (N : Node_Id) return Node_Id;
pragma Inline (Node1);
@ -1065,6 +1068,9 @@ package Atree is
function Node28 (N : Node_Id) return Node_Id;
pragma Inline (Node28);
function Node29 (N : Node_Id) return Node_Id;
pragma Inline (Node29);
function List1 (N : Node_Id) return List_Id;
pragma Inline (List1);
@ -1925,6 +1931,27 @@ package Atree is
function Flag247 (N : Node_Id) return Boolean;
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
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);
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);
pragma Inline (Set_Node1);
@ -2098,6 +2128,9 @@ package Atree is
procedure Set_Node28 (N : Node_Id; Val : Node_Id);
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);
pragma Inline (Set_List1);
@ -2953,6 +2986,27 @@ package Atree is
procedure Set_Flag247 (N : Node_Id; Val : Boolean);
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
-- pointer of the referenced node if it is non_Empty
@ -3069,33 +3123,33 @@ package Atree is
Flag18 : Boolean;
-- 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
-- used in component 5 (where we still have lots of room!)
-- In_List used as Flag19, Flag40, Flag129
-- Unused_1 used as Flag20, Flag41, Flag130
-- Rewrite_Ins used as Flag21, Flag42, Flag131
-- Analyzed used as Flag22, Flag43, Flag132
-- Comes_From_Source used as Flag23, Flag44, Flag133
-- Error_Posted used as Flag24, Flag45, Flag134
-- Flag4 used as Flag25, Flag46, Flag135
-- Flag5 used as Flag26, Flag47, Flag136
-- Flag6 used as Flag27, Flag48, Flag137
-- Flag7 used as Flag28, Flag49, Flag138
-- Flag8 used as Flag29, Flag50, Flag139
-- Flag9 used as Flag30, Flag51, Flag140
-- Flag10 used as Flag31, Flag52, Flag141
-- Flag11 used as Flag32, Flag53, Flag142
-- Flag12 used as Flag33, Flag54, Flag143
-- Flag13 used as Flag34, Flag55, Flag144
-- Flag14 used as Flag35, Flag56, Flag145
-- Flag15 used as Flag36, Flag57, Flag146
-- Flag16 used as Flag37, Flag58, Flag147
-- Flag17 used as Flag38, Flag59, Flag148
-- Flag18 used as Flag39, Flag60, Flag149
-- Pflag1 used as Flag61, Flag62, Flag150
-- Pflag2 used as Flag63, Flag64, Flag151
-- In_List used as Flag19, Flag40, Flag129, Flag216
-- Unused_1 used as Flag20, Flag41, Flag130, Flag217
-- Rewrite_Ins used as Flag21, Flag42, Flag131, Flag218
-- Analyzed used as Flag22, Flag43, Flag132, Flag219
-- Comes_From_Source used as Flag23, Flag44, Flag133, Flag220
-- Error_Posted used as Flag24, Flag45, Flag134, Flag221
-- Flag4 used as Flag25, Flag46, Flag135, Flag222
-- Flag5 used as Flag26, Flag47, Flag136, Flag223
-- Flag6 used as Flag27, Flag48, Flag137, Flag224
-- Flag7 used as Flag28, Flag49, Flag138, Flag225
-- Flag8 used as Flag29, Flag50, Flag139, Flag226
-- Flag9 used as Flag30, Flag51, Flag140, Flag227
-- Flag10 used as Flag31, Flag52, Flag141, Flag228
-- Flag11 used as Flag32, Flag53, Flag142, Flag229
-- Flag12 used as Flag33, Flag54, Flag143, Flag230
-- Flag13 used as Flag34, Flag55, Flag144, Flag231
-- Flag14 used as Flag35, Flag56, Flag145, Flag232
-- Flag15 used as Flag36, Flag57, Flag146, Flag233
-- Flag16 used as Flag37, Flag58, Flag147, Flag234
-- Flag17 used as Flag38, Flag59, Flag148, Flag235
-- Flag18 used as Flag39, Flag60, Flag149, Flag236
-- Pflag1 used as Flag61, Flag62, Flag150, Flag237
-- Pflag2 used as Flag63, Flag64, Flag151, Flag238
Nkind : Node_Kind;
-- 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
-- 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
@ -3167,9 +3222,8 @@ package Atree is
-- above is used to hold additional general fields and flags
-- as follows:
-- Field6-10 Holds Field24-Field28
-- Field11 Holds Flag184-Flag215
-- Field12 Holds Flag216-Flag247
-- Field6-11 Holds Field24-Field29
-- Field12 Holds Flag184-Flag215
end case;
end record;

View File

@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
@ -215,7 +215,7 @@ struct Flag_Word3
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
{
Boolean flag184 : 1;
@ -255,46 +255,6 @@ struct Flag_Word4
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
{
Source_Ptr sloc;
@ -318,7 +278,6 @@ struct Extended
{
Int field11;
struct Flag_Word3 fw3;
struct Flag_Word4 fw4;
} X;
union
@ -326,7 +285,7 @@ struct Extended
Int field12;
struct Flag_Word fw;
struct Flag_Word2 fw2;
struct Flag_Word5 fw5;
struct Flag_Word4 fw4;
} 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 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 Field29(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.field11)
#define Node1(N) Field1 (N)
#define Node2(N) Field2 (N)
@ -452,6 +412,7 @@ extern Node_Id Current_Error_Node;
#define Node26(N) Field26 (N)
#define Node27(N) Field27 (N)
#define Node28(N) Field28 (N)
#define Node29(N) Field29 (N)
#define List1(N) Field1 (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 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 Flag185(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag185)
#define Flag186(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag186)
#define Flag187(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag187)
#define Flag188(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag188)
#define Flag189(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag189)
#define Flag190(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag190)
#define Flag191(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag191)
#define Flag192(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag192)
#define Flag193(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag193)
#define Flag194(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag194)
#define Flag195(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag195)
#define Flag196(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag196)
#define Flag197(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag197)
#define Flag198(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag198)
#define Flag199(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag199)
#define Flag200(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag200)
#define Flag201(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag201)
#define Flag202(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag202)
#define Flag203(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag203)
#define Flag204(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag204)
#define Flag205(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag205)
#define Flag206(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag206)
#define Flag207(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag207)
#define Flag208(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag208)
#define Flag209(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag209)
#define Flag210(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag210)
#define Flag211(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag211)
#define Flag212(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag212)
#define Flag213(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag213)
#define Flag214(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag214)
#define Flag215(N) (Nodes_Ptr[(N) - First_Node_Id + 4].V.EX.X.fw4.flag215)
#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.U.fw4.flag185)
#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.U.fw4.flag187)
#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.U.fw4.flag189)
#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.U.fw4.flag191)
#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.U.fw4.flag193)
#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.U.fw4.flag195)
#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.U.fw4.flag197)
#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.U.fw4.flag199)
#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.U.fw4.flag201)
#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.U.fw4.flag203)
#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.U.fw4.flag205)
#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.U.fw4.flag207)
#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.U.fw4.flag209)
#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.U.fw4.flag211)
#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.U.fw4.flag213)
#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.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
-- Underlying_Record_View Node28
-- (unused) Node29
---------------------------------------------
-- Usage of Flags in Defining Entity Nodes --
---------------------------------------------
@ -513,6 +515,14 @@ package body Einfo is
-- (unused) Flag200
-- (unused) Flag232
-- (unused) Flag248
-- (unused) Flag249
-- (unused) Flag250
-- (unused) Flag251
-- (unused) Flag252
-- (unused) Flag253
-- (unused) Flag254
-----------------------
-- Local subprograms --
-----------------------

View File

@ -585,8 +585,9 @@ package body Sem_Aux is
end if;
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)
and then Is_Generic_Type (Etype (Btype))

View File

@ -8795,13 +8795,20 @@ package body Sem_Ch3 is
-- with the reserved word 'limited' in its definition or in one of its
-- ancestors. (RM 3.7(10))
-- 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
and then not Is_Immutably_Limited_Type (Current_Scope)
then
Error_Msg_N
("access discriminants allowed only for limited types", Loc);
if Nkind (Discriminant_Type (D)) = N_Access_Definition then
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
null;
else
Error_Msg_N
("access discriminants allowed only for limited types", Loc);
end if;
end if;
end Check_Access_Discriminant_Requires_Limited;

View File

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