comparison gcc/ada/einfo.adb @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
4 -- -- 4 -- --
5 -- E I N F O -- 5 -- E I N F O --
6 -- -- 6 -- --
7 -- B o d y -- 7 -- B o d y --
8 -- -- 8 -- --
9 -- Copyright (C) 1992-2017, Free Software Foundation, Inc. -- 9 -- Copyright (C) 1992-2018, Free Software Foundation, Inc. --
10 -- -- 10 -- --
11 -- GNAT is free software; you can redistribute it and/or modify it under -- 11 -- GNAT is free software; you can redistribute it and/or modify it under --
12 -- terms of the GNU General Public License as published by the Free Soft- -- 12 -- terms of the GNU General Public License as published by the Free Soft- --
13 -- ware Foundation; either version 3, or (at your option) any later ver- -- 13 -- ware Foundation; either version 3, or (at your option) any later ver- --
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
68 -- The following fields are present in all entities 68 -- The following fields are present in all entities
69 69
70 -- Homonym Node4 70 -- Homonym Node4
71 -- First_Rep_Item Node6 71 -- First_Rep_Item Node6
72 -- Freeze_Node Node7 72 -- Freeze_Node Node7
73 -- Prev_Entity Node36
73 -- Associated_Entity Node37 74 -- Associated_Entity Node37
74 75
75 -- The usage of other fields (and the entity kinds to which it applies) 76 -- The usage of other fields (and the entity kinds to which it applies)
76 -- depends on the particular field (see Einfo spec for details). 77 -- depends on the particular field (see Einfo spec for details).
77 78
115 -- RM_Size Uint13 116 -- RM_Size Uint13
116 117
117 -- Alignment Uint14 118 -- Alignment Uint14
118 -- Normalized_Position Uint14 119 -- Normalized_Position Uint14
119 -- Postconditions_Proc Node14 120 -- Postconditions_Proc Node14
120 -- Shadow_Entities List14
121 121
122 -- Discriminant_Number Uint15 122 -- Discriminant_Number Uint15
123 -- DT_Position Uint15 123 -- DT_Position Uint15
124 -- DT_Entry_Count Uint15 124 -- DT_Entry_Count Uint15
125 -- Entry_Parameters_Type Node15 125 -- Entry_Parameters_Type Node15
196 -- Associated_Storage_Pool Node22 196 -- Associated_Storage_Pool Node22
197 -- Component_Size Uint22 197 -- Component_Size Uint22
198 -- Corresponding_Remote_Type Node22 198 -- Corresponding_Remote_Type Node22
199 -- Enumeration_Rep_Expr Node22 199 -- Enumeration_Rep_Expr Node22
200 -- Original_Record_Component Node22 200 -- Original_Record_Component Node22
201 -- Private_View Node22
202 -- Protected_Formal Node22 201 -- Protected_Formal Node22
203 -- Scope_Depth_Value Uint22 202 -- Scope_Depth_Value Uint22
204 -- Shared_Var_Procs_Instance Node22 203 -- Shared_Var_Procs_Instance Node22
205 204
206 -- CR_Discriminant Node23 205 -- CR_Discriminant Node23
251 -- Subprograms_For_Type Elist29 250 -- Subprograms_For_Type Elist29
252 251
253 -- Access_Disp_Table_Elab_Flag Node30 252 -- Access_Disp_Table_Elab_Flag Node30
254 -- Anonymous_Object Node30 253 -- Anonymous_Object Node30
255 -- Corresponding_Equality Node30 254 -- Corresponding_Equality Node30
255 -- Hidden_In_Formal_Instance Elist30
256 -- Last_Aggregate_Assignment Node30 256 -- Last_Aggregate_Assignment Node30
257 -- Static_Initialization Node30 257 -- Static_Initialization Node30
258 258
259 -- Activation_Record_Component Node31
259 -- Derived_Type_Link Node31 260 -- Derived_Type_Link Node31
260 -- Thunk_Entity Node31 261 -- Thunk_Entity Node31
261 -- Activation_Record_Component Node31
262 262
263 -- Corresponding_Function Node32 263 -- Corresponding_Function Node32
264 -- Corresponding_Procedure Node32 264 -- Corresponding_Procedure Node32
265 -- Encapsulating_State Node32 265 -- Encapsulating_State Node32
266 -- No_Tagged_Streams_Pragma Node32 266 -- No_Tagged_Streams_Pragma Node32
271 271
272 -- Anonymous_Designated_Type Node35 272 -- Anonymous_Designated_Type Node35
273 -- Entry_Max_Queue_Lengths_Array Node35 273 -- Entry_Max_Queue_Lengths_Array Node35
274 -- Import_Pragma Node35 274 -- Import_Pragma Node35
275 275
276 -- Validated_Object Node36 276 -- Validated_Object Node38
277 277 -- Predicated_Parent Node38
278 -- Class_Wide_Clone Node38 278 -- Class_Wide_Clone Node38
279 279
280 -- Protected_Subprogram Node39 280 -- Protected_Subprogram Node39
281 281
282 -- SPARK_Pragma Node40 282 -- SPARK_Pragma Node40
622 -- Body_Needed_For_Inlining Flag299 622 -- Body_Needed_For_Inlining Flag299
623 -- Has_Private_Extension Flag300 623 -- Has_Private_Extension Flag300
624 624
625 -- Ignore_SPARK_Mode_Pragmas Flag301 625 -- Ignore_SPARK_Mode_Pragmas Flag301
626 -- Is_Initial_Condition_Procedure Flag302 626 -- Is_Initial_Condition_Procedure Flag302
627 627 -- Suppress_Elaboration_Warnings Flag303
628 -- (unused) Flag303 628 -- Is_Elaboration_Warnings_OK_Id Flag304
629 -- (unused) Flag304 629 -- Is_Activation_Record Flag305
630 -- (unused) Flag305 630 -- Needs_Activation_Record Flag306
631 -- (unused) Flag306 631 -- Is_Loop_Parameter Flag307
632 -- (unused) Flag307 632
633 -- (unused) Flag308 633 -- (unused) Flag308
634 -- (unused) Flag309 634 -- (unused) Flag309
635 635
636 -- Note: Flag310-317 are defined in atree.ads/adb, but not yet in atree.h 636 -- Note: Flag310-317 are defined in atree.ads/adb, but not yet in atree.h
637 637
1178 function Elaboration_Entity (Id : E) return E is 1178 function Elaboration_Entity (Id : E) return E is
1179 begin 1179 begin
1180 pragma Assert 1180 pragma Assert
1181 (Is_Subprogram (Id) 1181 (Is_Subprogram (Id)
1182 or else 1182 or else
1183 Ekind (Id) = E_Package 1183 Ekind_In (Id, E_Entry, E_Entry_Family, E_Package)
1184 or else 1184 or else
1185 Is_Generic_Unit (Id)); 1185 Is_Generic_Unit (Id));
1186 return Node13 (Id); 1186 return Node13 (Id);
1187 end Elaboration_Entity; 1187 end Elaboration_Entity;
1188 1188
1189 function Elaboration_Entity_Required (Id : E) return B is 1189 function Elaboration_Entity_Required (Id : E) return B is
1190 begin 1190 begin
1191 pragma Assert 1191 pragma Assert
1192 (Is_Subprogram (Id) 1192 (Is_Subprogram (Id)
1193 or else 1193 or else
1194 Ekind (Id) = E_Package 1194 Ekind_In (Id, E_Entry, E_Entry_Family, E_Package)
1195 or else 1195 or else
1196 Is_Generic_Unit (Id)); 1196 Is_Generic_Unit (Id));
1197 return Flag174 (Id); 1197 return Flag174 (Id);
1198 end Elaboration_Entity_Required; 1198 end Elaboration_Entity_Required;
1199 1199
1262 end Contains_Ignored_Ghost_Code; 1262 end Contains_Ignored_Ghost_Code;
1263 1263
1264 function Contract (Id : E) return N is 1264 function Contract (Id : E) return N is
1265 begin 1265 begin
1266 pragma Assert 1266 pragma Assert
1267 (Ekind_In (Id, E_Protected_Type, -- concurrent variants 1267 (Ekind_In (Id, E_Protected_Type, -- concurrent types
1268 E_Task_Body, 1268 E_Task_Body,
1269 E_Task_Type) 1269 E_Task_Type)
1270 or else 1270 or else
1271 Ekind_In (Id, E_Constant, -- object variants 1271 Ekind_In (Id, E_Constant, -- objects
1272 E_Variable) 1272 E_Variable)
1273 or else 1273 or else
1274 Ekind_In (Id, E_Entry, -- overloadable variants 1274 Ekind_In (Id, E_Entry, -- overloadable
1275 E_Entry_Family, 1275 E_Entry_Family,
1276 E_Function, 1276 E_Function,
1277 E_Generic_Function, 1277 E_Generic_Function,
1278 E_Generic_Procedure, 1278 E_Generic_Procedure,
1279 E_Operator, 1279 E_Operator,
1280 E_Procedure, 1280 E_Procedure,
1281 E_Subprogram_Body) 1281 E_Subprogram_Body)
1282 or else 1282 or else
1283 Ekind_In (Id, E_Generic_Package, -- package variants 1283 Ekind_In (Id, E_Generic_Package, -- packages
1284 E_Package, 1284 E_Package,
1285 E_Package_Body) 1285 E_Package_Body)
1286 or else 1286 or else
1287 Ekind (Id) = E_Void); -- special purpose 1287 Ekind (Id) = E_Void); -- special purpose
1288 return Node34 (Id); 1288 return Node34 (Id);
1289 end Contract; 1289 end Contract;
1290 1290
1291 function Contract_Wrapper (Id : E) return E is 1291 function Contract_Wrapper (Id : E) return E is
1292 begin 1292 begin
1563 return Flag261 (Id); 1563 return Flag261 (Id);
1564 end Has_Delayed_Rep_Aspects; 1564 end Has_Delayed_Rep_Aspects;
1565 1565
1566 function Has_Discriminants (Id : E) return B is 1566 function Has_Discriminants (Id : E) return B is
1567 begin 1567 begin
1568 pragma Assert (Nkind (Id) in N_Entity); 1568 pragma Assert (Is_Type (Id));
1569 return Flag5 (Id); 1569 return Flag5 (Id);
1570 end Has_Discriminants; 1570 end Has_Discriminants;
1571 1571
1572 function Has_Dispatch_Table (Id : E) return B is 1572 function Has_Dispatch_Table (Id : E) return B is
1573 begin 1573 begin
1985 begin 1985 begin
1986 pragma Assert (Ekind (Id) = E_Variable); 1986 pragma Assert (Ekind (Id) = E_Variable);
1987 return Node8 (Id); 1987 return Node8 (Id);
1988 end Hiding_Loop_Variable; 1988 end Hiding_Loop_Variable;
1989 1989
1990 function Hidden_In_Formal_Instance (Id : E) return L is
1991 begin
1992 pragma Assert (Ekind (Id) = E_Package);
1993 return Elist30 (Id);
1994 end Hidden_In_Formal_Instance;
1995
1990 function Homonym (Id : E) return E is 1996 function Homonym (Id : E) return E is
1991 begin 1997 begin
1992 return Node4 (Id); 1998 return Node4 (Id);
1993 end Homonym; 1999 end Homonym;
1994 2000
1995 function Ignore_SPARK_Mode_Pragmas (Id : E) return B is 2001 function Ignore_SPARK_Mode_Pragmas (Id : E) return B is
1996 begin 2002 begin
1997 pragma Assert 2003 pragma Assert
1998 (Ekind_In (Id, E_Protected_Body, -- concurrent variants 2004 (Ekind_In (Id, E_Protected_Body, -- concurrent types
1999 E_Protected_Type, 2005 E_Protected_Type,
2000 E_Task_Body, 2006 E_Task_Body,
2001 E_Task_Type) 2007 E_Task_Type)
2002 or else 2008 or else
2003 Ekind_In (Id, E_Entry, -- overloadable variants 2009 Ekind_In (Id, E_Entry, -- overloadable
2004 E_Entry_Family, 2010 E_Entry_Family,
2005 E_Function, 2011 E_Function,
2006 E_Generic_Function, 2012 E_Generic_Function,
2007 E_Generic_Procedure, 2013 E_Generic_Procedure,
2008 E_Operator, 2014 E_Operator,
2009 E_Procedure, 2015 E_Procedure,
2010 E_Subprogram_Body) 2016 E_Subprogram_Body)
2011 or else 2017 or else
2012 Ekind_In (Id, E_Generic_Package, -- package variants 2018 Ekind_In (Id, E_Generic_Package, -- packages
2013 E_Package, 2019 E_Package,
2014 E_Package_Body)); 2020 E_Package_Body));
2015 return Flag301 (Id); 2021 return Flag301 (Id);
2016 end Ignore_SPARK_Mode_Pragmas; 2022 end Ignore_SPARK_Mode_Pragmas;
2017 2023
2087 begin 2093 begin
2088 pragma Assert (Is_Access_Type (Id)); 2094 pragma Assert (Is_Access_Type (Id));
2089 return Flag69 (Id); 2095 return Flag69 (Id);
2090 end Is_Access_Constant; 2096 end Is_Access_Constant;
2091 2097
2098 function Is_Activation_Record (Id : E) return B is
2099 begin
2100 pragma Assert (Ekind (Id) = E_In_Parameter);
2101 return Flag305 (Id);
2102 end Is_Activation_Record;
2103
2092 function Is_Actual_Subtype (Id : E) return B is 2104 function Is_Actual_Subtype (Id : E) return B is
2093 begin 2105 begin
2094 pragma Assert (Is_Type (Id)); 2106 pragma Assert (Is_Type (Id));
2095 return Flag293 (Id); 2107 return Flag293 (Id);
2096 end Is_Actual_Subtype; 2108 end Is_Actual_Subtype;
2242 return Flag6 (Id); 2254 return Flag6 (Id);
2243 end Is_Dispatching_Operation; 2255 end Is_Dispatching_Operation;
2244 2256
2245 function Is_Elaboration_Checks_OK_Id (Id : E) return B is 2257 function Is_Elaboration_Checks_OK_Id (Id : E) return B is
2246 begin 2258 begin
2247 pragma Assert 2259 pragma Assert (Is_Elaboration_Target (Id));
2248 (Ekind_In (Id, E_Constant, E_Variable)
2249 or else Is_Entry (Id)
2250 or else Is_Generic_Unit (Id)
2251 or else Is_Subprogram (Id)
2252 or else Is_Task_Type (Id));
2253 return Flag148 (Id); 2260 return Flag148 (Id);
2254 end Is_Elaboration_Checks_OK_Id; 2261 end Is_Elaboration_Checks_OK_Id;
2262
2263 function Is_Elaboration_Warnings_OK_Id (Id : E) return B is
2264 begin
2265 pragma Assert (Is_Elaboration_Target (Id) or else Ekind (Id) = E_Void);
2266 return Flag304 (Id);
2267 end Is_Elaboration_Warnings_OK_Id;
2255 2268
2256 function Is_Eliminated (Id : E) return B is 2269 function Is_Eliminated (Id : E) return B is
2257 begin 2270 begin
2258 return Flag124 (Id); 2271 return Flag124 (Id);
2259 end Is_Eliminated; 2272 end Is_Eliminated;
2468 function Is_Local_Anonymous_Access (Id : E) return B is 2481 function Is_Local_Anonymous_Access (Id : E) return B is
2469 begin 2482 begin
2470 pragma Assert (Is_Access_Type (Id)); 2483 pragma Assert (Is_Access_Type (Id));
2471 return Flag194 (Id); 2484 return Flag194 (Id);
2472 end Is_Local_Anonymous_Access; 2485 end Is_Local_Anonymous_Access;
2486
2487 function Is_Loop_Parameter (Id : E) return B is
2488 begin
2489 return Flag307 (Id);
2490 end Is_Loop_Parameter;
2473 2491
2474 function Is_Machine_Code_Subprogram (Id : E) return B is 2492 function Is_Machine_Code_Subprogram (Id : E) return B is
2475 begin 2493 begin
2476 pragma Assert (Is_Subprogram (Id)); 2494 pragma Assert (Is_Subprogram (Id));
2477 return Flag137 (Id); 2495 return Flag137 (Id);
2851 function Must_Have_Preelab_Init (Id : E) return B is 2869 function Must_Have_Preelab_Init (Id : E) return B is
2852 begin 2870 begin
2853 pragma Assert (Is_Type (Id)); 2871 pragma Assert (Is_Type (Id));
2854 return Flag208 (Id); 2872 return Flag208 (Id);
2855 end Must_Have_Preelab_Init; 2873 end Must_Have_Preelab_Init;
2874
2875 function Needs_Activation_Record (Id : E) return B is
2876 begin
2877 return Flag306 (Id);
2878 end Needs_Activation_Record;
2856 2879
2857 function Needs_Debug_Info (Id : E) return B is 2880 function Needs_Debug_Info (Id : E) return B is
2858 begin 2881 begin
2859 return Flag147 (Id); 2882 return Flag147 (Id);
2860 end Needs_Debug_Info; 2883 end Needs_Debug_Info;
3062 E_Function, 3085 E_Function,
3063 E_Procedure)); 3086 E_Procedure));
3064 return Node14 (Id); 3087 return Node14 (Id);
3065 end Postconditions_Proc; 3088 end Postconditions_Proc;
3066 3089
3090 function Predicated_Parent (Id : E) return E is
3091 begin
3092 pragma Assert (Ekind_In (Id, E_Array_Subtype,
3093 E_Record_Subtype,
3094 E_Record_Subtype_With_Private));
3095 return Node38 (Id);
3096 end Predicated_Parent;
3097
3067 function Predicates_Ignored (Id : E) return B is 3098 function Predicates_Ignored (Id : E) return B is
3068 begin 3099 begin
3069 pragma Assert (Is_Type (Id)); 3100 pragma Assert (Is_Type (Id));
3070 return Flag288 (Id); 3101 return Flag288 (Id);
3071 end Predicates_Ignored; 3102 end Predicates_Ignored;
3072 3103
3104 function Prev_Entity (Id : E) return E is
3105 begin
3106 return Node36 (Id);
3107 end Prev_Entity;
3108
3073 function Prival (Id : E) return E is 3109 function Prival (Id : E) return E is
3074 begin 3110 begin
3075 pragma Assert (Is_Protected_Component (Id)); 3111 pragma Assert (Is_Protected_Component (Id));
3076 return Node17 (Id); 3112 return Node17 (Id);
3077 end Prival; 3113 end Prival;
3085 function Private_Dependents (Id : E) return L is 3121 function Private_Dependents (Id : E) return L is
3086 begin 3122 begin
3087 pragma Assert (Is_Incomplete_Or_Private_Type (Id)); 3123 pragma Assert (Is_Incomplete_Or_Private_Type (Id));
3088 return Elist18 (Id); 3124 return Elist18 (Id);
3089 end Private_Dependents; 3125 end Private_Dependents;
3090
3091 function Private_View (Id : E) return N is
3092 begin
3093 pragma Assert (Is_Private_Type (Id));
3094 return Node22 (Id);
3095 end Private_View;
3096 3126
3097 function Protected_Body_Subprogram (Id : E) return E is 3127 function Protected_Body_Subprogram (Id : E) return E is
3098 begin 3128 begin
3099 pragma Assert (Is_Subprogram (Id) or else Is_Entry (Id)); 3129 pragma Assert (Is_Subprogram (Id) or else Is_Entry (Id));
3100 return Node11 (Id); 3130 return Node11 (Id);
3274 function Sec_Stack_Needed_For_Return (Id : E) return B is 3304 function Sec_Stack_Needed_For_Return (Id : E) return B is
3275 begin 3305 begin
3276 return Flag167 (Id); 3306 return Flag167 (Id);
3277 end Sec_Stack_Needed_For_Return; 3307 end Sec_Stack_Needed_For_Return;
3278 3308
3279 function Shadow_Entities (Id : E) return S is
3280 begin
3281 pragma Assert (Ekind_In (Id, E_Package, E_Generic_Package));
3282 return List14 (Id);
3283 end Shadow_Entities;
3284
3285 function Shared_Var_Procs_Instance (Id : E) return E is 3309 function Shared_Var_Procs_Instance (Id : E) return E is
3286 begin 3310 begin
3287 pragma Assert (Ekind (Id) = E_Variable); 3311 pragma Assert (Ekind (Id) = E_Variable);
3288 return Node22 (Id); 3312 return Node22 (Id);
3289 end Shared_Var_Procs_Instance; 3313 end Shared_Var_Procs_Instance;
3311 end Small_Value; 3335 end Small_Value;
3312 3336
3313 function SPARK_Aux_Pragma (Id : E) return N is 3337 function SPARK_Aux_Pragma (Id : E) return N is
3314 begin 3338 begin
3315 pragma Assert 3339 pragma Assert
3316 (Ekind_In (Id, E_Protected_Type, -- concurrent variants 3340 (Ekind_In (Id, E_Protected_Type, -- concurrent types
3317 E_Task_Type) 3341 E_Task_Type)
3318 or else 3342 or else
3319 Ekind_In (Id, E_Generic_Package, -- package variants 3343 Ekind_In (Id, E_Generic_Package, -- packages
3320 E_Package, 3344 E_Package,
3321 E_Package_Body)); 3345 E_Package_Body));
3322 return Node41 (Id); 3346 return Node41 (Id);
3323 end SPARK_Aux_Pragma; 3347 end SPARK_Aux_Pragma;
3324 3348
3325 function SPARK_Aux_Pragma_Inherited (Id : E) return B is 3349 function SPARK_Aux_Pragma_Inherited (Id : E) return B is
3326 begin 3350 begin
3327 pragma Assert 3351 pragma Assert
3328 (Ekind_In (Id, E_Protected_Type, -- concurrent variants 3352 (Ekind_In (Id, E_Protected_Type, -- concurrent types
3329 E_Task_Type) 3353 E_Task_Type)
3330 or else 3354 or else
3331 Ekind_In (Id, E_Generic_Package, -- package variants 3355 Ekind_In (Id, E_Generic_Package, -- packages
3332 E_Package, 3356 E_Package,
3333 E_Package_Body)); 3357 E_Package_Body));
3334 return Flag266 (Id); 3358 return Flag266 (Id);
3335 end SPARK_Aux_Pragma_Inherited; 3359 end SPARK_Aux_Pragma_Inherited;
3336 3360
3337 function SPARK_Pragma (Id : E) return N is 3361 function SPARK_Pragma (Id : E) return N is
3338 begin 3362 begin
3339 pragma Assert 3363 pragma Assert
3340 (Ekind_In (Id, E_Protected_Body, -- concurrent variants 3364 (Ekind_In (Id, E_Constant, -- objects
3341 E_Protected_Type,
3342 E_Task_Body,
3343 E_Task_Type)
3344 or else
3345 Ekind_In (Id, E_Constant, -- object variants
3346 E_Variable) 3365 E_Variable)
3347 or else 3366 or else
3348 Ekind_In (Id, E_Entry, -- overloadable variants 3367 Ekind_In (Id, E_Abstract_State, -- overloadable
3368 E_Entry,
3349 E_Entry_Family, 3369 E_Entry_Family,
3350 E_Function, 3370 E_Function,
3351 E_Generic_Function, 3371 E_Generic_Function,
3352 E_Generic_Procedure, 3372 E_Generic_Procedure,
3353 E_Operator, 3373 E_Operator,
3354 E_Procedure, 3374 E_Procedure,
3355 E_Subprogram_Body) 3375 E_Subprogram_Body)
3356 or else 3376 or else
3357 Ekind_In (Id, E_Generic_Package, -- package variants 3377 Ekind_In (Id, E_Generic_Package, -- packages
3358 E_Package, 3378 E_Package,
3359 E_Package_Body) 3379 E_Package_Body)
3360 or else 3380 or else
3361 Ekind (Id) = E_Void); -- special purpose 3381 Ekind (Id) = E_Void -- special purpose
3382 or else
3383 Ekind_In (Id, E_Protected_Body, -- types
3384 E_Task_Body)
3385 or else
3386 Is_Type (Id));
3362 return Node40 (Id); 3387 return Node40 (Id);
3363 end SPARK_Pragma; 3388 end SPARK_Pragma;
3364 3389
3365 function SPARK_Pragma_Inherited (Id : E) return B is 3390 function SPARK_Pragma_Inherited (Id : E) return B is
3366 begin 3391 begin
3367 pragma Assert 3392 pragma Assert
3368 (Ekind_In (Id, E_Protected_Body, -- concurrent variants 3393 (Ekind_In (Id, E_Constant, -- objects
3369 E_Protected_Type,
3370 E_Task_Body,
3371 E_Task_Type)
3372 or else
3373 Ekind_In (Id, E_Constant, -- object variants
3374 E_Variable) 3394 E_Variable)
3375 or else 3395 or else
3376 Ekind_In (Id, E_Entry, -- overloadable variants 3396 Ekind_In (Id, E_Abstract_State, -- overloadable
3397 E_Entry,
3377 E_Entry_Family, 3398 E_Entry_Family,
3378 E_Function, 3399 E_Function,
3379 E_Generic_Function, 3400 E_Generic_Function,
3380 E_Generic_Procedure, 3401 E_Generic_Procedure,
3381 E_Operator, 3402 E_Operator,
3382 E_Procedure, 3403 E_Procedure,
3383 E_Subprogram_Body) 3404 E_Subprogram_Body)
3384 or else 3405 or else
3385 Ekind_In (Id, E_Generic_Package, -- package variants 3406 Ekind_In (Id, E_Generic_Package, -- packages
3386 E_Package, 3407 E_Package,
3387 E_Package_Body) 3408 E_Package_Body)
3388 or else 3409 or else
3389 Ekind (Id) = E_Void); -- special purpose 3410 Ekind (Id) = E_Void -- special purpose
3411 or else
3412 Ekind_In (Id, E_Protected_Body, -- types
3413 E_Task_Body)
3414 or else
3415 Is_Type (Id));
3390 return Flag265 (Id); 3416 return Flag265 (Id);
3391 end SPARK_Pragma_Inherited; 3417 end SPARK_Pragma_Inherited;
3392 3418
3393 function Spec_Entity (Id : E) return E is 3419 function Spec_Entity (Id : E) return E is
3394 begin 3420 begin
3484 begin 3510 begin
3485 pragma Assert (Is_Subprogram (Id)); 3511 pragma Assert (Is_Subprogram (Id));
3486 return Uint24 (Id); 3512 return Uint24 (Id);
3487 end Subps_Index; 3513 end Subps_Index;
3488 3514
3515 function Suppress_Elaboration_Warnings (Id : E) return B is
3516 begin
3517 return Flag303 (Id);
3518 end Suppress_Elaboration_Warnings;
3519
3489 function Suppress_Initialization (Id : E) return B is 3520 function Suppress_Initialization (Id : E) return B is
3490 begin 3521 begin
3491 pragma Assert (Is_Type (Id) or else Ekind (Id) = E_Variable); 3522 pragma Assert (Is_Type (Id) or else Ekind (Id) = E_Variable);
3492 return Flag105 (Id); 3523 return Flag105 (Id);
3493 end Suppress_Initialization; 3524 end Suppress_Initialization;
3559 end Uses_Sec_Stack; 3590 end Uses_Sec_Stack;
3560 3591
3561 function Validated_Object (Id : E) return N is 3592 function Validated_Object (Id : E) return N is
3562 begin 3593 begin
3563 pragma Assert (Ekind (Id) = E_Variable); 3594 pragma Assert (Ekind (Id) = E_Variable);
3564 return Node36 (Id); 3595 return Node38 (Id);
3565 end Validated_Object; 3596 end Validated_Object;
3566 3597
3567 function Warnings_Off (Id : E) return B is 3598 function Warnings_Off (Id : E) return B is
3568 begin 3599 begin
3569 return Flag96 (Id); 3600 return Flag96 (Id);
4081 end Set_Contains_Ignored_Ghost_Code; 4112 end Set_Contains_Ignored_Ghost_Code;
4082 4113
4083 procedure Set_Contract (Id : E; V : N) is 4114 procedure Set_Contract (Id : E; V : N) is
4084 begin 4115 begin
4085 pragma Assert 4116 pragma Assert
4086 (Ekind_In (Id, E_Protected_Type, -- concurrent variants 4117 (Ekind_In (Id, E_Protected_Type, -- concurrent types
4087 E_Task_Body, 4118 E_Task_Body,
4088 E_Task_Type) 4119 E_Task_Type)
4089 or else 4120 or else
4090 Ekind_In (Id, E_Constant, -- object variants 4121 Ekind_In (Id, E_Constant, -- objects
4091 E_Variable) 4122 E_Variable)
4092 or else 4123 or else
4093 Ekind_In (Id, E_Entry, -- overloadable variants 4124 Ekind_In (Id, E_Entry, -- overloadable
4094 E_Entry_Family, 4125 E_Entry_Family,
4095 E_Function, 4126 E_Function,
4096 E_Generic_Function, 4127 E_Generic_Function,
4097 E_Generic_Procedure, 4128 E_Generic_Procedure,
4098 E_Operator, 4129 E_Operator,
4099 E_Procedure, 4130 E_Procedure,
4100 E_Subprogram_Body) 4131 E_Subprogram_Body)
4101 or else 4132 or else
4102 Ekind_In (Id, E_Generic_Package, -- package variants 4133 Ekind_In (Id, E_Generic_Package, -- packages
4103 E_Package, 4134 E_Package,
4104 E_Package_Body) 4135 E_Package_Body)
4105 or else 4136 or else
4106 Ekind (Id) = E_Void); -- special purpose 4137 Ekind (Id) = E_Void); -- special purpose
4107 Set_Node34 (Id, V); 4138 Set_Node34 (Id, V);
4108 end Set_Contract; 4139 end Set_Contract;
4109 4140
4110 procedure Set_Contract_Wrapper (Id : E; V : E) is 4141 procedure Set_Contract_Wrapper (Id : E; V : E) is
4111 begin 4142 begin
4365 procedure Set_Elaboration_Entity (Id : E; V : E) is 4396 procedure Set_Elaboration_Entity (Id : E; V : E) is
4366 begin 4397 begin
4367 pragma Assert 4398 pragma Assert
4368 (Is_Subprogram (Id) 4399 (Is_Subprogram (Id)
4369 or else 4400 or else
4370 Ekind (Id) = E_Package 4401 Ekind_In (Id, E_Entry, E_Entry_Family, E_Package)
4371 or else 4402 or else
4372 Is_Generic_Unit (Id)); 4403 Is_Generic_Unit (Id));
4373 Set_Node13 (Id, V); 4404 Set_Node13 (Id, V);
4374 end Set_Elaboration_Entity; 4405 end Set_Elaboration_Entity;
4375 4406
4376 procedure Set_Elaboration_Entity_Required (Id : E; V : B := True) is 4407 procedure Set_Elaboration_Entity_Required (Id : E; V : B := True) is
4377 begin 4408 begin
4378 pragma Assert 4409 pragma Assert
4379 (Is_Subprogram (Id) 4410 (Is_Subprogram (Id)
4380 or else 4411 or else
4381 Ekind (Id) = E_Package 4412 Ekind_In (Id, E_Entry, E_Entry_Family, E_Package)
4382 or else 4413 or else
4383 Is_Generic_Unit (Id)); 4414 Is_Generic_Unit (Id));
4384 Set_Flag174 (Id, V); 4415 Set_Flag174 (Id, V);
4385 end Set_Elaboration_Entity_Required; 4416 end Set_Elaboration_Entity_Required;
4386 4417
4710 Set_Flag261 (Id, V); 4741 Set_Flag261 (Id, V);
4711 end Set_Has_Delayed_Rep_Aspects; 4742 end Set_Has_Delayed_Rep_Aspects;
4712 4743
4713 procedure Set_Has_Discriminants (Id : E; V : B := True) is 4744 procedure Set_Has_Discriminants (Id : E; V : B := True) is
4714 begin 4745 begin
4715 pragma Assert (Nkind (Id) in N_Entity); 4746 pragma Assert (Is_Type (Id));
4716 Set_Flag5 (Id, V); 4747 Set_Flag5 (Id, V);
4717 end Set_Has_Discriminants; 4748 end Set_Has_Discriminants;
4718 4749
4719 procedure Set_Has_Dispatch_Table (Id : E; V : B := True) is 4750 procedure Set_Has_Dispatch_Table (Id : E; V : B := True) is
4720 begin 4751 begin
5147 begin 5178 begin
5148 pragma Assert (Ekind (Id) = E_Variable); 5179 pragma Assert (Ekind (Id) = E_Variable);
5149 Set_Node8 (Id, V); 5180 Set_Node8 (Id, V);
5150 end Set_Hiding_Loop_Variable; 5181 end Set_Hiding_Loop_Variable;
5151 5182
5183 procedure Set_Hidden_In_Formal_Instance (Id : E; V : L) is
5184 begin
5185 pragma Assert (Ekind (Id) = E_Package);
5186 Set_Elist30 (Id, V);
5187 end Set_Hidden_In_Formal_Instance;
5188
5152 procedure Set_Homonym (Id : E; V : E) is 5189 procedure Set_Homonym (Id : E; V : E) is
5153 begin 5190 begin
5154 pragma Assert (Id /= V); 5191 pragma Assert (Id /= V);
5155 Set_Node4 (Id, V); 5192 Set_Node4 (Id, V);
5156 end Set_Homonym; 5193 end Set_Homonym;
5162 end Set_Incomplete_Actuals; 5199 end Set_Incomplete_Actuals;
5163 5200
5164 procedure Set_Ignore_SPARK_Mode_Pragmas (Id : E; V : B := True) is 5201 procedure Set_Ignore_SPARK_Mode_Pragmas (Id : E; V : B := True) is
5165 begin 5202 begin
5166 pragma Assert 5203 pragma Assert
5167 (Ekind_In (Id, E_Protected_Body, -- concurrent variants 5204 (Ekind_In (Id, E_Protected_Body, -- concurrent types
5168 E_Protected_Type, 5205 E_Protected_Type,
5169 E_Task_Body, 5206 E_Task_Body,
5170 E_Task_Type) 5207 E_Task_Type)
5171 or else 5208 or else
5172 Ekind_In (Id, E_Entry, -- overloadable variants 5209 Ekind_In (Id, E_Entry, -- overloadable
5173 E_Entry_Family, 5210 E_Entry_Family,
5174 E_Function, 5211 E_Function,
5175 E_Generic_Function, 5212 E_Generic_Function,
5176 E_Generic_Procedure, 5213 E_Generic_Procedure,
5177 E_Operator, 5214 E_Operator,
5178 E_Procedure, 5215 E_Procedure,
5179 E_Subprogram_Body) 5216 E_Subprogram_Body)
5180 or else 5217 or else
5181 Ekind_In (Id, E_Generic_Package, -- package variants 5218 Ekind_In (Id, E_Generic_Package, -- packages
5182 E_Package, 5219 E_Package,
5183 E_Package_Body)); 5220 E_Package_Body));
5184 Set_Flag301 (Id, V); 5221 Set_Flag301 (Id, V);
5185 end Set_Ignore_SPARK_Mode_Pragmas; 5222 end Set_Ignore_SPARK_Mode_Pragmas;
5186 5223
5263 begin 5300 begin
5264 pragma Assert (Is_Access_Type (Id)); 5301 pragma Assert (Is_Access_Type (Id));
5265 Set_Flag69 (Id, V); 5302 Set_Flag69 (Id, V);
5266 end Set_Is_Access_Constant; 5303 end Set_Is_Access_Constant;
5267 5304
5305 procedure Set_Is_Activation_Record (Id : E; V : B := True) is
5306 begin
5307 pragma Assert (Ekind (Id) = E_In_Parameter);
5308 Set_Flag305 (Id, V);
5309 end Set_Is_Activation_Record;
5310
5268 procedure Set_Is_Actual_Subtype (Id : E; V : B := True) is 5311 procedure Set_Is_Actual_Subtype (Id : E; V : B := True) is
5269 begin 5312 begin
5270 pragma Assert (Is_Type (Id)); 5313 pragma Assert (Is_Type (Id));
5271 Set_Flag293 (Id, V); 5314 Set_Flag293 (Id, V);
5272 end Set_Is_Actual_Subtype; 5315 end Set_Is_Actual_Subtype;
5434 Set_Flag6 (Id, V); 5477 Set_Flag6 (Id, V);
5435 end Set_Is_Dispatching_Operation; 5478 end Set_Is_Dispatching_Operation;
5436 5479
5437 procedure Set_Is_Elaboration_Checks_OK_Id (Id : E; V : B := True) is 5480 procedure Set_Is_Elaboration_Checks_OK_Id (Id : E; V : B := True) is
5438 begin 5481 begin
5439 pragma Assert 5482 pragma Assert (Is_Elaboration_Target (Id));
5440 (Ekind_In (Id, E_Constant, E_Variable)
5441 or else Is_Entry (Id)
5442 or else Is_Generic_Unit (Id)
5443 or else Is_Subprogram (Id)
5444 or else Is_Task_Type (Id));
5445 Set_Flag148 (Id, V); 5483 Set_Flag148 (Id, V);
5446 end Set_Is_Elaboration_Checks_OK_Id; 5484 end Set_Is_Elaboration_Checks_OK_Id;
5485
5486 procedure Set_Is_Elaboration_Warnings_OK_Id (Id : E; V : B := True) is
5487 begin
5488 pragma Assert (Is_Elaboration_Target (Id));
5489 Set_Flag304 (Id, V);
5490 end Set_Is_Elaboration_Warnings_OK_Id;
5447 5491
5448 procedure Set_Is_Eliminated (Id : E; V : B := True) is 5492 procedure Set_Is_Eliminated (Id : E; V : B := True) is
5449 begin 5493 begin
5450 Set_Flag124 (Id, V); 5494 Set_Flag124 (Id, V);
5451 end Set_Is_Eliminated; 5495 end Set_Is_Eliminated;
5659 5703
5660 procedure Set_Is_Limited_Record (Id : E; V : B := True) is 5704 procedure Set_Is_Limited_Record (Id : E; V : B := True) is
5661 begin 5705 begin
5662 Set_Flag25 (Id, V); 5706 Set_Flag25 (Id, V);
5663 end Set_Is_Limited_Record; 5707 end Set_Is_Limited_Record;
5708
5709 procedure Set_Is_Loop_Parameter (Id : E; V : B := True) is
5710 begin
5711 Set_Flag307 (Id, V);
5712 end Set_Is_Loop_Parameter;
5664 5713
5665 procedure Set_Is_Machine_Code_Subprogram (Id : E; V : B := True) is 5714 procedure Set_Is_Machine_Code_Subprogram (Id : E; V : B := True) is
5666 begin 5715 begin
5667 pragma Assert (Is_Subprogram (Id)); 5716 pragma Assert (Is_Subprogram (Id));
5668 Set_Flag137 (Id, V); 5717 Set_Flag137 (Id, V);
5907 end Set_Is_Unsigned_Type; 5956 end Set_Is_Unsigned_Type;
5908 5957
5909 procedure Set_Is_Uplevel_Referenced_Entity (Id : E; V : B := True) is 5958 procedure Set_Is_Uplevel_Referenced_Entity (Id : E; V : B := True) is
5910 begin 5959 begin
5911 pragma Assert 5960 pragma Assert
5912 (Ekind_In (Id, E_Constant, E_Variable) 5961 (Ekind_In (Id, E_Constant, E_Loop_Parameter, E_Variable)
5913 or else Is_Formal (Id) 5962 or else Is_Formal (Id)
5914 or else Is_Type (Id)); 5963 or else Is_Type (Id));
5915 Set_Flag283 (Id, V); 5964 Set_Flag283 (Id, V);
5916 end Set_Is_Uplevel_Referenced_Entity; 5965 end Set_Is_Uplevel_Referenced_Entity;
5917 5966
6055 procedure Set_Must_Have_Preelab_Init (Id : E; V : B := True) is 6104 procedure Set_Must_Have_Preelab_Init (Id : E; V : B := True) is
6056 begin 6105 begin
6057 pragma Assert (Is_Type (Id)); 6106 pragma Assert (Is_Type (Id));
6058 Set_Flag208 (Id, V); 6107 Set_Flag208 (Id, V);
6059 end Set_Must_Have_Preelab_Init; 6108 end Set_Must_Have_Preelab_Init;
6109
6110 procedure Set_Needs_Activation_Record (Id : E; V : B := True) is
6111 begin
6112 Set_Flag306 (Id, V);
6113 end Set_Needs_Activation_Record;
6060 6114
6061 procedure Set_Needs_Debug_Info (Id : E; V : B := True) is 6115 procedure Set_Needs_Debug_Info (Id : E; V : B := True) is
6062 begin 6116 begin
6063 Set_Flag147 (Id, V); 6117 Set_Flag147 (Id, V);
6064 end Set_Needs_Debug_Info; 6118 end Set_Needs_Debug_Info;
6268 E_Function, 6322 E_Function,
6269 E_Procedure)); 6323 E_Procedure));
6270 Set_Node14 (Id, V); 6324 Set_Node14 (Id, V);
6271 end Set_Postconditions_Proc; 6325 end Set_Postconditions_Proc;
6272 6326
6327 procedure Set_Predicated_Parent (Id : E; V : E) is
6328 begin
6329 pragma Assert (Ekind_In (Id, E_Array_Subtype,
6330 E_Record_Subtype,
6331 E_Record_Subtype_With_Private));
6332 Set_Node38 (Id, V);
6333 end Set_Predicated_Parent;
6334
6273 procedure Set_Predicates_Ignored (Id : E; V : B) is 6335 procedure Set_Predicates_Ignored (Id : E; V : B) is
6274 begin 6336 begin
6275 pragma Assert (Is_Type (Id)); 6337 pragma Assert (Is_Type (Id));
6276 Set_Flag288 (Id, V); 6338 Set_Flag288 (Id, V);
6277 end Set_Predicates_Ignored; 6339 end Set_Predicates_Ignored;
6298 begin 6360 begin
6299 pragma Assert (Is_Incomplete_Or_Private_Type (Id)); 6361 pragma Assert (Is_Incomplete_Or_Private_Type (Id));
6300 Set_Elist18 (Id, V); 6362 Set_Elist18 (Id, V);
6301 end Set_Private_Dependents; 6363 end Set_Private_Dependents;
6302 6364
6303 procedure Set_Private_View (Id : E; V : N) is 6365 procedure Set_Prev_Entity (Id : E; V : E) is
6304 begin 6366 begin
6305 pragma Assert (Is_Private_Type (Id)); 6367 Set_Node36 (Id, V);
6306 Set_Node22 (Id, V); 6368 end Set_Prev_Entity;
6307 end Set_Private_View;
6308 6369
6309 procedure Set_Protected_Body_Subprogram (Id : E; V : E) is 6370 procedure Set_Protected_Body_Subprogram (Id : E; V : E) is
6310 begin 6371 begin
6311 pragma Assert (Is_Subprogram (Id) or else Is_Entry (Id)); 6372 pragma Assert (Is_Subprogram (Id) or else Is_Entry (Id));
6312 Set_Node11 (Id, V); 6373 Set_Node11 (Id, V);
6490 procedure Set_Sec_Stack_Needed_For_Return (Id : E; V : B := True) is 6551 procedure Set_Sec_Stack_Needed_For_Return (Id : E; V : B := True) is
6491 begin 6552 begin
6492 Set_Flag167 (Id, V); 6553 Set_Flag167 (Id, V);
6493 end Set_Sec_Stack_Needed_For_Return; 6554 end Set_Sec_Stack_Needed_For_Return;
6494 6555
6495 procedure Set_Shadow_Entities (Id : E; V : S) is
6496 begin
6497 pragma Assert (Ekind_In (Id, E_Package, E_Generic_Package));
6498 Set_List14 (Id, V);
6499 end Set_Shadow_Entities;
6500
6501 procedure Set_Shared_Var_Procs_Instance (Id : E; V : E) is 6556 procedure Set_Shared_Var_Procs_Instance (Id : E; V : E) is
6502 begin 6557 begin
6503 pragma Assert (Ekind (Id) = E_Variable); 6558 pragma Assert (Ekind (Id) = E_Variable);
6504 Set_Node22 (Id, V); 6559 Set_Node22 (Id, V);
6505 end Set_Shared_Var_Procs_Instance; 6560 end Set_Shared_Var_Procs_Instance;
6527 end Set_Small_Value; 6582 end Set_Small_Value;
6528 6583
6529 procedure Set_SPARK_Aux_Pragma (Id : E; V : N) is 6584 procedure Set_SPARK_Aux_Pragma (Id : E; V : N) is
6530 begin 6585 begin
6531 pragma Assert 6586 pragma Assert
6532 (Ekind_In (Id, E_Protected_Type, -- concurrent variants 6587 (Ekind_In (Id, E_Protected_Type, -- concurrent types
6533 E_Task_Type) 6588 E_Task_Type)
6534 or else 6589 or else
6535 Ekind_In (Id, E_Generic_Package, -- package variants 6590 Ekind_In (Id, E_Generic_Package, -- packages
6536 E_Package, 6591 E_Package,
6537 E_Package_Body)); 6592 E_Package_Body));
6538 Set_Node41 (Id, V); 6593 Set_Node41 (Id, V);
6539 end Set_SPARK_Aux_Pragma; 6594 end Set_SPARK_Aux_Pragma;
6540 6595
6541 procedure Set_SPARK_Aux_Pragma_Inherited (Id : E; V : B := True) is 6596 procedure Set_SPARK_Aux_Pragma_Inherited (Id : E; V : B := True) is
6542 begin 6597 begin
6543 pragma Assert 6598 pragma Assert
6544 (Ekind_In (Id, E_Protected_Type, -- concurrent variants 6599 (Ekind_In (Id, E_Protected_Type, -- concurrent types
6545 E_Task_Type) 6600 E_Task_Type)
6546 or else 6601 or else
6547 Ekind_In (Id, E_Generic_Package, -- package variants 6602 Ekind_In (Id, E_Generic_Package, -- packages
6548 E_Package, 6603 E_Package,
6549 E_Package_Body)); 6604 E_Package_Body));
6550 Set_Flag266 (Id, V); 6605 Set_Flag266 (Id, V);
6551 end Set_SPARK_Aux_Pragma_Inherited; 6606 end Set_SPARK_Aux_Pragma_Inherited;
6552 6607
6553 procedure Set_SPARK_Pragma (Id : E; V : N) is 6608 procedure Set_SPARK_Pragma (Id : E; V : N) is
6554 begin 6609 begin
6555 pragma Assert 6610 pragma Assert
6556 (Ekind_In (Id, E_Protected_Body, -- concurrent variants 6611 (Ekind_In (Id, E_Constant, -- objects
6557 E_Protected_Type,
6558 E_Task_Body,
6559 E_Task_Type)
6560 or else
6561 Ekind_In (Id, E_Constant, -- object variants
6562 E_Variable) 6612 E_Variable)
6563 or else 6613 or else
6564 Ekind_In (Id, E_Entry, -- overloadable variants 6614 Ekind_In (Id, E_Abstract_State, -- overloadable
6615 E_Entry,
6565 E_Entry_Family, 6616 E_Entry_Family,
6566 E_Function, 6617 E_Function,
6567 E_Generic_Function, 6618 E_Generic_Function,
6568 E_Generic_Procedure, 6619 E_Generic_Procedure,
6569 E_Operator, 6620 E_Operator,
6570 E_Procedure, 6621 E_Procedure,
6571 E_Subprogram_Body) 6622 E_Subprogram_Body)
6572 or else 6623 or else
6573 Ekind_In (Id, E_Generic_Package, -- package variants 6624 Ekind_In (Id, E_Generic_Package, -- packages
6574 E_Package, 6625 E_Package,
6575 E_Package_Body) 6626 E_Package_Body)
6576 or else 6627 or else
6577 Ekind (Id) = E_Void); -- special purpose 6628 Ekind (Id) = E_Void -- special purpose
6629 or else
6630 Ekind_In (Id, E_Protected_Body, -- types
6631 E_Task_Body)
6632 or else
6633 Is_Type (Id));
6578 Set_Node40 (Id, V); 6634 Set_Node40 (Id, V);
6579 end Set_SPARK_Pragma; 6635 end Set_SPARK_Pragma;
6580 6636
6581 procedure Set_SPARK_Pragma_Inherited (Id : E; V : B := True) is 6637 procedure Set_SPARK_Pragma_Inherited (Id : E; V : B := True) is
6582 begin 6638 begin
6583 pragma Assert 6639 pragma Assert
6584 (Ekind_In (Id, E_Protected_Body, -- concurrent variants 6640 (Ekind_In (Id, E_Constant, -- objects
6585 E_Protected_Type,
6586 E_Task_Body,
6587 E_Task_Type)
6588 or else
6589 Ekind_In (Id, E_Constant, -- object variants
6590 E_Variable) 6641 E_Variable)
6591 or else 6642 or else
6592 Ekind_In (Id, E_Entry, -- overloadable variants 6643 Ekind_In (Id, E_Abstract_State, -- overloadable
6644 E_Entry,
6593 E_Entry_Family, 6645 E_Entry_Family,
6594 E_Function, 6646 E_Function,
6595 E_Generic_Function, 6647 E_Generic_Function,
6596 E_Generic_Procedure, 6648 E_Generic_Procedure,
6597 E_Operator, 6649 E_Operator,
6598 E_Procedure, 6650 E_Procedure,
6599 E_Subprogram_Body) 6651 E_Subprogram_Body)
6600 or else 6652 or else
6601 Ekind_In (Id, E_Generic_Package, -- package variants 6653 Ekind_In (Id, E_Generic_Package, -- packages
6602 E_Package, 6654 E_Package,
6603 E_Package_Body) 6655 E_Package_Body)
6604 or else 6656 or else
6605 Ekind (Id) = E_Void); -- special purpose 6657 Ekind (Id) = E_Void -- special purpose
6658 or else
6659 Ekind_In (Id, E_Protected_Body, -- types
6660 E_Task_Body)
6661 or else
6662 Is_Type (Id));
6606 Set_Flag265 (Id, V); 6663 Set_Flag265 (Id, V);
6607 end Set_SPARK_Pragma_Inherited; 6664 end Set_SPARK_Pragma_Inherited;
6608 6665
6609 procedure Set_Spec_Entity (Id : E; V : E) is 6666 procedure Set_Spec_Entity (Id : E; V : E) is
6610 begin 6667 begin
6709 begin 6766 begin
6710 pragma Assert (Is_Subprogram (Id)); 6767 pragma Assert (Is_Subprogram (Id));
6711 Set_Uint24 (Id, V); 6768 Set_Uint24 (Id, V);
6712 end Set_Subps_Index; 6769 end Set_Subps_Index;
6713 6770
6771 procedure Set_Suppress_Elaboration_Warnings (Id : E; V : B := True) is
6772 begin
6773 Set_Flag303 (Id, V);
6774 end Set_Suppress_Elaboration_Warnings;
6775
6714 procedure Set_Suppress_Initialization (Id : E; V : B := True) is 6776 procedure Set_Suppress_Initialization (Id : E; V : B := True) is
6715 begin 6777 begin
6716 pragma Assert (Is_Type (Id) or else Ekind (Id) = E_Variable); 6778 pragma Assert (Is_Type (Id) or else Ekind (Id) = E_Variable);
6717 Set_Flag105 (Id, V); 6779 Set_Flag105 (Id, V);
6718 end Set_Suppress_Initialization; 6780 end Set_Suppress_Initialization;
6785 end Set_Uses_Sec_Stack; 6847 end Set_Uses_Sec_Stack;
6786 6848
6787 procedure Set_Validated_Object (Id : E; V : N) is 6849 procedure Set_Validated_Object (Id : E; V : N) is
6788 begin 6850 begin
6789 pragma Assert (Ekind (Id) = E_Variable); 6851 pragma Assert (Ekind (Id) = E_Variable);
6790 Set_Node36 (Id, V); 6852 Set_Node38 (Id, V);
6791 end Set_Validated_Object; 6853 end Set_Validated_Object;
6792 6854
6793 procedure Set_Warnings_Off (Id : E; V : B := True) is 6855 procedure Set_Warnings_Off (Id : E; V : B := True) is
6794 begin 6856 begin
6795 Set_Flag96 (Id, V); 6857 Set_Flag96 (Id, V);
7139 7201
7140 ------------------- 7202 -------------------
7141 -- Append_Entity -- 7203 -- Append_Entity --
7142 ------------------- 7204 -------------------
7143 7205
7144 procedure Append_Entity (Id : Entity_Id; V : Entity_Id) is 7206 procedure Append_Entity (Id : Entity_Id; Scop : Entity_Id) is
7145 begin 7207 Last : constant Entity_Id := Last_Entity (Scop);
7146 if Last_Entity (V) = Empty then 7208
7147 Set_First_Entity (Id => V, V => Id); 7209 begin
7210 Set_Scope (Id, Scop);
7211 Set_Prev_Entity (Id, Empty); -- Empty <-- Id
7212
7213 -- The entity chain is empty
7214
7215 if No (Last) then
7216 Set_First_Entity (Scop, Id);
7217
7218 -- Otherwise the entity chain has at least one element
7219
7148 else 7220 else
7149 Set_Next_Entity (Last_Entity (V), Id); 7221 Link_Entities (Last, Id); -- Last <-- Id, Last --> Id
7150 end if; 7222 end if;
7151 7223
7152 Set_Next_Entity (Id, Empty); 7224 -- NOTE: The setting of the Next_Entity attribute of Id must happen
7153 Set_Scope (Id, V); 7225 -- here as opposed to at the beginning of the routine because doing
7154 Set_Last_Entity (Id => V, V => Id); 7226 -- so causes the binder to hang. It is not clear why ???
7227
7228 Set_Next_Entity (Id, Empty); -- Id --> Empty
7229
7230 Set_Last_Entity (Scop, Id);
7155 end Append_Entity; 7231 end Append_Entity;
7156 7232
7157 --------------- 7233 ---------------
7158 -- Base_Type -- 7234 -- Base_Type --
7159 --------------- 7235 ---------------
8042 8118
8043 or else (Kind = N_Attribute_Reference 8119 or else (Kind = N_Attribute_Reference
8044 and then Is_Entity_Attribute_Name (Attribute_Name (N))); 8120 and then Is_Entity_Attribute_Name (Attribute_Name (N)));
8045 end Is_Entity_Name; 8121 end Is_Entity_Name;
8046 8122
8123 ---------------------------
8124 -- Is_Elaboration_Target --
8125 ---------------------------
8126
8127 function Is_Elaboration_Target (Id : Entity_Id) return Boolean is
8128 begin
8129 return
8130 Ekind_In (Id, E_Constant, E_Variable)
8131 or else Is_Entry (Id)
8132 or else Is_Generic_Unit (Id)
8133 or else Is_Subprogram (Id)
8134 or else Is_Task_Type (Id);
8135 end Is_Elaboration_Target;
8136
8047 ----------------------- 8137 -----------------------
8048 -- Is_External_State -- 8138 -- Is_External_State --
8049 ----------------------- 8139 -----------------------
8050 8140
8051 function Is_External_State (Id : E) return B is 8141 function Is_External_State (Id : E) return B is
8052 begin 8142 begin
8143 -- To qualify, the abstract state must appear with option "external" or
8144 -- "synchronous" (SPARK RM 7.1.4(8) and (10)).
8145
8053 return 8146 return
8054 Ekind (Id) = E_Abstract_State and then Has_Option (Id, Name_External); 8147 Ekind (Id) = E_Abstract_State
8148 and then (Has_Option (Id, Name_External)
8149 or else
8150 Has_Option (Id, Name_Synchronous));
8055 end Is_External_State; 8151 end Is_External_State;
8056 8152
8057 ------------------ 8153 ------------------
8058 -- Is_Finalizer -- 8154 -- Is_Finalizer --
8059 ------------------ 8155 ------------------
8220 -- Is_Synchronized_State -- 8316 -- Is_Synchronized_State --
8221 --------------------------- 8317 ---------------------------
8222 8318
8223 function Is_Synchronized_State (Id : E) return B is 8319 function Is_Synchronized_State (Id : E) return B is
8224 begin 8320 begin
8321 -- To qualify, the abstract state must appear with simple option
8322 -- "synchronous" (SPARK RM 7.1.4(10)).
8323
8225 return 8324 return
8226 Ekind (Id) = E_Abstract_State 8325 Ekind (Id) = E_Abstract_State
8227 and then Has_Option (Id, Name_Synchronous); 8326 and then Has_Option (Id, Name_Synchronous);
8228 end Is_Synchronized_State; 8327 end Is_Synchronized_State;
8229 8328
8258 -- Is_Wrapper_Package -- 8357 -- Is_Wrapper_Package --
8259 ------------------------ 8358 ------------------------
8260 8359
8261 function Is_Wrapper_Package (Id : E) return B is 8360 function Is_Wrapper_Package (Id : E) return B is
8262 begin 8361 begin
8263 return (Ekind (Id) = E_Package and then Present (Related_Instance (Id))); 8362 return Ekind (Id) = E_Package and then Present (Related_Instance (Id));
8264 end Is_Wrapper_Package; 8363 end Is_Wrapper_Package;
8265 8364
8266 ----------------- 8365 -----------------
8267 -- Last_Formal -- 8366 -- Last_Formal --
8268 ----------------- 8367 -----------------
8290 end if; 8389 end if;
8291 8390
8292 return Formal; 8391 return Formal;
8293 end if; 8392 end if;
8294 end Last_Formal; 8393 end Last_Formal;
8394
8395 -------------------
8396 -- Link_Entities --
8397 -------------------
8398
8399 procedure Link_Entities (First : Entity_Id; Second : Node_Id) is
8400 begin
8401 if Present (Second) then
8402 Set_Prev_Entity (Second, First); -- First <-- Second
8403 end if;
8404
8405 Set_Next_Entity (First, Second); -- First --> Second
8406 end Link_Entities;
8407
8408 ----------------------
8409 -- Model_Emin_Value --
8410 ----------------------
8295 8411
8296 function Model_Emin_Value (Id : E) return Uint is 8412 function Model_Emin_Value (Id : E) return Uint is
8297 begin 8413 begin
8298 return Machine_Emin_Value (Id); 8414 return Machine_Emin_Value (Id);
8299 end Model_Emin_Value; 8415 end Model_Emin_Value;
8610 Formal := Next_Formal (Formal); 8726 Formal := Next_Formal (Formal);
8611 end loop; 8727 end loop;
8612 8728
8613 return N; 8729 return N;
8614 end Number_Formals; 8730 end Number_Formals;
8731
8732 ------------------------
8733 -- Object_Size_Clause --
8734 ------------------------
8735
8736 function Object_Size_Clause (Id : E) return N is
8737 begin
8738 return Get_Attribute_Definition_Clause (Id, Attribute_Object_Size);
8739 end Object_Size_Clause;
8615 8740
8616 -------------------- 8741 --------------------
8617 -- Parameter_Mode -- 8742 -- Parameter_Mode --
8618 -------------------- 8743 --------------------
8619 8744
8756 (not Has_Predicates (Id) or else No (Subprograms_For_Type (Id))) 8881 (not Has_Predicates (Id) or else No (Subprograms_For_Type (Id)))
8757 and then Present (Full_View (Id)) 8882 and then Present (Full_View (Id))
8758 then 8883 then
8759 Typ := Full_View (Id); 8884 Typ := Full_View (Id);
8760 8885
8886 elsif Ekind_In (Id, E_Array_Subtype,
8887 E_Record_Subtype,
8888 E_Record_Subtype_With_Private)
8889 and then Present (Predicated_Parent (Id))
8890 then
8891 Typ := Predicated_Parent (Id);
8892
8761 else 8893 else
8762 Typ := Id; 8894 Typ := Id;
8763 end if; 8895 end if;
8764 8896
8765 Subps := Subprograms_For_Type (Typ); 8897 Subps := Subprograms_For_Type (Typ);
8882 procedure Record_Rep_Item (E : Entity_Id; N : Node_Id) is 9014 procedure Record_Rep_Item (E : Entity_Id; N : Node_Id) is
8883 begin 9015 begin
8884 Set_Next_Rep_Item (N, First_Rep_Item (E)); 9016 Set_Next_Rep_Item (N, First_Rep_Item (E));
8885 Set_First_Rep_Item (E, N); 9017 Set_First_Rep_Item (E, N);
8886 end Record_Rep_Item; 9018 end Record_Rep_Item;
9019
9020 -------------------
9021 -- Remove_Entity --
9022 -------------------
9023
9024 procedure Remove_Entity (Id : Entity_Id) is
9025 Next : constant Entity_Id := Next_Entity (Id);
9026 Prev : constant Entity_Id := Prev_Entity (Id);
9027 Scop : constant Entity_Id := Scope (Id);
9028 First : constant Entity_Id := First_Entity (Scop);
9029 Last : constant Entity_Id := Last_Entity (Scop);
9030
9031 begin
9032 -- Eliminate any existing linkages from the entity
9033
9034 Set_Prev_Entity (Id, Empty); -- Empty <-- Id
9035 Set_Next_Entity (Id, Empty); -- Id --> Empty
9036
9037 -- The eliminated entity was the only element in the entity chain
9038
9039 if Id = First and then Id = Last then
9040 Set_First_Entity (Scop, Empty);
9041 Set_Last_Entity (Scop, Empty);
9042
9043 -- The eliminated entity was the head of the entity chain
9044
9045 elsif Id = First then
9046 Set_First_Entity (Scop, Next);
9047
9048 -- The eliminated entity was the tail of the entity chain
9049
9050 elsif Id = Last then
9051 Set_Last_Entity (Scop, Prev);
9052
9053 -- Otherwise the eliminated entity comes from the middle of the entity
9054 -- chain.
9055
9056 else
9057 Link_Entities (Prev, Next); -- Prev <-- Next, Prev --> Next
9058 end if;
9059 end Remove_Entity;
8887 9060
8888 --------------- 9061 ---------------
8889 -- Root_Type -- 9062 -- Root_Type --
8890 --------------- 9063 ---------------
8891 9064
9432 9605
9433 else 9606 else
9434 return Id; 9607 return Id;
9435 end if; 9608 end if;
9436 end Underlying_Type; 9609 end Underlying_Type;
9610
9611 ------------------------
9612 -- Unlink_Next_Entity --
9613 ------------------------
9614
9615 procedure Unlink_Next_Entity (Id : Entity_Id) is
9616 Next : constant Entity_Id := Next_Entity (Id);
9617
9618 begin
9619 if Present (Next) then
9620 Set_Prev_Entity (Next, Empty); -- Empty <-- Next
9621 end if;
9622
9623 Set_Next_Entity (Id, Empty); -- Id --> Empty
9624 end Unlink_Next_Entity;
9437 9625
9438 ------------------------ 9626 ------------------------
9439 -- Write_Entity_Flags -- 9627 -- Write_Entity_Flags --
9440 ------------------------ 9628 ------------------------
9441 9629
9599 W ("In_Private_Part", Flag45 (Id)); 9787 W ("In_Private_Part", Flag45 (Id));
9600 W ("In_Use", Flag8 (Id)); 9788 W ("In_Use", Flag8 (Id));
9601 W ("Is_Abstract_Subprogram", Flag19 (Id)); 9789 W ("Is_Abstract_Subprogram", Flag19 (Id));
9602 W ("Is_Abstract_Type", Flag146 (Id)); 9790 W ("Is_Abstract_Type", Flag146 (Id));
9603 W ("Is_Access_Constant", Flag69 (Id)); 9791 W ("Is_Access_Constant", Flag69 (Id));
9792 W ("Is_Activation_Record", Flag305 (Id));
9604 W ("Is_Actual_Subtype", Flag293 (Id)); 9793 W ("Is_Actual_Subtype", Flag293 (Id));
9605 W ("Is_Ada_2005_Only", Flag185 (Id)); 9794 W ("Is_Ada_2005_Only", Flag185 (Id));
9606 W ("Is_Ada_2012_Only", Flag199 (Id)); 9795 W ("Is_Ada_2012_Only", Flag199 (Id));
9607 W ("Is_Aliased", Flag15 (Id)); 9796 W ("Is_Aliased", Flag15 (Id));
9608 W ("Is_Asynchronous", Flag81 (Id)); 9797 W ("Is_Asynchronous", Flag81 (Id));
9628 W ("Is_Discrim_SO_Function", Flag176 (Id)); 9817 W ("Is_Discrim_SO_Function", Flag176 (Id));
9629 W ("Is_Discriminant_Check_Function", Flag264 (Id)); 9818 W ("Is_Discriminant_Check_Function", Flag264 (Id));
9630 W ("Is_Dispatch_Table_Entity", Flag234 (Id)); 9819 W ("Is_Dispatch_Table_Entity", Flag234 (Id));
9631 W ("Is_Dispatching_Operation", Flag6 (Id)); 9820 W ("Is_Dispatching_Operation", Flag6 (Id));
9632 W ("Is_Elaboration_Checks_OK_Id", Flag148 (Id)); 9821 W ("Is_Elaboration_Checks_OK_Id", Flag148 (Id));
9822 W ("Is_Elaboration_Warnings_OK_Id", Flag304 (Id));
9633 W ("Is_Eliminated", Flag124 (Id)); 9823 W ("Is_Eliminated", Flag124 (Id));
9634 W ("Is_Entry_Formal", Flag52 (Id)); 9824 W ("Is_Entry_Formal", Flag52 (Id));
9635 W ("Is_Exception_Handler", Flag286 (Id)); 9825 W ("Is_Exception_Handler", Flag286 (Id));
9636 W ("Is_Exported", Flag99 (Id)); 9826 W ("Is_Exported", Flag99 (Id));
9637 W ("Is_Finalized_Transient", Flag252 (Id)); 9827 W ("Is_Finalized_Transient", Flag252 (Id));
9667 W ("Is_Known_Valid", Flag170 (Id)); 9857 W ("Is_Known_Valid", Flag170 (Id));
9668 W ("Is_Limited_Composite", Flag106 (Id)); 9858 W ("Is_Limited_Composite", Flag106 (Id));
9669 W ("Is_Limited_Interface", Flag197 (Id)); 9859 W ("Is_Limited_Interface", Flag197 (Id));
9670 W ("Is_Limited_Record", Flag25 (Id)); 9860 W ("Is_Limited_Record", Flag25 (Id));
9671 W ("Is_Local_Anonymous_Access", Flag194 (Id)); 9861 W ("Is_Local_Anonymous_Access", Flag194 (Id));
9862 W ("Is_Loop_Parameter", Flag307 (Id));
9672 W ("Is_Machine_Code_Subprogram", Flag137 (Id)); 9863 W ("Is_Machine_Code_Subprogram", Flag137 (Id));
9673 W ("Is_Non_Static_Subtype", Flag109 (Id)); 9864 W ("Is_Non_Static_Subtype", Flag109 (Id));
9674 W ("Is_Null_Init_Proc", Flag178 (Id)); 9865 W ("Is_Null_Init_Proc", Flag178 (Id));
9675 W ("Is_Obsolescent", Flag153 (Id)); 9866 W ("Is_Obsolescent", Flag153 (Id));
9676 W ("Is_Only_Out_Parameter", Flag226 (Id)); 9867 W ("Is_Only_Out_Parameter", Flag226 (Id));
9725 W ("Machine_Radix_10", Flag84 (Id)); 9916 W ("Machine_Radix_10", Flag84 (Id));
9726 W ("Materialize_Entity", Flag168 (Id)); 9917 W ("Materialize_Entity", Flag168 (Id));
9727 W ("May_Inherit_Delayed_Rep_Aspects", Flag262 (Id)); 9918 W ("May_Inherit_Delayed_Rep_Aspects", Flag262 (Id));
9728 W ("Must_Be_On_Byte_Boundary", Flag183 (Id)); 9919 W ("Must_Be_On_Byte_Boundary", Flag183 (Id));
9729 W ("Must_Have_Preelab_Init", Flag208 (Id)); 9920 W ("Must_Have_Preelab_Init", Flag208 (Id));
9921 W ("Needs_Activation_Record", Flag306 (Id));
9730 W ("Needs_Debug_Info", Flag147 (Id)); 9922 W ("Needs_Debug_Info", Flag147 (Id));
9731 W ("Needs_No_Actuals", Flag22 (Id)); 9923 W ("Needs_No_Actuals", Flag22 (Id));
9732 W ("Never_Set_In_Source", Flag115 (Id)); 9924 W ("Never_Set_In_Source", Flag115 (Id));
9733 W ("No_Dynamic_Predicate_On_actual", Flag276 (Id)); 9925 W ("No_Dynamic_Predicate_On_actual", Flag276 (Id));
9734 W ("No_Pool_Assigned", Flag131 (Id)); 9926 W ("No_Pool_Assigned", Flag131 (Id));
9763 W ("SSO_Set_High_By_Default", Flag273 (Id)); 9955 W ("SSO_Set_High_By_Default", Flag273 (Id));
9764 W ("SSO_Set_Low_By_Default", Flag272 (Id)); 9956 W ("SSO_Set_Low_By_Default", Flag272 (Id));
9765 W ("Static_Elaboration_Desired", Flag77 (Id)); 9957 W ("Static_Elaboration_Desired", Flag77 (Id));
9766 W ("Stores_Attribute_Old_Prefix", Flag270 (Id)); 9958 W ("Stores_Attribute_Old_Prefix", Flag270 (Id));
9767 W ("Strict_Alignment", Flag145 (Id)); 9959 W ("Strict_Alignment", Flag145 (Id));
9960 W ("Suppress_Elaboration_Warnings", Flag303 (Id));
9768 W ("Suppress_Initialization", Flag105 (Id)); 9961 W ("Suppress_Initialization", Flag105 (Id));
9769 W ("Suppress_Style_Checks", Flag165 (Id)); 9962 W ("Suppress_Style_Checks", Flag165 (Id));
9770 W ("Suppress_Value_Tracking_On_Call", Flag217 (Id)); 9963 W ("Suppress_Value_Tracking_On_Call", Flag217 (Id));
9771 W ("Treat_As_Volatile", Flag41 (Id)); 9964 W ("Treat_As_Volatile", Flag41 (Id));
9772 W ("Universal_Aliasing", Flag216 (Id)); 9965 W ("Universal_Aliasing", Flag216 (Id));
10134 when E_Component 10327 when E_Component
10135 | E_Discriminant 10328 | E_Discriminant
10136 => 10329 =>
10137 Write_Str ("Component_Clause"); 10330 Write_Str ("Component_Clause");
10138 10331
10139 when E_Function 10332 when E_Entry
10333 | E_Entry_Family
10334 | E_Function
10140 | E_Procedure 10335 | E_Procedure
10141 | E_Package 10336 | E_Package
10142 | Generic_Unit_Kind 10337 | Generic_Unit_Kind
10143 => 10338 =>
10144 Write_Str ("Elaboration_Entity"); 10339 Write_Str ("Elaboration_Entity");
10181 | E_Entry_Family 10376 | E_Entry_Family
10182 | E_Function 10377 | E_Function
10183 | E_Procedure 10378 | E_Procedure
10184 => 10379 =>
10185 Write_Str ("Postconditions_Proc"); 10380 Write_Str ("Postconditions_Proc");
10186
10187 when E_Generic_Package
10188 | E_Package
10189 =>
10190 Write_Str ("Shadow_Entities");
10191 10381
10192 when others => 10382 when others =>
10193 Write_Str ("Field14??"); 10383 Write_Str ("Field14??");
10194 end case; 10384 end case;
10195 end Write_Field14_Name; 10385 end Write_Field14_Name;
10622 Write_Str ("Original_Record_Component"); 10812 Write_Str ("Original_Record_Component");
10623 10813
10624 when E_Enumeration_Literal => 10814 when E_Enumeration_Literal =>
10625 Write_Str ("Enumeration_Rep_Expr"); 10815 Write_Str ("Enumeration_Rep_Expr");
10626 10816
10627 when E_Limited_Private_Subtype
10628 | E_Limited_Private_Type
10629 | E_Private_Subtype
10630 | E_Private_Type
10631 | E_Record_Subtype_With_Private
10632 | E_Record_Type_With_Private
10633 =>
10634 Write_Str ("Private_View");
10635
10636 when Formal_Kind => 10817 when Formal_Kind =>
10637 Write_Str ("Protected_Formal"); 10818 Write_Str ("Protected_Formal");
10638 10819
10639 when E_Block 10820 when E_Block
10640 | E_Entry 10821 | E_Entry
10734 ------------------------ 10915 ------------------------
10735 10916
10736 procedure Write_Field24_Name (Id : Entity_Id) is 10917 procedure Write_Field24_Name (Id : Entity_Id) is
10737 begin 10918 begin
10738 case Ekind (Id) is 10919 case Ekind (Id) is
10920 when E_Package =>
10921 Write_Str ("Incomplete_Actuals");
10922
10739 when Type_Kind 10923 when Type_Kind
10740 | E_Constant 10924 | E_Constant
10741 | E_Variable 10925 | E_Variable
10742 => 10926 =>
10743 Write_Str ("Related_Expression"); 10927 Write_Str ("Related_Expression");
10745 when E_Function 10929 when E_Function
10746 | E_Operator 10930 | E_Operator
10747 | E_Procedure 10931 | E_Procedure
10748 => 10932 =>
10749 Write_Str ("Subps_Index"); 10933 Write_Str ("Subps_Index");
10750
10751 when E_Package =>
10752 Write_Str ("Incomplete_Actuals");
10753 10934
10754 when others => 10935 when others =>
10755 Write_Str ("Field24???"); 10936 Write_Str ("Field24???");
10756 end case; 10937 end case;
10757 end Write_Field24_Name; 10938 end Write_Field24_Name;
11114 ------------------------ 11295 ------------------------
11115 -- Write_Field36_Name -- 11296 -- Write_Field36_Name --
11116 ------------------------ 11297 ------------------------
11117 11298
11118 procedure Write_Field36_Name (Id : Entity_Id) is 11299 procedure Write_Field36_Name (Id : Entity_Id) is
11119 begin 11300 pragma Unreferenced (Id);
11120 case Ekind (Id) is 11301 begin
11121 when E_Variable => 11302 Write_Str ("Prev_Entity");
11122 Write_Str ("Validated_Object");
11123
11124 when others =>
11125 Write_Str ("Field36??");
11126 end case;
11127 end Write_Field36_Name; 11303 end Write_Field36_Name;
11128 11304
11129 ------------------------ 11305 ------------------------
11130 -- Write_Field37_Name -- 11306 -- Write_Field37_Name --
11131 ------------------------ 11307 ------------------------
11144 begin 11320 begin
11145 case Ekind (Id) is 11321 case Ekind (Id) is
11146 when E_Function 11322 when E_Function
11147 | E_Procedure 11323 | E_Procedure
11148 => 11324 =>
11149 Write_Str ("class-wide clone"); 11325 Write_Str ("Class_Wide_Clone");
11326
11327 when E_Array_Subtype
11328 | E_Record_Subtype
11329 | E_Record_Subtype_With_Private
11330 =>
11331 Write_Str ("Predicated_Parent");
11332
11333 when E_Variable =>
11334 Write_Str ("Validated_Object");
11150 11335
11151 when others => 11336 when others =>
11152 Write_Str ("Field38??"); 11337 Write_Str ("Field38??");
11153 end case; 11338 end case;
11154 end Write_Field38_Name; 11339 end Write_Field38_Name;
11175 ------------------------ 11360 ------------------------
11176 11361
11177 procedure Write_Field40_Name (Id : Entity_Id) is 11362 procedure Write_Field40_Name (Id : Entity_Id) is
11178 begin 11363 begin
11179 case Ekind (Id) is 11364 case Ekind (Id) is
11180 when E_Constant 11365 when E_Abstract_State
11366 | E_Constant
11181 | E_Entry 11367 | E_Entry
11182 | E_Entry_Family 11368 | E_Entry_Family
11183 | E_Function 11369 | E_Function
11184 | E_Generic_Function 11370 | E_Generic_Function
11185 | E_Generic_Package 11371 | E_Generic_Package
11187 | E_Operator 11373 | E_Operator
11188 | E_Package 11374 | E_Package
11189 | E_Package_Body 11375 | E_Package_Body
11190 | E_Procedure 11376 | E_Procedure
11191 | E_Protected_Body 11377 | E_Protected_Body
11192 | E_Protected_Type
11193 | E_Subprogram_Body 11378 | E_Subprogram_Body
11194 | E_Task_Body 11379 | E_Task_Body
11195 | E_Task_Type
11196 | E_Variable 11380 | E_Variable
11197 | E_Void 11381 | E_Void
11382 | Type_Kind
11198 => 11383 =>
11199 Write_Str ("SPARK_Pragma"); 11384 Write_Str ("SPARK_Pragma");
11200 11385
11201 when others => 11386 when others =>
11202 Write_Str ("Field40??"); 11387 Write_Str ("Field40??");