]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/einfo.adb
[multiple changes]
[thirdparty/gcc.git] / gcc / ada / einfo.adb
CommitLineData
70482933
RK
1------------------------------------------------------------------------------
2-- --
3-- GNAT COMPILER COMPONENTS --
4-- --
5-- E I N F O --
6-- --
7-- B o d y --
8-- --
6905a049 9-- Copyright (C) 1992-2016, Free Software Foundation, Inc. --
70482933
RK
10-- --
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- --
748086b7 13-- ware Foundation; either version 3, or (at your option) any later ver- --
70482933
RK
14-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
15-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
748086b7
JJ
16-- or FITNESS FOR A PARTICULAR PURPOSE. --
17-- --
18-- As a special exception under Section 7 of GPL version 3, you are granted --
19-- additional permissions described in the GCC Runtime Library Exception, --
20-- version 3.1, as published by the Free Software Foundation. --
21-- --
22-- You should have received a copy of the GNU General Public License and --
23-- a copy of the GCC Runtime Library Exception along with this program; --
24-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
25-- <http://www.gnu.org/licenses/>. --
70482933
RK
26-- --
27-- GNAT was originally developed by the GNAT team at New York University. --
71ff80dc 28-- Extensive contributions were provided by Ada Core Technologies Inc. --
70482933
RK
29-- --
30------------------------------------------------------------------------------
31
32pragma Style_Checks (All_Checks);
33-- Turn off subprogram ordering, not used for this unit
34
a7e68e7f 35with Atree; use Atree;
39af2bac 36with Elists; use Elists;
1355d373 37with Namet; use Namet;
a7e68e7f
HK
38with Nlists; use Nlists;
39with Output; use Output;
40with Sinfo; use Sinfo;
41with Stand; use Stand;
70482933
RK
42
43package body Einfo is
44
45 use Atree.Unchecked_Access;
46 -- This is one of the packages that is allowed direct untyped access to
47 -- the fields in a node, since it provides the next level abstraction
48 -- which incorporates appropriate checks.
49
50 ----------------------------------------------
51 -- Usage of Fields in Defining Entity Nodes --
52 ----------------------------------------------
53
1c5c721a
AC
54 -- Four of these fields are defined in Sinfo, since they in are the base
55 -- part of the node. The access routines for these four fields and the
c75c4293
AC
56 -- corresponding set procedures are defined in Sinfo. These fields are
57 -- present in all entities. Note that Homonym is also in the base part of
58 -- the node, but has access routines that are more properly part of Einfo,
59 -- which is why they are defined here.
70482933
RK
60
61 -- Chars Name1
62 -- Next_Entity Node2
63 -- Scope Node3
64 -- Etype Node5
65
35fd12d8 66 -- Remaining fields are present only in extended nodes (i.e. entities).
70482933
RK
67
68 -- The following fields are present in all entities
69
0839863c 70 -- Homonym Node4
70482933
RK
71 -- First_Rep_Item Node6
72 -- Freeze_Node Node7
caf07df9 73 -- Associated_Entity Node37
70482933 74
6e443c90 75 -- The usage of other fields (and the entity kinds to which it applies)
70482933
RK
76 -- depends on the particular field (see Einfo spec for details).
77
78 -- Associated_Node_For_Itype Node8
79 -- Dependent_Instances Elist8
80 -- Hiding_Loop_Variable Node8
81 -- Mechanism Uint8 (but returns Mechanism_Type)
82 -- Normalized_First_Bit Uint8
ab8843fa 83 -- Refinement_Constituents Elist8
6e443c90 84 -- Return_Applies_To Node8
51bf9bdf 85 -- First_Exit_Statement Node8
70482933
RK
86
87 -- Class_Wide_Type Node9
fbf5a39b 88 -- Current_Value Node9
70482933
RK
89 -- Renaming_Map Uint9
90
46202729 91 -- Direct_Primitive_Operations Elist10
70482933 92 -- Discriminal_Link Node10
23c799b1 93 -- Float_Rep Uint10 (but returns Float_Rep_Kind)
70482933
RK
94 -- Handler_Records List10
95 -- Normalized_Position_Max Uint10
75b87c16 96 -- Part_Of_Constituents Elist10
70482933 97
fdc54be6 98 -- Block_Node Node11
70482933
RK
99 -- Component_Bit_Offset Uint11
100 -- Full_View Node11
101 -- Entry_Component Node11
102 -- Enumeration_Pos Uint11
fbf5a39b 103 -- Generic_Homonym Node11
fdc54be6 104 -- Part_Of_References Elist11
70482933 105 -- Protected_Body_Subprogram Node11
70482933
RK
106
107 -- Barrier_Function Node12
108 -- Enumeration_Rep Uint12
109 -- Esize Uint12
110 -- Next_Inlined_Subprogram Node12
111
70482933 112 -- Component_Clause Node13
70482933
RK
113 -- Elaboration_Entity Node13
114 -- Extra_Accessibility Node13
115 -- RM_Size Uint13
116
117 -- Alignment Uint14
fbf5a39b 118 -- Normalized_Position Uint14
c9d70ab1 119 -- Postconditions_Proc Node14
70482933
RK
120 -- Shadow_Entities List14
121
122 -- Discriminant_Number Uint15
123 -- DT_Position Uint15
124 -- DT_Entry_Count Uint15
70482933
RK
125 -- Entry_Parameters_Type Node15
126 -- Extra_Formal Node15
760804f3 127 -- Pending_Access_Types Elist15
70482933 128 -- Related_Instance Node15
3cebd1c0 129 -- Status_Flag_Or_Transient_Decl Node15
70482933 130
a9d8907c 131 -- Access_Disp_Table Elist16
8a7c0400 132 -- Body_References Elist16
70482933
RK
133 -- Cloned_Subtype Node16
134 -- DTC_Entity Node16
135 -- Entry_Formal Node16
136 -- First_Private_Entity Node16
137 -- Lit_Strings Node16
760804f3 138 -- Scale_Value Uint16
70482933
RK
139 -- String_Literal_Length Uint16
140 -- Unset_Reference Node16
141
142 -- Actual_Subtype Node17
143 -- Digits_Value Uint17
144 -- Discriminal Node17
145 -- First_Entity Node17
146 -- First_Index Node17
147 -- First_Literal Node17
148 -- Master_Id Node17
149 -- Modulus Uint17
70482933
RK
150 -- Prival Node17
151
152 -- Alias Node18
153 -- Corresponding_Concurrent_Type Node18
5042f726 154 -- Corresponding_Protected_Entry Node18
70482933
RK
155 -- Corresponding_Record_Type Node18
156 -- Delta_Value Ureal18
157 -- Enclosing_Scope Node18
158 -- Equivalent_Type Node18
760804f3 159 -- Lit_Indexes Node18
70482933
RK
160 -- Private_Dependents Elist18
161 -- Renamed_Entity Node18
162 -- Renamed_Object Node18
760804f3 163 -- String_Literal_Low_Bound Node18
70482933
RK
164
165 -- Body_Entity Node19
166 -- Corresponding_Discriminant Node19
6d9e03cb 167 -- Default_Aspect_Component_Value Node19
37da997b 168 -- Default_Aspect_Value Node19
760804f3 169 -- Entry_Bodies_Array Node19
63585f75 170 -- Extra_Accessibility_Of_Result Node19
47346923 171 -- Non_Limited_View Node19
70482933 172 -- Parent_Subtype Node19
fbf5a39b 173 -- Size_Check_Code Node19
70482933
RK
174 -- Spec_Entity Node19
175 -- Underlying_Full_View Node19
176
177 -- Component_Type Node20
178 -- Default_Value Node20
179 -- Directly_Designated_Type Node20
180 -- Discriminant_Checking_Func Node20
181 -- Discriminant_Default_Value Node20
182 -- Last_Entity Node20
21d27997 183 -- Prival_Link Node20
70482933
RK
184 -- Register_Exception_Call Node20
185 -- Scalar_Range Node20
186
187 -- Accept_Address Elist21
188 -- Default_Expr_Function Node21
189 -- Discriminant_Constraint Elist21
70482933 190 -- Interface_Name Node21
07fc65c4
GB
191 -- Original_Array_Type Node21
192 -- Small_Value Ureal21
70482933
RK
193
194 -- Associated_Storage_Pool Node22
195 -- Component_Size Uint22
196 -- Corresponding_Remote_Type Node22
197 -- Enumeration_Rep_Expr Node22
70482933
RK
198 -- Original_Record_Component Node22
199 -- Private_View Node22
200 -- Protected_Formal Node22
201 -- Scope_Depth_Value Uint22
685094bf 202 -- Shared_Var_Procs_Instance Node22
70482933 203
70482933 204 -- CR_Discriminant Node23
70482933 205 -- Entry_Cancel_Parameter Node23
21d27997 206 -- Enum_Pos_To_Rep Node23
70482933 207 -- Extra_Constrained Node23
d3f70b35 208 -- Finalization_Master Node23
70482933
RK
209 -- Generic_Renamings Elist23
210 -- Inner_Instances Elist23
0fb2ea01 211 -- Limited_View Node23
50ea6357 212 -- Packed_Array_Impl_Type Node23
21d27997
RD
213 -- Protection_Object Node23
214 -- Stored_Constraint Elist23
70482933 215
167b47d9 216 -- Incomplete_Actuals Elist24
a4941eec 217 -- Related_Expression Node24
3830827c 218 -- Subps_Index Uint24
ce0bead3 219
8a0183fd 220 -- Contract_Wrapper Node25
4c8e94ab 221 -- Debug_Renaming_Link Node25
6e443c90 222 -- DT_Offset_To_Top_Func Node25
caf07df9
AC
223 -- Interface_Alias Node25
224 -- Interfaces Elist25
6d9e03cb 225 -- Related_Array_Object Node25
60f908dd 226 -- Static_Discrete_Predicate List25
fc3a3f3b 227 -- Static_Real_Or_String_Predicate Node25
6e443c90 228 -- Task_Body_Procedure Node25
82c80734 229
b16d9747 230 -- Dispatch_Table_Wrappers Elist26
67ce0d7e 231 -- Last_Assignment Node26
10b93b2e 232 -- Overridden_Operation Node26
f4d379b8 233 -- Package_Instantiation Node26
760804f3 234 -- Storage_Size_Variable Node26
a9d8907c 235
21d27997 236 -- Current_Use_Clause Node27
cefce34c 237 -- Related_Type Node27
10b93b2e 238 -- Wrapped_Entity Node27
165eab5f 239
6e443c90 240 -- Extra_Formals Node28
54e28df2 241 -- Finalizer Node28
02217452 242 -- Initialization_Statements Node28
760804f3
AC
243 -- Original_Access_Type Node28
244 -- Relative_Deadline_Variable Node28
cf49bd32 245 -- Underlying_Record_View Node28
6e443c90 246
8c7ff9a0 247 -- BIP_Initialization_Call Node29
3ddfabe3 248 -- Subprograms_For_Type Elist29
e0ae93e2 249
75b87c16 250 -- Anonymous_Object Node30
477cfc5b 251 -- Corresponding_Equality Node30
4ac2bbbd 252 -- Last_Aggregate_Assignment Node30
477cfc5b 253 -- Static_Initialization Node30
0e564ab4 254
ab01e614 255 -- Derived_Type_Link Node31
59fad002 256 -- Thunk_Entity Node31
3830827c 257 -- Activation_Record_Component Node31
0e564ab4 258
888be6b1
AC
259 -- Corresponding_Function Node32
260 -- Corresponding_Procedure Node32
caf07df9 261 -- Encapsulating_State Node32
49d41397 262 -- No_Tagged_Streams_Pragma Node32
0e564ab4 263
19992053 264 -- Linker_Section_Pragma Node33
0e564ab4 265
6c3c671e 266 -- Contract Node34
0e564ab4 267
32b794c8 268 -- Anonymous_Master Node35
32bba3c9 269 -- Import_Pragma Node35
0e564ab4 270
877a5a12 271 -- Class_Wide_Preconds List38
635ffc52 272
877a5a12 273 -- Class_Wide_Postconds List39
635ffc52 274
877a5a12
AC
275 -- SPARK_Pragma Node40
276
42f11e4c 277 -- Original_Protected_Subprogram Node41
877a5a12 278 -- SPARK_Aux_Pragma Node41
57d08392 279
70482933
RK
280 ---------------------------------------------
281 -- Usage of Flags in Defining Entity Nodes --
282 ---------------------------------------------
283
284 -- All flags are unique, there is no overlaying, so each flag is physically
285 -- present in every entity. However, for many of the flags, it only makes
286 -- sense for them to be set true for certain subsets of entity kinds. See
287 -- the spec of Einfo for further details.
288
4bd4bb7f 289 -- Is_Inlined_Always Flag1
7b4ebba5 290 -- Is_Hidden_Non_Overridden_Subpgm Flag2
e477d718 291 -- Has_Default_Init_Cond Flag3
f937473f
RD
292 -- Is_Frozen Flag4
293 -- Has_Discriminants Flag5
294 -- Is_Dispatching_Operation Flag6
295 -- Is_Immediately_Visible Flag7
296 -- In_Use Flag8
297 -- Is_Potentially_Use_Visible Flag9
298 -- Is_Public Flag10
299
300 -- Is_Inlined Flag11
301 -- Is_Constrained Flag12
302 -- Is_Generic_Type Flag13
303 -- Depends_On_Private Flag14
304 -- Is_Aliased Flag15
305 -- Is_Volatile Flag16
306 -- Is_Internal Flag17
307 -- Has_Delayed_Freeze Flag18
308 -- Is_Abstract_Subprogram Flag19
309 -- Is_Concurrent_Record_Type Flag20
310
311 -- Has_Master_Entity Flag21
312 -- Needs_No_Actuals Flag22
313 -- Has_Storage_Size_Clause Flag23
314 -- Is_Imported Flag24
315 -- Is_Limited_Record Flag25
316 -- Has_Completion Flag26
317 -- Has_Pragma_Controlled Flag27
318 -- Is_Statically_Allocated Flag28
319 -- Has_Size_Clause Flag29
320 -- Has_Task Flag30
321
322 -- Checks_May_Be_Suppressed Flag31
323 -- Kill_Elaboration_Checks Flag32
324 -- Kill_Range_Checks Flag33
ca1ffed0 325 -- Has_Independent_Components Flag34
f937473f
RD
326 -- Is_Class_Wide_Equivalent_Type Flag35
327 -- Referenced_As_LHS Flag36
328 -- Is_Known_Non_Null Flag37
329 -- Can_Never_Be_Null Flag38
a01b9df6 330 -- Has_Default_Aspect Flag39
f937473f
RD
331 -- Body_Needed_For_SAL Flag40
332
333 -- Treat_As_Volatile Flag41
334 -- Is_Controlled Flag42
335 -- Has_Controlled_Component Flag43
336 -- Is_Pure Flag44
337 -- In_Private_Part Flag45
338 -- Has_Alignment_Clause Flag46
339 -- Has_Exit Flag47
340 -- In_Package_Body Flag48
341 -- Reachable Flag49
342 -- Delay_Subprogram_Descriptors Flag50
343
344 -- Is_Packed Flag51
345 -- Is_Entry_Formal Flag52
346 -- Is_Private_Descendant Flag53
347 -- Return_Present Flag54
348 -- Is_Tagged_Type Flag55
349 -- Has_Homonym Flag56
350 -- Is_Hidden Flag57
351 -- Non_Binary_Modulus Flag58
352 -- Is_Preelaborated Flag59
353 -- Is_Shared_Passive Flag60
354
355 -- Is_Remote_Types Flag61
356 -- Is_Remote_Call_Interface Flag62
357 -- Is_Character_Type Flag63
358 -- Is_Intrinsic_Subprogram Flag64
359 -- Has_Record_Rep_Clause Flag65
360 -- Has_Enumeration_Rep_Clause Flag66
361 -- Has_Small_Clause Flag67
362 -- Has_Component_Size_Clause Flag68
363 -- Is_Access_Constant Flag69
364 -- Is_First_Subtype Flag70
365
366 -- Has_Completion_In_Body Flag71
367 -- Has_Unknown_Discriminants Flag72
368 -- Is_Child_Unit Flag73
369 -- Is_CPP_Class Flag74
370 -- Has_Non_Standard_Rep Flag75
371 -- Is_Constructor Flag76
0a36105d 372 -- Static_Elaboration_Desired Flag77
f937473f
RD
373 -- Is_Tag Flag78
374 -- Has_All_Calls_Remote Flag79
375 -- Is_Constr_Subt_For_U_Nominal Flag80
376
377 -- Is_Asynchronous Flag81
378 -- Has_Gigi_Rep_Item Flag82
379 -- Has_Machine_Radix_Clause Flag83
380 -- Machine_Radix_10 Flag84
381 -- Is_Atomic Flag85
382 -- Has_Atomic_Components Flag86
383 -- Has_Volatile_Components Flag87
384 -- Discard_Names Flag88
385 -- Is_Interrupt_Handler Flag89
386 -- Returns_By_Ref Flag90
387
388 -- Is_Itype Flag91
389 -- Size_Known_At_Compile_Time Flag92
de94a7e7 390 -- Reverse_Storage_Order Flag93
f937473f
RD
391 -- Is_Generic_Actual_Type Flag94
392 -- Uses_Sec_Stack Flag95
393 -- Warnings_Off Flag96
394 -- Is_Controlling_Formal Flag97
395 -- Has_Controlling_Result Flag98
396 -- Is_Exported Flag99
397 -- Has_Specified_Layout Flag100
398
399 -- Has_Nested_Block_With_Handler Flag101
400 -- Is_Called Flag102
401 -- Is_Completely_Hidden Flag103
402 -- Address_Taken Flag104
5b1e6aca 403 -- Suppress_Initialization Flag105
f937473f
RD
404 -- Is_Limited_Composite Flag106
405 -- Is_Private_Composite Flag107
406 -- Default_Expressions_Processed Flag108
407 -- Is_Non_Static_Subtype Flag109
fc999c5d 408 -- Has_Out_Or_In_Out_Parameter Flag110
f937473f
RD
409
410 -- Is_Formal_Subprogram Flag111
411 -- Is_Renaming_Of_Object Flag112
412 -- No_Return Flag113
413 -- Delay_Cleanups Flag114
414 -- Never_Set_In_Source Flag115
8ca1ee5d 415 -- Is_Visible_Lib_Unit Flag116
f937473f
RD
416 -- Is_Unchecked_Union Flag117
417 -- Is_For_Access_Subtype Flag118
418 -- Has_Convention_Pragma Flag119
419 -- Has_Primitive_Operations Flag120
420
421 -- Has_Pragma_Pack Flag121
422 -- Is_Bit_Packed_Array Flag122
423 -- Has_Unchecked_Union Flag123
424 -- Is_Eliminated Flag124
425 -- C_Pass_By_Copy Flag125
426 -- Is_Instantiated Flag126
427 -- Is_Valued_Procedure Flag127
428 -- (used for Component_Alignment) Flag128
429 -- (used for Component_Alignment) Flag129
430 -- Is_Generic_Instance Flag130
431
432 -- No_Pool_Assigned Flag131
e477d718
AC
433 -- Is_Default_Init_Cond_Procedure Flag132
434 -- Has_Inherited_Default_Init_Cond Flag133
f937473f
RD
435 -- Has_Aliased_Components Flag135
436 -- No_Strict_Aliasing Flag136
437 -- Is_Machine_Code_Subprogram Flag137
ee4eee0a 438 -- Is_Packed_Array_Impl_Type Flag138
f937473f
RD
439 -- Has_Biased_Representation Flag139
440 -- Has_Complex_Representation Flag140
441
442 -- Is_Constr_Subt_For_UN_Aliased Flag141
443 -- Has_Missing_Return Flag142
444 -- Has_Recursive_Call Flag143
445 -- Is_Unsigned_Type Flag144
446 -- Strict_Alignment Flag145
447 -- Is_Abstract_Type Flag146
448 -- Needs_Debug_Info Flag147
449 -- Suppress_Elaboration_Warnings Flag148
450 -- Is_Compilation_Unit Flag149
451 -- Has_Pragma_Elaborate_Body Flag150
452
87729e5a 453 -- Has_Private_Ancestor Flag151
f937473f
RD
454 -- Entry_Accepted Flag152
455 -- Is_Obsolescent Flag153
456 -- Has_Per_Object_Constraint Flag154
457 -- Has_Private_Declaration Flag155
458 -- Referenced Flag156
459 -- Has_Pragma_Inline Flag157
460 -- Finalize_Storage_Only Flag158
7b56a91b 461 -- From_Limited_With Flag159
f937473f
RD
462 -- Is_Package_Body_Entity Flag160
463
464 -- Has_Qualified_Name Flag161
465 -- Nonzero_Is_True Flag162
466 -- Is_True_Constant Flag163
467 -- Reverse_Bit_Order Flag164
468 -- Suppress_Style_Checks Flag165
469 -- Debug_Info_Off Flag166
470 -- Sec_Stack_Needed_For_Return Flag167
471 -- Materialize_Entity Flag168
4c8a5bb8 472 -- Has_Pragma_Thread_Local_Storage Flag169
f937473f
RD
473 -- Is_Known_Valid Flag170
474
475 -- Is_Hidden_Open_Scope Flag171
476 -- Has_Object_Size_Clause Flag172
477 -- Has_Fully_Qualified_Name Flag173
478 -- Elaboration_Entity_Required Flag174
479 -- Has_Forward_Instantiation Flag175
480 -- Is_Discrim_SO_Function Flag176
481 -- Size_Depends_On_Discriminant Flag177
482 -- Is_Null_Init_Proc Flag178
483 -- Has_Pragma_Pure_Function Flag179
484 -- Has_Pragma_Unreferenced Flag180
485
486 -- Has_Contiguous_Rep Flag181
487 -- Has_Xref_Entry Flag182
488 -- Must_Be_On_Byte_Boundary Flag183
489 -- Has_Stream_Size_Clause Flag184
490 -- Is_Ada_2005_Only Flag185
491 -- Is_Interface Flag186
492 -- Has_Constrained_Partial_View Flag187
88e7531b 493 -- Uses_Lock_Free Flag188
f937473f
RD
494 -- Is_Pure_Unit_Access_Type Flag189
495 -- Has_Specified_Stream_Input Flag190
496
497 -- Has_Specified_Stream_Output Flag191
498 -- Has_Specified_Stream_Read Flag192
499 -- Has_Specified_Stream_Write Flag193
500 -- Is_Local_Anonymous_Access Flag194
501 -- Is_Primitive_Wrapper Flag195
502 -- Was_Hidden Flag196
503 -- Is_Limited_Interface Flag197
bd29d519 504 -- Has_Pragma_Ordered Flag198
599a7411 505 -- Is_Ada_2012_Only Flag199
f937473f 506
c159409f 507 -- Has_Delayed_Aspects Flag200
42ae3870 508 -- Has_Pragma_No_Inline Flag201
f937473f
RD
509 -- Itype_Printed Flag202
510 -- Has_Pragma_Pure Flag203
511 -- Is_Known_Null Flag204
fad0600d 512 -- Low_Bound_Tested Flag205
f937473f
RD
513 -- Is_Visible_Formal Flag206
514 -- Known_To_Have_Preelab_Init Flag207
515 -- Must_Have_Preelab_Init Flag208
516 -- Is_Return_Object Flag209
517 -- Elaborate_Body_Desirable Flag210
518
519 -- Has_Static_Discriminants Flag211
520 -- Has_Pragma_Unreferenced_Objects Flag212
521 -- Requires_Overriding Flag213
522 -- Has_RACW Flag214
b54d1d39 523 -- Is_Param_Block_Component_Type Flag215
0a36105d
JM
524 -- Universal_Aliasing Flag216
525 -- Suppress_Value_Tracking_On_Call Flag217
5d37ba92
ES
526 -- Is_Primitive Flag218
527 -- Has_Initial_Value Flag219
528 -- Has_Dispatch_Table Flag220
0a36105d 529
5d37ba92
ES
530 -- Has_Pragma_Preelab_Init Flag221
531 -- Used_As_Generic_Actual Flag222
d9d25d04 532 -- Is_Descendant_Of_Address Flag223
d5e96bc6 533 -- Is_Raised Flag224
fdce4bb7 534 -- Is_Thunk Flag225
ce0bead3
HK
535 -- Is_Only_Out_Parameter Flag226
536 -- Referenced_As_Out_Parameter Flag227
537 -- Has_Thunks Flag228
538 -- Can_Use_Internal_Rep Flag229
539 -- Has_Pragma_Inline_Always Flag230
540
541 -- Renamed_In_Spec Flag231
3ddfabe3 542 -- Has_Own_Invariants Flag232
9d77af56 543 -- Has_Pragma_Unmodified Flag233
21d27997 544 -- Is_Dispatch_Table_Entity Flag234
0f282086
RD
545 -- Is_Trivial_Subprogram Flag235
546 -- Warnings_Off_Used Flag236
547 -- Warnings_Off_Used_Unmodified Flag237
548 -- Warnings_Off_Used_Unreferenced Flag238
549 -- OK_To_Reorder_Components Flag239
c9d70ab1 550 -- Has_Expanded_Contract Flag240
21d27997
RD
551
552 -- Optimize_Alignment_Space Flag241
553 -- Optimize_Alignment_Time Flag242
554 -- Overlays_Constant Flag243
685094bf 555 -- Is_RACW_Stub_Type Flag244
d44202ba 556 -- Is_Private_Primitive Flag245
9013065b 557 -- Is_Underlying_Record_View Flag246
d1f453b7 558 -- OK_To_Rename Flag247
e606088a 559 -- Has_Inheritable_Invariants Flag248
273adcdf 560 -- Is_Safe_To_Reevaluate Flag249
fd0ff1cf 561 -- Has_Predicates Flag250
70482933 562
9b20e59b 563 -- Has_Implicit_Dereference Flag251
df3e68b1 564 -- Is_Processed_Transient Flag252
c8593453 565 -- Disable_Controlled Flag253
df177175 566 -- Is_Implementation_Defined Flag254
fc142f63
AC
567 -- Is_Predicate_Function Flag255
568 -- Is_Predicate_Function_M Flag256
569 -- Is_Invariant_Procedure Flag257
aab45d22
AC
570 -- Has_Dynamic_Predicate_Aspect Flag258
571 -- Has_Static_Predicate_Aspect Flag259
d436b30d 572 -- Has_Loop_Entry_Attributes Flag260
0e564ab4 573
15e934bf
AC
574 -- Has_Delayed_Rep_Aspects Flag261
575 -- May_Inherit_Delayed_Rep_Aspects Flag262
c5c0ce68 576 -- Has_Visible_Refinement Flag263
e2ef0ff6 577 -- Is_Discriminant_Check_Function Flag264
579847c2
AC
578 -- SPARK_Pragma_Inherited Flag265
579 -- SPARK_Aux_Pragma_Inherited Flag266
4c51ff88 580 -- Has_Shift_Operator Flag267
43bebb10 581 -- Is_Independent Flag268
ee4eee0a 582 -- Has_Static_Predicate Flag269
50ea6357 583 -- Stores_Attribute_Old_Prefix Flag270
15e934bf 584
3c756b76
AC
585 -- Has_Protected Flag271
586 -- SSO_Set_Low_By_Default Flag272
587 -- SSO_Set_High_By_Default Flag273
fce54763 588 -- Is_Generic_Actual_Subprogram Flag274
a6282852
ES
589 -- No_Predicate_On_Actual Flag275
590 -- No_Dynamic_Predicate_On_Actual Flag276
c5cec2fe
AC
591 -- Is_Checked_Ghost_Entity Flag277
592 -- Is_Ignored_Ghost_Entity Flag278
8636f52f 593 -- Contains_Ignored_Ghost_Code Flag279
07a64c02 594 -- Partial_View_Has_Unknown_Discr Flag280
0e564ab4 595
5a271a7f
RD
596 -- Is_Static_Type Flag281
597 -- Has_Nested_Subprogram Flag282
f8dae9bb 598 -- Is_Uplevel_Referenced_Entity Flag283
d3ef4bd6 599 -- Is_Unimplemented Flag284
57abdadd 600 -- Is_Volatile_Full_Access Flag285
75a957f5 601 -- Is_Exception_Handler Flag286
2700b9c1 602 -- Rewritten_For_C Flag287
8d4611f7 603 -- Predicates_Ignored Flag288
4969efdf 604 -- Has_Timing_Event Flag289
85799cb9 605
3ddfabe3
AC
606 -- (unused) Flag290 -- ??? flag breaks einfo.h
607
608 -- Has_Inherited_Invariants Flag291
609 -- Is_Partial_Invariant_Procedure Flag292
4969efdf 610
4969efdf
AC
611 -- (unused) Flag293
612 -- (unused) Flag294
613 -- (unused) Flag295
614 -- (unused) Flag296
615 -- (unused) Flag297
616 -- (unused) Flag298
617 -- (unused) Flag299
4969efdf 618 -- (unused) Flag300
3ddfabe3 619
85799cb9
AC
620 -- (unused) Flag301
621 -- (unused) Flag302
622 -- (unused) Flag303
623 -- (unused) Flag304
624 -- (unused) Flag305
625 -- (unused) Flag306
626 -- (unused) Flag307
627 -- (unused) Flag308
628 -- (unused) Flag309
629
630 -- Note: Flag310-317 are defined in atree.ads/adb, but not yet in atree.h
0e564ab4 631
82c80734
RD
632 -----------------------
633 -- Local subprograms --
634 -----------------------
635
aa500b7a 636 function Has_Option
2757c5bf
AC
637 (State_Id : Entity_Id;
638 Option_Nam : Name_Id) return Boolean;
639 -- Determine whether abstract state State_Id has particular option denoted
640 -- by the name Option_Nam.
cf6956bb 641
d32e3cee
GB
642 ---------------
643 -- Float_Rep --
644 ---------------
645
23c799b1 646 function Float_Rep (Id : E) return F is
d32e3cee
GB
647 pragma Assert (Is_Floating_Point_Type (Id));
648 begin
23c799b1 649 return F'Val (UI_To_Int (Uint10 (Base_Type (Id))));
d32e3cee
GB
650 end Float_Rep;
651
aa500b7a
AC
652 ----------------
653 -- Has_Option --
654 ----------------
cf6956bb 655
aa500b7a 656 function Has_Option
2757c5bf
AC
657 (State_Id : Entity_Id;
658 Option_Nam : Name_Id) return Boolean
cf6956bb 659 is
2757c5bf
AC
660 Decl : constant Node_Id := Parent (State_Id);
661 Opt : Node_Id;
662 Opt_Nam : Node_Id;
cf6956bb
AC
663
664 begin
2757c5bf 665 pragma Assert (Ekind (State_Id) = E_Abstract_State);
cf6956bb 666
2757c5bf
AC
667 -- The declaration of abstract states with options appear as an
668 -- extension aggregate. If this is not the case, the option is not
669 -- available.
cf6956bb 670
2757c5bf
AC
671 if Nkind (Decl) /= N_Extension_Aggregate then
672 return False;
673 end if;
674
675 -- Simple options
676
677 Opt := First (Expressions (Decl));
678 while Present (Opt) loop
75b87c16 679 if Nkind (Opt) = N_Identifier and then Chars (Opt) = Option_Nam then
2757c5bf 680 return True;
cf6956bb 681 end if;
2757c5bf
AC
682
683 Next (Opt);
684 end loop;
685
686 -- Complex options with various specifiers
687
688 Opt := First (Component_Associations (Decl));
689 while Present (Opt) loop
690 Opt_Nam := First (Choices (Opt));
691
692 if Nkind (Opt_Nam) = N_Identifier
693 and then Chars (Opt_Nam) = Option_Nam
694 then
695 return True;
696 end if;
697
698 Next (Opt);
699 end loop;
cf6956bb
AC
700
701 return False;
aa500b7a 702 end Has_Option;
cf6956bb 703
70482933
RK
704 --------------------------------
705 -- Attribute Access Functions --
706 --------------------------------
707
cf6956bb
AC
708 function Abstract_States (Id : E) return L is
709 begin
0812b84e 710 pragma Assert (Ekind_In (Id, E_Generic_Package, E_Package));
cf6956bb
AC
711 return Elist25 (Id);
712 end Abstract_States;
713
70482933
RK
714 function Accept_Address (Id : E) return L is
715 begin
716 return Elist21 (Id);
717 end Accept_Address;
718
a9d8907c 719 function Access_Disp_Table (Id : E) return L is
70482933 720 begin
38171f43 721 pragma Assert (Ekind_In (Id, E_Record_Type,
378dc6ca 722 E_Record_Type_With_Private,
38171f43 723 E_Record_Subtype));
a9d8907c 724 return Elist16 (Implementation_Base_Type (Id));
70482933
RK
725 end Access_Disp_Table;
726
3830827c
AC
727 function Activation_Record_Component (Id : E) return E is
728 begin
729 pragma Assert (Ekind_In (Id, E_Constant,
730 E_In_Parameter,
731 E_In_Out_Parameter,
732 E_Loop_Parameter,
733 E_Out_Parameter,
734 E_Variable));
735 return Node31 (Id);
736 end Activation_Record_Component;
737
70482933
RK
738 function Actual_Subtype (Id : E) return E is
739 begin
740 pragma Assert
df3e68b1 741 (Ekind_In (Id, E_Constant, E_Variable, E_Generic_In_Out_Parameter)
67ce0d7e 742 or else Is_Formal (Id));
70482933
RK
743 return Node17 (Id);
744 end Actual_Subtype;
745
746 function Address_Taken (Id : E) return B is
747 begin
748 return Flag104 (Id);
749 end Address_Taken;
750
751 function Alias (Id : E) return E is
752 begin
753 pragma Assert
754 (Is_Overloadable (Id) or else Ekind (Id) = E_Subprogram_Type);
755 return Node18 (Id);
756 end Alias;
757
758 function Alignment (Id : E) return U is
759 begin
fbf5a39b
AC
760 pragma Assert (Is_Type (Id)
761 or else Is_Formal (Id)
3428cb9f
AC
762 or else Ekind_In (Id, E_Loop_Parameter,
763 E_Constant,
764 E_Exception,
765 E_Variable));
70482933
RK
766 return Uint14 (Id);
767 end Alignment;
768
57ae790f
HK
769 function Anonymous_Master (Id : E) return E is
770 begin
32b794c8
AC
771 pragma Assert (Is_Type (Id));
772 return Node35 (Id);
57ae790f
HK
773 end Anonymous_Master;
774
75b87c16
AC
775 function Anonymous_Object (Id : E) return E is
776 begin
777 pragma Assert (Ekind_In (Id, E_Protected_Type, E_Task_Type));
778 return Node30 (Id);
779 end Anonymous_Object;
780
caf07df9
AC
781 function Associated_Entity (Id : E) return E is
782 begin
783 return Node37 (Id);
784 end Associated_Entity;
785
70482933
RK
786 function Associated_Formal_Package (Id : E) return E is
787 begin
788 pragma Assert (Ekind (Id) = E_Package);
789 return Node12 (Id);
790 end Associated_Formal_Package;
791
792 function Associated_Node_For_Itype (Id : E) return N is
793 begin
794 return Node8 (Id);
795 end Associated_Node_For_Itype;
796
797 function Associated_Storage_Pool (Id : E) return E is
798 begin
799 pragma Assert (Is_Access_Type (Id));
07fc65c4 800 return Node22 (Root_Type (Id));
70482933
RK
801 end Associated_Storage_Pool;
802
803 function Barrier_Function (Id : E) return N is
804 begin
805 pragma Assert (Is_Entry (Id));
806 return Node12 (Id);
807 end Barrier_Function;
808
809 function Block_Node (Id : E) return N is
810 begin
811 pragma Assert (Ekind (Id) = E_Block);
812 return Node11 (Id);
813 end Block_Node;
814
815 function Body_Entity (Id : E) return E is
816 begin
3428cb9f 817 pragma Assert (Ekind_In (Id, E_Package, E_Generic_Package));
70482933
RK
818 return Node19 (Id);
819 end Body_Entity;
820
fbf5a39b
AC
821 function Body_Needed_For_SAL (Id : E) return B is
822 begin
823 pragma Assert
824 (Ekind (Id) = E_Package
825 or else Is_Subprogram (Id)
826 or else Is_Generic_Unit (Id));
827 return Flag40 (Id);
828 end Body_Needed_For_SAL;
829
8a7c0400
AC
830 function Body_References (Id : E) return L is
831 begin
832 pragma Assert (Ekind (Id) = E_Abstract_State);
833 return Elist16 (Id);
834 end Body_References;
835
8c7ff9a0
AC
836 function BIP_Initialization_Call (Id : E) return N is
837 begin
838 pragma Assert (Ekind_In (Id, E_Constant, E_Variable));
839 return Node29 (Id);
840 end BIP_Initialization_Call;
841
70482933
RK
842 function C_Pass_By_Copy (Id : E) return B is
843 begin
844 pragma Assert (Is_Record_Type (Id));
845 return Flag125 (Implementation_Base_Type (Id));
846 end C_Pass_By_Copy;
847
fbf5a39b
AC
848 function Can_Never_Be_Null (Id : E) return B is
849 begin
850 return Flag38 (Id);
851 end Can_Never_Be_Null;
852
853 function Checks_May_Be_Suppressed (Id : E) return B is
854 begin
855 return Flag31 (Id);
856 end Checks_May_Be_Suppressed;
857
635ffc52
AC
858 function Class_Wide_Postconds (Id : E) return S is
859 begin
860 pragma Assert (Is_Subprogram (Id));
861 return List39 (Id);
862 end Class_Wide_Postconds;
863
864 function Class_Wide_Preconds (Id : E) return S is
865 begin
866 pragma Assert (Is_Subprogram (Id));
867 return List38 (Id);
868 end Class_Wide_Preconds;
869
70482933
RK
870 function Class_Wide_Type (Id : E) return E is
871 begin
872 pragma Assert (Is_Type (Id));
873 return Node9 (Id);
874 end Class_Wide_Type;
875
876 function Cloned_Subtype (Id : E) return E is
877 begin
3428cb9f 878 pragma Assert (Ekind_In (Id, E_Record_Subtype, E_Class_Wide_Subtype));
70482933
RK
879 return Node16 (Id);
880 end Cloned_Subtype;
881
882 function Component_Bit_Offset (Id : E) return U is
883 begin
3428cb9f 884 pragma Assert (Ekind_In (Id, E_Component, E_Discriminant));
70482933
RK
885 return Uint11 (Id);
886 end Component_Bit_Offset;
887
888 function Component_Clause (Id : E) return N is
889 begin
3428cb9f 890 pragma Assert (Ekind_In (Id, E_Component, E_Discriminant));
70482933
RK
891 return Node13 (Id);
892 end Component_Clause;
893
894 function Component_Size (Id : E) return U is
895 begin
896 pragma Assert (Is_Array_Type (Id));
897 return Uint22 (Implementation_Base_Type (Id));
898 end Component_Size;
899
900 function Component_Type (Id : E) return E is
901 begin
a7b37927 902 pragma Assert (Is_Array_Type (Id));
70482933
RK
903 return Node20 (Implementation_Base_Type (Id));
904 end Component_Type;
905
906 function Corresponding_Concurrent_Type (Id : E) return E is
907 begin
908 pragma Assert (Ekind (Id) = E_Record_Type);
909 return Node18 (Id);
910 end Corresponding_Concurrent_Type;
911
912 function Corresponding_Discriminant (Id : E) return E is
913 begin
914 pragma Assert (Ekind (Id) = E_Discriminant);
915 return Node19 (Id);
916 end Corresponding_Discriminant;
917
918 function Corresponding_Equality (Id : E) return E is
919 begin
920 pragma Assert
921 (Ekind (Id) = E_Function
922 and then not Comes_From_Source (Id)
923 and then Chars (Id) = Name_Op_Ne);
477cfc5b 924 return Node30 (Id);
70482933
RK
925 end Corresponding_Equality;
926
888be6b1
AC
927 function Corresponding_Function (Id : E) return E is
928 begin
929 pragma Assert (Ekind (Id) = E_Procedure);
930 return Node32 (Id);
931 end Corresponding_Function;
932
933 function Corresponding_Procedure (Id : E) return E is
934 begin
935 pragma Assert (Ekind (Id) = E_Function);
936 return Node32 (Id);
937 end Corresponding_Procedure;
938
5042f726
AC
939 function Corresponding_Protected_Entry (Id : E) return E is
940 begin
bd29d519 941 pragma Assert (Ekind (Id) = E_Subprogram_Body);
5042f726
AC
942 return Node18 (Id);
943 end Corresponding_Protected_Entry;
944
70482933
RK
945 function Corresponding_Record_Type (Id : E) return E is
946 begin
947 pragma Assert (Is_Concurrent_Type (Id));
948 return Node18 (Id);
949 end Corresponding_Record_Type;
950
951 function Corresponding_Remote_Type (Id : E) return E is
952 begin
953 return Node22 (Id);
954 end Corresponding_Remote_Type;
955
f4d379b8
HK
956 function Current_Use_Clause (Id : E) return E is
957 begin
21d27997
RD
958 pragma Assert (Ekind (Id) = E_Package or else Is_Type (Id));
959 return Node27 (Id);
f4d379b8
HK
960 end Current_Use_Clause;
961
fbf5a39b
AC
962 function Current_Value (Id : E) return N is
963 begin
964 pragma Assert (Ekind (Id) in Object_Kind);
965 return Node9 (Id);
966 end Current_Value;
967
70482933
RK
968 function CR_Discriminant (Id : E) return E is
969 begin
970 return Node23 (Id);
971 end CR_Discriminant;
972
973 function Debug_Info_Off (Id : E) return B is
974 begin
975 return Flag166 (Id);
976 end Debug_Info_Off;
977
978 function Debug_Renaming_Link (Id : E) return E is
979 begin
4c8e94ab 980 return Node25 (Id);
70482933
RK
981 end Debug_Renaming_Link;
982
6d9e03cb
AC
983 function Default_Aspect_Component_Value (Id : E) return N is
984 begin
985 pragma Assert (Is_Array_Type (Id));
688a9b51 986 return Node19 (Base_Type (Id));
6d9e03cb
AC
987 end Default_Aspect_Component_Value;
988
37da997b
RD
989 function Default_Aspect_Value (Id : E) return N is
990 begin
991 pragma Assert (Is_Scalar_Type (Id));
688a9b51 992 return Node19 (Base_Type (Id));
37da997b
RD
993 end Default_Aspect_Value;
994
70482933
RK
995 function Default_Expr_Function (Id : E) return E is
996 begin
997 pragma Assert (Is_Formal (Id));
998 return Node21 (Id);
999 end Default_Expr_Function;
1000
1001 function Default_Expressions_Processed (Id : E) return B is
1002 begin
1003 return Flag108 (Id);
1004 end Default_Expressions_Processed;
1005
1006 function Default_Value (Id : E) return N is
1007 begin
1008 pragma Assert (Is_Formal (Id));
1009 return Node20 (Id);
1010 end Default_Value;
1011
1012 function Delay_Cleanups (Id : E) return B is
1013 begin
1014 return Flag114 (Id);
1015 end Delay_Cleanups;
1016
1017 function Delay_Subprogram_Descriptors (Id : E) return B is
1018 begin
1019 return Flag50 (Id);
1020 end Delay_Subprogram_Descriptors;
1021
1022 function Delta_Value (Id : E) return R is
1023 begin
1024 pragma Assert (Is_Fixed_Point_Type (Id));
1025 return Ureal18 (Id);
1026 end Delta_Value;
1027
1028 function Dependent_Instances (Id : E) return L is
1029 begin
1030 pragma Assert (Is_Generic_Instance (Id));
1031 return Elist8 (Id);
1032 end Dependent_Instances;
1033
1034 function Depends_On_Private (Id : E) return B is
1035 begin
1036 pragma Assert (Nkind (Id) in N_Entity);
1037 return Flag14 (Id);
1038 end Depends_On_Private;
1039
ab01e614
AC
1040 function Derived_Type_Link (Id : E) return E is
1041 begin
1042 pragma Assert (Is_Type (Id));
1043 return Node31 (Base_Type (Id));
1044 end Derived_Type_Link;
1045
70482933
RK
1046 function Digits_Value (Id : E) return U is
1047 begin
1048 pragma Assert
1049 (Is_Floating_Point_Type (Id)
1050 or else Is_Decimal_Fixed_Point_Type (Id));
1051 return Uint17 (Id);
1052 end Digits_Value;
1053
ef2a63ba
JM
1054 function Direct_Primitive_Operations (Id : E) return L is
1055 begin
46202729
AC
1056 pragma Assert (Is_Tagged_Type (Id));
1057 return Elist10 (Id);
ef2a63ba
JM
1058 end Direct_Primitive_Operations;
1059
70482933
RK
1060 function Directly_Designated_Type (Id : E) return E is
1061 begin
811c6a85 1062 pragma Assert (Is_Access_Type (Id));
70482933
RK
1063 return Node20 (Id);
1064 end Directly_Designated_Type;
1065
c8593453
AC
1066 function Disable_Controlled (Id : E) return B is
1067 begin
1068 return Flag253 (Base_Type (Id));
1069 end Disable_Controlled;
1070
70482933
RK
1071 function Discard_Names (Id : E) return B is
1072 begin
1073 return Flag88 (Id);
1074 end Discard_Names;
1075
1076 function Discriminal (Id : E) return E is
1077 begin
1078 pragma Assert (Ekind (Id) = E_Discriminant);
1079 return Node17 (Id);
1080 end Discriminal;
1081
1082 function Discriminal_Link (Id : E) return N is
1083 begin
1084 return Node10 (Id);
1085 end Discriminal_Link;
1086
1087 function Discriminant_Checking_Func (Id : E) return E is
1088 begin
1089 pragma Assert (Ekind (Id) = E_Component);
1090 return Node20 (Id);
1091 end Discriminant_Checking_Func;
1092
1093 function Discriminant_Constraint (Id : E) return L is
1094 begin
1095 pragma Assert (Is_Composite_Type (Id) and then Has_Discriminants (Id));
1096 return Elist21 (Id);
1097 end Discriminant_Constraint;
1098
1099 function Discriminant_Default_Value (Id : E) return N is
1100 begin
1101 pragma Assert (Ekind (Id) = E_Discriminant);
1102 return Node20 (Id);
1103 end Discriminant_Default_Value;
1104
1105 function Discriminant_Number (Id : E) return U is
1106 begin
1107 pragma Assert (Ekind (Id) = E_Discriminant);
1108 return Uint15 (Id);
1109 end Discriminant_Number;
1110
b16d9747 1111 function Dispatch_Table_Wrappers (Id : E) return L is
e18d6a15 1112 begin
38171f43
AC
1113 pragma Assert (Ekind_In (Id, E_Record_Type,
1114 E_Record_Subtype));
b16d9747
JM
1115 return Elist26 (Implementation_Base_Type (Id));
1116 end Dispatch_Table_Wrappers;
e18d6a15 1117
70482933
RK
1118 function DT_Entry_Count (Id : E) return U is
1119 begin
edd63e9b 1120 pragma Assert (Ekind (Id) = E_Component and then Is_Tag (Id));
70482933
RK
1121 return Uint15 (Id);
1122 end DT_Entry_Count;
1123
ba673907
JM
1124 function DT_Offset_To_Top_Func (Id : E) return E is
1125 begin
1126 pragma Assert (Ekind (Id) = E_Component and then Is_Tag (Id));
6e443c90 1127 return Node25 (Id);
ba673907
JM
1128 end DT_Offset_To_Top_Func;
1129
70482933
RK
1130 function DT_Position (Id : E) return U is
1131 begin
3428cb9f
AC
1132 pragma Assert (Ekind_In (Id, E_Function, E_Procedure)
1133 and then Present (DTC_Entity (Id)));
70482933
RK
1134 return Uint15 (Id);
1135 end DT_Position;
1136
1137 function DTC_Entity (Id : E) return E is
1138 begin
3428cb9f 1139 pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
70482933
RK
1140 return Node16 (Id);
1141 end DTC_Entity;
1142
6e443c90
RD
1143 function Elaborate_Body_Desirable (Id : E) return B is
1144 begin
1145 pragma Assert (Ekind (Id) = E_Package);
1146 return Flag210 (Id);
1147 end Elaborate_Body_Desirable;
1148
70482933
RK
1149 function Elaboration_Entity (Id : E) return E is
1150 begin
1151 pragma Assert
1152 (Is_Subprogram (Id)
1153 or else
1154 Ekind (Id) = E_Package
1155 or else
1156 Is_Generic_Unit (Id));
1157 return Node13 (Id);
1158 end Elaboration_Entity;
1159
1160 function Elaboration_Entity_Required (Id : E) return B is
1161 begin
1162 pragma Assert
1163 (Is_Subprogram (Id)
1164 or else
1165 Ekind (Id) = E_Package
1166 or else
1167 Is_Generic_Unit (Id));
1168 return Flag174 (Id);
1169 end Elaboration_Entity_Required;
1170
d7af5ea5
HK
1171 function Encapsulating_State (Id : E) return N is
1172 begin
caf07df9
AC
1173 pragma Assert (Ekind_In (Id, E_Abstract_State, E_Constant, E_Variable));
1174 return Node32 (Id);
d7af5ea5
HK
1175 end Encapsulating_State;
1176
70482933
RK
1177 function Enclosing_Scope (Id : E) return E is
1178 begin
1179 return Node18 (Id);
1180 end Enclosing_Scope;
1181
1182 function Entry_Accepted (Id : E) return B is
1183 begin
1184 pragma Assert (Is_Entry (Id));
1185 return Flag152 (Id);
1186 end Entry_Accepted;
1187
1188 function Entry_Bodies_Array (Id : E) return E is
1189 begin
760804f3 1190 return Node19 (Id);
70482933
RK
1191 end Entry_Bodies_Array;
1192
1193 function Entry_Cancel_Parameter (Id : E) return E is
1194 begin
1195 return Node23 (Id);
1196 end Entry_Cancel_Parameter;
1197
1198 function Entry_Component (Id : E) return E is
1199 begin
1200 return Node11 (Id);
1201 end Entry_Component;
1202
1203 function Entry_Formal (Id : E) return E is
1204 begin
1205 return Node16 (Id);
1206 end Entry_Formal;
1207
1208 function Entry_Index_Constant (Id : E) return N is
1209 begin
1210 pragma Assert (Ekind (Id) = E_Entry_Index_Parameter);
1211 return Node18 (Id);
1212 end Entry_Index_Constant;
1213
8636f52f
HK
1214 function Contains_Ignored_Ghost_Code (Id : E) return B is
1215 begin
1216 pragma Assert
1217 (Ekind_In (Id, E_Block,
1218 E_Function,
1219 E_Generic_Function,
1220 E_Generic_Package,
1221 E_Generic_Procedure,
1222 E_Package,
1223 E_Package_Body,
1224 E_Procedure,
1225 E_Subprogram_Body));
1226 return Flag279 (Id);
1227 end Contains_Ignored_Ghost_Code;
1228
dac3bede
YM
1229 function Contract (Id : E) return N is
1230 begin
1231 pragma Assert
75b87c16
AC
1232 (Ekind_In (Id, E_Protected_Type, -- concurrent variants
1233 E_Task_Body,
1234 E_Task_Type)
1235 or else
1236 Ekind_In (Id, E_Constant, -- object variants
f99ff327
AC
1237 E_Variable)
1238 or else
1239 Ekind_In (Id, E_Entry, -- overloadable variants
54e28df2 1240 E_Entry_Family,
f99ff327
AC
1241 E_Function,
1242 E_Generic_Function,
1243 E_Generic_Procedure,
1244 E_Operator,
1245 E_Procedure,
1246 E_Subprogram_Body)
1247 or else
1248 Ekind_In (Id, E_Generic_Package, -- package variants
54e28df2 1249 E_Package,
f99ff327
AC
1250 E_Package_Body)
1251 or else
75b87c16 1252 Ekind (Id) = E_Void); -- special purpose
6c3c671e 1253 return Node34 (Id);
dac3bede
YM
1254 end Contract;
1255
8a0183fd
HK
1256 function Contract_Wrapper (Id : E) return E is
1257 begin
1258 pragma Assert (Ekind_In (Id, E_Entry, E_Entry_Family));
1259 return Node25 (Id);
1260 end Contract_Wrapper;
1261
70482933
RK
1262 function Entry_Parameters_Type (Id : E) return E is
1263 begin
1264 return Node15 (Id);
1265 end Entry_Parameters_Type;
1266
1267 function Enum_Pos_To_Rep (Id : E) return E is
1268 begin
1269 pragma Assert (Ekind (Id) = E_Enumeration_Type);
1270 return Node23 (Id);
1271 end Enum_Pos_To_Rep;
1272
1273 function Enumeration_Pos (Id : E) return Uint is
1274 begin
1275 pragma Assert (Ekind (Id) = E_Enumeration_Literal);
1276 return Uint11 (Id);
1277 end Enumeration_Pos;
1278
1279 function Enumeration_Rep (Id : E) return U is
1280 begin
1281 pragma Assert (Ekind (Id) = E_Enumeration_Literal);
1282 return Uint12 (Id);
1283 end Enumeration_Rep;
1284
1285 function Enumeration_Rep_Expr (Id : E) return N is
1286 begin
1287 pragma Assert (Ekind (Id) = E_Enumeration_Literal);
1288 return Node22 (Id);
1289 end Enumeration_Rep_Expr;
1290
1291 function Equivalent_Type (Id : E) return E is
1292 begin
1293 pragma Assert
bce79204
AC
1294 (Ekind_In (Id, E_Class_Wide_Type,
1295 E_Class_Wide_Subtype,
d1d81616 1296 E_Access_Subprogram_Type,
3428cb9f
AC
1297 E_Access_Protected_Subprogram_Type,
1298 E_Anonymous_Access_Protected_Subprogram_Type,
1299 E_Access_Subprogram_Type,
1300 E_Exception_Type));
70482933
RK
1301 return Node18 (Id);
1302 end Equivalent_Type;
1303
1304 function Esize (Id : E) return Uint is
1305 begin
1306 return Uint12 (Id);
1307 end Esize;
1308
70482933
RK
1309 function Extra_Accessibility (Id : E) return E is
1310 begin
d15f9422
AC
1311 pragma Assert
1312 (Is_Formal (Id) or else Ekind_In (Id, E_Variable, E_Constant));
70482933
RK
1313 return Node13 (Id);
1314 end Extra_Accessibility;
1315
63585f75
SB
1316 function Extra_Accessibility_Of_Result (Id : E) return E is
1317 begin
1318 pragma Assert (Ekind_In (Id, E_Function, E_Operator, E_Subprogram_Type));
1319 return Node19 (Id);
1320 end Extra_Accessibility_Of_Result;
1321
70482933
RK
1322 function Extra_Constrained (Id : E) return E is
1323 begin
1324 pragma Assert (Is_Formal (Id) or else Ekind (Id) = E_Variable);
1325 return Node23 (Id);
1326 end Extra_Constrained;
1327
1328 function Extra_Formal (Id : E) return E is
1329 begin
1330 return Node15 (Id);
1331 end Extra_Formal;
1332
6e443c90
RD
1333 function Extra_Formals (Id : E) return E is
1334 begin
1335 pragma Assert
1336 (Is_Overloadable (Id)
df3e68b1
HK
1337 or else Ekind_In (Id, E_Entry_Family,
1338 E_Subprogram_Body,
1339 E_Subprogram_Type));
6e443c90
RD
1340 return Node28 (Id);
1341 end Extra_Formals;
1342
ce0bead3
HK
1343 function Can_Use_Internal_Rep (Id : E) return B is
1344 begin
21d27997
RD
1345 pragma Assert (Is_Access_Subprogram_Type (Base_Type (Id)));
1346 return Flag229 (Base_Type (Id));
ce0bead3
HK
1347 end Can_Use_Internal_Rep;
1348
d3f70b35
AC
1349 function Finalization_Master (Id : E) return E is
1350 begin
1351 pragma Assert (Is_Access_Type (Id));
1352 return Node23 (Root_Type (Id));
1353 end Finalization_Master;
1354
70482933
RK
1355 function Finalize_Storage_Only (Id : E) return B is
1356 begin
1357 pragma Assert (Is_Type (Id));
1358 return Flag158 (Base_Type (Id));
1359 end Finalize_Storage_Only;
1360
df3e68b1
HK
1361 function Finalizer (Id : E) return E is
1362 begin
54e28df2
HK
1363 pragma Assert (Ekind_In (Id, E_Package, E_Package_Body));
1364 return Node28 (Id);
df3e68b1
HK
1365 end Finalizer;
1366
70482933
RK
1367 function First_Entity (Id : E) return E is
1368 begin
1369 return Node17 (Id);
1370 end First_Entity;
1371
51bf9bdf
AC
1372 function First_Exit_Statement (Id : E) return N is
1373 begin
1374 pragma Assert (Ekind (Id) = E_Loop);
1375 return Node8 (Id);
1376 end First_Exit_Statement;
1377
70482933
RK
1378 function First_Index (Id : E) return N is
1379 begin
a7b37927 1380 pragma Assert (Is_Array_Type (Id));
70482933
RK
1381 return Node17 (Id);
1382 end First_Index;
1383
1384 function First_Literal (Id : E) return E is
1385 begin
f937473f 1386 pragma Assert (Is_Enumeration_Type (Id));
70482933
RK
1387 return Node17 (Id);
1388 end First_Literal;
1389
70482933
RK
1390 function First_Private_Entity (Id : E) return E is
1391 begin
3428cb9f 1392 pragma Assert (Ekind_In (Id, E_Package, E_Generic_Package)
6e443c90 1393 or else Ekind (Id) in Concurrent_Kind);
70482933
RK
1394 return Node16 (Id);
1395 end First_Private_Entity;
1396
1397 function First_Rep_Item (Id : E) return E is
1398 begin
1399 return Node6 (Id);
1400 end First_Rep_Item;
1401
1402 function Freeze_Node (Id : E) return N is
1403 begin
1404 return Node7 (Id);
1405 end Freeze_Node;
1406
7b56a91b 1407 function From_Limited_With (Id : E) return B is
70482933
RK
1408 begin
1409 return Flag159 (Id);
7b56a91b 1410 end From_Limited_With;
70482933
RK
1411
1412 function Full_View (Id : E) return E is
1413 begin
1414 pragma Assert (Is_Type (Id) or else Ekind (Id) = E_Constant);
1415 return Node11 (Id);
1416 end Full_View;
1417
fbf5a39b 1418 function Generic_Homonym (Id : E) return E is
70482933 1419 begin
fbf5a39b
AC
1420 pragma Assert (Ekind (Id) = E_Generic_Package);
1421 return Node11 (Id);
1422 end Generic_Homonym;
70482933 1423
fbf5a39b 1424 function Generic_Renamings (Id : E) return L is
70482933 1425 begin
70482933 1426 return Elist23 (Id);
fbf5a39b 1427 end Generic_Renamings;
70482933
RK
1428
1429 function Handler_Records (Id : E) return S is
1430 begin
1431 return List10 (Id);
1432 end Handler_Records;
1433
1434 function Has_Aliased_Components (Id : E) return B is
1435 begin
1436 return Flag135 (Implementation_Base_Type (Id));
1437 end Has_Aliased_Components;
1438
1439 function Has_Alignment_Clause (Id : E) return B is
1440 begin
1441 return Flag46 (Id);
1442 end Has_Alignment_Clause;
1443
1444 function Has_All_Calls_Remote (Id : E) return B is
1445 begin
1446 return Flag79 (Id);
1447 end Has_All_Calls_Remote;
1448
1449 function Has_Atomic_Components (Id : E) return B is
1450 begin
1451 return Flag86 (Implementation_Base_Type (Id));
1452 end Has_Atomic_Components;
1453
1454 function Has_Biased_Representation (Id : E) return B is
1455 begin
1456 return Flag139 (Id);
1457 end Has_Biased_Representation;
1458
1459 function Has_Completion (Id : E) return B is
1460 begin
1461 return Flag26 (Id);
1462 end Has_Completion;
1463
1464 function Has_Completion_In_Body (Id : E) return B is
1465 begin
1466 pragma Assert (Is_Type (Id));
1467 return Flag71 (Id);
1468 end Has_Completion_In_Body;
1469
1470 function Has_Complex_Representation (Id : E) return B is
1471 begin
1472 pragma Assert (Is_Type (Id));
1473 return Flag140 (Implementation_Base_Type (Id));
1474 end Has_Complex_Representation;
1475
1476 function Has_Component_Size_Clause (Id : E) return B is
1477 begin
1478 pragma Assert (Is_Array_Type (Id));
1479 return Flag68 (Implementation_Base_Type (Id));
1480 end Has_Component_Size_Clause;
1481
edd63e9b
ES
1482 function Has_Constrained_Partial_View (Id : E) return B is
1483 begin
1484 pragma Assert (Is_Type (Id));
1485 return Flag187 (Id);
1486 end Has_Constrained_Partial_View;
1487
70482933
RK
1488 function Has_Controlled_Component (Id : E) return B is
1489 begin
1490 return Flag43 (Base_Type (Id));
1491 end Has_Controlled_Component;
1492
fbf5a39b
AC
1493 function Has_Contiguous_Rep (Id : E) return B is
1494 begin
1495 return Flag181 (Id);
1496 end Has_Contiguous_Rep;
1497
70482933
RK
1498 function Has_Controlling_Result (Id : E) return B is
1499 begin
1500 return Flag98 (Id);
1501 end Has_Controlling_Result;
1502
1503 function Has_Convention_Pragma (Id : E) return B is
1504 begin
1505 return Flag119 (Id);
1506 end Has_Convention_Pragma;
1507
a01b9df6 1508 function Has_Default_Aspect (Id : E) return B is
19fb051c 1509 begin
19fb051c 1510 return Flag39 (Base_Type (Id));
a01b9df6 1511 end Has_Default_Aspect;
19fb051c 1512
e477d718
AC
1513 function Has_Default_Init_Cond (Id : E) return B is
1514 begin
caef4e57
HK
1515 pragma Assert (Is_Type (Id));
1516 return Flag3 (Base_Type (Id));
e477d718
AC
1517 end Has_Default_Init_Cond;
1518
c159409f
AC
1519 function Has_Delayed_Aspects (Id : E) return B is
1520 begin
1521 pragma Assert (Nkind (Id) in N_Entity);
1522 return Flag200 (Id);
1523 end Has_Delayed_Aspects;
1524
70482933
RK
1525 function Has_Delayed_Freeze (Id : E) return B is
1526 begin
1527 pragma Assert (Nkind (Id) in N_Entity);
1528 return Flag18 (Id);
1529 end Has_Delayed_Freeze;
1530
15e934bf
AC
1531 function Has_Delayed_Rep_Aspects (Id : E) return B is
1532 begin
1533 pragma Assert (Nkind (Id) in N_Entity);
1534 return Flag261 (Id);
1535 end Has_Delayed_Rep_Aspects;
1536
70482933
RK
1537 function Has_Discriminants (Id : E) return B is
1538 begin
1539 pragma Assert (Nkind (Id) in N_Entity);
1540 return Flag5 (Id);
1541 end Has_Discriminants;
1542
5d37ba92
ES
1543 function Has_Dispatch_Table (Id : E) return B is
1544 begin
1545 pragma Assert (Is_Tagged_Type (Id));
1546 return Flag220 (Id);
1547 end Has_Dispatch_Table;
1548
aab45d22
AC
1549 function Has_Dynamic_Predicate_Aspect (Id : E) return B is
1550 begin
1551 pragma Assert (Is_Type (Id));
1552 return Flag258 (Id);
1553 end Has_Dynamic_Predicate_Aspect;
1554
70482933
RK
1555 function Has_Enumeration_Rep_Clause (Id : E) return B is
1556 begin
1557 pragma Assert (Is_Enumeration_Type (Id));
1558 return Flag66 (Id);
1559 end Has_Enumeration_Rep_Clause;
1560
1561 function Has_Exit (Id : E) return B is
1562 begin
1563 return Flag47 (Id);
1564 end Has_Exit;
1565
c9d70ab1
AC
1566 function Has_Expanded_Contract (Id : E) return B is
1567 begin
1568 pragma Assert (Is_Subprogram (Id));
1569 return Flag240 (Id);
1570 end Has_Expanded_Contract;
1571
70482933
RK
1572 function Has_Forward_Instantiation (Id : E) return B is
1573 begin
1574 return Flag175 (Id);
1575 end Has_Forward_Instantiation;
1576
1577 function Has_Fully_Qualified_Name (Id : E) return B is
1578 begin
1579 return Flag173 (Id);
1580 end Has_Fully_Qualified_Name;
1581
1582 function Has_Gigi_Rep_Item (Id : E) return B is
1583 begin
1584 return Flag82 (Id);
1585 end Has_Gigi_Rep_Item;
1586
1587 function Has_Homonym (Id : E) return B is
1588 begin
1589 return Flag56 (Id);
1590 end Has_Homonym;
1591
0da80d7d
AC
1592 function Has_Implicit_Dereference (Id : E) return B is
1593 begin
1594 return Flag251 (Id);
1595 end Has_Implicit_Dereference;
1596
ca1ffed0
AC
1597 function Has_Independent_Components (Id : E) return B is
1598 begin
28fa5430 1599 return Flag34 (Implementation_Base_Type (Id));
ca1ffed0
AC
1600 end Has_Independent_Components;
1601
e606088a
AC
1602 function Has_Inheritable_Invariants (Id : E) return B is
1603 begin
1604 pragma Assert (Is_Type (Id));
1605 return Flag248 (Id);
1606 end Has_Inheritable_Invariants;
1607
e477d718
AC
1608 function Has_Inherited_Default_Init_Cond (Id : E) return B is
1609 begin
1610 pragma Assert (Is_Type (Id));
caef4e57 1611 return Flag133 (Base_Type (Id));
e477d718
AC
1612 end Has_Inherited_Default_Init_Cond;
1613
3ddfabe3
AC
1614 function Has_Inherited_Invariants (Id : E) return B is
1615 begin
1616 pragma Assert (Is_Type (Id));
1617 return Flag291 (Id);
1618 end Has_Inherited_Invariants;
1619
5d37ba92
ES
1620 function Has_Initial_Value (Id : E) return B is
1621 begin
e606088a 1622 pragma Assert (Ekind (Id) = E_Variable or else Is_Formal (Id));
5d37ba92
ES
1623 return Flag219 (Id);
1624 end Has_Initial_Value;
1625
d436b30d
AC
1626 function Has_Loop_Entry_Attributes (Id : E) return B is
1627 begin
1628 pragma Assert (Ekind (Id) = E_Loop);
1629 return Flag260 (Id);
1630 end Has_Loop_Entry_Attributes;
1631
70482933
RK
1632 function Has_Machine_Radix_Clause (Id : E) return B is
1633 begin
1634 pragma Assert (Is_Decimal_Fixed_Point_Type (Id));
1635 return Flag83 (Id);
1636 end Has_Machine_Radix_Clause;
1637
1638 function Has_Master_Entity (Id : E) return B is
1639 begin
1640 return Flag21 (Id);
1641 end Has_Master_Entity;
1642
1643 function Has_Missing_Return (Id : E) return B is
1644 begin
3428cb9f 1645 pragma Assert (Ekind_In (Id, E_Function, E_Generic_Function));
70482933
RK
1646 return Flag142 (Id);
1647 end Has_Missing_Return;
1648
1649 function Has_Nested_Block_With_Handler (Id : E) return B is
1650 begin
1651 return Flag101 (Id);
1652 end Has_Nested_Block_With_Handler;
1653
5a271a7f
RD
1654 function Has_Nested_Subprogram (Id : E) return B is
1655 begin
1656 pragma Assert (Is_Subprogram (Id));
1657 return Flag282 (Id);
1658 end Has_Nested_Subprogram;
1659
70482933
RK
1660 function Has_Non_Standard_Rep (Id : E) return B is
1661 begin
1662 return Flag75 (Implementation_Base_Type (Id));
1663 end Has_Non_Standard_Rep;
1664
1665 function Has_Object_Size_Clause (Id : E) return B is
1666 begin
1667 pragma Assert (Is_Type (Id));
1668 return Flag172 (Id);
1669 end Has_Object_Size_Clause;
1670
fc999c5d
RD
1671 function Has_Out_Or_In_Out_Parameter (Id : E) return B is
1672 begin
288cbbbd
JM
1673 pragma Assert
1674 (Ekind_In (Id, E_Entry, E_Entry_Family)
1675 or else Is_Subprogram_Or_Generic_Subprogram (Id));
fc999c5d
RD
1676 return Flag110 (Id);
1677 end Has_Out_Or_In_Out_Parameter;
1678
3ddfabe3
AC
1679 function Has_Own_Invariants (Id : E) return B is
1680 begin
1681 pragma Assert (Is_Type (Id));
1682 return Flag232 (Id);
1683 end Has_Own_Invariants;
1684
70482933
RK
1685 function Has_Per_Object_Constraint (Id : E) return B is
1686 begin
1687 return Flag154 (Id);
1688 end Has_Per_Object_Constraint;
1689
1690 function Has_Pragma_Controlled (Id : E) return B is
1691 begin
1692 pragma Assert (Is_Access_Type (Id));
1693 return Flag27 (Implementation_Base_Type (Id));
1694 end Has_Pragma_Controlled;
1695
1696 function Has_Pragma_Elaborate_Body (Id : E) return B is
1697 begin
1698 return Flag150 (Id);
1699 end Has_Pragma_Elaborate_Body;
1700
1701 function Has_Pragma_Inline (Id : E) return B is
1702 begin
1703 return Flag157 (Id);
1704 end Has_Pragma_Inline;
1705
ce0bead3
HK
1706 function Has_Pragma_Inline_Always (Id : E) return B is
1707 begin
1708 return Flag230 (Id);
1709 end Has_Pragma_Inline_Always;
1710
42ae3870
AC
1711 function Has_Pragma_No_Inline (Id : E) return B is
1712 begin
1713 return Flag201 (Id);
1714 end Has_Pragma_No_Inline;
1715
bd29d519
AC
1716 function Has_Pragma_Ordered (Id : E) return B is
1717 begin
1718 pragma Assert (Is_Enumeration_Type (Id));
1719 return Flag198 (Implementation_Base_Type (Id));
1720 end Has_Pragma_Ordered;
1721
70482933
RK
1722 function Has_Pragma_Pack (Id : E) return B is
1723 begin
1724 pragma Assert (Is_Record_Type (Id) or else Is_Array_Type (Id));
1725 return Flag121 (Implementation_Base_Type (Id));
1726 end Has_Pragma_Pack;
1727
5d37ba92
ES
1728 function Has_Pragma_Preelab_Init (Id : E) return B is
1729 begin
1730 return Flag221 (Id);
1731 end Has_Pragma_Preelab_Init;
1732
ba673907
JM
1733 function Has_Pragma_Pure (Id : E) return B is
1734 begin
1735 return Flag203 (Id);
1736 end Has_Pragma_Pure;
1737
0839863c
GB
1738 function Has_Pragma_Pure_Function (Id : E) return B is
1739 begin
0839863c
GB
1740 return Flag179 (Id);
1741 end Has_Pragma_Pure_Function;
1742
4c8a5bb8
AC
1743 function Has_Pragma_Thread_Local_Storage (Id : E) return B is
1744 begin
1745 return Flag169 (Id);
1746 end Has_Pragma_Thread_Local_Storage;
1747
9d77af56
RD
1748 function Has_Pragma_Unmodified (Id : E) return B is
1749 begin
1750 return Flag233 (Id);
1751 end Has_Pragma_Unmodified;
1752
07fc65c4
GB
1753 function Has_Pragma_Unreferenced (Id : E) return B is
1754 begin
1755 return Flag180 (Id);
1756 end Has_Pragma_Unreferenced;
1757
f937473f
RD
1758 function Has_Pragma_Unreferenced_Objects (Id : E) return B is
1759 begin
1760 pragma Assert (Is_Type (Id));
1761 return Flag212 (Id);
1762 end Has_Pragma_Unreferenced_Objects;
1763
fd0ff1cf
RD
1764 function Has_Predicates (Id : E) return B is
1765 begin
fc142f63 1766 pragma Assert (Is_Type (Id));
fd0ff1cf
RD
1767 return Flag250 (Id);
1768 end Has_Predicates;
1769
70482933
RK
1770 function Has_Primitive_Operations (Id : E) return B is
1771 begin
1772 pragma Assert (Is_Type (Id));
1773 return Flag120 (Base_Type (Id));
1774 end Has_Primitive_Operations;
1775
87729e5a
AC
1776 function Has_Private_Ancestor (Id : E) return B is
1777 begin
1778 return Flag151 (Id);
1779 end Has_Private_Ancestor;
1780
70482933
RK
1781 function Has_Private_Declaration (Id : E) return B is
1782 begin
1783 return Flag155 (Id);
1784 end Has_Private_Declaration;
1785
96e90ac1
RD
1786 function Has_Protected (Id : E) return B is
1787 begin
02bb0765 1788 return Flag271 (Base_Type (Id));
96e90ac1
RD
1789 end Has_Protected;
1790
70482933
RK
1791 function Has_Qualified_Name (Id : E) return B is
1792 begin
1793 return Flag161 (Id);
1794 end Has_Qualified_Name;
1795
f937473f
RD
1796 function Has_RACW (Id : E) return B is
1797 begin
1798 pragma Assert (Ekind (Id) = E_Package);
1799 return Flag214 (Id);
1800 end Has_RACW;
1801
70482933
RK
1802 function Has_Record_Rep_Clause (Id : E) return B is
1803 begin
1804 pragma Assert (Is_Record_Type (Id));
07fc65c4 1805 return Flag65 (Implementation_Base_Type (Id));
70482933
RK
1806 end Has_Record_Rep_Clause;
1807
1808 function Has_Recursive_Call (Id : E) return B is
1809 begin
1810 pragma Assert (Is_Subprogram (Id));
1811 return Flag143 (Id);
1812 end Has_Recursive_Call;
1813
4c51ff88
AC
1814 function Has_Shift_Operator (Id : E) return B is
1815 begin
1816 pragma Assert (Is_Integer_Type (Id));
1817 return Flag267 (Base_Type (Id));
1818 end Has_Shift_Operator;
1819
70482933
RK
1820 function Has_Size_Clause (Id : E) return B is
1821 begin
1822 return Flag29 (Id);
1823 end Has_Size_Clause;
1824
1825 function Has_Small_Clause (Id : E) return B is
1826 begin
47b79f78 1827 pragma Assert (Is_Ordinary_Fixed_Point_Type (Id));
70482933
RK
1828 return Flag67 (Id);
1829 end Has_Small_Clause;
1830
1831 function Has_Specified_Layout (Id : E) return B is
1832 begin
1833 pragma Assert (Is_Type (Id));
07fc65c4 1834 return Flag100 (Implementation_Base_Type (Id));
70482933
RK
1835 end Has_Specified_Layout;
1836
edd63e9b
ES
1837 function Has_Specified_Stream_Input (Id : E) return B is
1838 begin
1839 pragma Assert (Is_Type (Id));
1840 return Flag190 (Id);
1841 end Has_Specified_Stream_Input;
1842
1843 function Has_Specified_Stream_Output (Id : E) return B is
1844 begin
1845 pragma Assert (Is_Type (Id));
1846 return Flag191 (Id);
1847 end Has_Specified_Stream_Output;
1848
1849 function Has_Specified_Stream_Read (Id : E) return B is
1850 begin
1851 pragma Assert (Is_Type (Id));
1852 return Flag192 (Id);
1853 end Has_Specified_Stream_Read;
1854
1855 function Has_Specified_Stream_Write (Id : E) return B is
1856 begin
1857 pragma Assert (Is_Type (Id));
1858 return Flag193 (Id);
1859 end Has_Specified_Stream_Write;
1860
6e443c90
RD
1861 function Has_Static_Discriminants (Id : E) return B is
1862 begin
1863 pragma Assert (Is_Type (Id));
1864 return Flag211 (Id);
1865 end Has_Static_Discriminants;
1866
ee4eee0a
AC
1867 function Has_Static_Predicate (Id : E) return B is
1868 begin
1869 pragma Assert (Is_Type (Id));
1870 return Flag269 (Id);
1871 end Has_Static_Predicate;
1872
aab45d22
AC
1873 function Has_Static_Predicate_Aspect (Id : E) return B is
1874 begin
1875 pragma Assert (Is_Type (Id));
1876 return Flag259 (Id);
1877 end Has_Static_Predicate_Aspect;
1878
70482933
RK
1879 function Has_Storage_Size_Clause (Id : E) return B is
1880 begin
1881 pragma Assert (Is_Access_Type (Id) or else Is_Task_Type (Id));
1882 return Flag23 (Implementation_Base_Type (Id));
1883 end Has_Storage_Size_Clause;
1884
82c80734
RD
1885 function Has_Stream_Size_Clause (Id : E) return B is
1886 begin
82c80734
RD
1887 return Flag184 (Id);
1888 end Has_Stream_Size_Clause;
1889
70482933
RK
1890 function Has_Task (Id : E) return B is
1891 begin
1892 return Flag30 (Base_Type (Id));
1893 end Has_Task;
1894
ce0bead3
HK
1895 function Has_Thunks (Id : E) return B is
1896 begin
ce0bead3
HK
1897 return Flag228 (Id);
1898 end Has_Thunks;
1899
4969efdf
AC
1900 function Has_Timing_Event (Id : E) return B is
1901 begin
1902 return Flag289 (Base_Type (Id));
1903 end Has_Timing_Event;
1904
70482933
RK
1905 function Has_Unchecked_Union (Id : E) return B is
1906 begin
1907 return Flag123 (Base_Type (Id));
1908 end Has_Unchecked_Union;
1909
1910 function Has_Unknown_Discriminants (Id : E) return B is
1911 begin
1912 pragma Assert (Is_Type (Id));
1913 return Flag72 (Id);
1914 end Has_Unknown_Discriminants;
1915
c5c0ce68
HK
1916 function Has_Visible_Refinement (Id : E) return B is
1917 begin
1918 pragma Assert (Ekind (Id) = E_Abstract_State);
1919 return Flag263 (Id);
1920 end Has_Visible_Refinement;
1921
70482933
RK
1922 function Has_Volatile_Components (Id : E) return B is
1923 begin
1924 return Flag87 (Implementation_Base_Type (Id));
1925 end Has_Volatile_Components;
1926
fbf5a39b
AC
1927 function Has_Xref_Entry (Id : E) return B is
1928 begin
f7bb41af 1929 return Flag182 (Id);
fbf5a39b
AC
1930 end Has_Xref_Entry;
1931
70482933
RK
1932 function Hiding_Loop_Variable (Id : E) return E is
1933 begin
1934 pragma Assert (Ekind (Id) = E_Variable);
1935 return Node8 (Id);
1936 end Hiding_Loop_Variable;
1937
1938 function Homonym (Id : E) return E is
1939 begin
1940 return Node4 (Id);
1941 end Homonym;
1942
32bba3c9
AC
1943 function Import_Pragma (Id : E) return E is
1944 begin
1945 pragma Assert (Is_Subprogram (Id));
1946 return Node35 (Id);
1947 end Import_Pragma;
1948
167b47d9
AC
1949 function Incomplete_Actuals (Id : E) return L is
1950 begin
1951 pragma Assert (Ekind (Id) = E_Package);
1952 return Elist24 (Id);
1953 end Incomplete_Actuals;
1954
ce2b6ba5
JM
1955 function Interface_Alias (Id : E) return E is
1956 begin
1957 pragma Assert (Is_Subprogram (Id));
1958 return Node25 (Id);
1959 end Interface_Alias;
1960
cdcb8ccb
RD
1961 function Interfaces (Id : E) return L is
1962 begin
1963 pragma Assert (Is_Record_Type (Id));
1964 return Elist25 (Id);
1965 end Interfaces;
1966
70482933
RK
1967 function In_Package_Body (Id : E) return B is
1968 begin
1969 return Flag48 (Id);
1970 end In_Package_Body;
1971
1972 function In_Private_Part (Id : E) return B is
1973 begin
1974 return Flag45 (Id);
1975 end In_Private_Part;
1976
1977 function In_Use (Id : E) return B is
1978 begin
1979 pragma Assert (Nkind (Id) in N_Entity);
1980 return Flag8 (Id);
1981 end In_Use;
1982
02217452
AC
1983 function Initialization_Statements (Id : E) return N is
1984 begin
1985 pragma Assert (Ekind_In (Id, E_Constant, E_Variable));
1986 return Node28 (Id);
1987 end Initialization_Statements;
1988
70482933
RK
1989 function Inner_Instances (Id : E) return L is
1990 begin
1991 return Elist23 (Id);
1992 end Inner_Instances;
1993
1994 function Interface_Name (Id : E) return N is
1995 begin
1996 return Node21 (Id);
1997 end Interface_Name;
1998
f937473f 1999 function Is_Abstract_Subprogram (Id : E) return B is
70482933 2000 begin
f937473f 2001 pragma Assert (Is_Overloadable (Id));
70482933 2002 return Flag19 (Id);
f937473f
RD
2003 end Is_Abstract_Subprogram;
2004
2005 function Is_Abstract_Type (Id : E) return B is
2006 begin
2007 pragma Assert (Is_Type (Id));
2008 return Flag146 (Id);
2009 end Is_Abstract_Type;
70482933
RK
2010
2011 function Is_Access_Constant (Id : E) return B is
2012 begin
2013 pragma Assert (Is_Access_Type (Id));
2014 return Flag69 (Id);
2015 end Is_Access_Constant;
2016
6e443c90 2017 function Is_Ada_2005_Only (Id : E) return B is
82c80734
RD
2018 begin
2019 return Flag185 (Id);
6e443c90 2020 end Is_Ada_2005_Only;
82c80734 2021
599a7411
AC
2022 function Is_Ada_2012_Only (Id : E) return B is
2023 begin
2024 return Flag199 (Id);
2025 end Is_Ada_2012_Only;
2026
70482933
RK
2027 function Is_Aliased (Id : E) return B is
2028 begin
2029 pragma Assert (Nkind (Id) in N_Entity);
2030 return Flag15 (Id);
2031 end Is_Aliased;
2032
70482933
RK
2033 function Is_Asynchronous (Id : E) return B is
2034 begin
3428cb9f 2035 pragma Assert (Ekind (Id) = E_Procedure or else Is_Type (Id));
70482933
RK
2036 return Flag81 (Id);
2037 end Is_Asynchronous;
2038
2039 function Is_Atomic (Id : E) return B is
2040 begin
2041 return Flag85 (Id);
2042 end Is_Atomic;
2043
2044 function Is_Bit_Packed_Array (Id : E) return B is
2045 begin
2046 return Flag122 (Implementation_Base_Type (Id));
2047 end Is_Bit_Packed_Array;
2048
2049 function Is_Called (Id : E) return B is
2050 begin
3428cb9f 2051 pragma Assert (Ekind_In (Id, E_Procedure, E_Function));
70482933
RK
2052 return Flag102 (Id);
2053 end Is_Called;
2054
2055 function Is_Character_Type (Id : E) return B is
2056 begin
2057 return Flag63 (Id);
2058 end Is_Character_Type;
2059
c5cec2fe
AC
2060 function Is_Checked_Ghost_Entity (Id : E) return B is
2061 begin
2062 pragma Assert (Nkind (Id) in N_Entity);
2063 return Flag277 (Id);
2064 end Is_Checked_Ghost_Entity;
2065
70482933
RK
2066 function Is_Child_Unit (Id : E) return B is
2067 begin
2068 return Flag73 (Id);
2069 end Is_Child_Unit;
2070
fbf5a39b
AC
2071 function Is_Class_Wide_Equivalent_Type (Id : E) return B is
2072 begin
2073 return Flag35 (Id);
2074 end Is_Class_Wide_Equivalent_Type;
2075
70482933
RK
2076 function Is_Compilation_Unit (Id : E) return B is
2077 begin
2078 return Flag149 (Id);
2079 end Is_Compilation_Unit;
2080
2081 function Is_Completely_Hidden (Id : E) return B is
2082 begin
2083 pragma Assert (Ekind (Id) = E_Discriminant);
2084 return Flag103 (Id);
2085 end Is_Completely_Hidden;
2086
2087 function Is_Constr_Subt_For_U_Nominal (Id : E) return B is
2088 begin
2089 return Flag80 (Id);
2090 end Is_Constr_Subt_For_U_Nominal;
2091
2092 function Is_Constr_Subt_For_UN_Aliased (Id : E) return B is
2093 begin
2094 return Flag141 (Id);
2095 end Is_Constr_Subt_For_UN_Aliased;
2096
2097 function Is_Constrained (Id : E) return B is
2098 begin
2099 pragma Assert (Nkind (Id) in N_Entity);
2100 return Flag12 (Id);
2101 end Is_Constrained;
2102
2103 function Is_Constructor (Id : E) return B is
2104 begin
2105 return Flag76 (Id);
2106 end Is_Constructor;
2107
2108 function Is_Controlled (Id : E) return B is
2109 begin
2110 return Flag42 (Base_Type (Id));
2111 end Is_Controlled;
2112
2113 function Is_Controlling_Formal (Id : E) return B is
2114 begin
2115 pragma Assert (Is_Formal (Id));
2116 return Flag97 (Id);
2117 end Is_Controlling_Formal;
2118
2119 function Is_CPP_Class (Id : E) return B is
2120 begin
2121 return Flag74 (Id);
2122 end Is_CPP_Class;
2123
e477d718
AC
2124 function Is_Default_Init_Cond_Procedure (Id : E) return B is
2125 begin
2126 pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
2127 return Flag132 (Id);
2128 end Is_Default_Init_Cond_Procedure;
2129
d9d25d04 2130 function Is_Descendant_Of_Address (Id : E) return B is
21d27997 2131 begin
21d27997 2132 return Flag223 (Id);
d9d25d04 2133 end Is_Descendant_Of_Address;
21d27997 2134
70482933
RK
2135 function Is_Discrim_SO_Function (Id : E) return B is
2136 begin
2137 return Flag176 (Id);
2138 end Is_Discrim_SO_Function;
2139
e2ef0ff6
AC
2140 function Is_Discriminant_Check_Function (Id : E) return B is
2141 begin
2142 return Flag264 (Id);
2143 end Is_Discriminant_Check_Function;
2144
21d27997 2145 function Is_Dispatch_Table_Entity (Id : E) return B is
d5e96bc6 2146 begin
21d27997
RD
2147 return Flag234 (Id);
2148 end Is_Dispatch_Table_Entity;
d5e96bc6 2149
70482933
RK
2150 function Is_Dispatching_Operation (Id : E) return B is
2151 begin
2152 pragma Assert (Nkind (Id) in N_Entity);
2153 return Flag6 (Id);
2154 end Is_Dispatching_Operation;
2155
2156 function Is_Eliminated (Id : E) return B is
2157 begin
2158 return Flag124 (Id);
2159 end Is_Eliminated;
2160
2161 function Is_Entry_Formal (Id : E) return B is
2162 begin
2163 return Flag52 (Id);
2164 end Is_Entry_Formal;
2165
75a957f5
AC
2166 function Is_Exception_Handler (Id : E) return B is
2167 begin
2168 pragma Assert (Ekind (Id) = E_Block);
2169 return Flag286 (Id);
2170 end Is_Exception_Handler;
2171
70482933
RK
2172 function Is_Exported (Id : E) return B is
2173 begin
2174 return Flag99 (Id);
2175 end Is_Exported;
2176
2177 function Is_First_Subtype (Id : E) return B is
2178 begin
2179 return Flag70 (Id);
2180 end Is_First_Subtype;
2181
2182 function Is_For_Access_Subtype (Id : E) return B is
2183 begin
3428cb9f 2184 pragma Assert (Ekind_In (Id, E_Record_Subtype, E_Private_Subtype));
70482933
RK
2185 return Flag118 (Id);
2186 end Is_For_Access_Subtype;
2187
2188 function Is_Formal_Subprogram (Id : E) return B is
2189 begin
2190 return Flag111 (Id);
2191 end Is_Formal_Subprogram;
2192
2193 function Is_Frozen (Id : E) return B is
2194 begin
2195 return Flag4 (Id);
2196 end Is_Frozen;
2197
fce54763
AC
2198 function Is_Generic_Actual_Subprogram (Id : E) return B is
2199 begin
2200 pragma Assert (Ekind (Id) = E_Function or else Ekind (Id) = E_Procedure);
2201 return Flag274 (Id);
2202 end Is_Generic_Actual_Subprogram;
2203
70482933
RK
2204 function Is_Generic_Actual_Type (Id : E) return B is
2205 begin
2206 pragma Assert (Is_Type (Id));
2207 return Flag94 (Id);
2208 end Is_Generic_Actual_Type;
2209
2210 function Is_Generic_Instance (Id : E) return B is
2211 begin
2212 return Flag130 (Id);
2213 end Is_Generic_Instance;
2214
2215 function Is_Generic_Type (Id : E) return B is
2216 begin
2217 pragma Assert (Nkind (Id) in N_Entity);
2218 return Flag13 (Id);
2219 end Is_Generic_Type;
2220
2221 function Is_Hidden (Id : E) return B is
2222 begin
2223 return Flag57 (Id);
2224 end Is_Hidden;
2225
7b4ebba5 2226 function Is_Hidden_Non_Overridden_Subpgm (Id : E) return B is
09c954dc 2227 begin
09c954dc 2228 return Flag2 (Id);
7b4ebba5 2229 end Is_Hidden_Non_Overridden_Subpgm;
09c954dc 2230
70482933
RK
2231 function Is_Hidden_Open_Scope (Id : E) return B is
2232 begin
2233 return Flag171 (Id);
2234 end Is_Hidden_Open_Scope;
2235
c5cec2fe
AC
2236 function Is_Ignored_Ghost_Entity (Id : E) return B is
2237 begin
2238 pragma Assert (Nkind (Id) in N_Entity);
2239 return Flag278 (Id);
2240 end Is_Ignored_Ghost_Entity;
2241
70482933
RK
2242 function Is_Immediately_Visible (Id : E) return B is
2243 begin
2244 pragma Assert (Nkind (Id) in N_Entity);
2245 return Flag7 (Id);
2246 end Is_Immediately_Visible;
2247
df177175
RD
2248 function Is_Implementation_Defined (Id : E) return B is
2249 begin
2250 return Flag254 (Id);
2251 end Is_Implementation_Defined;
2252
70482933
RK
2253 function Is_Imported (Id : E) return B is
2254 begin
2255 return Flag24 (Id);
2256 end Is_Imported;
2257
43bebb10
AC
2258 function Is_Independent (Id : E) return B is
2259 begin
43bebb10
AC
2260 return Flag268 (Id);
2261 end Is_Independent;
2262
70482933
RK
2263 function Is_Inlined (Id : E) return B is
2264 begin
2265 return Flag11 (Id);
2266 end Is_Inlined;
2267
4bd4bb7f
AC
2268 function Is_Inlined_Always (Id : E) return B is
2269 begin
2270 pragma Assert (Ekind (Id) = E_Function or else Ekind (Id) = E_Procedure);
2271 return Flag1 (Id);
2272 end Is_Inlined_Always;
2273
a9d8907c
JM
2274 function Is_Interface (Id : E) return B is
2275 begin
a9d8907c
JM
2276 return Flag186 (Id);
2277 end Is_Interface;
2278
70482933
RK
2279 function Is_Instantiated (Id : E) return B is
2280 begin
2281 return Flag126 (Id);
2282 end Is_Instantiated;
2283
2284 function Is_Internal (Id : E) return B is
2285 begin
2286 pragma Assert (Nkind (Id) in N_Entity);
2287 return Flag17 (Id);
2288 end Is_Internal;
2289
2290 function Is_Interrupt_Handler (Id : E) return B is
2291 begin
2292 pragma Assert (Nkind (Id) in N_Entity);
2293 return Flag89 (Id);
2294 end Is_Interrupt_Handler;
2295
2296 function Is_Intrinsic_Subprogram (Id : E) return B is
2297 begin
2298 return Flag64 (Id);
2299 end Is_Intrinsic_Subprogram;
2300
fc142f63
AC
2301 function Is_Invariant_Procedure (Id : E) return B is
2302 begin
e477d718 2303 pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
fc142f63
AC
2304 return Flag257 (Id);
2305 end Is_Invariant_Procedure;
2306
70482933
RK
2307 function Is_Itype (Id : E) return B is
2308 begin
2309 return Flag91 (Id);
2310 end Is_Itype;
2311
fbf5a39b
AC
2312 function Is_Known_Non_Null (Id : E) return B is
2313 begin
2314 return Flag37 (Id);
2315 end Is_Known_Non_Null;
2316
ba673907
JM
2317 function Is_Known_Null (Id : E) return B is
2318 begin
2319 return Flag204 (Id);
2320 end Is_Known_Null;
2321
70482933
RK
2322 function Is_Known_Valid (Id : E) return B is
2323 begin
2324 return Flag170 (Id);
2325 end Is_Known_Valid;
2326
2327 function Is_Limited_Composite (Id : E) return B is
2328 begin
2329 return Flag106 (Id);
2330 end Is_Limited_Composite;
2331
f4d379b8
HK
2332 function Is_Limited_Interface (Id : E) return B is
2333 begin
f4d379b8
HK
2334 return Flag197 (Id);
2335 end Is_Limited_Interface;
2336
70482933
RK
2337 function Is_Limited_Record (Id : E) return B is
2338 begin
2339 return Flag25 (Id);
2340 end Is_Limited_Record;
2341
75a957f5
AC
2342 function Is_Local_Anonymous_Access (Id : E) return B is
2343 begin
2344 pragma Assert (Is_Access_Type (Id));
2345 return Flag194 (Id);
2346 end Is_Local_Anonymous_Access;
2347
70482933
RK
2348 function Is_Machine_Code_Subprogram (Id : E) return B is
2349 begin
2350 pragma Assert (Is_Subprogram (Id));
2351 return Flag137 (Id);
2352 end Is_Machine_Code_Subprogram;
2353
2354 function Is_Non_Static_Subtype (Id : E) return B is
2355 begin
2356 pragma Assert (Is_Type (Id));
2357 return Flag109 (Id);
2358 end Is_Non_Static_Subtype;
2359
2360 function Is_Null_Init_Proc (Id : E) return B is
2361 begin
2362 pragma Assert (Ekind (Id) = E_Procedure);
2363 return Flag178 (Id);
2364 end Is_Null_Init_Proc;
2365
82c80734
RD
2366 function Is_Obsolescent (Id : E) return B is
2367 begin
82c80734
RD
2368 return Flag153 (Id);
2369 end Is_Obsolescent;
2370
ce0bead3
HK
2371 function Is_Only_Out_Parameter (Id : E) return B is
2372 begin
2373 pragma Assert (Is_Formal (Id));
2374 return Flag226 (Id);
2375 end Is_Only_Out_Parameter;
2376
70482933
RK
2377 function Is_Package_Body_Entity (Id : E) return B is
2378 begin
2379 return Flag160 (Id);
2380 end Is_Package_Body_Entity;
2381
2382 function Is_Packed (Id : E) return B is
2383 begin
2384 return Flag51 (Implementation_Base_Type (Id));
2385 end Is_Packed;
2386
8ca597af 2387 function Is_Packed_Array_Impl_Type (Id : E) return B is
70482933
RK
2388 begin
2389 return Flag138 (Id);
8ca597af 2390 end Is_Packed_Array_Impl_Type;
70482933 2391
b54d1d39
AC
2392 function Is_Param_Block_Component_Type (Id : E) return B is
2393 begin
2394 pragma Assert (Is_Access_Type (Id));
2395 return Flag215 (Base_Type (Id));
2396 end Is_Param_Block_Component_Type;
2397
3ddfabe3
AC
2398 function Is_Partial_Invariant_Procedure (Id : E) return B is
2399 begin
2400 pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
2401 return Flag292 (Id);
2402 end Is_Partial_Invariant_Procedure;
2403
70482933
RK
2404 function Is_Potentially_Use_Visible (Id : E) return B is
2405 begin
2406 pragma Assert (Nkind (Id) in N_Entity);
2407 return Flag9 (Id);
2408 end Is_Potentially_Use_Visible;
2409
fc142f63
AC
2410 function Is_Predicate_Function (Id : E) return B is
2411 begin
be035558 2412 pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
fc142f63
AC
2413 return Flag255 (Id);
2414 end Is_Predicate_Function;
2415
2416 function Is_Predicate_Function_M (Id : E) return B is
2417 begin
be035558 2418 pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
fc142f63
AC
2419 return Flag256 (Id);
2420 end Is_Predicate_Function_M;
2421
70482933
RK
2422 function Is_Preelaborated (Id : E) return B is
2423 begin
2424 return Flag59 (Id);
2425 end Is_Preelaborated;
2426
5d37ba92
ES
2427 function Is_Primitive (Id : E) return B is
2428 begin
2429 pragma Assert
2430 (Is_Overloadable (Id)
df3e68b1 2431 or else Ekind_In (Id, E_Generic_Function, E_Generic_Procedure));
5d37ba92
ES
2432 return Flag218 (Id);
2433 end Is_Primitive;
2434
10b93b2e
HK
2435 function Is_Primitive_Wrapper (Id : E) return B is
2436 begin
3428cb9f 2437 pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
10b93b2e
HK
2438 return Flag195 (Id);
2439 end Is_Primitive_Wrapper;
2440
70482933
RK
2441 function Is_Private_Composite (Id : E) return B is
2442 begin
2443 pragma Assert (Is_Type (Id));
2444 return Flag107 (Id);
2445 end Is_Private_Composite;
2446
2447 function Is_Private_Descendant (Id : E) return B is
2448 begin
2449 return Flag53 (Id);
2450 end Is_Private_Descendant;
2451
d44202ba
HK
2452 function Is_Private_Primitive (Id : E) return B is
2453 begin
3428cb9f 2454 pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
d44202ba
HK
2455 return Flag245 (Id);
2456 end Is_Private_Primitive;
2457
df3e68b1
HK
2458 function Is_Processed_Transient (Id : E) return B is
2459 begin
aa499784 2460 pragma Assert (Ekind_In (Id, E_Constant, E_Loop_Parameter, E_Variable));
df3e68b1
HK
2461 return Flag252 (Id);
2462 end Is_Processed_Transient;
2463
70482933
RK
2464 function Is_Public (Id : E) return B is
2465 begin
2466 pragma Assert (Nkind (Id) in N_Entity);
2467 return Flag10 (Id);
2468 end Is_Public;
2469
2470 function Is_Pure (Id : E) return B is
2471 begin
2472 return Flag44 (Id);
2473 end Is_Pure;
2474
edd63e9b
ES
2475 function Is_Pure_Unit_Access_Type (Id : E) return B is
2476 begin
2477 pragma Assert (Is_Access_Type (Id));
2478 return Flag189 (Id);
2479 end Is_Pure_Unit_Access_Type;
2480
685094bf
RD
2481 function Is_RACW_Stub_Type (Id : E) return B is
2482 begin
2483 pragma Assert (Is_Type (Id));
2484 return Flag244 (Id);
2485 end Is_RACW_Stub_Type;
2486
d5e96bc6
HK
2487 function Is_Raised (Id : E) return B is
2488 begin
2489 pragma Assert (Ekind (Id) = E_Exception);
2490 return Flag224 (Id);
2491 end Is_Raised;
2492
70482933
RK
2493 function Is_Remote_Call_Interface (Id : E) return B is
2494 begin
2495 return Flag62 (Id);
2496 end Is_Remote_Call_Interface;
2497
2498 function Is_Remote_Types (Id : E) return B is
2499 begin
2500 return Flag61 (Id);
2501 end Is_Remote_Types;
2502
2503 function Is_Renaming_Of_Object (Id : E) return B is
2504 begin
2505 return Flag112 (Id);
2506 end Is_Renaming_Of_Object;
2507
6e443c90
RD
2508 function Is_Return_Object (Id : E) return B is
2509 begin
2510 return Flag209 (Id);
2511 end Is_Return_Object;
2512
273adcdf
AC
2513 function Is_Safe_To_Reevaluate (Id : E) return B is
2514 begin
2515 return Flag249 (Id);
2516 end Is_Safe_To_Reevaluate;
2517
70482933
RK
2518 function Is_Shared_Passive (Id : E) return B is
2519 begin
2520 return Flag60 (Id);
2521 end Is_Shared_Passive;
2522
5a271a7f
RD
2523 function Is_Static_Type (Id : E) return B is
2524 begin
5a271a7f
RD
2525 return Flag281 (Id);
2526 end Is_Static_Type;
2527
70482933
RK
2528 function Is_Statically_Allocated (Id : E) return B is
2529 begin
2530 return Flag28 (Id);
2531 end Is_Statically_Allocated;
2532
2533 function Is_Tag (Id : E) return B is
2534 begin
2535 pragma Assert (Nkind (Id) in N_Entity);
2536 return Flag78 (Id);
2537 end Is_Tag;
2538
2539 function Is_Tagged_Type (Id : E) return B is
2540 begin
2541 return Flag55 (Id);
2542 end Is_Tagged_Type;
2543
fdce4bb7
JM
2544 function Is_Thunk (Id : E) return B is
2545 begin
fdce4bb7
JM
2546 return Flag225 (Id);
2547 end Is_Thunk;
2548
0f282086
RD
2549 function Is_Trivial_Subprogram (Id : E) return B is
2550 begin
2551 return Flag235 (Id);
2552 end Is_Trivial_Subprogram;
2553
70482933
RK
2554 function Is_True_Constant (Id : E) return B is
2555 begin
2556 return Flag163 (Id);
2557 end Is_True_Constant;
2558
2559 function Is_Unchecked_Union (Id : E) return B is
2560 begin
ba673907 2561 return Flag117 (Implementation_Base_Type (Id));
70482933
RK
2562 end Is_Unchecked_Union;
2563
9013065b
AC
2564 function Is_Underlying_Record_View (Id : E) return B is
2565 begin
2566 return Flag246 (Id);
2567 end Is_Underlying_Record_View;
2568
d3ef4bd6
AC
2569 function Is_Unimplemented (Id : E) return B is
2570 begin
2571 return Flag284 (Id);
2572 end Is_Unimplemented;
2573
70482933
RK
2574 function Is_Unsigned_Type (Id : E) return B is
2575 begin
2576 pragma Assert (Is_Type (Id));
2577 return Flag144 (Id);
2578 end Is_Unsigned_Type;
2579
f8dae9bb
AC
2580 function Is_Uplevel_Referenced_Entity (Id : E) return B is
2581 begin
2582 return Flag283 (Id);
2583 end Is_Uplevel_Referenced_Entity;
2584
70482933
RK
2585 function Is_Valued_Procedure (Id : E) return B is
2586 begin
2587 pragma Assert (Ekind (Id) = E_Procedure);
2588 return Flag127 (Id);
2589 end Is_Valued_Procedure;
2590
6e443c90
RD
2591 function Is_Visible_Formal (Id : E) return B is
2592 begin
2593 return Flag206 (Id);
2594 end Is_Visible_Formal;
2595
8398e82e
AC
2596 function Is_Visible_Lib_Unit (Id : E) return B is
2597 begin
2598 return Flag116 (Id);
2599 end Is_Visible_Lib_Unit;
2600
70482933
RK
2601 function Is_Volatile (Id : E) return B is
2602 begin
2603 pragma Assert (Nkind (Id) in N_Entity);
653da906 2604
fbf5a39b
AC
2605 if Is_Type (Id) then
2606 return Flag16 (Base_Type (Id));
2607 else
2608 return Flag16 (Id);
2609 end if;
70482933
RK
2610 end Is_Volatile;
2611
57abdadd
EB
2612 function Is_Volatile_Full_Access (Id : E) return B is
2613 begin
2614 return Flag285 (Id);
2615 end Is_Volatile_Full_Access;
2616
653da906
RD
2617 function Itype_Printed (Id : E) return B is
2618 begin
2619 pragma Assert (Is_Itype (Id));
2620 return Flag202 (Id);
2621 end Itype_Printed;
2622
fbf5a39b
AC
2623 function Kill_Elaboration_Checks (Id : E) return B is
2624 begin
2625 return Flag32 (Id);
2626 end Kill_Elaboration_Checks;
2627
2628 function Kill_Range_Checks (Id : E) return B is
2629 begin
2630 return Flag33 (Id);
2631 end Kill_Range_Checks;
2632
6e443c90
RD
2633 function Known_To_Have_Preelab_Init (Id : E) return B is
2634 begin
2635 pragma Assert (Is_Type (Id));
2636 return Flag207 (Id);
2637 end Known_To_Have_Preelab_Init;
2638
e2ef0ff6
AC
2639 function Last_Aggregate_Assignment (Id : E) return N is
2640 begin
4ac2bbbd
AC
2641 pragma Assert (Ekind_In (Id, E_Constant, E_Variable));
2642 return Node30 (Id);
e2ef0ff6
AC
2643 end Last_Aggregate_Assignment;
2644
6e443c90
RD
2645 function Last_Assignment (Id : E) return N is
2646 begin
67ce0d7e
RD
2647 pragma Assert (Is_Assignable (Id));
2648 return Node26 (Id);
6e443c90
RD
2649 end Last_Assignment;
2650
70482933
RK
2651 function Last_Entity (Id : E) return E is
2652 begin
2653 return Node20 (Id);
2654 end Last_Entity;
2655
0fb2ea01 2656 function Limited_View (Id : E) return E is
fbf5a39b
AC
2657 begin
2658 pragma Assert (Ekind (Id) = E_Package);
0fb2ea01
AC
2659 return Node23 (Id);
2660 end Limited_View;
fbf5a39b 2661
19992053
AC
2662 function Linker_Section_Pragma (Id : E) return N is
2663 begin
2664 pragma Assert
2665 (Is_Type (Id) or else Is_Object (Id) or else Is_Subprogram (Id));
2666 return Node33 (Id);
2667 end Linker_Section_Pragma;
2668
70482933
RK
2669 function Lit_Indexes (Id : E) return E is
2670 begin
2671 pragma Assert (Is_Enumeration_Type (Id));
760804f3 2672 return Node18 (Id);
70482933
RK
2673 end Lit_Indexes;
2674
2675 function Lit_Strings (Id : E) return E is
2676 begin
2677 pragma Assert (Is_Enumeration_Type (Id));
2678 return Node16 (Id);
2679 end Lit_Strings;
2680
fad0600d 2681 function Low_Bound_Tested (Id : E) return B is
6e443c90
RD
2682 begin
2683 return Flag205 (Id);
fad0600d 2684 end Low_Bound_Tested;
6e443c90 2685
70482933
RK
2686 function Machine_Radix_10 (Id : E) return B is
2687 begin
2688 pragma Assert (Is_Decimal_Fixed_Point_Type (Id));
2689 return Flag84 (Id);
2690 end Machine_Radix_10;
2691
2692 function Master_Id (Id : E) return E is
2693 begin
f937473f 2694 pragma Assert (Is_Access_Type (Id));
70482933
RK
2695 return Node17 (Id);
2696 end Master_Id;
2697
2698 function Materialize_Entity (Id : E) return B is
2699 begin
2700 return Flag168 (Id);
2701 end Materialize_Entity;
2702
15e934bf
AC
2703 function May_Inherit_Delayed_Rep_Aspects (Id : E) return B is
2704 begin
2705 return Flag262 (Id);
2706 end May_Inherit_Delayed_Rep_Aspects;
2707
70482933
RK
2708 function Mechanism (Id : E) return M is
2709 begin
2710 pragma Assert (Ekind (Id) = E_Function or else Is_Formal (Id));
2711 return UI_To_Int (Uint8 (Id));
2712 end Mechanism;
2713
2714 function Modulus (Id : E) return Uint is
2715 begin
2716 pragma Assert (Is_Modular_Integer_Type (Id));
2717 return Uint17 (Base_Type (Id));
2718 end Modulus;
2719
0da2c8ac
AC
2720 function Must_Be_On_Byte_Boundary (Id : E) return B is
2721 begin
2722 pragma Assert (Is_Type (Id));
2723 return Flag183 (Id);
2724 end Must_Be_On_Byte_Boundary;
2725
6e443c90
RD
2726 function Must_Have_Preelab_Init (Id : E) return B is
2727 begin
2728 pragma Assert (Is_Type (Id));
2729 return Flag208 (Id);
2730 end Must_Have_Preelab_Init;
2731
70482933
RK
2732 function Needs_Debug_Info (Id : E) return B is
2733 begin
2734 return Flag147 (Id);
2735 end Needs_Debug_Info;
2736
2737 function Needs_No_Actuals (Id : E) return B is
2738 begin
2739 pragma Assert
2740 (Is_Overloadable (Id)
df3e68b1 2741 or else Ekind_In (Id, E_Subprogram_Type, E_Entry_Family));
70482933
RK
2742 return Flag22 (Id);
2743 end Needs_No_Actuals;
2744
fbf5a39b
AC
2745 function Never_Set_In_Source (Id : E) return B is
2746 begin
2747 return Flag115 (Id);
2748 end Never_Set_In_Source;
2749
70482933
RK
2750 function Next_Inlined_Subprogram (Id : E) return E is
2751 begin
2752 return Node12 (Id);
2753 end Next_Inlined_Subprogram;
2754
a6282852
ES
2755 function No_Dynamic_Predicate_On_Actual (Id : E) return Boolean is
2756 begin
2757 pragma Assert (Is_Discrete_Type (Id));
2758 return Flag276 (Id);
2759 end No_Dynamic_Predicate_On_Actual;
2760
70482933
RK
2761 function No_Pool_Assigned (Id : E) return B is
2762 begin
2763 pragma Assert (Is_Access_Type (Id));
2764 return Flag131 (Root_Type (Id));
2765 end No_Pool_Assigned;
2766
a6282852
ES
2767 function No_Predicate_On_Actual (Id : E) return Boolean is
2768 begin
2769 pragma Assert (Is_Discrete_Type (Id));
2770 return Flag275 (Id);
2771 end No_Predicate_On_Actual;
2772
70482933
RK
2773 function No_Return (Id : E) return B is
2774 begin
70482933
RK
2775 return Flag113 (Id);
2776 end No_Return;
2777
8a6a52dc
AC
2778 function No_Strict_Aliasing (Id : E) return B is
2779 begin
2780 pragma Assert (Is_Access_Type (Id));
2781 return Flag136 (Base_Type (Id));
2782 end No_Strict_Aliasing;
2783
49d41397
RD
2784 function No_Tagged_Streams_Pragma (Id : E) return N is
2785 begin
2786 pragma Assert (Is_Tagged_Type (Id));
2787 return Node32 (Id);
2788 end No_Tagged_Streams_Pragma;
2789
70482933
RK
2790 function Non_Binary_Modulus (Id : E) return B is
2791 begin
685094bf 2792 pragma Assert (Is_Type (Id));
70482933
RK
2793 return Flag58 (Base_Type (Id));
2794 end Non_Binary_Modulus;
2795
fbf5a39b
AC
2796 function Non_Limited_View (Id : E) return E is
2797 begin
dc726757 2798 pragma Assert
47346923 2799 (Ekind (Id) in Incomplete_Kind
f8dae9bb
AC
2800 or else
2801 Ekind (Id) in Class_Wide_Kind
2802 or else
2803 Ekind (Id) = E_Abstract_State);
47346923 2804 return Node19 (Id);
fbf5a39b
AC
2805 end Non_Limited_View;
2806
70482933
RK
2807 function Nonzero_Is_True (Id : E) return B is
2808 begin
2809 pragma Assert (Root_Type (Id) = Standard_Boolean);
2810 return Flag162 (Base_Type (Id));
2811 end Nonzero_Is_True;
2812
2813 function Normalized_First_Bit (Id : E) return U is
2814 begin
3428cb9f 2815 pragma Assert (Ekind_In (Id, E_Component, E_Discriminant));
70482933
RK
2816 return Uint8 (Id);
2817 end Normalized_First_Bit;
2818
2819 function Normalized_Position (Id : E) return U is
2820 begin
3428cb9f 2821 pragma Assert (Ekind_In (Id, E_Component, E_Discriminant));
fbf5a39b 2822 return Uint14 (Id);
70482933
RK
2823 end Normalized_Position;
2824
2825 function Normalized_Position_Max (Id : E) return U is
2826 begin
3428cb9f 2827 pragma Assert (Ekind_In (Id, E_Component, E_Discriminant));
70482933
RK
2828 return Uint10 (Id);
2829 end Normalized_Position_Max;
2830
d1f453b7
RD
2831 function OK_To_Rename (Id : E) return B is
2832 begin
2833 pragma Assert (Ekind (Id) = E_Variable);
2834 return Flag247 (Id);
2835 end OK_To_Rename;
2836
0f282086
RD
2837 function OK_To_Reorder_Components (Id : E) return B is
2838 begin
2839 pragma Assert (Is_Record_Type (Id));
2840 return Flag239 (Base_Type (Id));
2841 end OK_To_Reorder_Components;
2842
21d27997
RD
2843 function Optimize_Alignment_Space (Id : E) return B is
2844 begin
2845 pragma Assert
3428cb9f 2846 (Is_Type (Id) or else Ekind_In (Id, E_Constant, E_Variable));
21d27997
RD
2847 return Flag241 (Id);
2848 end Optimize_Alignment_Space;
2849
2850 function Optimize_Alignment_Time (Id : E) return B is
2851 begin
2852 pragma Assert
3428cb9f 2853 (Is_Type (Id) or else Ekind_In (Id, E_Constant, E_Variable));
21d27997
RD
2854 return Flag242 (Id);
2855 end Optimize_Alignment_Time;
2856
aa1e353a
AC
2857 function Original_Access_Type (Id : E) return E is
2858 begin
2859 pragma Assert (Ekind (Id) = E_Access_Subprogram_Type);
760804f3 2860 return Node28 (Id);
aa1e353a
AC
2861 end Original_Access_Type;
2862
07fc65c4
GB
2863 function Original_Array_Type (Id : E) return E is
2864 begin
2865 pragma Assert (Is_Array_Type (Id) or else Is_Modular_Integer_Type (Id));
2866 return Node21 (Id);
2867 end Original_Array_Type;
2868
42f11e4c
AC
2869 function Original_Protected_Subprogram (Id : E) return N is
2870 begin
2871 return Node41 (Id);
2872 end Original_Protected_Subprogram;
2873
70482933
RK
2874 function Original_Record_Component (Id : E) return E is
2875 begin
3428cb9f 2876 pragma Assert (Ekind_In (Id, E_Void, E_Component, E_Discriminant));
70482933
RK
2877 return Node22 (Id);
2878 end Original_Record_Component;
2879
21d27997
RD
2880 function Overlays_Constant (Id : E) return B is
2881 begin
2882 return Flag243 (Id);
2883 end Overlays_Constant;
2884
10b93b2e
HK
2885 function Overridden_Operation (Id : E) return E is
2886 begin
be035558 2887 pragma Assert (Is_Subprogram (Id) or else Is_Generic_Subprogram (Id));
10b93b2e
HK
2888 return Node26 (Id);
2889 end Overridden_Operation;
2890
f4d379b8
HK
2891 function Package_Instantiation (Id : E) return N is
2892 begin
3428cb9f 2893 pragma Assert (Ekind_In (Id, E_Package, E_Generic_Package));
f4d379b8
HK
2894 return Node26 (Id);
2895 end Package_Instantiation;
2896
8ca597af 2897 function Packed_Array_Impl_Type (Id : E) return E is
70482933
RK
2898 begin
2899 pragma Assert (Is_Array_Type (Id));
2900 return Node23 (Id);
8ca597af 2901 end Packed_Array_Impl_Type;
70482933
RK
2902
2903 function Parent_Subtype (Id : E) return E is
2904 begin
6fb4cdde
AC
2905 pragma Assert (Is_Record_Type (Id));
2906 return Node19 (Base_Type (Id));
70482933
RK
2907 end Parent_Subtype;
2908
d7af5ea5
HK
2909 function Part_Of_Constituents (Id : E) return L is
2910 begin
75b87c16
AC
2911 pragma Assert (Ekind_In (Id, E_Abstract_State, E_Variable));
2912 return Elist10 (Id);
d7af5ea5
HK
2913 end Part_Of_Constituents;
2914
fdc54be6
AC
2915 function Part_Of_References (Id : E) return L is
2916 begin
2917 pragma Assert (Ekind (Id) = E_Variable);
2918 return Elist11 (Id);
2919 end Part_Of_References;
2920
07a64c02
AC
2921 function Partial_View_Has_Unknown_Discr (Id : E) return B is
2922 begin
2923 pragma Assert (Is_Type (Id));
2924 return Flag280 (Id);
2925 end Partial_View_Has_Unknown_Discr;
2926
760804f3
AC
2927 function Pending_Access_Types (Id : E) return L is
2928 begin
2929 pragma Assert (Is_Type (Id));
2930 return Elist15 (Id);
2931 end Pending_Access_Types;
2932
c9d70ab1 2933 function Postconditions_Proc (Id : E) return E is
7ca78bba 2934 begin
c9d70ab1
AC
2935 pragma Assert (Ekind_In (Id, E_Entry,
2936 E_Entry_Family,
2937 E_Function,
2938 E_Procedure));
2939 return Node14 (Id);
2940 end Postconditions_Proc;
7ca78bba 2941
8d4611f7
AC
2942 function Predicates_Ignored (Id : E) return B is
2943 begin
2944 pragma Assert (Is_Type (Id));
2945 return Flag288 (Id);
2946 end Predicates_Ignored;
2947
70482933
RK
2948 function Prival (Id : E) return E is
2949 begin
21d27997 2950 pragma Assert (Is_Protected_Component (Id));
70482933
RK
2951 return Node17 (Id);
2952 end Prival;
2953
21d27997 2954 function Prival_Link (Id : E) return E is
70482933 2955 begin
3428cb9f 2956 pragma Assert (Ekind_In (Id, E_Constant, E_Variable));
21d27997
RD
2957 return Node20 (Id);
2958 end Prival_Link;
70482933
RK
2959
2960 function Private_Dependents (Id : E) return L is
2961 begin
2962 pragma Assert (Is_Incomplete_Or_Private_Type (Id));
2963 return Elist18 (Id);
2964 end Private_Dependents;
2965
2966 function Private_View (Id : E) return N is
2967 begin
2968 pragma Assert (Is_Private_Type (Id));
2969 return Node22 (Id);
2970 end Private_View;
2971
2972 function Protected_Body_Subprogram (Id : E) return E is
2973 begin
2974 pragma Assert (Is_Subprogram (Id) or else Is_Entry (Id));
2975 return Node11 (Id);
2976 end Protected_Body_Subprogram;
2977
2978 function Protected_Formal (Id : E) return E is
2979 begin
2980 pragma Assert (Is_Formal (Id));
2981 return Node22 (Id);
2982 end Protected_Formal;
2983
21d27997 2984 function Protection_Object (Id : E) return E is
70482933 2985 begin
3428cb9f
AC
2986 pragma Assert
2987 (Ekind_In (Id, E_Entry, E_Entry_Family, E_Function, E_Procedure));
70482933 2988 return Node23 (Id);
21d27997 2989 end Protection_Object;
70482933
RK
2990
2991 function Reachable (Id : E) return B is
2992 begin
2993 return Flag49 (Id);
2994 end Reachable;
2995
2996 function Referenced (Id : E) return B is
2997 begin
2998 return Flag156 (Id);
2999 end Referenced;
3000
fbf5a39b
AC
3001 function Referenced_As_LHS (Id : E) return B is
3002 begin
3003 return Flag36 (Id);
3004 end Referenced_As_LHS;
3005
ce0bead3
HK
3006 function Referenced_As_Out_Parameter (Id : E) return B is
3007 begin
3008 return Flag227 (Id);
3009 end Referenced_As_Out_Parameter;
3010
ab8843fa
HK
3011 function Refinement_Constituents (Id : E) return L is
3012 begin
3013 pragma Assert (Ekind (Id) = E_Abstract_State);
3014 return Elist8 (Id);
3015 end Refinement_Constituents;
3016
70482933
RK
3017 function Register_Exception_Call (Id : E) return N is
3018 begin
3019 pragma Assert (Ekind (Id) = E_Exception);
3020 return Node20 (Id);
3021 end Register_Exception_Call;
3022
3023 function Related_Array_Object (Id : E) return E is
3024 begin
3025 pragma Assert (Is_Array_Type (Id));
6d9e03cb 3026 return Node25 (Id);
70482933
RK
3027 end Related_Array_Object;
3028
a4941eec
ES
3029 function Related_Expression (Id : E) return N is
3030 begin
5c52bf3b 3031 pragma Assert (Ekind (Id) in Type_Kind
cf49bd32 3032 or else Ekind_In (Id, E_Constant, E_Variable));
a4941eec
ES
3033 return Node24 (Id);
3034 end Related_Expression;
3035
70482933
RK
3036 function Related_Instance (Id : E) return E is
3037 begin
3428cb9f 3038 pragma Assert (Ekind_In (Id, E_Package, E_Package_Body));
70482933
RK
3039 return Node15 (Id);
3040 end Related_Instance;
3041
ce0bead3 3042 function Related_Type (Id : E) return E is
0a36105d 3043 begin
cefce34c
JM
3044 pragma Assert (Ekind_In (Id, E_Component, E_Constant, E_Variable));
3045 return Node27 (Id);
ce0bead3 3046 end Related_Type;
0a36105d 3047
21d27997
RD
3048 function Relative_Deadline_Variable (Id : E) return E is
3049 begin
3050 pragma Assert (Is_Task_Type (Id));
760804f3 3051 return Node28 (Implementation_Base_Type (Id));
21d27997
RD
3052 end Relative_Deadline_Variable;
3053
70482933
RK
3054 function Renamed_Entity (Id : E) return N is
3055 begin
3056 return Node18 (Id);
3057 end Renamed_Entity;
3058
ce0bead3
HK
3059 function Renamed_In_Spec (Id : E) return B is
3060 begin
3061 pragma Assert (Ekind (Id) = E_Package);
3062 return Flag231 (Id);
3063 end Renamed_In_Spec;
3064
70482933
RK
3065 function Renamed_Object (Id : E) return N is
3066 begin
3067 return Node18 (Id);
3068 end Renamed_Object;
3069
3070 function Renaming_Map (Id : E) return U is
3071 begin
3072 return Uint9 (Id);
3073 end Renaming_Map;
3074
f937473f
RD
3075 function Requires_Overriding (Id : E) return B is
3076 begin
3077 pragma Assert (Is_Overloadable (Id));
3078 return Flag213 (Id);
3079 end Requires_Overriding;
3080
70482933
RK
3081 function Return_Present (Id : E) return B is
3082 begin
3083 return Flag54 (Id);
3084 end Return_Present;
3085
6e443c90
RD
3086 function Return_Applies_To (Id : E) return N is
3087 begin
3088 return Node8 (Id);
3089 end Return_Applies_To;
3090
70482933
RK
3091 function Returns_By_Ref (Id : E) return B is
3092 begin
3093 return Flag90 (Id);
3094 end Returns_By_Ref;
3095
3096 function Reverse_Bit_Order (Id : E) return B is
3097 begin
3098 pragma Assert (Is_Record_Type (Id));
3099 return Flag164 (Base_Type (Id));
3100 end Reverse_Bit_Order;
3101
de94a7e7
AC
3102 function Reverse_Storage_Order (Id : E) return B is
3103 begin
a2c1791d 3104 pragma Assert (Is_Record_Type (Id) or else Is_Array_Type (Id));
de94a7e7
AC
3105 return Flag93 (Base_Type (Id));
3106 end Reverse_Storage_Order;
3107
2700b9c1
AC
3108 function Rewritten_For_C (Id : E) return B is
3109 begin
3110 pragma Assert (Ekind (Id) = E_Function);
3111 return Flag287 (Id);
3112 end Rewritten_For_C;
3113
70482933
RK
3114 function RM_Size (Id : E) return U is
3115 begin
3116 pragma Assert (Is_Type (Id));
3117 return Uint13 (Id);
3118 end RM_Size;
3119
3120 function Scalar_Range (Id : E) return N is
3121 begin
3122 return Node20 (Id);
3123 end Scalar_Range;
3124
3125 function Scale_Value (Id : E) return U is
3126 begin
760804f3 3127 return Uint16 (Id);
70482933
RK
3128 end Scale_Value;
3129
3130 function Scope_Depth_Value (Id : E) return U is
3131 begin
3132 return Uint22 (Id);
3133 end Scope_Depth_Value;
3134
3135 function Sec_Stack_Needed_For_Return (Id : E) return B is
3136 begin
3137 return Flag167 (Id);
3138 end Sec_Stack_Needed_For_Return;
3139
3140 function Shadow_Entities (Id : E) return S is
3141 begin
3428cb9f 3142 pragma Assert (Ekind_In (Id, E_Package, E_Generic_Package));
70482933
RK
3143 return List14 (Id);
3144 end Shadow_Entities;
3145
685094bf 3146 function Shared_Var_Procs_Instance (Id : E) return E is
70482933
RK
3147 begin
3148 pragma Assert (Ekind (Id) = E_Variable);
3149 return Node22 (Id);
685094bf 3150 end Shared_Var_Procs_Instance;
70482933
RK
3151
3152 function Size_Check_Code (Id : E) return N is
3153 begin
3428cb9f 3154 pragma Assert (Ekind_In (Id, E_Constant, E_Variable));
fbf5a39b 3155 return Node19 (Id);
70482933
RK
3156 end Size_Check_Code;
3157
3158 function Size_Depends_On_Discriminant (Id : E) return B is
3159 begin
3160 return Flag177 (Id);
3161 end Size_Depends_On_Discriminant;
3162
3163 function Size_Known_At_Compile_Time (Id : E) return B is
3164 begin
3165 return Flag92 (Id);
3166 end Size_Known_At_Compile_Time;
3167
3168 function Small_Value (Id : E) return R is
3169 begin
3170 pragma Assert (Is_Fixed_Point_Type (Id));
3171 return Ureal21 (Id);
3172 end Small_Value;
3173
579847c2
AC
3174 function SPARK_Aux_Pragma (Id : E) return N is
3175 begin
3176 pragma Assert
75b87c16
AC
3177 (Ekind_In (Id, E_Protected_Type, -- concurrent variants
3178 E_Task_Type)
877a5a12 3179 or else
75b87c16
AC
3180 Ekind_In (Id, E_Generic_Package, -- package variants
3181 E_Package,
3182 E_Package_Body));
877a5a12 3183 return Node41 (Id);
579847c2
AC
3184 end SPARK_Aux_Pragma;
3185
3186 function SPARK_Aux_Pragma_Inherited (Id : E) return B is
3187 begin
3188 pragma Assert
75b87c16
AC
3189 (Ekind_In (Id, E_Protected_Type, -- concurrent variants
3190 E_Task_Type)
877a5a12 3191 or else
75b87c16
AC
3192 Ekind_In (Id, E_Generic_Package, -- package variants
3193 E_Package,
3194 E_Package_Body));
579847c2
AC
3195 return Flag266 (Id);
3196 end SPARK_Aux_Pragma_Inherited;
3197
3198 function SPARK_Pragma (Id : E) return N is
1c6269d3
HK
3199 begin
3200 pragma Assert
75b87c16
AC
3201 (Ekind_In (Id, E_Protected_Body, -- concurrent variants
3202 E_Protected_Type,
3203 E_Task_Body,
3204 E_Task_Type)
3205 or else
3206 Ekind_In (Id, E_Entry, -- overloadable variants
877a5a12
AC
3207 E_Entry_Family,
3208 E_Function,
1c6269d3
HK
3209 E_Generic_Function,
3210 E_Generic_Procedure,
f99ff327 3211 E_Operator,
1c6269d3
HK
3212 E_Procedure,
3213 E_Subprogram_Body)
3214 or else
3215 Ekind_In (Id, E_Generic_Package, -- package variants
3216 E_Package,
877a5a12
AC
3217 E_Package_Body)
3218 or else
75b87c16 3219 Ekind (Id) = E_Variable); -- variable
877a5a12 3220 return Node40 (Id);
579847c2
AC
3221 end SPARK_Pragma;
3222
3223 function SPARK_Pragma_Inherited (Id : E) return B is
3224 begin
3225 pragma Assert
75b87c16
AC
3226 (Ekind_In (Id, E_Protected_Body, -- concurrent variants
3227 E_Protected_Type,
3228 E_Task_Body,
3229 E_Task_Type)
3230 or else
3231 Ekind_In (Id, E_Entry, -- overloadable variants
877a5a12
AC
3232 E_Entry_Family,
3233 E_Function,
579847c2
AC
3234 E_Generic_Function,
3235 E_Generic_Procedure,
f99ff327 3236 E_Operator,
579847c2
AC
3237 E_Procedure,
3238 E_Subprogram_Body)
3239 or else
3240 Ekind_In (Id, E_Generic_Package, -- package variants
3241 E_Package,
877a5a12
AC
3242 E_Package_Body)
3243 or else
75b87c16 3244 Ekind (Id) = E_Variable); -- variable
579847c2
AC
3245 return Flag265 (Id);
3246 end SPARK_Pragma_Inherited;
1c6269d3 3247
70482933
RK
3248 function Spec_Entity (Id : E) return E is
3249 begin
3428cb9f 3250 pragma Assert (Ekind (Id) = E_Package_Body or else Is_Formal (Id));
70482933
RK
3251 return Node19 (Id);
3252 end Spec_Entity;
3253
220d1fd9
AC
3254 function SSO_Set_High_By_Default (Id : E) return B is
3255 begin
3256 pragma Assert (Is_Record_Type (Id) or else Is_Array_Type (Id));
3257 return Flag273 (Base_Type (Id));
3258 end SSO_Set_High_By_Default;
3259
3260 function SSO_Set_Low_By_Default (Id : E) return B is
3261 begin
3262 pragma Assert (Is_Record_Type (Id) or else Is_Array_Type (Id));
3263 return Flag272 (Base_Type (Id));
3264 end SSO_Set_Low_By_Default;
3265
60f908dd 3266 function Static_Discrete_Predicate (Id : E) return S is
26df19ce
AC
3267 begin
3268 pragma Assert (Is_Discrete_Type (Id));
86200f66 3269 return List25 (Id);
60f908dd 3270 end Static_Discrete_Predicate;
26df19ce 3271
fc3a3f3b
RD
3272 function Static_Real_Or_String_Predicate (Id : E) return N is
3273 begin
3274 pragma Assert (Is_Real_Type (Id) or else Is_String_Type (Id));
3275 return Node25 (Id);
3276 end Static_Real_Or_String_Predicate;
3277
3cebd1c0
AC
3278 function Status_Flag_Or_Transient_Decl (Id : E) return N is
3279 begin
3280 pragma Assert (Ekind_In (Id, E_Constant, E_Variable));
3281 return Node15 (Id);
3282 end Status_Flag_Or_Transient_Decl;
3283
70482933
RK
3284 function Storage_Size_Variable (Id : E) return E is
3285 begin
3286 pragma Assert (Is_Access_Type (Id) or else Is_Task_Type (Id));
760804f3 3287 return Node26 (Implementation_Base_Type (Id));
70482933
RK
3288 end Storage_Size_Variable;
3289
0a36105d
JM
3290 function Static_Elaboration_Desired (Id : E) return B is
3291 begin
3292 pragma Assert (Ekind (Id) = E_Package);
3293 return Flag77 (Id);
3294 end Static_Elaboration_Desired;
3295
3296 function Static_Initialization (Id : E) return N is
3297 begin
3298 pragma Assert
3299 (Ekind (Id) = E_Procedure and then not Is_Dispatching_Operation (Id));
477cfc5b 3300 return Node30 (Id);
0a36105d
JM
3301 end Static_Initialization;
3302
fbf5a39b
AC
3303 function Stored_Constraint (Id : E) return L is
3304 begin
3305 pragma Assert
3306 (Is_Composite_Type (Id) and then not Is_Array_Type (Id));
3307 return Elist23 (Id);
3308 end Stored_Constraint;
3309
50ea6357
AC
3310 function Stores_Attribute_Old_Prefix (Id : E) return B is
3311 begin
3312 return Flag270 (Id);
3313 end Stores_Attribute_Old_Prefix;
3314
70482933
RK
3315 function Strict_Alignment (Id : E) return B is
3316 begin
3317 return Flag145 (Implementation_Base_Type (Id));
3318 end Strict_Alignment;
3319
3320 function String_Literal_Length (Id : E) return U is
3321 begin
3322 return Uint16 (Id);
3323 end String_Literal_Length;
3324
3325 function String_Literal_Low_Bound (Id : E) return N is
3326 begin
760804f3 3327 return Node18 (Id);
70482933
RK
3328 end String_Literal_Low_Bound;
3329
3ddfabe3 3330 function Subprograms_For_Type (Id : E) return L is
fd0ff1cf 3331 begin
3ddfabe3
AC
3332 pragma Assert (Is_Type (Id));
3333 return Elist29 (Id);
fd0ff1cf
RD
3334 end Subprograms_For_Type;
3335
3830827c
AC
3336 function Subps_Index (Id : E) return U is
3337 begin
3338 pragma Assert (Is_Subprogram (Id));
3339 return Uint24 (Id);
3340 end Subps_Index;
3341
70482933
RK
3342 function Suppress_Elaboration_Warnings (Id : E) return B is
3343 begin
3344 return Flag148 (Id);
3345 end Suppress_Elaboration_Warnings;
3346
5b1e6aca 3347 function Suppress_Initialization (Id : E) return B is
70482933 3348 begin
99425ec3 3349 pragma Assert (Is_Type (Id) or else Ekind (Id) = E_Variable);
5b1e6aca
RD
3350 return Flag105 (Id);
3351 end Suppress_Initialization;
70482933 3352
70482933
RK
3353 function Suppress_Style_Checks (Id : E) return B is
3354 begin
3355 return Flag165 (Id);
3356 end Suppress_Style_Checks;
3357
0a36105d
JM
3358 function Suppress_Value_Tracking_On_Call (Id : E) return B is
3359 begin
3360 return Flag217 (Id);
3361 end Suppress_Value_Tracking_On_Call;
3362
a9d8907c
JM
3363 function Task_Body_Procedure (Id : E) return N is
3364 begin
6e443c90
RD
3365 pragma Assert (Ekind (Id) in Task_Kind);
3366 return Node25 (Id);
a9d8907c
JM
3367 end Task_Body_Procedure;
3368
59fad002
AC
3369 function Thunk_Entity (Id : E) return E is
3370 begin
3371 pragma Assert (Ekind_In (Id, E_Function, E_Procedure)
3372 and then Is_Thunk (Id));
3373 return Node31 (Id);
3374 end Thunk_Entity;
3375
fbf5a39b 3376 function Treat_As_Volatile (Id : E) return B is
70482933
RK
3377 begin
3378 return Flag41 (Id);
fbf5a39b 3379 end Treat_As_Volatile;
70482933
RK
3380
3381 function Underlying_Full_View (Id : E) return E is
3382 begin
3383 pragma Assert (Ekind (Id) in Private_Kind);
3384 return Node19 (Id);
3385 end Underlying_Full_View;
3386
39f346aa
ES
3387 function Underlying_Record_View (Id : E) return E is
3388 begin
cf49bd32 3389 return Node28 (Id);
39f346aa
ES
3390 end Underlying_Record_View;
3391
0a36105d
JM
3392 function Universal_Aliasing (Id : E) return B is
3393 begin
3394 pragma Assert (Is_Type (Id));
b98e2969 3395 return Flag216 (Implementation_Base_Type (Id));
0a36105d
JM
3396 end Universal_Aliasing;
3397
70482933
RK
3398 function Unset_Reference (Id : E) return N is
3399 begin
3400 return Node16 (Id);
3401 end Unset_Reference;
3402
5d37ba92
ES
3403 function Used_As_Generic_Actual (Id : E) return B is
3404 begin
3405 return Flag222 (Id);
3406 end Used_As_Generic_Actual;
3407
88e7531b
AC
3408 function Uses_Lock_Free (Id : E) return B is
3409 begin
3410 pragma Assert (Is_Protected_Type (Id));
3411 return Flag188 (Id);
3412 end Uses_Lock_Free;
3413
70482933
RK
3414 function Uses_Sec_Stack (Id : E) return B is
3415 begin
3416 return Flag95 (Id);
3417 end Uses_Sec_Stack;
3418
70482933
RK
3419 function Warnings_Off (Id : E) return B is
3420 begin
3421 return Flag96 (Id);
3422 end Warnings_Off;
3423
0f282086
RD
3424 function Warnings_Off_Used (Id : E) return B is
3425 begin
3426 return Flag236 (Id);
3427 end Warnings_Off_Used;
3428
3429 function Warnings_Off_Used_Unmodified (Id : E) return B is
3430 begin
3431 return Flag237 (Id);
3432 end Warnings_Off_Used_Unmodified;
3433
3434 function Warnings_Off_Used_Unreferenced (Id : E) return B is
3435 begin
3436 return Flag238 (Id);
3437 end Warnings_Off_Used_Unreferenced;
3438
10b93b2e
HK
3439 function Wrapped_Entity (Id : E) return E is
3440 begin
3428cb9f
AC
3441 pragma Assert (Ekind_In (Id, E_Function, E_Procedure)
3442 and then Is_Primitive_Wrapper (Id));
10b93b2e
HK
3443 return Node27 (Id);
3444 end Wrapped_Entity;
3445
3446 function Was_Hidden (Id : E) return B is
3447 begin
3448 return Flag196 (Id);
3449 end Was_Hidden;
3450
70482933
RK
3451 ------------------------------
3452 -- Classification Functions --
3453 ------------------------------
3454
3455 function Is_Access_Type (Id : E) return B is
3456 begin
3457 return Ekind (Id) in Access_Kind;
3458 end Is_Access_Type;
3459
f937473f
RD
3460 function Is_Access_Protected_Subprogram_Type (Id : E) return B is
3461 begin
3462 return Ekind (Id) in Access_Protected_Kind;
3463 end Is_Access_Protected_Subprogram_Type;
3464
0f282086
RD
3465 function Is_Access_Subprogram_Type (Id : E) return B is
3466 begin
3467 return Ekind (Id) in Access_Subprogram_Kind;
3468 end Is_Access_Subprogram_Type;
3469
7a963087
RD
3470 function Is_Aggregate_Type (Id : E) return B is
3471 begin
3472 return Ekind (Id) in Aggregate_Kind;
3473 end Is_Aggregate_Type;
3474
70482933
RK
3475 function Is_Array_Type (Id : E) return B is
3476 begin
3477 return Ekind (Id) in Array_Kind;
3478 end Is_Array_Type;
3479
67ce0d7e
RD
3480 function Is_Assignable (Id : E) return B is
3481 begin
3482 return Ekind (Id) in Assignable_Kind;
3483 end Is_Assignable;
3484
70482933
RK
3485 function Is_Class_Wide_Type (Id : E) return B is
3486 begin
3487 return Ekind (Id) in Class_Wide_Kind;
3488 end Is_Class_Wide_Type;
3489
3490 function Is_Composite_Type (Id : E) return B is
3491 begin
3492 return Ekind (Id) in Composite_Kind;
3493 end Is_Composite_Type;
3494
3495 function Is_Concurrent_Body (Id : E) return B is
3496 begin
95fef24f 3497 return Ekind (Id) in Concurrent_Body_Kind;
70482933
RK
3498 end Is_Concurrent_Body;
3499
3500 function Is_Concurrent_Record_Type (Id : E) return B is
3501 begin
3502 return Flag20 (Id);
3503 end Is_Concurrent_Record_Type;
3504
3505 function Is_Concurrent_Type (Id : E) return B is
3506 begin
3507 return Ekind (Id) in Concurrent_Kind;
3508 end Is_Concurrent_Type;
3509
3510 function Is_Decimal_Fixed_Point_Type (Id : E) return B is
3511 begin
95fef24f 3512 return Ekind (Id) in Decimal_Fixed_Point_Kind;
70482933
RK
3513 end Is_Decimal_Fixed_Point_Type;
3514
3515 function Is_Digits_Type (Id : E) return B is
3516 begin
3517 return Ekind (Id) in Digits_Kind;
3518 end Is_Digits_Type;
3519
3520 function Is_Discrete_Or_Fixed_Point_Type (Id : E) return B is
3521 begin
3522 return Ekind (Id) in Discrete_Or_Fixed_Point_Kind;
3523 end Is_Discrete_Or_Fixed_Point_Type;
3524
3525 function Is_Discrete_Type (Id : E) return B is
3526 begin
3527 return Ekind (Id) in Discrete_Kind;
3528 end Is_Discrete_Type;
3529
3530 function Is_Elementary_Type (Id : E) return B is
3531 begin
3532 return Ekind (Id) in Elementary_Kind;
3533 end Is_Elementary_Type;
3534
3535 function Is_Entry (Id : E) return B is
3536 begin
3537 return Ekind (Id) in Entry_Kind;
3538 end Is_Entry;
3539
3540 function Is_Enumeration_Type (Id : E) return B is
3541 begin
95fef24f 3542 return Ekind (Id) in Enumeration_Kind;
70482933
RK
3543 end Is_Enumeration_Type;
3544
3545 function Is_Fixed_Point_Type (Id : E) return B is
3546 begin
95fef24f 3547 return Ekind (Id) in Fixed_Point_Kind;
70482933
RK
3548 end Is_Fixed_Point_Type;
3549
3550 function Is_Floating_Point_Type (Id : E) return B is
3551 begin
3552 return Ekind (Id) in Float_Kind;
3553 end Is_Floating_Point_Type;
3554
3555 function Is_Formal (Id : E) return B is
3556 begin
3557 return Ekind (Id) in Formal_Kind;
3558 end Is_Formal;
3559
6e443c90
RD
3560 function Is_Formal_Object (Id : E) return B is
3561 begin
3562 return Ekind (Id) in Formal_Object_Kind;
3563 end Is_Formal_Object;
3564
fbf5a39b
AC
3565 function Is_Generic_Subprogram (Id : E) return B is
3566 begin
3567 return Ekind (Id) in Generic_Subprogram_Kind;
3568 end Is_Generic_Subprogram;
3569
70482933
RK
3570 function Is_Generic_Unit (Id : E) return B is
3571 begin
3572 return Ekind (Id) in Generic_Unit_Kind;
3573 end Is_Generic_Unit;
3574
95fef24f
AC
3575 function Is_Ghost_Entity (Id : Entity_Id) return Boolean is
3576 begin
3577 return Is_Checked_Ghost_Entity (Id) or else Is_Ignored_Ghost_Entity (Id);
3578 end Is_Ghost_Entity;
3579
70482933
RK
3580 function Is_Incomplete_Or_Private_Type (Id : E) return B is
3581 begin
95fef24f 3582 return Ekind (Id) in Incomplete_Or_Private_Kind;
70482933
RK
3583 end Is_Incomplete_Or_Private_Type;
3584
6e443c90
RD
3585 function Is_Incomplete_Type (Id : E) return B is
3586 begin
95fef24f 3587 return Ekind (Id) in Incomplete_Kind;
6e443c90
RD
3588 end Is_Incomplete_Type;
3589
70482933
RK
3590 function Is_Integer_Type (Id : E) return B is
3591 begin
3592 return Ekind (Id) in Integer_Kind;
3593 end Is_Integer_Type;
3594
3595 function Is_Modular_Integer_Type (Id : E) return B is
3596 begin
95fef24f 3597 return Ekind (Id) in Modular_Integer_Kind;
70482933
RK
3598 end Is_Modular_Integer_Type;
3599
3600 function Is_Named_Number (Id : E) return B is
3601 begin
3602 return Ekind (Id) in Named_Kind;
3603 end Is_Named_Number;
3604
3605 function Is_Numeric_Type (Id : E) return B is
3606 begin
3607 return Ekind (Id) in Numeric_Kind;
3608 end Is_Numeric_Type;
3609
3610 function Is_Object (Id : E) return B is
3611 begin
3612 return Ekind (Id) in Object_Kind;
3613 end Is_Object;
3614
3615 function Is_Ordinary_Fixed_Point_Type (Id : E) return B is
3616 begin
95fef24f 3617 return Ekind (Id) in Ordinary_Fixed_Point_Kind;
70482933
RK
3618 end Is_Ordinary_Fixed_Point_Type;
3619
3620 function Is_Overloadable (Id : E) return B is
3621 begin
3622 return Ekind (Id) in Overloadable_Kind;
3623 end Is_Overloadable;
3624
3625 function Is_Private_Type (Id : E) return B is
3626 begin
3627 return Ekind (Id) in Private_Kind;
3628 end Is_Private_Type;
3629
3630 function Is_Protected_Type (Id : E) return B is
3631 begin
3632 return Ekind (Id) in Protected_Kind;
3633 end Is_Protected_Type;
3634
3635 function Is_Real_Type (Id : E) return B is
3636 begin
3637 return Ekind (Id) in Real_Kind;
3638 end Is_Real_Type;
3639
3640 function Is_Record_Type (Id : E) return B is
3641 begin
3642 return Ekind (Id) in Record_Kind;
3643 end Is_Record_Type;
3644
3645 function Is_Scalar_Type (Id : E) return B is
3646 begin
3647 return Ekind (Id) in Scalar_Kind;
3648 end Is_Scalar_Type;
3649
3650 function Is_Signed_Integer_Type (Id : E) return B is
3651 begin
3428cb9f 3652 return Ekind (Id) in Signed_Integer_Kind;
70482933
RK
3653 end Is_Signed_Integer_Type;
3654
3655 function Is_Subprogram (Id : E) return B is
3656 begin
3657 return Ekind (Id) in Subprogram_Kind;
3658 end Is_Subprogram;
3659
b9696ffb
AC
3660 function Is_Subprogram_Or_Generic_Subprogram (Id : E) return B is
3661 begin
3662 return Ekind (Id) in Subprogram_Kind
3663 or else
3664 Ekind (Id) in Generic_Subprogram_Kind;
3665 end Is_Subprogram_Or_Generic_Subprogram;
3666
70482933
RK
3667 function Is_Task_Type (Id : E) return B is
3668 begin
3669 return Ekind (Id) in Task_Kind;
3670 end Is_Task_Type;
3671
3672 function Is_Type (Id : E) return B is
3673 begin
3674 return Ekind (Id) in Type_Kind;
3675 end Is_Type;
3676
3677 ------------------------------
3678 -- Attribute Set Procedures --
3679 ------------------------------
3680
cf49bd32
TQ
3681 -- Note: in many of these set procedures an "obvious" assertion is missing.
3682 -- The reason for this is that in many cases, a field is set before the
3683 -- Ekind field is set, so that the field is set when Ekind = E_Void. It
3684 -- it is possible to add assertions that specifically include the E_Void
3685 -- possibility, but in some cases, we just omit the assertions.
3686
cf6956bb
AC
3687 procedure Set_Abstract_States (Id : E; V : L) is
3688 begin
f40f731b 3689 pragma Assert (Ekind_In (Id, E_Generic_Package, E_Package));
cf6956bb
AC
3690 Set_Elist25 (Id, V);
3691 end Set_Abstract_States;
3692
70482933
RK
3693 procedure Set_Accept_Address (Id : E; V : L) is
3694 begin
3695 Set_Elist21 (Id, V);
3696 end Set_Accept_Address;
3697
a9d8907c 3698 procedure Set_Access_Disp_Table (Id : E; V : L) is
70482933 3699 begin
38171f43
AC
3700 pragma Assert (Ekind (Id) = E_Record_Type
3701 and then Id = Implementation_Base_Type (Id));
3702 pragma Assert (V = No_Elist or else Is_Tagged_Type (Id));
a9d8907c 3703 Set_Elist16 (Id, V);
70482933
RK
3704 end Set_Access_Disp_Table;
3705
57ae790f
HK
3706 procedure Set_Anonymous_Master (Id : E; V : E) is
3707 begin
32b794c8
AC
3708 pragma Assert (Is_Type (Id));
3709 Set_Node35 (Id, V);
57ae790f
HK
3710 end Set_Anonymous_Master;
3711
75b87c16
AC
3712 procedure Set_Anonymous_Object (Id : E; V : E) is
3713 begin
3714 pragma Assert (Ekind_In (Id, E_Protected_Type, E_Task_Type));
3715 Set_Node30 (Id, V);
3716 end Set_Anonymous_Object;
3717
caf07df9
AC
3718 procedure Set_Associated_Entity (Id : E; V : E) is
3719 begin
3720 Set_Node37 (Id, V);
3721 end Set_Associated_Entity;
3722
70482933
RK
3723 procedure Set_Associated_Formal_Package (Id : E; V : E) is
3724 begin
3725 Set_Node12 (Id, V);
3726 end Set_Associated_Formal_Package;
3727
3728 procedure Set_Associated_Node_For_Itype (Id : E; V : E) is
3729 begin
3730 Set_Node8 (Id, V);
3731 end Set_Associated_Node_For_Itype;
3732
3733 procedure Set_Associated_Storage_Pool (Id : E; V : E) is
3734 begin
d347f572 3735 pragma Assert (Is_Access_Type (Id) and then Is_Base_Type (Id));
70482933
RK
3736 Set_Node22 (Id, V);
3737 end Set_Associated_Storage_Pool;
3738
3830827c
AC
3739 procedure Set_Activation_Record_Component (Id : E; V : E) is
3740 begin
3741 pragma Assert (Ekind_In (Id, E_Constant,
3742 E_In_Parameter,
3743 E_In_Out_Parameter,
3744 E_Loop_Parameter,
3745 E_Out_Parameter,
3746 E_Variable));
3747 Set_Node31 (Id, V);
3748 end Set_Activation_Record_Component;
3749
70482933
RK
3750 procedure Set_Actual_Subtype (Id : E; V : E) is
3751 begin
3752 pragma Assert
df3e68b1 3753 (Ekind_In (Id, E_Constant, E_Variable, E_Generic_In_Out_Parameter)
67ce0d7e 3754 or else Is_Formal (Id));
70482933
RK
3755 Set_Node17 (Id, V);
3756 end Set_Actual_Subtype;
3757
3758 procedure Set_Address_Taken (Id : E; V : B := True) is
3759 begin
3760 Set_Flag104 (Id, V);
3761 end Set_Address_Taken;
3762
3763 procedure Set_Alias (Id : E; V : E) is
3764 begin
3765 pragma Assert
3766 (Is_Overloadable (Id) or else Ekind (Id) = E_Subprogram_Type);
3767 Set_Node18 (Id, V);
3768 end Set_Alias;
3769
3770 procedure Set_Alignment (Id : E; V : U) is
3771 begin
fbf5a39b 3772 pragma Assert (Is_Type (Id)
df3e68b1
HK
3773 or else Is_Formal (Id)
3774 or else Ekind_In (Id, E_Loop_Parameter,
3775 E_Constant,
3776 E_Exception,
3777 E_Variable));
70482933
RK
3778 Set_Uint14 (Id, V);
3779 end Set_Alignment;
3780
3781 procedure Set_Barrier_Function (Id : E; V : N) is
3782 begin
3783 pragma Assert (Is_Entry (Id));
3784 Set_Node12 (Id, V);
3785 end Set_Barrier_Function;
3786
3787 procedure Set_Block_Node (Id : E; V : N) is
3788 begin
3789 pragma Assert (Ekind (Id) = E_Block);
3790 Set_Node11 (Id, V);
3791 end Set_Block_Node;
3792
3793 procedure Set_Body_Entity (Id : E; V : E) is
3794 begin
3428cb9f 3795 pragma Assert (Ekind_In (Id, E_Package, E_Generic_Package));
70482933
RK
3796 Set_Node19 (Id, V);
3797 end Set_Body_Entity;
3798
fbf5a39b
AC
3799 procedure Set_Body_Needed_For_SAL (Id : E; V : B := True) is
3800 begin
3801 pragma Assert
3802 (Ekind (Id) = E_Package
df3e68b1
HK
3803 or else Is_Subprogram (Id)
3804 or else Is_Generic_Unit (Id));
fbf5a39b
AC
3805 Set_Flag40 (Id, V);
3806 end Set_Body_Needed_For_SAL;
3807
8a7c0400
AC
3808 procedure Set_Body_References (Id : E; V : L) is
3809 begin
3810 pragma Assert (Ekind (Id) = E_Abstract_State);
3811 Set_Elist16 (Id, V);
3812 end Set_Body_References;
3813
8c7ff9a0
AC
3814 procedure Set_BIP_Initialization_Call (Id : E; V : N) is
3815 begin
3816 pragma Assert (Ekind_In (Id, E_Constant, E_Variable));
3817 Set_Node29 (Id, V);
3818 end Set_BIP_Initialization_Call;
3819
70482933
RK
3820 procedure Set_C_Pass_By_Copy (Id : E; V : B := True) is
3821 begin
d347f572 3822 pragma Assert (Is_Record_Type (Id) and then Is_Base_Type (Id));
70482933
RK
3823 Set_Flag125 (Id, V);
3824 end Set_C_Pass_By_Copy;
3825
fbf5a39b
AC
3826 procedure Set_Can_Never_Be_Null (Id : E; V : B := True) is
3827 begin
3828 Set_Flag38 (Id, V);
3829 end Set_Can_Never_Be_Null;
3830
4bd4bb7f
AC
3831 procedure Set_Can_Use_Internal_Rep (Id : E; V : B := True) is
3832 begin
3833 pragma Assert
3834 (Is_Access_Subprogram_Type (Id) and then Is_Base_Type (Id));
3835 Set_Flag229 (Id, V);
3836 end Set_Can_Use_Internal_Rep;
3837
fbf5a39b
AC
3838 procedure Set_Checks_May_Be_Suppressed (Id : E; V : B := True) is
3839 begin
3840 Set_Flag31 (Id, V);
3841 end Set_Checks_May_Be_Suppressed;
3842
635ffc52
AC
3843 procedure Set_Class_Wide_Preconds (Id : E; V : S) is
3844 begin
3845 pragma Assert (Is_Subprogram (Id));
3846 Set_List38 (Id, V);
3847 end Set_Class_Wide_Preconds;
3848
3849 procedure Set_Class_Wide_Postconds (Id : E; V : S) is
3850 begin
3851 pragma Assert (Is_Subprogram (Id));
3852 Set_List39 (Id, V);
3853 end Set_Class_Wide_Postconds;
3854
70482933
RK
3855 procedure Set_Class_Wide_Type (Id : E; V : E) is
3856 begin
3857 pragma Assert (Is_Type (Id));
3858 Set_Node9 (Id, V);
3859 end Set_Class_Wide_Type;
3860
3861 procedure Set_Cloned_Subtype (Id : E; V : E) is
3862 begin
3428cb9f 3863 pragma Assert (Ekind_In (Id, E_Record_Subtype, E_Class_Wide_Subtype));
70482933
RK
3864 Set_Node16 (Id, V);
3865 end Set_Cloned_Subtype;
3866
3867 procedure Set_Component_Bit_Offset (Id : E; V : U) is
3868 begin
3428cb9f 3869 pragma Assert (Ekind_In (Id, E_Component, E_Discriminant));
70482933
RK
3870 Set_Uint11 (Id, V);
3871 end Set_Component_Bit_Offset;
3872
3873 procedure Set_Component_Clause (Id : E; V : N) is
3874 begin
3428cb9f 3875 pragma Assert (Ekind_In (Id, E_Component, E_Discriminant));
70482933
RK
3876 Set_Node13 (Id, V);
3877 end Set_Component_Clause;
3878
3879 procedure Set_Component_Size (Id : E; V : U) is
3880 begin
d347f572 3881 pragma Assert (Is_Array_Type (Id) and then Is_Base_Type (Id));
07fc65c4 3882 Set_Uint22 (Id, V);
70482933
RK
3883 end Set_Component_Size;
3884
3885 procedure Set_Component_Type (Id : E; V : E) is
3886 begin
d347f572 3887 pragma Assert (Is_Array_Type (Id) and then Is_Base_Type (Id));
70482933
RK
3888 Set_Node20 (Id, V);
3889 end Set_Component_Type;
3890
8636f52f
HK
3891 procedure Set_Contains_Ignored_Ghost_Code (Id : E; V : B := True) is
3892 begin
3893 pragma Assert
3894 (Ekind_In (Id, E_Block,
3895 E_Function,
3896 E_Generic_Function,
3897 E_Generic_Package,
3898 E_Generic_Procedure,
3899 E_Package,
3900 E_Package_Body,
3901 E_Procedure,
3902 E_Subprogram_Body));
3903 Set_Flag279 (Id, V);
3904 end Set_Contains_Ignored_Ghost_Code;
3905
4bd4bb7f
AC
3906 procedure Set_Contract (Id : E; V : N) is
3907 begin
3908 pragma Assert
75b87c16
AC
3909 (Ekind_In (Id, E_Protected_Type, -- concurrent variants
3910 E_Task_Body,
3911 E_Task_Type)
3912 or else
3913 Ekind_In (Id, E_Constant, -- object variants
f99ff327
AC
3914 E_Variable)
3915 or else
3916 Ekind_In (Id, E_Entry, -- overloadable variants
caf07df9 3917 E_Entry_Family,
f99ff327
AC
3918 E_Function,
3919 E_Generic_Function,
3920 E_Generic_Procedure,
3921 E_Operator,
3922 E_Procedure,
3923 E_Subprogram_Body)
3924 or else
3925 Ekind_In (Id, E_Generic_Package, -- package variants
caf07df9 3926 E_Package,
f99ff327
AC
3927 E_Package_Body)
3928 or else
75b87c16 3929 Ekind (Id) = E_Void); -- special purpose
4bd4bb7f
AC
3930 Set_Node34 (Id, V);
3931 end Set_Contract;
3932
8a0183fd
HK
3933 procedure Set_Contract_Wrapper (Id : E; V : E) is
3934 begin
3935 pragma Assert (Ekind_In (Id, E_Entry, E_Entry_Family));
3936 Set_Node25 (Id, V);
3937 end Set_Contract_Wrapper;
3938
70482933
RK
3939 procedure Set_Corresponding_Concurrent_Type (Id : E; V : E) is
3940 begin
3941 pragma Assert
3942 (Ekind (Id) = E_Record_Type and then Is_Concurrent_Type (V));
3943 Set_Node18 (Id, V);
3944 end Set_Corresponding_Concurrent_Type;
3945
3946 procedure Set_Corresponding_Discriminant (Id : E; V : E) is
3947 begin
3948 pragma Assert (Ekind (Id) = E_Discriminant);
3949 Set_Node19 (Id, V);
3950 end Set_Corresponding_Discriminant;
3951
3952 procedure Set_Corresponding_Equality (Id : E; V : E) is
3953 begin
3954 pragma Assert
3955 (Ekind (Id) = E_Function
3956 and then not Comes_From_Source (Id)
3957 and then Chars (Id) = Name_Op_Ne);
477cfc5b 3958 Set_Node30 (Id, V);
70482933
RK
3959 end Set_Corresponding_Equality;
3960
888be6b1
AC
3961 procedure Set_Corresponding_Function (Id : E; V : E) is
3962 begin
a6ac7311 3963 pragma Assert (Ekind (Id) = E_Procedure and then Rewritten_For_C (V));
888be6b1
AC
3964 Set_Node32 (Id, V);
3965 end Set_Corresponding_Function;
3966
3967 procedure Set_Corresponding_Procedure (Id : E; V : E) is
3968 begin
a6ac7311 3969 pragma Assert (Ekind (Id) = E_Function and then Rewritten_For_C (Id));
888be6b1
AC
3970 Set_Node32 (Id, V);
3971 end Set_Corresponding_Procedure;
3972
5042f726
AC
3973 procedure Set_Corresponding_Protected_Entry (Id : E; V : E) is
3974 begin
2bc58d4d 3975 pragma Assert (Ekind_In (Id, E_Void, E_Subprogram_Body));
5042f726
AC
3976 Set_Node18 (Id, V);
3977 end Set_Corresponding_Protected_Entry;
3978
70482933
RK
3979 procedure Set_Corresponding_Record_Type (Id : E; V : E) is
3980 begin
3981 pragma Assert (Is_Concurrent_Type (Id));
3982 Set_Node18 (Id, V);
3983 end Set_Corresponding_Record_Type;
3984
3985 procedure Set_Corresponding_Remote_Type (Id : E; V : E) is
3986 begin
3987 Set_Node22 (Id, V);
3988 end Set_Corresponding_Remote_Type;
3989
f4d379b8
HK
3990 procedure Set_Current_Use_Clause (Id : E; V : E) is
3991 begin
21d27997
RD
3992 pragma Assert (Ekind (Id) = E_Package or else Is_Type (Id));
3993 Set_Node27 (Id, V);
f4d379b8
HK
3994 end Set_Current_Use_Clause;
3995
3996 procedure Set_Current_Value (Id : E; V : N) is
fbf5a39b
AC
3997 begin
3998 pragma Assert (Ekind (Id) in Object_Kind or else Ekind (Id) = E_Void);
3999 Set_Node9 (Id, V);
4000 end Set_Current_Value;
4001
70482933
RK
4002 procedure Set_CR_Discriminant (Id : E; V : E) is
4003 begin
4004 Set_Node23 (Id, V);
4005 end Set_CR_Discriminant;
4006
4007 procedure Set_Debug_Info_Off (Id : E; V : B := True) is
4008 begin
4009 Set_Flag166 (Id, V);
4010 end Set_Debug_Info_Off;
4011
4012 procedure Set_Debug_Renaming_Link (Id : E; V : E) is
4013 begin
4c8e94ab 4014 Set_Node25 (Id, V);
70482933
RK
4015 end Set_Debug_Renaming_Link;
4016
6d9e03cb
AC
4017 procedure Set_Default_Aspect_Component_Value (Id : E; V : E) is
4018 begin
688a9b51 4019 pragma Assert (Is_Array_Type (Id) and then Is_Base_Type (Id));
6d9e03cb
AC
4020 Set_Node19 (Id, V);
4021 end Set_Default_Aspect_Component_Value;
4022
37da997b
RD
4023 procedure Set_Default_Aspect_Value (Id : E; V : E) is
4024 begin
688a9b51 4025 pragma Assert (Is_Scalar_Type (Id) and then Is_Base_Type (Id));
37da997b
RD
4026 Set_Node19 (Id, V);
4027 end Set_Default_Aspect_Value;
4028
70482933
RK
4029 procedure Set_Default_Expr_Function (Id : E; V : E) is
4030 begin
4031 pragma Assert (Is_Formal (Id));
4032 Set_Node21 (Id, V);
4033 end Set_Default_Expr_Function;
4034
4035 procedure Set_Default_Expressions_Processed (Id : E; V : B := True) is
4036 begin
4037 Set_Flag108 (Id, V);
4038 end Set_Default_Expressions_Processed;
4039
4040 procedure Set_Default_Value (Id : E; V : N) is
4041 begin
4042 pragma Assert (Is_Formal (Id));
4043 Set_Node20 (Id, V);
4044 end Set_Default_Value;
4045
4046 procedure Set_Delay_Cleanups (Id : E; V : B := True) is
4047 begin
4048 pragma Assert
4049 (Is_Subprogram (Id)
4050 or else Is_Task_Type (Id)
4051 or else Ekind (Id) = E_Block);
4052 Set_Flag114 (Id, V);
4053 end Set_Delay_Cleanups;
4054
4055 procedure Set_Delay_Subprogram_Descriptors (Id : E; V : B := True) is
4056 begin
4057 pragma Assert
3428cb9f 4058 (Is_Subprogram (Id) or else Ekind_In (Id, E_Package, E_Package_Body));
df3e68b1 4059
70482933
RK
4060 Set_Flag50 (Id, V);
4061 end Set_Delay_Subprogram_Descriptors;
4062
4063 procedure Set_Delta_Value (Id : E; V : R) is
4064 begin
4065 pragma Assert (Is_Fixed_Point_Type (Id));
4066 Set_Ureal18 (Id, V);
4067 end Set_Delta_Value;
4068
4069 procedure Set_Dependent_Instances (Id : E; V : L) is
4070 begin
4071 pragma Assert (Is_Generic_Instance (Id));
4072 Set_Elist8 (Id, V);
4073 end Set_Dependent_Instances;
4074
4075 procedure Set_Depends_On_Private (Id : E; V : B := True) is
4076 begin
4077 pragma Assert (Nkind (Id) in N_Entity);
4078 Set_Flag14 (Id, V);
4079 end Set_Depends_On_Private;
4080
ab01e614
AC
4081 procedure Set_Derived_Type_Link (Id : E; V : E) is
4082 begin
4083 pragma Assert (Is_Type (Id) and then Is_Base_Type (Id));
4084 Set_Node31 (Id, V);
4085 end Set_Derived_Type_Link;
4086
70482933
RK
4087 procedure Set_Digits_Value (Id : E; V : U) is
4088 begin
4089 pragma Assert
4090 (Is_Floating_Point_Type (Id)
4091 or else Is_Decimal_Fixed_Point_Type (Id));
4092 Set_Uint17 (Id, V);
4093 end Set_Digits_Value;
4094
4095 procedure Set_Directly_Designated_Type (Id : E; V : E) is
4096 begin
4097 Set_Node20 (Id, V);
4098 end Set_Directly_Designated_Type;
4099
c8593453
AC
4100 procedure Set_Disable_Controlled (Id : E; V : B := True) is
4101 begin
4102 pragma Assert (Is_Type (Id) and then Is_Base_Type (Id));
4103 Set_Flag253 (Id, V);
4104 end Set_Disable_Controlled;
4105
70482933
RK
4106 procedure Set_Discard_Names (Id : E; V : B := True) is
4107 begin
4108 Set_Flag88 (Id, V);
4109 end Set_Discard_Names;
4110
4111 procedure Set_Discriminal (Id : E; V : E) is
4112 begin
4113 pragma Assert (Ekind (Id) = E_Discriminant);
4114 Set_Node17 (Id, V);
4115 end Set_Discriminal;
4116
4117 procedure Set_Discriminal_Link (Id : E; V : E) is
4118 begin
4119 Set_Node10 (Id, V);
4120 end Set_Discriminal_Link;
4121
4122 procedure Set_Discriminant_Checking_Func (Id : E; V : E) is
4123 begin
fbf5a39b 4124 pragma Assert (Ekind (Id) = E_Component);
70482933
RK
4125 Set_Node20 (Id, V);
4126 end Set_Discriminant_Checking_Func;
4127
4128 procedure Set_Discriminant_Constraint (Id : E; V : L) is
4129 begin
4130 pragma Assert (Nkind (Id) in N_Entity);
4131 Set_Elist21 (Id, V);
4132 end Set_Discriminant_Constraint;
4133
4134 procedure Set_Discriminant_Default_Value (Id : E; V : N) is
4135 begin
4136 Set_Node20 (Id, V);
4137 end Set_Discriminant_Default_Value;
4138
4139 procedure Set_Discriminant_Number (Id : E; V : U) is
4140 begin
4141 Set_Uint15 (Id, V);
4142 end Set_Discriminant_Number;
4143
b16d9747 4144 procedure Set_Dispatch_Table_Wrappers (Id : E; V : L) is
e18d6a15 4145 begin
38171f43
AC
4146 pragma Assert (Ekind (Id) = E_Record_Type
4147 and then Id = Implementation_Base_Type (Id));
4148 pragma Assert (V = No_Elist or else Is_Tagged_Type (Id));
b16d9747
JM
4149 Set_Elist26 (Id, V);
4150 end Set_Dispatch_Table_Wrappers;
e18d6a15 4151
70482933
RK
4152 procedure Set_DT_Entry_Count (Id : E; V : U) is
4153 begin
4154 pragma Assert (Ekind (Id) = E_Component);
4155 Set_Uint15 (Id, V);
4156 end Set_DT_Entry_Count;
4157
ba673907
JM
4158 procedure Set_DT_Offset_To_Top_Func (Id : E; V : E) is
4159 begin
4160 pragma Assert (Ekind (Id) = E_Component and then Is_Tag (Id));
6e443c90 4161 Set_Node25 (Id, V);
ba673907
JM
4162 end Set_DT_Offset_To_Top_Func;
4163
70482933
RK
4164 procedure Set_DT_Position (Id : E; V : U) is
4165 begin
3428cb9f 4166 pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
70482933
RK
4167 Set_Uint15 (Id, V);
4168 end Set_DT_Position;
4169
4170 procedure Set_DTC_Entity (Id : E; V : E) is
4171 begin
3428cb9f 4172 pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
70482933
RK
4173 Set_Node16 (Id, V);
4174 end Set_DTC_Entity;
4175
6e443c90
RD
4176 procedure Set_Elaborate_Body_Desirable (Id : E; V : B := True) is
4177 begin
4178 pragma Assert (Ekind (Id) = E_Package);
4179 Set_Flag210 (Id, V);
4180 end Set_Elaborate_Body_Desirable;
4181
70482933
RK
4182 procedure Set_Elaboration_Entity (Id : E; V : E) is
4183 begin
4184 pragma Assert
4185 (Is_Subprogram (Id)
4186 or else
4187 Ekind (Id) = E_Package
4188 or else
4189 Is_Generic_Unit (Id));
4190 Set_Node13 (Id, V);
4191 end Set_Elaboration_Entity;
4192
4193 procedure Set_Elaboration_Entity_Required (Id : E; V : B := True) is
4194 begin
4195 pragma Assert
4196 (Is_Subprogram (Id)
4197 or else
4198 Ekind (Id) = E_Package
4199 or else
4200 Is_Generic_Unit (Id));
4201 Set_Flag174 (Id, V);
4202 end Set_Elaboration_Entity_Required;
4203
d7af5ea5
HK
4204 procedure Set_Encapsulating_State (Id : E; V : E) is
4205 begin
caf07df9
AC
4206 pragma Assert (Ekind_In (Id, E_Abstract_State, E_Constant, E_Variable));
4207 Set_Node32 (Id, V);
d7af5ea5
HK
4208 end Set_Encapsulating_State;
4209
70482933
RK
4210 procedure Set_Enclosing_Scope (Id : E; V : E) is
4211 begin
4212 Set_Node18 (Id, V);
4213 end Set_Enclosing_Scope;
4214
4215 procedure Set_Entry_Accepted (Id : E; V : B := True) is
4216 begin
4217 pragma Assert (Is_Entry (Id));
4218 Set_Flag152 (Id, V);
4219 end Set_Entry_Accepted;
4220
4221 procedure Set_Entry_Bodies_Array (Id : E; V : E) is
4222 begin
760804f3 4223 Set_Node19 (Id, V);
70482933
RK
4224 end Set_Entry_Bodies_Array;
4225
4226 procedure Set_Entry_Cancel_Parameter (Id : E; V : E) is
4227 begin
4228 Set_Node23 (Id, V);
4229 end Set_Entry_Cancel_Parameter;
4230
4231 procedure Set_Entry_Component (Id : E; V : E) is
4232 begin
4233 Set_Node11 (Id, V);
4234 end Set_Entry_Component;
4235
4236 procedure Set_Entry_Formal (Id : E; V : E) is
4237 begin
4238 Set_Node16 (Id, V);
4239 end Set_Entry_Formal;
4240
4241 procedure Set_Entry_Index_Constant (Id : E; V : E) is
4242 begin
4243 pragma Assert (Ekind (Id) = E_Entry_Index_Parameter);
4244 Set_Node18 (Id, V);
4245 end Set_Entry_Index_Constant;
4246
4247 procedure Set_Entry_Parameters_Type (Id : E; V : E) is
4248 begin
4249 Set_Node15 (Id, V);
4250 end Set_Entry_Parameters_Type;
4251
4252 procedure Set_Enum_Pos_To_Rep (Id : E; V : E) is
4253 begin
4254 pragma Assert (Ekind (Id) = E_Enumeration_Type);
4255 Set_Node23 (Id, V);
4256 end Set_Enum_Pos_To_Rep;
4257
4258 procedure Set_Enumeration_Pos (Id : E; V : U) is
4259 begin
4260 pragma Assert (Ekind (Id) = E_Enumeration_Literal);
4261 Set_Uint11 (Id, V);
4262 end Set_Enumeration_Pos;
4263
4264 procedure Set_Enumeration_Rep (Id : E; V : U) is
4265 begin
4266 pragma Assert (Ekind (Id) = E_Enumeration_Literal);
4267 Set_Uint12 (Id, V);
4268 end Set_Enumeration_Rep;
4269
4270 procedure Set_Enumeration_Rep_Expr (Id : E; V : N) is
4271 begin
4272 pragma Assert (Ekind (Id) = E_Enumeration_Literal);
4273 Set_Node22 (Id, V);
4274 end Set_Enumeration_Rep_Expr;
4275
4276 procedure Set_Equivalent_Type (Id : E; V : E) is
4277 begin
4278 pragma Assert
3428cb9f
AC
4279 (Ekind_In (Id, E_Class_Wide_Type,
4280 E_Class_Wide_Subtype,
4281 E_Access_Protected_Subprogram_Type,
4282 E_Anonymous_Access_Protected_Subprogram_Type,
4283 E_Access_Subprogram_Type,
4284 E_Exception_Type));
70482933
RK
4285 Set_Node18 (Id, V);
4286 end Set_Equivalent_Type;
4287
4288 procedure Set_Esize (Id : E; V : U) is
4289 begin
4290 Set_Uint12 (Id, V);
4291 end Set_Esize;
4292
70482933
RK
4293 procedure Set_Extra_Accessibility (Id : E; V : E) is
4294 begin
d15f9422
AC
4295 pragma Assert
4296 (Is_Formal (Id) or else Ekind_In (Id, E_Variable, E_Constant));
70482933
RK
4297 Set_Node13 (Id, V);
4298 end Set_Extra_Accessibility;
4299
63585f75
SB
4300 procedure Set_Extra_Accessibility_Of_Result (Id : E; V : E) is
4301 begin
4302 pragma Assert (Ekind_In (Id, E_Function, E_Operator, E_Subprogram_Type));
4303 Set_Node19 (Id, V);
4304 end Set_Extra_Accessibility_Of_Result;
4305
70482933
RK
4306 procedure Set_Extra_Constrained (Id : E; V : E) is
4307 begin
4308 pragma Assert (Is_Formal (Id) or else Ekind (Id) = E_Variable);
4309 Set_Node23 (Id, V);
4310 end Set_Extra_Constrained;
4311
4312 procedure Set_Extra_Formal (Id : E; V : E) is
4313 begin
4314 Set_Node15 (Id, V);
4315 end Set_Extra_Formal;
4316
6e443c90
RD
4317 procedure Set_Extra_Formals (Id : E; V : E) is
4318 begin
4319 pragma Assert
4320 (Is_Overloadable (Id)
df3e68b1
HK
4321 or else Ekind_In (Id, E_Entry_Family,
4322 E_Subprogram_Body,
4323 E_Subprogram_Type));
6e443c90
RD
4324 Set_Node28 (Id, V);
4325 end Set_Extra_Formals;
4326
d3f70b35
AC
4327 procedure Set_Finalization_Master (Id : E; V : E) is
4328 begin
4329 pragma Assert (Is_Access_Type (Id) and then Is_Base_Type (Id));
4330 Set_Node23 (Id, V);
4331 end Set_Finalization_Master;
4332
70482933
RK
4333 procedure Set_Finalize_Storage_Only (Id : E; V : B := True) is
4334 begin
d347f572 4335 pragma Assert (Is_Type (Id) and then Is_Base_Type (Id));
07fc65c4 4336 Set_Flag158 (Id, V);
70482933
RK
4337 end Set_Finalize_Storage_Only;
4338
df3e68b1
HK
4339 procedure Set_Finalizer (Id : E; V : E) is
4340 begin
54e28df2
HK
4341 pragma Assert (Ekind_In (Id, E_Package, E_Package_Body));
4342 Set_Node28 (Id, V);
df3e68b1
HK
4343 end Set_Finalizer;
4344
70482933
RK
4345 procedure Set_First_Entity (Id : E; V : E) is
4346 begin
4347 Set_Node17 (Id, V);
4348 end Set_First_Entity;
4349
51bf9bdf
AC
4350 procedure Set_First_Exit_Statement (Id : E; V : N) is
4351 begin
4352 pragma Assert (Ekind (Id) = E_Loop);
4353 Set_Node8 (Id, V);
4354 end Set_First_Exit_Statement;
4355
70482933
RK
4356 procedure Set_First_Index (Id : E; V : N) is
4357 begin
a7b37927 4358 pragma Assert (Is_Array_Type (Id));
70482933
RK
4359 Set_Node17 (Id, V);
4360 end Set_First_Index;
4361
4362 procedure Set_First_Literal (Id : E; V : E) is
4363 begin
f937473f 4364 pragma Assert (Is_Enumeration_Type (Id));
70482933
RK
4365 Set_Node17 (Id, V);
4366 end Set_First_Literal;
4367
70482933
RK
4368 procedure Set_First_Private_Entity (Id : E; V : E) is
4369 begin
3428cb9f 4370 pragma Assert (Ekind_In (Id, E_Package, E_Generic_Package)
df3e68b1 4371 or else Ekind (Id) in Concurrent_Kind);
70482933
RK
4372 Set_Node16 (Id, V);
4373 end Set_First_Private_Entity;
4374
4375 procedure Set_First_Rep_Item (Id : E; V : N) is
4376 begin
4377 Set_Node6 (Id, V);
4378 end Set_First_Rep_Item;
4379
23c799b1
GB
4380 procedure Set_Float_Rep (Id : E; V : F) is
4381 pragma Assert (Ekind (Id) = E_Floating_Point_Type);
4382 begin
4383 Set_Uint10 (Id, UI_From_Int (F'Pos (V)));
4384 end Set_Float_Rep;
4385
70482933
RK
4386 procedure Set_Freeze_Node (Id : E; V : N) is
4387 begin
4388 Set_Node7 (Id, V);
4389 end Set_Freeze_Node;
4390
7b56a91b 4391 procedure Set_From_Limited_With (Id : E; V : B := True) is
70482933 4392 begin
dc726757
HK
4393 pragma Assert
4394 (Is_Type (Id) or else Ekind_In (Id, E_Abstract_State, E_Package));
70482933 4395 Set_Flag159 (Id, V);
7b56a91b 4396 end Set_From_Limited_With;
70482933
RK
4397
4398 procedure Set_Full_View (Id : E; V : E) is
4399 begin
4400 pragma Assert (Is_Type (Id) or else Ekind (Id) = E_Constant);
4401 Set_Node11 (Id, V);
4402 end Set_Full_View;
4403
fbf5a39b 4404 procedure Set_Generic_Homonym (Id : E; V : E) is
70482933 4405 begin
fbf5a39b
AC
4406 Set_Node11 (Id, V);
4407 end Set_Generic_Homonym;
70482933 4408
fbf5a39b 4409 procedure Set_Generic_Renamings (Id : E; V : L) is
70482933 4410 begin
70482933 4411 Set_Elist23 (Id, V);
fbf5a39b 4412 end Set_Generic_Renamings;
70482933
RK
4413
4414 procedure Set_Handler_Records (Id : E; V : S) is
4415 begin
4416 Set_List10 (Id, V);
4417 end Set_Handler_Records;
4418
4419 procedure Set_Has_Aliased_Components (Id : E; V : B := True) is
4420 begin
21d27997 4421 pragma Assert (Id = Base_Type (Id));
70482933
RK
4422 Set_Flag135 (Id, V);
4423 end Set_Has_Aliased_Components;
4424
4425 procedure Set_Has_Alignment_Clause (Id : E; V : B := True) is
4426 begin
4427 Set_Flag46 (Id, V);
4428 end Set_Has_Alignment_Clause;
4429
4430 procedure Set_Has_All_Calls_Remote (Id : E; V : B := True) is
4431 begin
4432 Set_Flag79 (Id, V);
4433 end Set_Has_All_Calls_Remote;
4434
4435 procedure Set_Has_Atomic_Components (Id : E; V : B := True) is
4436 begin
d347f572 4437 pragma Assert (not Is_Type (Id) or else Is_Base_Type (Id));
70482933
RK
4438 Set_Flag86 (Id, V);
4439 end Set_Has_Atomic_Components;
4440
4441 procedure Set_Has_Biased_Representation (Id : E; V : B := True) is
4442 begin
4443 pragma Assert
21d27997 4444 ((V = False) or else (Is_Discrete_Type (Id) or else Is_Object (Id)));
70482933
RK
4445 Set_Flag139 (Id, V);
4446 end Set_Has_Biased_Representation;
4447
4448 procedure Set_Has_Completion (Id : E; V : B := True) is
4449 begin
4450 Set_Flag26 (Id, V);
4451 end Set_Has_Completion;
4452
4453 procedure Set_Has_Completion_In_Body (Id : E; V : B := True) is
4454 begin
6e443c90 4455 pragma Assert (Is_Type (Id));
70482933
RK
4456 Set_Flag71 (Id, V);
4457 end Set_Has_Completion_In_Body;
4458
4459 procedure Set_Has_Complex_Representation (Id : E; V : B := True) is
4460 begin
07fc65c4
GB
4461 pragma Assert (Ekind (Id) = E_Record_Type);
4462 Set_Flag140 (Id, V);
70482933
RK
4463 end Set_Has_Complex_Representation;
4464
4465 procedure Set_Has_Component_Size_Clause (Id : E; V : B := True) is
4466 begin
07fc65c4
GB
4467 pragma Assert (Ekind (Id) = E_Array_Type);
4468 Set_Flag68 (Id, V);
70482933
RK
4469 end Set_Has_Component_Size_Clause;
4470
edd63e9b
ES
4471 procedure Set_Has_Constrained_Partial_View (Id : E; V : B := True) is
4472 begin
4473 pragma Assert (Is_Type (Id));
4474 Set_Flag187 (Id, V);
4475 end Set_Has_Constrained_Partial_View;
4476
fbf5a39b
AC
4477 procedure Set_Has_Contiguous_Rep (Id : E; V : B := True) is
4478 begin
4479 Set_Flag181 (Id, V);
4480 end Set_Has_Contiguous_Rep;
4481
70482933
RK
4482 procedure Set_Has_Controlled_Component (Id : E; V : B := True) is
4483 begin
21d27997 4484 pragma Assert (Id = Base_Type (Id));
70482933
RK
4485 Set_Flag43 (Id, V);
4486 end Set_Has_Controlled_Component;
4487
4488 procedure Set_Has_Controlling_Result (Id : E; V : B := True) is
4489 begin
4490 Set_Flag98 (Id, V);
4491 end Set_Has_Controlling_Result;
4492
4493 procedure Set_Has_Convention_Pragma (Id : E; V : B := True) is
4494 begin
4495 Set_Flag119 (Id, V);
4496 end Set_Has_Convention_Pragma;
4497
a01b9df6 4498 procedure Set_Has_Default_Aspect (Id : E; V : B := True) is
19fb051c 4499 begin
a01b9df6
AC
4500 pragma Assert
4501 ((Is_Scalar_Type (Id) or else Is_Array_Type (Id))
4502 and then Is_Base_Type (Id));
19fb051c 4503 Set_Flag39 (Id, V);
a01b9df6 4504 end Set_Has_Default_Aspect;
19fb051c 4505
e477d718
AC
4506 procedure Set_Has_Default_Init_Cond (Id : E; V : B := True) is
4507 begin
4508 pragma Assert (Is_Type (Id));
caef4e57 4509 Set_Flag3 (Base_Type (Id), V);
e477d718
AC
4510 end Set_Has_Default_Init_Cond;
4511
c159409f
AC
4512 procedure Set_Has_Delayed_Aspects (Id : E; V : B := True) is
4513 begin
4514 pragma Assert (Nkind (Id) in N_Entity);
4515 Set_Flag200 (Id, V);
4516 end Set_Has_Delayed_Aspects;
4517
70482933
RK
4518 procedure Set_Has_Delayed_Freeze (Id : E; V : B := True) is
4519 begin
4520 pragma Assert (Nkind (Id) in N_Entity);
4521 Set_Flag18 (Id, V);
4522 end Set_Has_Delayed_Freeze;
4523
15e934bf
AC
4524 procedure Set_Has_Delayed_Rep_Aspects (Id : E; V : B := True) is
4525 begin
4526 pragma Assert (Nkind (Id) in N_Entity);
4527 Set_Flag261 (Id, V);
4528 end Set_Has_Delayed_Rep_Aspects;
4529
70482933
RK
4530 procedure Set_Has_Discriminants (Id : E; V : B := True) is
4531 begin
4532 pragma Assert (Nkind (Id) in N_Entity);
4533 Set_Flag5 (Id, V);
4534 end Set_Has_Discriminants;
4535
5d37ba92
ES
4536 procedure Set_Has_Dispatch_Table (Id : E; V : B := True) is
4537 begin
4538 pragma Assert (Ekind (Id) = E_Record_Type
4539 and then Is_Tagged_Type (Id));
4540 Set_Flag220 (Id, V);
4541 end Set_Has_Dispatch_Table;
4542
aab45d22
AC
4543 procedure Set_Has_Dynamic_Predicate_Aspect (Id : E; V : B := True) is
4544 begin
4545 pragma Assert (Is_Type (Id));
4546 Set_Flag258 (Id, V);
4547 end Set_Has_Dynamic_Predicate_Aspect;
4548
70482933
RK
4549 procedure Set_Has_Enumeration_Rep_Clause (Id : E; V : B := True) is
4550 begin
4551 pragma Assert (Is_Enumeration_Type (Id));
4552 Set_Flag66 (Id, V);
4553 end Set_Has_Enumeration_Rep_Clause;
4554
4555 procedure Set_Has_Exit (Id : E; V : B := True) is
4556 begin
4557 Set_Flag47 (Id, V);
4558 end Set_Has_Exit;
4559
c9d70ab1
AC
4560 procedure Set_Has_Expanded_Contract (Id : E; V : B := True) is
4561 begin
4562 pragma Assert (Ekind_In (Id, E_Entry,
4563 E_Entry_Family,
4564 E_Function,
4565 E_Procedure));
4566 Set_Flag240 (Id, V);
4567 end Set_Has_Expanded_Contract;
4568
70482933
RK
4569 procedure Set_Has_Forward_Instantiation (Id : E; V : B := True) is
4570 begin
4571 Set_Flag175 (Id, V);
4572 end Set_Has_Forward_Instantiation;
4573
4574 procedure Set_Has_Fully_Qualified_Name (Id : E; V : B := True) is
4575 begin
4576 Set_Flag173 (Id, V);
4577 end Set_Has_Fully_Qualified_Name;
4578
4579 procedure Set_Has_Gigi_Rep_Item (Id : E; V : B := True) is
4580 begin
4581 Set_Flag82 (Id, V);
4582 end Set_Has_Gigi_Rep_Item;
4583
4584 procedure Set_Has_Homonym (Id : E; V : B := True) is
4585 begin
4586 Set_Flag56 (Id, V);
4587 end Set_Has_Homonym;
4588
0da80d7d
AC
4589 procedure Set_Has_Implicit_Dereference (Id : E; V : B := True) is
4590 begin
4591 Set_Flag251 (Id, V);
4592 end Set_Has_Implicit_Dereference;
4593
ca1ffed0
AC
4594 procedure Set_Has_Independent_Components (Id : E; V : B := True) is
4595 begin
28fa5430 4596 pragma Assert (not Is_Type (Id) or else Is_Base_Type (Id));
ca1ffed0
AC
4597 Set_Flag34 (Id, V);
4598 end Set_Has_Independent_Components;
4599
e606088a
AC
4600 procedure Set_Has_Inheritable_Invariants (Id : E; V : B := True) is
4601 begin
4602 pragma Assert (Is_Type (Id));
4603 Set_Flag248 (Id, V);
4604 end Set_Has_Inheritable_Invariants;
4605
e477d718
AC
4606 procedure Set_Has_Inherited_Default_Init_Cond (Id : E; V : B := True) is
4607 begin
4608 pragma Assert (Is_Type (Id));
caef4e57 4609 Set_Flag133 (Base_Type (Id), V);
e477d718
AC
4610 end Set_Has_Inherited_Default_Init_Cond;
4611
3ddfabe3
AC
4612 procedure Set_Has_Inherited_Invariants (Id : E; V : B := True) is
4613 begin
4614 pragma Assert (Is_Type (Id));
4615 Set_Flag291 (Id, V);
4616 end Set_Has_Inherited_Invariants;
4617
5d37ba92
ES
4618 procedure Set_Has_Initial_Value (Id : E; V : B := True) is
4619 begin
3428cb9f 4620 pragma Assert (Ekind_In (Id, E_Variable, E_Out_Parameter));
5d37ba92
ES
4621 Set_Flag219 (Id, V);
4622 end Set_Has_Initial_Value;
4623
d436b30d
AC
4624 procedure Set_Has_Loop_Entry_Attributes (Id : E; V : B := True) is
4625 begin
4626 pragma Assert (Ekind (Id) = E_Loop);
4627 Set_Flag260 (Id, V);
4628 end Set_Has_Loop_Entry_Attributes;
4629
70482933
RK
4630 procedure Set_Has_Machine_Radix_Clause (Id : E; V : B := True) is
4631 begin
4632 pragma Assert (Is_Decimal_Fixed_Point_Type (Id));
4633 Set_Flag83 (Id, V);
4634 end Set_Has_Machine_Radix_Clause;
4635
4636 procedure Set_Has_Master_Entity (Id : E; V : B := True) is
4637 begin
4638 Set_Flag21 (Id, V);
4639 end Set_Has_Master_Entity;
4640
4641 procedure Set_Has_Missing_Return (Id : E; V : B := True) is
4642 begin
3428cb9f 4643 pragma Assert (Ekind_In (Id, E_Function, E_Generic_Function));
70482933
RK
4644 Set_Flag142 (Id, V);
4645 end Set_Has_Missing_Return;
4646
4647 procedure Set_Has_Nested_Block_With_Handler (Id : E; V : B := True) is
4648 begin
4649 Set_Flag101 (Id, V);
4650 end Set_Has_Nested_Block_With_Handler;
4651
5a271a7f
RD
4652 procedure Set_Has_Nested_Subprogram (Id : E; V : B := True) is
4653 begin
4654 pragma Assert (Is_Subprogram (Id));
4655 Set_Flag282 (Id, V);
4656 end Set_Has_Nested_Subprogram;
4657
70482933
RK
4658 procedure Set_Has_Non_Standard_Rep (Id : E; V : B := True) is
4659 begin
21d27997 4660 pragma Assert (Id = Base_Type (Id));
70482933
RK
4661 Set_Flag75 (Id, V);
4662 end Set_Has_Non_Standard_Rep;
4663
4664 procedure Set_Has_Object_Size_Clause (Id : E; V : B := True) is
4665 begin
4666 pragma Assert (Is_Type (Id));
4667 Set_Flag172 (Id, V);
4668 end Set_Has_Object_Size_Clause;
4669
fc999c5d
RD
4670 procedure Set_Has_Out_Or_In_Out_Parameter (Id : E; V : B := True) is
4671 begin
288cbbbd
JM
4672 pragma Assert
4673 (Ekind_In (Id, E_Entry, E_Entry_Family)
4674 or else Is_Subprogram_Or_Generic_Subprogram (Id));
fc999c5d
RD
4675 Set_Flag110 (Id, V);
4676 end Set_Has_Out_Or_In_Out_Parameter;
4677
3ddfabe3
AC
4678 procedure Set_Has_Own_Invariants (Id : E; V : B := True) is
4679 begin
4680 pragma Assert (Is_Type (Id));
4681 Set_Flag232 (Id, V);
4682 end Set_Has_Own_Invariants;
4683
70482933
RK
4684 procedure Set_Has_Per_Object_Constraint (Id : E; V : B := True) is
4685 begin
4686 Set_Flag154 (Id, V);
4687 end Set_Has_Per_Object_Constraint;
4688
4689 procedure Set_Has_Pragma_Controlled (Id : E; V : B := True) is
4690 begin
4691 pragma Assert (Is_Access_Type (Id));
4692 Set_Flag27 (Base_Type (Id), V);
4693 end Set_Has_Pragma_Controlled;
4694
4695 procedure Set_Has_Pragma_Elaborate_Body (Id : E; V : B := True) is
4696 begin
4697 Set_Flag150 (Id, V);
4698 end Set_Has_Pragma_Elaborate_Body;
4699
4700 procedure Set_Has_Pragma_Inline (Id : E; V : B := True) is
4701 begin
4702 Set_Flag157 (Id, V);
4703 end Set_Has_Pragma_Inline;
4704
ce0bead3
HK
4705 procedure Set_Has_Pragma_Inline_Always (Id : E; V : B := True) is
4706 begin
4707 Set_Flag230 (Id, V);
4708 end Set_Has_Pragma_Inline_Always;
4709
42ae3870
AC
4710 procedure Set_Has_Pragma_No_Inline (Id : E; V : B := True) is
4711 begin
4712 Set_Flag201 (Id, V);
4713 end Set_Has_Pragma_No_Inline;
4714
bd29d519
AC
4715 procedure Set_Has_Pragma_Ordered (Id : E; V : B := True) is
4716 begin
4717 pragma Assert (Is_Enumeration_Type (Id));
4718 pragma Assert (Id = Base_Type (Id));
4719 Set_Flag198 (Id, V);
4720 end Set_Has_Pragma_Ordered;
4721
70482933
RK
4722 procedure Set_Has_Pragma_Pack (Id : E; V : B := True) is
4723 begin
4724 pragma Assert (Is_Array_Type (Id) or else Is_Record_Type (Id));
07fc65c4
GB
4725 pragma Assert (Id = Base_Type (Id));
4726 Set_Flag121 (Id, V);
70482933
RK
4727 end Set_Has_Pragma_Pack;
4728
5d37ba92
ES
4729 procedure Set_Has_Pragma_Preelab_Init (Id : E; V : B := True) is
4730 begin
4731 Set_Flag221 (Id, V);
4732 end Set_Has_Pragma_Preelab_Init;
4733
ba673907
JM
4734 procedure Set_Has_Pragma_Pure (Id : E; V : B := True) is
4735 begin
4736 Set_Flag203 (Id, V);
4737 end Set_Has_Pragma_Pure;
4738
0839863c
GB
4739 procedure Set_Has_Pragma_Pure_Function (Id : E; V : B := True) is
4740 begin
0839863c
GB
4741 Set_Flag179 (Id, V);
4742 end Set_Has_Pragma_Pure_Function;
4743
4c8a5bb8
AC
4744 procedure Set_Has_Pragma_Thread_Local_Storage (Id : E; V : B := True) is
4745 begin
4746 Set_Flag169 (Id, V);
4747 end Set_Has_Pragma_Thread_Local_Storage;
4748
9d77af56
RD
4749 procedure Set_Has_Pragma_Unmodified (Id : E; V : B := True) is
4750 begin
4751 Set_Flag233 (Id, V);
4752 end Set_Has_Pragma_Unmodified;
4753
07fc65c4
GB
4754 procedure Set_Has_Pragma_Unreferenced (Id : E; V : B := True) is
4755 begin
4756 Set_Flag180 (Id, V);
4757 end Set_Has_Pragma_Unreferenced;
4758
f937473f
RD
4759 procedure Set_Has_Pragma_Unreferenced_Objects (Id : E; V : B := True) is
4760 begin
4761 pragma Assert (Is_Type (Id));
4762 Set_Flag212 (Id, V);
4763 end Set_Has_Pragma_Unreferenced_Objects;
4764
fd0ff1cf
RD
4765 procedure Set_Has_Predicates (Id : E; V : B := True) is
4766 begin
fc142f63 4767 pragma Assert (Is_Type (Id) or else Ekind (Id) = E_Void);
fd0ff1cf
RD
4768 Set_Flag250 (Id, V);
4769 end Set_Has_Predicates;
4770
70482933
RK
4771 procedure Set_Has_Primitive_Operations (Id : E; V : B := True) is
4772 begin
07fc65c4
GB
4773 pragma Assert (Id = Base_Type (Id));
4774 Set_Flag120 (Id, V);
70482933
RK
4775 end Set_Has_Primitive_Operations;
4776
87729e5a
AC
4777 procedure Set_Has_Private_Ancestor (Id : E; V : B := True) is
4778 begin
4779 pragma Assert (Is_Type (Id));
4780 Set_Flag151 (Id, V);
4781 end Set_Has_Private_Ancestor;
4782
70482933
RK
4783 procedure Set_Has_Private_Declaration (Id : E; V : B := True) is
4784 begin
4785 Set_Flag155 (Id, V);
4786 end Set_Has_Private_Declaration;
4787
96e90ac1
RD
4788 procedure Set_Has_Protected (Id : E; V : B := True) is
4789 begin
4790 Set_Flag271 (Id, V);
4791 end Set_Has_Protected;
4792
70482933
RK
4793 procedure Set_Has_Qualified_Name (Id : E; V : B := True) is
4794 begin
4795 Set_Flag161 (Id, V);
4796 end Set_Has_Qualified_Name;
4797
f937473f
RD
4798 procedure Set_Has_RACW (Id : E; V : B := True) is
4799 begin
4800 pragma Assert (Ekind (Id) = E_Package);
4801 Set_Flag214 (Id, V);
4802 end Set_Has_RACW;
4803
70482933
RK
4804 procedure Set_Has_Record_Rep_Clause (Id : E; V : B := True) is
4805 begin
07fc65c4 4806 pragma Assert (Id = Base_Type (Id));
70482933
RK
4807 Set_Flag65 (Id, V);
4808 end Set_Has_Record_Rep_Clause;
4809
4810 procedure Set_Has_Recursive_Call (Id : E; V : B := True) is
4811 begin
4812 pragma Assert (Is_Subprogram (Id));
4813 Set_Flag143 (Id, V);
4814 end Set_Has_Recursive_Call;
4815
4c51ff88
AC
4816 procedure Set_Has_Shift_Operator (Id : E; V : B := True) is
4817 begin
4818 pragma Assert (Is_Integer_Type (Id) and then Is_Base_Type (Id));
4819 Set_Flag267 (Id, V);
4820 end Set_Has_Shift_Operator;
4821
70482933
RK
4822 procedure Set_Has_Size_Clause (Id : E; V : B := True) is
4823 begin
4824 Set_Flag29 (Id, V);
4825 end Set_Has_Size_Clause;
4826
4827 procedure Set_Has_Small_Clause (Id : E; V : B := True) is
4828 begin
47b79f78 4829 pragma Assert (Is_Ordinary_Fixed_Point_Type (Id));
70482933
RK
4830 Set_Flag67 (Id, V);
4831 end Set_Has_Small_Clause;
4832
4833 procedure Set_Has_Specified_Layout (Id : E; V : B := True) is
4834 begin
07fc65c4 4835 pragma Assert (Id = Base_Type (Id));
70482933
RK
4836 Set_Flag100 (Id, V);
4837 end Set_Has_Specified_Layout;
4838
edd63e9b
ES
4839 procedure Set_Has_Specified_Stream_Input (Id : E; V : B := True) is
4840 begin
4841 pragma Assert (Is_Type (Id));
4842 Set_Flag190 (Id, V);
4843 end Set_Has_Specified_Stream_Input;
4844
4845 procedure Set_Has_Specified_Stream_Output (Id : E; V : B := True) is
4846 begin
4847 pragma Assert (Is_Type (Id));
4848 Set_Flag191 (Id, V);
4849 end Set_Has_Specified_Stream_Output;
4850
4851 procedure Set_Has_Specified_Stream_Read (Id : E; V : B := True) is
4852 begin
4853 pragma Assert (Is_Type (Id));
4854 Set_Flag192 (Id, V);
4855 end Set_Has_Specified_Stream_Read;
4856
4857 procedure Set_Has_Specified_Stream_Write (Id : E; V : B := True) is
4858 begin
4859 pragma Assert (Is_Type (Id));
4860 Set_Flag193 (Id, V);
4861 end Set_Has_Specified_Stream_Write;
4862
6e443c90
RD
4863 procedure Set_Has_Static_Discriminants (Id : E; V : B := True) is
4864 begin
4865 Set_Flag211 (Id, V);
4866 end Set_Has_Static_Discriminants;
4867
ee4eee0a
AC
4868 procedure Set_Has_Static_Predicate (Id : E; V : B := True) is
4869 begin
4870 pragma Assert (Is_Type (Id));
4871 Set_Flag269 (Id, V);
4872 end Set_Has_Static_Predicate;
4873
aab45d22
AC
4874 procedure Set_Has_Static_Predicate_Aspect (Id : E; V : B := True) is
4875 begin
4876 pragma Assert (Is_Type (Id));
4877 Set_Flag259 (Id, V);
4878 end Set_Has_Static_Predicate_Aspect;
4879
70482933
RK
4880 procedure Set_Has_Storage_Size_Clause (Id : E; V : B := True) is
4881 begin
4882 pragma Assert (Is_Access_Type (Id) or else Is_Task_Type (Id));
21d27997 4883 pragma Assert (Id = Base_Type (Id));
70482933
RK
4884 Set_Flag23 (Id, V);
4885 end Set_Has_Storage_Size_Clause;
4886
82c80734
RD
4887 procedure Set_Has_Stream_Size_Clause (Id : E; V : B := True) is
4888 begin
4889 pragma Assert (Is_Elementary_Type (Id));
4890 Set_Flag184 (Id, V);
4891 end Set_Has_Stream_Size_Clause;
4892
70482933
RK
4893 procedure Set_Has_Task (Id : E; V : B := True) is
4894 begin
21d27997 4895 pragma Assert (Id = Base_Type (Id));
70482933
RK
4896 Set_Flag30 (Id, V);
4897 end Set_Has_Task;
4898
ce0bead3
HK
4899 procedure Set_Has_Thunks (Id : E; V : B := True) is
4900 begin
cefce34c 4901 pragma Assert (Is_Tag (Id));
ce0bead3
HK
4902 Set_Flag228 (Id, V);
4903 end Set_Has_Thunks;
4904
4969efdf
AC
4905 procedure Set_Has_Timing_Event (Id : E; V : B := True) is
4906 begin
124bed29 4907 pragma Assert (Id = Base_Type (Id));
4969efdf
AC
4908 Set_Flag289 (Id, V);
4909 end Set_Has_Timing_Event;
4910
70482933
RK
4911 procedure Set_Has_Unchecked_Union (Id : E; V : B := True) is
4912 begin
21d27997 4913 pragma Assert (Id = Base_Type (Id));
70482933
RK
4914 Set_Flag123 (Id, V);
4915 end Set_Has_Unchecked_Union;
4916
4917 procedure Set_Has_Unknown_Discriminants (Id : E; V : B := True) is
4918 begin
4919 pragma Assert (Is_Type (Id));
4920 Set_Flag72 (Id, V);
4921 end Set_Has_Unknown_Discriminants;
4922
c5c0ce68
HK
4923 procedure Set_Has_Visible_Refinement (Id : E; V : B := True) is
4924 begin
4925 pragma Assert (Ekind (Id) = E_Abstract_State);
4926 Set_Flag263 (Id, V);
4927 end Set_Has_Visible_Refinement;
4928
70482933
RK
4929 procedure Set_Has_Volatile_Components (Id : E; V : B := True) is
4930 begin
d347f572 4931 pragma Assert (not Is_Type (Id) or else Is_Base_Type (Id));
70482933
RK
4932 Set_Flag87 (Id, V);
4933 end Set_Has_Volatile_Components;
4934
fbf5a39b
AC
4935 procedure Set_Has_Xref_Entry (Id : E; V : B := True) is
4936 begin
4937 Set_Flag182 (Id, V);
4938 end Set_Has_Xref_Entry;
4939
70482933
RK
4940 procedure Set_Hiding_Loop_Variable (Id : E; V : E) is
4941 begin
4942 pragma Assert (Ekind (Id) = E_Variable);
4943 Set_Node8 (Id, V);
4944 end Set_Hiding_Loop_Variable;
4945
4946 procedure Set_Homonym (Id : E; V : E) is
4947 begin
4948 pragma Assert (Id /= V);
4949 Set_Node4 (Id, V);
4950 end Set_Homonym;
fbf5a39b 4951
167b47d9
AC
4952 procedure Set_Incomplete_Actuals (Id : E; V : L) is
4953 begin
4954 pragma Assert (Ekind (Id) = E_Package);
4955 Set_Elist24 (Id, V);
4956 end Set_Incomplete_Actuals;
4957
32bba3c9
AC
4958 procedure Set_Import_Pragma (Id : E; V : E) is
4959 begin
4960 pragma Assert (Is_Subprogram (Id));
4961 Set_Node35 (Id, V);
4962 end Set_Import_Pragma;
4963
ce2b6ba5
JM
4964 procedure Set_Interface_Alias (Id : E; V : E) is
4965 begin
4966 pragma Assert
4967 (Is_Internal (Id)
df3e68b1
HK
4968 and then Is_Hidden (Id)
4969 and then (Ekind_In (Id, E_Procedure, E_Function)));
ce2b6ba5
JM
4970 Set_Node25 (Id, V);
4971 end Set_Interface_Alias;
4972
cdcb8ccb
RD
4973 procedure Set_Interfaces (Id : E; V : L) is
4974 begin
4975 pragma Assert (Is_Record_Type (Id));
4976 Set_Elist25 (Id, V);
4977 end Set_Interfaces;
4978
70482933
RK
4979 procedure Set_In_Package_Body (Id : E; V : B := True) is
4980 begin
4981 Set_Flag48 (Id, V);
4982 end Set_In_Package_Body;
4983
4984 procedure Set_In_Private_Part (Id : E; V : B := True) is
4985 begin
4986 Set_Flag45 (Id, V);
4987 end Set_In_Private_Part;
4988
4989 procedure Set_In_Use (Id : E; V : B := True) is
4990 begin
4991 pragma Assert (Nkind (Id) in N_Entity);
4992 Set_Flag8 (Id, V);
4993 end Set_In_Use;
4994
02217452
AC
4995 procedure Set_Initialization_Statements (Id : E; V : N) is
4996 begin
3a3af4c3
AC
4997 -- Tolerate an E_Void entity since this can be called while resolving
4998 -- an aggregate used as the initialization expression for an object
4999 -- declaration, and this occurs before the Ekind for the object is set.
5000
5001 pragma Assert (Ekind_In (Id, E_Void, E_Constant, E_Variable));
02217452
AC
5002 Set_Node28 (Id, V);
5003 end Set_Initialization_Statements;
5004
70482933
RK
5005 procedure Set_Inner_Instances (Id : E; V : L) is
5006 begin
5007 Set_Elist23 (Id, V);
5008 end Set_Inner_Instances;
5009
5010 procedure Set_Interface_Name (Id : E; V : N) is
5011 begin
5012 Set_Node21 (Id, V);
5013 end Set_Interface_Name;
5014
f937473f 5015 procedure Set_Is_Abstract_Subprogram (Id : E; V : B := True) is
70482933 5016 begin
f937473f 5017 pragma Assert (Is_Overloadable (Id));
70482933 5018 Set_Flag19 (Id, V);
f937473f
RD
5019 end Set_Is_Abstract_Subprogram;
5020
5021 procedure Set_Is_Abstract_Type (Id : E; V : B := True) is
5022 begin
5023 pragma Assert (Is_Type (Id));
5024 Set_Flag146 (Id, V);
5025 end Set_Is_Abstract_Type;
70482933 5026
edd63e9b
ES
5027 procedure Set_Is_Local_Anonymous_Access (Id : E; V : B := True) is
5028 begin
5029 pragma Assert (Is_Access_Type (Id));
5030 Set_Flag194 (Id, V);
5031 end Set_Is_Local_Anonymous_Access;
5032
70482933
RK
5033 procedure Set_Is_Access_Constant (Id : E; V : B := True) is
5034 begin
5035 pragma Assert (Is_Access_Type (Id));
5036 Set_Flag69 (Id, V);
5037 end Set_Is_Access_Constant;
5038
6e443c90 5039 procedure Set_Is_Ada_2005_Only (Id : E; V : B := True) is
82c80734
RD
5040 begin
5041 Set_Flag185 (Id, V);
6e443c90 5042 end Set_Is_Ada_2005_Only;
82c80734 5043
599a7411
AC
5044 procedure Set_Is_Ada_2012_Only (Id : E; V : B := True) is
5045 begin
5046 Set_Flag199 (Id, V);
5047 end Set_Is_Ada_2012_Only;
5048
70482933
RK
5049 procedure Set_Is_Aliased (Id : E; V : B := True) is
5050 begin
5051 pragma Assert (Nkind (Id) in N_Entity);
5052 Set_Flag15 (Id, V);
5053 end Set_Is_Aliased;
5054
70482933
RK
5055 procedure Set_Is_Asynchronous (Id : E; V : B := True) is
5056 begin
5057 pragma Assert
5058 (Ekind (Id) = E_Procedure or else Is_Type (Id));
5059 Set_Flag81 (Id, V);
5060 end Set_Is_Asynchronous;
5061
5062 procedure Set_Is_Atomic (Id : E; V : B := True) is
5063 begin
5064 Set_Flag85 (Id, V);
5065 end Set_Is_Atomic;
5066
5067 procedure Set_Is_Bit_Packed_Array (Id : E; V : B := True) is
5068 begin
07fc65c4 5069 pragma Assert ((not V)
d347f572 5070 or else (Is_Array_Type (Id) and then Is_Base_Type (Id)));
07fc65c4 5071 Set_Flag122 (Id, V);
70482933
RK
5072 end Set_Is_Bit_Packed_Array;
5073
5074 procedure Set_Is_Called (Id : E; V : B := True) is
5075 begin
3428cb9f 5076 pragma Assert (Ekind_In (Id, E_Procedure, E_Function));
70482933
RK
5077 Set_Flag102 (Id, V);
5078 end Set_Is_Called;
5079
5080 procedure Set_Is_Character_Type (Id : E; V : B := True) is
5081 begin
5082 Set_Flag63 (Id, V);
5083 end Set_Is_Character_Type;
5084
c5cec2fe
AC
5085 procedure Set_Is_Checked_Ghost_Entity (Id : E; V : B := True) is
5086 begin
5087 pragma Assert (Is_Formal (Id)
5088 or else Is_Object (Id)
5089 or else Is_Package_Or_Generic_Package (Id)
5090 or else Is_Subprogram_Or_Generic_Subprogram (Id)
5091 or else Is_Type (Id)
5092 or else Ekind (Id) = E_Abstract_State
5093 or else Ekind (Id) = E_Component
5094 or else Ekind (Id) = E_Discriminant
10274386 5095 or else Ekind (Id) = E_Exception
c5cec2fe 5096 or else Ekind (Id) = E_Package_Body
8636f52f
HK
5097 or else Ekind (Id) = E_Subprogram_Body
5098
5099 -- Allow this attribute to appear on non-analyzed entities
5100
5101 or else Ekind (Id) = E_Void);
c5cec2fe
AC
5102 Set_Flag277 (Id, V);
5103 end Set_Is_Checked_Ghost_Entity;
5104
70482933
RK
5105 procedure Set_Is_Child_Unit (Id : E; V : B := True) is
5106 begin
5107 Set_Flag73 (Id, V);
5108 end Set_Is_Child_Unit;
5109
fbf5a39b
AC
5110 procedure Set_Is_Class_Wide_Equivalent_Type (Id : E; V : B := True) is
5111 begin
5112 Set_Flag35 (Id, V);
5113 end Set_Is_Class_Wide_Equivalent_Type;
5114
70482933
RK
5115 procedure Set_Is_Compilation_Unit (Id : E; V : B := True) is
5116 begin
5117 Set_Flag149 (Id, V);
5118 end Set_Is_Compilation_Unit;
5119
5120 procedure Set_Is_Completely_Hidden (Id : E; V : B := True) is
5121 begin
5122 pragma Assert (Ekind (Id) = E_Discriminant);
5123 Set_Flag103 (Id, V);
5124 end Set_Is_Completely_Hidden;
5125
5126 procedure Set_Is_Concurrent_Record_Type (Id : E; V : B := True) is
5127 begin
5128 Set_Flag20 (Id, V);
5129 end Set_Is_Concurrent_Record_Type;
5130
5131 procedure Set_Is_Constr_Subt_For_U_Nominal (Id : E; V : B := True) is
5132 begin
5133 Set_Flag80 (Id, V);
5134 end Set_Is_Constr_Subt_For_U_Nominal;
5135
5136 procedure Set_Is_Constr_Subt_For_UN_Aliased (Id : E; V : B := True) is
5137 begin
5138 Set_Flag141 (Id, V);
5139 end Set_Is_Constr_Subt_For_UN_Aliased;
5140
5141 procedure Set_Is_Constrained (Id : E; V : B := True) is
5142 begin
5143 pragma Assert (Nkind (Id) in N_Entity);
5144 Set_Flag12 (Id, V);
5145 end Set_Is_Constrained;
5146
5147 procedure Set_Is_Constructor (Id : E; V : B := True) is
5148 begin
5149 Set_Flag76 (Id, V);
5150 end Set_Is_Constructor;
5151
5152 procedure Set_Is_Controlled (Id : E; V : B := True) is
5153 begin
5154 pragma Assert (Id = Base_Type (Id));
5155 Set_Flag42 (Id, V);
5156 end Set_Is_Controlled;
5157
5158 procedure Set_Is_Controlling_Formal (Id : E; V : B := True) is
5159 begin
5160 pragma Assert (Is_Formal (Id));
5161 Set_Flag97 (Id, V);
5162 end Set_Is_Controlling_Formal;
5163
5164 procedure Set_Is_CPP_Class (Id : E; V : B := True) is
5165 begin
5166 Set_Flag74 (Id, V);
5167 end Set_Is_CPP_Class;
5168
e477d718
AC
5169 procedure Set_Is_Default_Init_Cond_Procedure (Id : E; V : B := True) is
5170 begin
5171 pragma Assert (Ekind (Id) = E_Procedure);
5172 Set_Flag132 (Id, V);
5173 end Set_Is_Default_Init_Cond_Procedure;
5174
d9d25d04 5175 procedure Set_Is_Descendant_Of_Address (Id : E; V : B := True) is
d5e96bc6
HK
5176 begin
5177 pragma Assert (Is_Type (Id));
5178 Set_Flag223 (Id, V);
d9d25d04 5179 end Set_Is_Descendant_Of_Address;
d5e96bc6 5180
70482933
RK
5181 procedure Set_Is_Discrim_SO_Function (Id : E; V : B := True) is
5182 begin
5183 Set_Flag176 (Id, V);
5184 end Set_Is_Discrim_SO_Function;
5185
e2ef0ff6
AC
5186 procedure Set_Is_Discriminant_Check_Function (Id : E; V : B := True) is
5187 begin
5188 Set_Flag264 (Id, V);
5189 end Set_Is_Discriminant_Check_Function;
5190
21d27997
RD
5191 procedure Set_Is_Dispatch_Table_Entity (Id : E; V : B := True) is
5192 begin
5193 Set_Flag234 (Id, V);
5194 end Set_Is_Dispatch_Table_Entity;
5195
70482933
RK
5196 procedure Set_Is_Dispatching_Operation (Id : E; V : B := True) is
5197 begin
5198 pragma Assert
5199 (V = False
5200 or else
5201 Is_Overloadable (Id)
5202 or else
5203 Ekind (Id) = E_Subprogram_Type);
5204
5205 Set_Flag6 (Id, V);
5206 end Set_Is_Dispatching_Operation;
5207
5208 procedure Set_Is_Eliminated (Id : E; V : B := True) is
5209 begin
5210 Set_Flag124 (Id, V);
5211 end Set_Is_Eliminated;
5212
5213 procedure Set_Is_Entry_Formal (Id : E; V : B := True) is
5214 begin
5215 Set_Flag52 (Id, V);
5216 end Set_Is_Entry_Formal;
5217
75a957f5
AC
5218 procedure Set_Is_Exception_Handler (Id : E; V : B := True) is
5219 begin
5220 pragma Assert (Ekind (Id) = E_Block);
5221 Set_Flag286 (Id, V);
5222 end Set_Is_Exception_Handler;
5223
70482933
RK
5224 procedure Set_Is_Exported (Id : E; V : B := True) is
5225 begin
5226 Set_Flag99 (Id, V);
5227 end Set_Is_Exported;
5228
5229 procedure Set_Is_First_Subtype (Id : E; V : B := True) is
5230 begin
5231 Set_Flag70 (Id, V);
5232 end Set_Is_First_Subtype;
5233
5234 procedure Set_Is_For_Access_Subtype (Id : E; V : B := True) is
5235 begin
3428cb9f 5236 pragma Assert (Ekind_In (Id, E_Record_Subtype, E_Private_Subtype));
70482933
RK
5237 Set_Flag118 (Id, V);
5238 end Set_Is_For_Access_Subtype;
5239
5240 procedure Set_Is_Formal_Subprogram (Id : E; V : B := True) is
5241 begin
5242 Set_Flag111 (Id, V);
5243 end Set_Is_Formal_Subprogram;
5244
5245 procedure Set_Is_Frozen (Id : E; V : B := True) is
5246 begin
5247 pragma Assert (Nkind (Id) in N_Entity);
5248 Set_Flag4 (Id, V);
5249 end Set_Is_Frozen;
5250
fce54763
AC
5251 procedure Set_Is_Generic_Actual_Subprogram (Id : E; V : B := True) is
5252 begin
c5cec2fe 5253 pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
fce54763
AC
5254 Set_Flag274 (Id, V);
5255 end Set_Is_Generic_Actual_Subprogram;
5256
70482933
RK
5257 procedure Set_Is_Generic_Actual_Type (Id : E; V : B := True) is
5258 begin
5259 pragma Assert (Is_Type (Id));
5260 Set_Flag94 (Id, V);
5261 end Set_Is_Generic_Actual_Type;
5262
5263 procedure Set_Is_Generic_Instance (Id : E; V : B := True) is
5264 begin
5265 Set_Flag130 (Id, V);
5266 end Set_Is_Generic_Instance;
5267
5268 procedure Set_Is_Generic_Type (Id : E; V : B := True) is
5269 begin
5270 pragma Assert (Nkind (Id) in N_Entity);
5271 Set_Flag13 (Id, V);
5272 end Set_Is_Generic_Type;
5273
5274 procedure Set_Is_Hidden (Id : E; V : B := True) is
5275 begin
5276 Set_Flag57 (Id, V);
5277 end Set_Is_Hidden;
5278
7b4ebba5 5279 procedure Set_Is_Hidden_Non_Overridden_Subpgm (Id : E; V : B := True) is
09c954dc 5280 begin
7b4ebba5 5281 pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
09c954dc 5282 Set_Flag2 (Id, V);
7b4ebba5 5283 end Set_Is_Hidden_Non_Overridden_Subpgm;
09c954dc 5284
70482933
RK
5285 procedure Set_Is_Hidden_Open_Scope (Id : E; V : B := True) is
5286 begin
5287 Set_Flag171 (Id, V);
5288 end Set_Is_Hidden_Open_Scope;
5289
c5cec2fe
AC
5290 procedure Set_Is_Ignored_Ghost_Entity (Id : E; V : B := True) is
5291 begin
5292 pragma Assert (Is_Formal (Id)
5293 or else Is_Object (Id)
5294 or else Is_Package_Or_Generic_Package (Id)
5295 or else Is_Subprogram_Or_Generic_Subprogram (Id)
5296 or else Is_Type (Id)
5297 or else Ekind (Id) = E_Abstract_State
5298 or else Ekind (Id) = E_Component
5299 or else Ekind (Id) = E_Discriminant
10274386 5300 or else Ekind (Id) = E_Exception
c5cec2fe 5301 or else Ekind (Id) = E_Package_Body
8636f52f
HK
5302 or else Ekind (Id) = E_Subprogram_Body
5303
5304 -- Allow this attribute to appear on non-analyzed entities
5305
5306 or else Ekind (Id) = E_Void);
c5cec2fe
AC
5307 Set_Flag278 (Id, V);
5308 end Set_Is_Ignored_Ghost_Entity;
5309
70482933
RK
5310 procedure Set_Is_Immediately_Visible (Id : E; V : B := True) is
5311 begin
5312 pragma Assert (Nkind (Id) in N_Entity);
5313 Set_Flag7 (Id, V);
5314 end Set_Is_Immediately_Visible;
5315
df177175
RD
5316 procedure Set_Is_Implementation_Defined (Id : E; V : B := True) is
5317 begin
5318 Set_Flag254 (Id, V);
5319 end Set_Is_Implementation_Defined;
5320
70482933
RK
5321 procedure Set_Is_Imported (Id : E; V : B := True) is
5322 begin
5323 Set_Flag24 (Id, V);
5324 end Set_Is_Imported;
5325
43bebb10
AC
5326 procedure Set_Is_Independent (Id : E; V : B := True) is
5327 begin
43bebb10
AC
5328 Set_Flag268 (Id, V);
5329 end Set_Is_Independent;
5330
70482933
RK
5331 procedure Set_Is_Inlined (Id : E; V : B := True) is
5332 begin
5333 Set_Flag11 (Id, V);
5334 end Set_Is_Inlined;
5335
4bd4bb7f
AC
5336 procedure Set_Is_Inlined_Always (Id : E; V : B := True) is
5337 begin
5338 pragma Assert (Ekind (Id) = E_Function or else Ekind (Id) = E_Procedure);
5339 Set_Flag1 (Id, V);
5340 end Set_Is_Inlined_Always;
5341
a9d8907c
JM
5342 procedure Set_Is_Interface (Id : E; V : B := True) is
5343 begin
38171f43 5344 pragma Assert (Is_Record_Type (Id));
a9d8907c
JM
5345 Set_Flag186 (Id, V);
5346 end Set_Is_Interface;
5347
70482933
RK
5348 procedure Set_Is_Instantiated (Id : E; V : B := True) is
5349 begin
5350 Set_Flag126 (Id, V);
5351 end Set_Is_Instantiated;
5352
5353 procedure Set_Is_Internal (Id : E; V : B := True) is
5354 begin
5355 pragma Assert (Nkind (Id) in N_Entity);
5356 Set_Flag17 (Id, V);
5357 end Set_Is_Internal;
5358
5359 procedure Set_Is_Interrupt_Handler (Id : E; V : B := True) is
5360 begin
5361 pragma Assert (Nkind (Id) in N_Entity);
5362 Set_Flag89 (Id, V);
5363 end Set_Is_Interrupt_Handler;
5364
5365 procedure Set_Is_Intrinsic_Subprogram (Id : E; V : B := True) is
5366 begin
5367 Set_Flag64 (Id, V);
5368 end Set_Is_Intrinsic_Subprogram;
5369
fc142f63
AC
5370 procedure Set_Is_Invariant_Procedure (Id : E; V : B := True) is
5371 begin
e477d718 5372 pragma Assert (Ekind (Id) = E_Procedure);
fc142f63
AC
5373 Set_Flag257 (Id, V);
5374 end Set_Is_Invariant_Procedure;
5375
70482933
RK
5376 procedure Set_Is_Itype (Id : E; V : B := True) is
5377 begin
5378 Set_Flag91 (Id, V);
5379 end Set_Is_Itype;
5380
fbf5a39b
AC
5381 procedure Set_Is_Known_Non_Null (Id : E; V : B := True) is
5382 begin
5383 Set_Flag37 (Id, V);
5384 end Set_Is_Known_Non_Null;
5385
ba673907
JM
5386 procedure Set_Is_Known_Null (Id : E; V : B := True) is
5387 begin
5388 Set_Flag204 (Id, V);
5389 end Set_Is_Known_Null;
5390
70482933
RK
5391 procedure Set_Is_Known_Valid (Id : E; V : B := True) is
5392 begin
5393 Set_Flag170 (Id, V);
5394 end Set_Is_Known_Valid;
5395
5396 procedure Set_Is_Limited_Composite (Id : E; V : B := True) is
5397 begin
5398 pragma Assert (Is_Type (Id));
5399 Set_Flag106 (Id, V);
5400 end Set_Is_Limited_Composite;
5401
f4d379b8
HK
5402 procedure Set_Is_Limited_Interface (Id : E; V : B := True) is
5403 begin
5404 pragma Assert (Is_Interface (Id));
5405 Set_Flag197 (Id, V);
5406 end Set_Is_Limited_Interface;
5407
70482933
RK
5408 procedure Set_Is_Limited_Record (Id : E; V : B := True) is
5409 begin
5410 Set_Flag25 (Id, V);
5411 end Set_Is_Limited_Record;
5412
5413 procedure Set_Is_Machine_Code_Subprogram (Id : E; V : B := True) is
5414 begin
5415 pragma Assert (Is_Subprogram (Id));
5416 Set_Flag137 (Id, V);
5417 end Set_Is_Machine_Code_Subprogram;
5418
5419 procedure Set_Is_Non_Static_Subtype (Id : E; V : B := True) is
5420 begin
5421 pragma Assert (Is_Type (Id));
5422 Set_Flag109 (Id, V);
5423 end Set_Is_Non_Static_Subtype;
5424
5425 procedure Set_Is_Null_Init_Proc (Id : E; V : B := True) is
5426 begin
5427 pragma Assert (Ekind (Id) = E_Procedure);
5428 Set_Flag178 (Id, V);
5429 end Set_Is_Null_Init_Proc;
5430
82c80734
RD
5431 procedure Set_Is_Obsolescent (Id : E; V : B := True) is
5432 begin
82c80734
RD
5433 Set_Flag153 (Id, V);
5434 end Set_Is_Obsolescent;
5435
ce0bead3
HK
5436 procedure Set_Is_Only_Out_Parameter (Id : E; V : B := True) is
5437 begin
5438 pragma Assert (Ekind (Id) = E_Out_Parameter);
5439 Set_Flag226 (Id, V);
5440 end Set_Is_Only_Out_Parameter;
5441
70482933
RK
5442 procedure Set_Is_Package_Body_Entity (Id : E; V : B := True) is
5443 begin
5444 Set_Flag160 (Id, V);
5445 end Set_Is_Package_Body_Entity;
5446
5447 procedure Set_Is_Packed (Id : E; V : B := True) is
5448 begin
21d27997 5449 pragma Assert (Id = Base_Type (Id));
70482933
RK
5450 Set_Flag51 (Id, V);
5451 end Set_Is_Packed;
5452
8ca597af 5453 procedure Set_Is_Packed_Array_Impl_Type (Id : E; V : B := True) is
70482933
RK
5454 begin
5455 Set_Flag138 (Id, V);
8ca597af 5456 end Set_Is_Packed_Array_Impl_Type;
70482933 5457
b54d1d39
AC
5458 procedure Set_Is_Param_Block_Component_Type (Id : E; V : B := True) is
5459 begin
5460 pragma Assert (Ekind_In (Id, E_Void, E_General_Access_Type));
5461 Set_Flag215 (Id, V);
5462 end Set_Is_Param_Block_Component_Type;
5463
3ddfabe3
AC
5464 procedure Set_Is_Partial_Invariant_Procedure (Id : E; V : B := True) is
5465 begin
5466 pragma Assert (Ekind (Id) = E_Procedure);
5467 Set_Flag292 (Id, V);
5468 end Set_Is_Partial_Invariant_Procedure;
5469
70482933
RK
5470 procedure Set_Is_Potentially_Use_Visible (Id : E; V : B := True) is
5471 begin
5472 pragma Assert (Nkind (Id) in N_Entity);
5473 Set_Flag9 (Id, V);
5474 end Set_Is_Potentially_Use_Visible;
5475
fc142f63
AC
5476 procedure Set_Is_Predicate_Function (Id : E; V : B := True) is
5477 begin
3ddfabe3 5478 pragma Assert (Ekind (Id) = E_Function);
fc142f63
AC
5479 Set_Flag255 (Id, V);
5480 end Set_Is_Predicate_Function;
5481
5482 procedure Set_Is_Predicate_Function_M (Id : E; V : B := True) is
5483 begin
be035558 5484 pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
fc142f63
AC
5485 Set_Flag256 (Id, V);
5486 end Set_Is_Predicate_Function_M;
5487
70482933
RK
5488 procedure Set_Is_Preelaborated (Id : E; V : B := True) is
5489 begin
5490 Set_Flag59 (Id, V);
5491 end Set_Is_Preelaborated;
5492
5d37ba92
ES
5493 procedure Set_Is_Primitive (Id : E; V : B := True) is
5494 begin
5495 pragma Assert
5496 (Is_Overloadable (Id)
df3e68b1 5497 or else Ekind_In (Id, E_Generic_Function, E_Generic_Procedure));
5d37ba92
ES
5498 Set_Flag218 (Id, V);
5499 end Set_Is_Primitive;
5500
10b93b2e
HK
5501 procedure Set_Is_Primitive_Wrapper (Id : E; V : B := True) is
5502 begin
3428cb9f 5503 pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
10b93b2e
HK
5504 Set_Flag195 (Id, V);
5505 end Set_Is_Primitive_Wrapper;
5506
70482933
RK
5507 procedure Set_Is_Private_Composite (Id : E; V : B := True) is
5508 begin
5509 pragma Assert (Is_Type (Id));
5510 Set_Flag107 (Id, V);
5511 end Set_Is_Private_Composite;
5512
5513 procedure Set_Is_Private_Descendant (Id : E; V : B := True) is
5514 begin
5515 Set_Flag53 (Id, V);
5516 end Set_Is_Private_Descendant;
5517
d44202ba
HK
5518 procedure Set_Is_Private_Primitive (Id : E; V : B := True) is
5519 begin
3428cb9f 5520 pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
d44202ba
HK
5521 Set_Flag245 (Id, V);
5522 end Set_Is_Private_Primitive;
5523
df3e68b1
HK
5524 procedure Set_Is_Processed_Transient (Id : E; V : B := True) is
5525 begin
aa499784 5526 pragma Assert (Ekind_In (Id, E_Constant, E_Loop_Parameter, E_Variable));
df3e68b1
HK
5527 Set_Flag252 (Id, V);
5528 end Set_Is_Processed_Transient;
5529
70482933
RK
5530 procedure Set_Is_Public (Id : E; V : B := True) is
5531 begin
5532 pragma Assert (Nkind (Id) in N_Entity);
5533 Set_Flag10 (Id, V);
5534 end Set_Is_Public;
5535
5536 procedure Set_Is_Pure (Id : E; V : B := True) is
5537 begin
5538 Set_Flag44 (Id, V);
5539 end Set_Is_Pure;
5540
edd63e9b
ES
5541 procedure Set_Is_Pure_Unit_Access_Type (Id : E; V : B := True) is
5542 begin
5543 pragma Assert (Is_Access_Type (Id));
5544 Set_Flag189 (Id, V);
5545 end Set_Is_Pure_Unit_Access_Type;
5546
685094bf
RD
5547 procedure Set_Is_RACW_Stub_Type (Id : E; V : B := True) is
5548 begin
5549 pragma Assert (Is_Type (Id));
5550 Set_Flag244 (Id, V);
5551 end Set_Is_RACW_Stub_Type;
5552
d5e96bc6
HK
5553 procedure Set_Is_Raised (Id : E; V : B := True) is
5554 begin
5555 pragma Assert (Ekind (Id) = E_Exception);
5556 Set_Flag224 (Id, V);
5557 end Set_Is_Raised;
5558
70482933
RK
5559 procedure Set_Is_Remote_Call_Interface (Id : E; V : B := True) is
5560 begin
5561 Set_Flag62 (Id, V);
5562 end Set_Is_Remote_Call_Interface;
5563
5564 procedure Set_Is_Remote_Types (Id : E; V : B := True) is
5565 begin
5566 Set_Flag61 (Id, V);
5567 end Set_Is_Remote_Types;
5568
5569 procedure Set_Is_Renaming_Of_Object (Id : E; V : B := True) is
5570 begin
5571 Set_Flag112 (Id, V);
5572 end Set_Is_Renaming_Of_Object;
5573
6e443c90
RD
5574 procedure Set_Is_Return_Object (Id : E; V : B := True) is
5575 begin
5576 Set_Flag209 (Id, V);
5577 end Set_Is_Return_Object;
5578
273adcdf
AC
5579 procedure Set_Is_Safe_To_Reevaluate (Id : E; V : B := True) is
5580 begin
5581 pragma Assert (Ekind (Id) = E_Variable);
5582 Set_Flag249 (Id, V);
5583 end Set_Is_Safe_To_Reevaluate;
5584
70482933
RK
5585 procedure Set_Is_Shared_Passive (Id : E; V : B := True) is
5586 begin
5587 Set_Flag60 (Id, V);
5588 end Set_Is_Shared_Passive;
5589
5a271a7f
RD
5590 procedure Set_Is_Static_Type (Id : E; V : B := True) is
5591 begin
5592 pragma Assert (Is_Type (Id));
5593 Set_Flag281 (Id, V);
5594 end Set_Is_Static_Type;
5595
70482933
RK
5596 procedure Set_Is_Statically_Allocated (Id : E; V : B := True) is
5597 begin
5598 pragma Assert
3428cb9f 5599 (Is_Type (Id)
df3e68b1
HK
5600 or else Ekind_In (Id, E_Exception,
5601 E_Variable,
5602 E_Constant,
5603 E_Void));
70482933
RK
5604 Set_Flag28 (Id, V);
5605 end Set_Is_Statically_Allocated;
5606
5607 procedure Set_Is_Tag (Id : E; V : B := True) is
5608 begin
cefce34c 5609 pragma Assert (Ekind_In (Id, E_Component, E_Constant, E_Variable));
70482933
RK
5610 Set_Flag78 (Id, V);
5611 end Set_Is_Tag;
5612
5613 procedure Set_Is_Tagged_Type (Id : E; V : B := True) is
5614 begin
5615 Set_Flag55 (Id, V);
5616 end Set_Is_Tagged_Type;
5617
fdce4bb7
JM
5618 procedure Set_Is_Thunk (Id : E; V : B := True) is
5619 begin
da1c23dd 5620 pragma Assert (Is_Subprogram (Id));
fdce4bb7
JM
5621 Set_Flag225 (Id, V);
5622 end Set_Is_Thunk;
5623
0f282086
RD
5624 procedure Set_Is_Trivial_Subprogram (Id : E; V : B := True) is
5625 begin
5626 Set_Flag235 (Id, V);
5627 end Set_Is_Trivial_Subprogram;
5628
70482933
RK
5629 procedure Set_Is_True_Constant (Id : E; V : B := True) is
5630 begin
5631 Set_Flag163 (Id, V);
5632 end Set_Is_True_Constant;
5633
5634 procedure Set_Is_Unchecked_Union (Id : E; V : B := True) is
5635 begin
21d27997 5636 pragma Assert (Id = Base_Type (Id));
70482933
RK
5637 Set_Flag117 (Id, V);
5638 end Set_Is_Unchecked_Union;
5639
9013065b
AC
5640 procedure Set_Is_Underlying_Record_View (Id : E; V : B := True) is
5641 begin
5642 pragma Assert (Ekind (Id) = E_Record_Type);
5643 Set_Flag246 (Id, V);
5644 end Set_Is_Underlying_Record_View;
5645
d3ef4bd6
AC
5646 procedure Set_Is_Unimplemented (Id : E; V : B := True) is
5647 begin
5648 Set_Flag284 (Id, V);
5649 end Set_Is_Unimplemented;
5650
70482933
RK
5651 procedure Set_Is_Unsigned_Type (Id : E; V : B := True) is
5652 begin
5653 pragma Assert (Is_Discrete_Or_Fixed_Point_Type (Id));
5654 Set_Flag144 (Id, V);
5655 end Set_Is_Unsigned_Type;
5656
f8dae9bb
AC
5657 procedure Set_Is_Uplevel_Referenced_Entity (Id : E; V : B := True) is
5658 begin
5659 pragma Assert
5660 (Ekind_In (Id, E_Constant, E_Variable)
5661 or else Is_Formal (Id)
5662 or else Is_Type (Id));
5663 Set_Flag283 (Id, V);
5664 end Set_Is_Uplevel_Referenced_Entity;
5665
70482933
RK
5666 procedure Set_Is_Valued_Procedure (Id : E; V : B := True) is
5667 begin
5668 pragma Assert (Ekind (Id) = E_Procedure);
5669 Set_Flag127 (Id, V);
5670 end Set_Is_Valued_Procedure;
5671
6e443c90
RD
5672 procedure Set_Is_Visible_Formal (Id : E; V : B := True) is
5673 begin
5674 Set_Flag206 (Id, V);
5675 end Set_Is_Visible_Formal;
5676
8398e82e
AC
5677 procedure Set_Is_Visible_Lib_Unit (Id : E; V : B := True) is
5678 begin
5679 Set_Flag116 (Id, V);
5680 end Set_Is_Visible_Lib_Unit;
5681
70482933
RK
5682 procedure Set_Is_Volatile (Id : E; V : B := True) is
5683 begin
5684 pragma Assert (Nkind (Id) in N_Entity);
5685 Set_Flag16 (Id, V);
5686 end Set_Is_Volatile;
5687
57abdadd
EB
5688 procedure Set_Is_Volatile_Full_Access (Id : E; V : B := True) is
5689 begin
5690 Set_Flag285 (Id, V);
5691 end Set_Is_Volatile_Full_Access;
5692
653da906
RD
5693 procedure Set_Itype_Printed (Id : E; V : B := True) is
5694 begin
5695 pragma Assert (Is_Itype (Id));
5696 Set_Flag202 (Id, V);
5697 end Set_Itype_Printed;
5698
fbf5a39b
AC
5699 procedure Set_Kill_Elaboration_Checks (Id : E; V : B := True) is
5700 begin
5701 Set_Flag32 (Id, V);
5702 end Set_Kill_Elaboration_Checks;
5703
5704 procedure Set_Kill_Range_Checks (Id : E; V : B := True) is
5705 begin
5706 Set_Flag33 (Id, V);
5707 end Set_Kill_Range_Checks;
5708
6e443c90
RD
5709 procedure Set_Known_To_Have_Preelab_Init (Id : E; V : B := True) is
5710 begin
5711 pragma Assert (Is_Type (Id));
5712 Set_Flag207 (Id, V);
5713 end Set_Known_To_Have_Preelab_Init;
5714
e2ef0ff6
AC
5715 procedure Set_Last_Aggregate_Assignment (Id : E; V : N) is
5716 begin
4ac2bbbd
AC
5717 pragma Assert (Ekind_In (Id, E_Constant, E_Variable));
5718 Set_Node30 (Id, V);
e2ef0ff6
AC
5719 end Set_Last_Aggregate_Assignment;
5720
6e443c90
RD
5721 procedure Set_Last_Assignment (Id : E; V : N) is
5722 begin
67ce0d7e
RD
5723 pragma Assert (Is_Assignable (Id));
5724 Set_Node26 (Id, V);
6e443c90
RD
5725 end Set_Last_Assignment;
5726
70482933
RK
5727 procedure Set_Last_Entity (Id : E; V : E) is
5728 begin
5729 Set_Node20 (Id, V);
5730 end Set_Last_Entity;
5731
0fb2ea01 5732 procedure Set_Limited_View (Id : E; V : E) is
fbf5a39b
AC
5733 begin
5734 pragma Assert (Ekind (Id) = E_Package);
0fb2ea01
AC
5735 Set_Node23 (Id, V);
5736 end Set_Limited_View;
fbf5a39b 5737
19992053
AC
5738 procedure Set_Linker_Section_Pragma (Id : E; V : N) is
5739 begin
5740 pragma Assert (Is_Type (Id)
5741 or else Ekind_In (Id, E_Constant, E_Variable)
5742 or else Is_Subprogram (Id));
5743 Set_Node33 (Id, V);
5744 end Set_Linker_Section_Pragma;
5745
70482933
RK
5746 procedure Set_Lit_Indexes (Id : E; V : E) is
5747 begin
5748 pragma Assert (Is_Enumeration_Type (Id) and then Root_Type (Id) = Id);
760804f3 5749 Set_Node18 (Id, V);
70482933
RK
5750 end Set_Lit_Indexes;
5751
5752 procedure Set_Lit_Strings (Id : E; V : E) is
5753 begin
5754 pragma Assert (Is_Enumeration_Type (Id) and then Root_Type (Id) = Id);
5755 Set_Node16 (Id, V);
5756 end Set_Lit_Strings;
5757
fad0600d 5758 procedure Set_Low_Bound_Tested (Id : E; V : B := True) is
6e443c90
RD
5759 begin
5760 pragma Assert (Is_Formal (Id));
5761 Set_Flag205 (Id, V);
fad0600d 5762 end Set_Low_Bound_Tested;
6e443c90 5763
70482933
RK
5764 procedure Set_Machine_Radix_10 (Id : E; V : B := True) is
5765 begin
5766 pragma Assert (Is_Decimal_Fixed_Point_Type (Id));
5767 Set_Flag84 (Id, V);
5768 end Set_Machine_Radix_10;
5769
5770 procedure Set_Master_Id (Id : E; V : E) is
5771 begin
f937473f 5772 pragma Assert (Is_Access_Type (Id));
70482933
RK
5773 Set_Node17 (Id, V);
5774 end Set_Master_Id;
5775
5776 procedure Set_Materialize_Entity (Id : E; V : B := True) is
5777 begin
5778 Set_Flag168 (Id, V);
5779 end Set_Materialize_Entity;
5780
15e934bf
AC
5781 procedure Set_May_Inherit_Delayed_Rep_Aspects (Id : E; V : B := True) is
5782 begin
5783 Set_Flag262 (Id, V);
5784 end Set_May_Inherit_Delayed_Rep_Aspects;
5785
70482933
RK
5786 procedure Set_Mechanism (Id : E; V : M) is
5787 begin
5788 pragma Assert (Ekind (Id) = E_Function or else Is_Formal (Id));
5789 Set_Uint8 (Id, UI_From_Int (V));
5790 end Set_Mechanism;
5791
5792 procedure Set_Modulus (Id : E; V : U) is
5793 begin
5794 pragma Assert (Ekind (Id) = E_Modular_Integer_Type);
5795 Set_Uint17 (Id, V);
5796 end Set_Modulus;
5797
0da2c8ac
AC
5798 procedure Set_Must_Be_On_Byte_Boundary (Id : E; V : B := True) is
5799 begin
5800 pragma Assert (Is_Type (Id));
5801 Set_Flag183 (Id, V);
5802 end Set_Must_Be_On_Byte_Boundary;
5803
6e443c90
RD
5804 procedure Set_Must_Have_Preelab_Init (Id : E; V : B := True) is
5805 begin
5806 pragma Assert (Is_Type (Id));
5807 Set_Flag208 (Id, V);
5808 end Set_Must_Have_Preelab_Init;
5809
70482933
RK
5810 procedure Set_Needs_Debug_Info (Id : E; V : B := True) is
5811 begin
5812 Set_Flag147 (Id, V);
5813 end Set_Needs_Debug_Info;
5814
5815 procedure Set_Needs_No_Actuals (Id : E; V : B := True) is
5816 begin
5817 pragma Assert
5818 (Is_Overloadable (Id)
df3e68b1 5819 or else Ekind_In (Id, E_Subprogram_Type, E_Entry_Family));
70482933
RK
5820 Set_Flag22 (Id, V);
5821 end Set_Needs_No_Actuals;
5822
fbf5a39b
AC
5823 procedure Set_Never_Set_In_Source (Id : E; V : B := True) is
5824 begin
5825 Set_Flag115 (Id, V);
5826 end Set_Never_Set_In_Source;
5827
70482933
RK
5828 procedure Set_Next_Inlined_Subprogram (Id : E; V : E) is
5829 begin
5830 Set_Node12 (Id, V);
5831 end Set_Next_Inlined_Subprogram;
5832
a6282852
ES
5833 procedure Set_No_Dynamic_Predicate_On_Actual (Id : E; V : B := True) is
5834 begin
5835 pragma Assert (Is_Discrete_Type (Id));
5836 Set_Flag276 (Id, V);
5837 end Set_No_Dynamic_Predicate_On_Actual;
5838
70482933
RK
5839 procedure Set_No_Pool_Assigned (Id : E; V : B := True) is
5840 begin
d347f572 5841 pragma Assert (Is_Access_Type (Id) and then Is_Base_Type (Id));
70482933
RK
5842 Set_Flag131 (Id, V);
5843 end Set_No_Pool_Assigned;
5844
a6282852
ES
5845 procedure Set_No_Predicate_On_Actual (Id : E; V : B := True) is
5846 begin
5847 pragma Assert (Is_Discrete_Type (Id));
5848 Set_Flag275 (Id, V);
5849 end Set_No_Predicate_On_Actual;
5850
70482933
RK
5851 procedure Set_No_Return (Id : E; V : B := True) is
5852 begin
5853 pragma Assert
3428cb9f 5854 (V = False or else Ekind_In (Id, E_Procedure, E_Generic_Procedure));
70482933
RK
5855 Set_Flag113 (Id, V);
5856 end Set_No_Return;
5857
8a6a52dc
AC
5858 procedure Set_No_Strict_Aliasing (Id : E; V : B := True) is
5859 begin
d347f572 5860 pragma Assert (Is_Access_Type (Id) and then Is_Base_Type (Id));
8a6a52dc
AC
5861 Set_Flag136 (Id, V);
5862 end Set_No_Strict_Aliasing;
5863
49d41397
RD
5864 procedure Set_No_Tagged_Streams_Pragma (Id : E; V : E) is
5865 begin
5866 pragma Assert (Is_Tagged_Type (Id));
5867 Set_Node32 (Id, V);
5868 end Set_No_Tagged_Streams_Pragma;
5869
70482933
RK
5870 procedure Set_Non_Binary_Modulus (Id : E; V : B := True) is
5871 begin
d347f572 5872 pragma Assert (Is_Type (Id) and then Is_Base_Type (Id));
70482933
RK
5873 Set_Flag58 (Id, V);
5874 end Set_Non_Binary_Modulus;
5875
fbf5a39b 5876 procedure Set_Non_Limited_View (Id : E; V : E) is
fbf5a39b 5877 begin
dc726757 5878 pragma Assert
47346923 5879 (Ekind (Id) in Incomplete_Kind
f8dae9bb 5880 or else Ekind_In (Id, E_Abstract_State, E_Class_Wide_Type));
47346923 5881 Set_Node19 (Id, V);
fbf5a39b
AC
5882 end Set_Non_Limited_View;
5883
70482933
RK
5884 procedure Set_Nonzero_Is_True (Id : E; V : B := True) is
5885 begin
5886 pragma Assert
5887 (Root_Type (Id) = Standard_Boolean
5888 and then Ekind (Id) = E_Enumeration_Type);
5889 Set_Flag162 (Id, V);
5890 end Set_Nonzero_Is_True;
5891
5892 procedure Set_Normalized_First_Bit (Id : E; V : U) is
5893 begin
3428cb9f 5894 pragma Assert (Ekind_In (Id, E_Component, E_Discriminant));
70482933
RK
5895 Set_Uint8 (Id, V);
5896 end Set_Normalized_First_Bit;
5897
5898 procedure Set_Normalized_Position (Id : E; V : U) is
5899 begin
3428cb9f 5900 pragma Assert (Ekind_In (Id, E_Component, E_Discriminant));
fbf5a39b 5901 Set_Uint14 (Id, V);
70482933
RK
5902 end Set_Normalized_Position;
5903
5904 procedure Set_Normalized_Position_Max (Id : E; V : U) is
5905 begin
3428cb9f 5906 pragma Assert (Ekind_In (Id, E_Component, E_Discriminant));
70482933
RK
5907 Set_Uint10 (Id, V);
5908 end Set_Normalized_Position_Max;
5909
d1f453b7
RD
5910 procedure Set_OK_To_Rename (Id : E; V : B := True) is
5911 begin
5912 pragma Assert (Ekind (Id) = E_Variable);
5913 Set_Flag247 (Id, V);
5914 end Set_OK_To_Rename;
5915
0f282086
RD
5916 procedure Set_OK_To_Reorder_Components (Id : E; V : B := True) is
5917 begin
5918 pragma Assert
d347f572 5919 (Is_Record_Type (Id) and then Is_Base_Type (Id));
0f282086
RD
5920 Set_Flag239 (Id, V);
5921 end Set_OK_To_Reorder_Components;
5922
21d27997
RD
5923 procedure Set_Optimize_Alignment_Space (Id : E; V : B := True) is
5924 begin
5925 pragma Assert
3428cb9f 5926 (Is_Type (Id) or else Ekind_In (Id, E_Constant, E_Variable));
21d27997
RD
5927 Set_Flag241 (Id, V);
5928 end Set_Optimize_Alignment_Space;
5929
5930 procedure Set_Optimize_Alignment_Time (Id : E; V : B := True) is
5931 begin
5932 pragma Assert
3428cb9f 5933 (Is_Type (Id) or else Ekind_In (Id, E_Constant, E_Variable));
21d27997
RD
5934 Set_Flag242 (Id, V);
5935 end Set_Optimize_Alignment_Time;
5936
aa1e353a
AC
5937 procedure Set_Original_Access_Type (Id : E; V : E) is
5938 begin
5939 pragma Assert (Ekind (Id) = E_Access_Subprogram_Type);
760804f3 5940 Set_Node28 (Id, V);
aa1e353a
AC
5941 end Set_Original_Access_Type;
5942
07fc65c4
GB
5943 procedure Set_Original_Array_Type (Id : E; V : E) is
5944 begin
5945 pragma Assert (Is_Array_Type (Id) or else Is_Modular_Integer_Type (Id));
5946 Set_Node21 (Id, V);
5947 end Set_Original_Array_Type;
5948
42f11e4c
AC
5949 procedure Set_Original_Protected_Subprogram (Id : E; V : N) is
5950 begin
bac5ba15 5951 pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
42f11e4c
AC
5952 Set_Node41 (Id, V);
5953 end Set_Original_Protected_Subprogram;
5954
70482933
RK
5955 procedure Set_Original_Record_Component (Id : E; V : E) is
5956 begin
3428cb9f 5957 pragma Assert (Ekind_In (Id, E_Void, E_Component, E_Discriminant));
70482933
RK
5958 Set_Node22 (Id, V);
5959 end Set_Original_Record_Component;
5960
21d27997
RD
5961 procedure Set_Overlays_Constant (Id : E; V : B := True) is
5962 begin
5963 Set_Flag243 (Id, V);
5964 end Set_Overlays_Constant;
5965
10b93b2e
HK
5966 procedure Set_Overridden_Operation (Id : E; V : E) is
5967 begin
9a476d75 5968 pragma Assert (Is_Subprogram (Id) or else Is_Generic_Subprogram (Id));
10b93b2e
HK
5969 Set_Node26 (Id, V);
5970 end Set_Overridden_Operation;
5971
f4d379b8
HK
5972 procedure Set_Package_Instantiation (Id : E; V : N) is
5973 begin
3428cb9f 5974 pragma Assert (Ekind_In (Id, E_Void, E_Generic_Package, E_Package));
f4d379b8
HK
5975 Set_Node26 (Id, V);
5976 end Set_Package_Instantiation;
5977
8ca597af 5978 procedure Set_Packed_Array_Impl_Type (Id : E; V : E) is
70482933
RK
5979 begin
5980 pragma Assert (Is_Array_Type (Id));
5981 Set_Node23 (Id, V);
8ca597af 5982 end Set_Packed_Array_Impl_Type;
70482933
RK
5983
5984 procedure Set_Parent_Subtype (Id : E; V : E) is
5985 begin
5986 pragma Assert (Ekind (Id) = E_Record_Type);
5987 Set_Node19 (Id, V);
5988 end Set_Parent_Subtype;
5989
d7af5ea5
HK
5990 procedure Set_Part_Of_Constituents (Id : E; V : L) is
5991 begin
75b87c16
AC
5992 pragma Assert (Ekind_In (Id, E_Abstract_State, E_Variable));
5993 Set_Elist10 (Id, V);
d7af5ea5
HK
5994 end Set_Part_Of_Constituents;
5995
fdc54be6
AC
5996 procedure Set_Part_Of_References (Id : E; V : L) is
5997 begin
5998 pragma Assert (Ekind (Id) = E_Variable);
5999 Set_Elist11 (Id, V);
6000 end Set_Part_Of_References;
6001
07a64c02
AC
6002 procedure Set_Partial_View_Has_Unknown_Discr (Id : E; V : B := True) is
6003 begin
6004 pragma Assert (Is_Type (Id));
6005 Set_Flag280 (Id, V);
6006 end Set_Partial_View_Has_Unknown_Discr;
6007
760804f3
AC
6008 procedure Set_Pending_Access_Types (Id : E; V : L) is
6009 begin
6010 pragma Assert (Is_Type (Id));
6011 Set_Elist15 (Id, V);
6012 end Set_Pending_Access_Types;
6013
c9d70ab1 6014 procedure Set_Postconditions_Proc (Id : E; V : E) is
7ca78bba 6015 begin
c9d70ab1
AC
6016 pragma Assert (Ekind_In (Id, E_Entry,
6017 E_Entry_Family,
6018 E_Function,
6019 E_Procedure));
6020 Set_Node14 (Id, V);
6021 end Set_Postconditions_Proc;
7ca78bba 6022
8d4611f7
AC
6023 procedure Set_Predicates_Ignored (Id : E; V : B) is
6024 begin
6025 pragma Assert (Is_Type (Id));
6026 Set_Flag288 (Id, V);
6027 end Set_Predicates_Ignored;
6028
ef2a63ba 6029 procedure Set_Direct_Primitive_Operations (Id : E; V : L) is
70482933 6030 begin
46202729
AC
6031 pragma Assert (Is_Tagged_Type (Id));
6032 Set_Elist10 (Id, V);
ef2a63ba 6033 end Set_Direct_Primitive_Operations;
70482933
RK
6034
6035 procedure Set_Prival (Id : E; V : E) is
6036 begin
21d27997 6037 pragma Assert (Is_Protected_Component (Id));
70482933
RK
6038 Set_Node17 (Id, V);
6039 end Set_Prival;
6040
21d27997 6041 procedure Set_Prival_Link (Id : E; V : E) is
70482933 6042 begin
3428cb9f 6043 pragma Assert (Ekind_In (Id, E_Constant, E_Variable));
21d27997
RD
6044 Set_Node20 (Id, V);
6045 end Set_Prival_Link;
70482933
RK
6046
6047 procedure Set_Private_Dependents (Id : E; V : L) is
6048 begin
6049 pragma Assert (Is_Incomplete_Or_Private_Type (Id));
6050 Set_Elist18 (Id, V);
6051 end Set_Private_Dependents;
6052
6053 procedure Set_Private_View (Id : E; V : N) is
6054 begin
6055 pragma Assert (Is_Private_Type (Id));
6056 Set_Node22 (Id, V);
6057 end Set_Private_View;
6058
6059 procedure Set_Protected_Body_Subprogram (Id : E; V : E) is
6060 begin
6061 pragma Assert (Is_Subprogram (Id) or else Is_Entry (Id));
6062 Set_Node11 (Id, V);
6063 end Set_Protected_Body_Subprogram;
6064
6065 procedure Set_Protected_Formal (Id : E; V : E) is
6066 begin
6067 pragma Assert (Is_Formal (Id));
6068 Set_Node22 (Id, V);
6069 end Set_Protected_Formal;
6070
21d27997 6071 procedure Set_Protection_Object (Id : E; V : E) is
70482933 6072 begin
3428cb9f
AC
6073 pragma Assert (Ekind_In (Id, E_Entry,
6074 E_Entry_Family,
6075 E_Function,
6076 E_Procedure));
70482933 6077 Set_Node23 (Id, V);
21d27997 6078 end Set_Protection_Object;
70482933
RK
6079
6080 procedure Set_Reachable (Id : E; V : B := True) is
6081 begin
6082 Set_Flag49 (Id, V);
6083 end Set_Reachable;
6084
6085 procedure Set_Referenced (Id : E; V : B := True) is
6086 begin
6087 Set_Flag156 (Id, V);
6088 end Set_Referenced;
6089
fbf5a39b
AC
6090 procedure Set_Referenced_As_LHS (Id : E; V : B := True) is
6091 begin
6092 Set_Flag36 (Id, V);
6093 end Set_Referenced_As_LHS;
6094
ce0bead3
HK
6095 procedure Set_Referenced_As_Out_Parameter (Id : E; V : B := True) is
6096 begin
6097 Set_Flag227 (Id, V);
6098 end Set_Referenced_As_Out_Parameter;
6099
ab8843fa
HK
6100 procedure Set_Refinement_Constituents (Id : E; V : L) is
6101 begin
6102 pragma Assert (Ekind (Id) = E_Abstract_State);
6103 Set_Elist8 (Id, V);
6104 end Set_Refinement_Constituents;
6105
70482933
RK
6106 procedure Set_Register_Exception_Call (Id : E; V : N) is
6107 begin
6108 pragma Assert (Ekind (Id) = E_Exception);
6109 Set_Node20 (Id, V);
6110 end Set_Register_Exception_Call;
6111
6112 procedure Set_Related_Array_Object (Id : E; V : E) is
6113 begin
6114 pragma Assert (Is_Array_Type (Id));
6d9e03cb 6115 Set_Node25 (Id, V);
70482933
RK
6116 end Set_Related_Array_Object;
6117
a4941eec
ES
6118 procedure Set_Related_Expression (Id : E; V : N) is
6119 begin
5c52bf3b
AC
6120 pragma Assert (Ekind (Id) in Type_Kind
6121 or else Ekind_In (Id, E_Constant, E_Variable, E_Void));
a4941eec
ES
6122 Set_Node24 (Id, V);
6123 end Set_Related_Expression;
6124
70482933
RK
6125 procedure Set_Related_Instance (Id : E; V : E) is
6126 begin
3428cb9f 6127 pragma Assert (Ekind_In (Id, E_Package, E_Package_Body));
70482933
RK
6128 Set_Node15 (Id, V);
6129 end Set_Related_Instance;
6130
ce0bead3 6131 procedure Set_Related_Type (Id : E; V : E) is
0a36105d 6132 begin
cefce34c
JM
6133 pragma Assert (Ekind_In (Id, E_Component, E_Constant, E_Variable));
6134 Set_Node27 (Id, V);
ce0bead3 6135 end Set_Related_Type;
0a36105d 6136
21d27997
RD
6137 procedure Set_Relative_Deadline_Variable (Id : E; V : E) is
6138 begin
d347f572 6139 pragma Assert (Is_Task_Type (Id) and then Is_Base_Type (Id));
760804f3 6140 Set_Node28 (Id, V);
21d27997
RD
6141 end Set_Relative_Deadline_Variable;
6142
70482933
RK
6143 procedure Set_Renamed_Entity (Id : E; V : N) is
6144 begin
6145 Set_Node18 (Id, V);
6146 end Set_Renamed_Entity;
6147
ce0bead3
HK
6148 procedure Set_Renamed_In_Spec (Id : E; V : B := True) is
6149 begin
6150 pragma Assert (Ekind (Id) = E_Package);
6151 Set_Flag231 (Id, V);
6152 end Set_Renamed_In_Spec;
6153
70482933
RK
6154 procedure Set_Renamed_Object (Id : E; V : N) is
6155 begin
6156 Set_Node18 (Id, V);
6157 end Set_Renamed_Object;
6158
6159 procedure Set_Renaming_Map (Id : E; V : U) is
6160 begin
6161 Set_Uint9 (Id, V);
6162 end Set_Renaming_Map;
6163
f937473f
RD
6164 procedure Set_Requires_Overriding (Id : E; V : B := True) is
6165 begin
6166 pragma Assert (Is_Overloadable (Id));
6167 Set_Flag213 (Id, V);
6168 end Set_Requires_Overriding;
6169
70482933
RK
6170 procedure Set_Return_Present (Id : E; V : B := True) is
6171 begin
6172 Set_Flag54 (Id, V);
6173 end Set_Return_Present;
6174
6e443c90
RD
6175 procedure Set_Return_Applies_To (Id : E; V : N) is
6176 begin
6177 Set_Node8 (Id, V);
6178 end Set_Return_Applies_To;
6179
70482933
RK
6180 procedure Set_Returns_By_Ref (Id : E; V : B := True) is
6181 begin
6182 Set_Flag90 (Id, V);
6183 end Set_Returns_By_Ref;
6184
6185 procedure Set_Reverse_Bit_Order (Id : E; V : B := True) is
6186 begin
6187 pragma Assert
d347f572 6188 (Is_Record_Type (Id) and then Is_Base_Type (Id));
70482933
RK
6189 Set_Flag164 (Id, V);
6190 end Set_Reverse_Bit_Order;
6191
de94a7e7
AC
6192 procedure Set_Reverse_Storage_Order (Id : E; V : B := True) is
6193 begin
6194 pragma Assert
22a83cea
AC
6195 (Is_Base_Type (Id)
6196 and then (Is_Record_Type (Id) or else Is_Array_Type (Id)));
de94a7e7
AC
6197 Set_Flag93 (Id, V);
6198 end Set_Reverse_Storage_Order;
6199
2700b9c1
AC
6200 procedure Set_Rewritten_For_C (Id : E; V : B := True) is
6201 begin
6202 pragma Assert (Ekind (Id) = E_Function);
6203 Set_Flag287 (Id, V);
6204 end Set_Rewritten_For_C;
6205
70482933
RK
6206 procedure Set_RM_Size (Id : E; V : U) is
6207 begin
6208 pragma Assert (Is_Type (Id));
6209 Set_Uint13 (Id, V);
6210 end Set_RM_Size;
6211
6212 procedure Set_Scalar_Range (Id : E; V : N) is
6213 begin
6214 Set_Node20 (Id, V);
6215 end Set_Scalar_Range;
6216
6217 procedure Set_Scale_Value (Id : E; V : U) is
6218 begin
760804f3 6219 Set_Uint16 (Id, V);
70482933
RK
6220 end Set_Scale_Value;
6221
6222 procedure Set_Scope_Depth_Value (Id : E; V : U) is
6223 begin
6224 pragma Assert (not Is_Record_Type (Id));
6225 Set_Uint22 (Id, V);
6226 end Set_Scope_Depth_Value;
6227
6228 procedure Set_Sec_Stack_Needed_For_Return (Id : E; V : B := True) is
6229 begin
6230 Set_Flag167 (Id, V);
6231 end Set_Sec_Stack_Needed_For_Return;
6232
6233 procedure Set_Shadow_Entities (Id : E; V : S) is
6234 begin
3428cb9f 6235 pragma Assert (Ekind_In (Id, E_Package, E_Generic_Package));
70482933
RK
6236 Set_List14 (Id, V);
6237 end Set_Shadow_Entities;
6238
685094bf 6239 procedure Set_Shared_Var_Procs_Instance (Id : E; V : E) is
70482933
RK
6240 begin
6241 pragma Assert (Ekind (Id) = E_Variable);
6242 Set_Node22 (Id, V);
685094bf 6243 end Set_Shared_Var_Procs_Instance;
70482933
RK
6244
6245 procedure Set_Size_Check_Code (Id : E; V : N) is
6246 begin
3428cb9f 6247 pragma Assert (Ekind_In (Id, E_Constant, E_Variable));
fbf5a39b 6248 Set_Node19 (Id, V);
70482933
RK
6249 end Set_Size_Check_Code;
6250
6251 procedure Set_Size_Depends_On_Discriminant (Id : E; V : B := True) is
6252 begin
6253 Set_Flag177 (Id, V);
6254 end Set_Size_Depends_On_Discriminant;
6255
6256 procedure Set_Size_Known_At_Compile_Time (Id : E; V : B := True) is
6257 begin
6258 Set_Flag92 (Id, V);
6259 end Set_Size_Known_At_Compile_Time;
6260
6261 procedure Set_Small_Value (Id : E; V : R) is
6262 begin
6263 pragma Assert (Is_Fixed_Point_Type (Id));
6264 Set_Ureal21 (Id, V);
6265 end Set_Small_Value;
6266
579847c2
AC
6267 procedure Set_SPARK_Aux_Pragma (Id : E; V : N) is
6268 begin
6269 pragma Assert
75b87c16
AC
6270 (Ekind_In (Id, E_Protected_Type, -- concurrent variants
6271 E_Task_Type)
877a5a12 6272 or else
75b87c16
AC
6273 Ekind_In (Id, E_Generic_Package, -- package variants
6274 E_Package,
6275 E_Package_Body));
877a5a12 6276 Set_Node41 (Id, V);
579847c2
AC
6277 end Set_SPARK_Aux_Pragma;
6278
6279 procedure Set_SPARK_Aux_Pragma_Inherited (Id : E; V : B := True) is
6280 begin
6281 pragma Assert
75b87c16
AC
6282 (Ekind_In (Id, E_Protected_Type, -- concurrent variants
6283 E_Task_Type)
877a5a12 6284 or else
75b87c16
AC
6285 Ekind_In (Id, E_Generic_Package, -- package variants
6286 E_Package,
6287 E_Package_Body));
579847c2
AC
6288 Set_Flag266 (Id, V);
6289 end Set_SPARK_Aux_Pragma_Inherited;
6290
6291 procedure Set_SPARK_Pragma (Id : E; V : N) is
1c6269d3
HK
6292 begin
6293 pragma Assert
75b87c16
AC
6294 (Ekind_In (Id, E_Protected_Body, -- concurrent variants
6295 E_Protected_Type,
6296 E_Task_Body,
6297 E_Task_Type)
6298 or else
6299 Ekind_In (Id, E_Entry, -- overloadable variants
877a5a12
AC
6300 E_Entry_Family,
6301 E_Function,
1c6269d3
HK
6302 E_Generic_Function,
6303 E_Generic_Procedure,
f99ff327 6304 E_Operator,
1c6269d3
HK
6305 E_Procedure,
6306 E_Subprogram_Body)
6307 or else
6308 Ekind_In (Id, E_Generic_Package, -- package variants
6309 E_Package,
877a5a12
AC
6310 E_Package_Body)
6311 or else
75b87c16 6312 Ekind (Id) = E_Variable); -- variable
877a5a12 6313 Set_Node40 (Id, V);
579847c2
AC
6314 end Set_SPARK_Pragma;
6315
6316 procedure Set_SPARK_Pragma_Inherited (Id : E; V : B := True) is
6317 begin
6318 pragma Assert
75b87c16
AC
6319 (Ekind_In (Id, E_Protected_Body, -- concurrent variants
6320 E_Protected_Type,
6321 E_Task_Body,
6322 E_Task_Type)
6323 or else
6324 Ekind_In (Id, E_Entry, -- overloadable variants
877a5a12
AC
6325 E_Entry_Family,
6326 E_Function,
579847c2
AC
6327 E_Generic_Function,
6328 E_Generic_Procedure,
f99ff327 6329 E_Operator,
579847c2
AC
6330 E_Procedure,
6331 E_Subprogram_Body)
6332 or else
6333 Ekind_In (Id, E_Generic_Package, -- package variants
6334 E_Package,
877a5a12
AC
6335 E_Package_Body)
6336 or else
75b87c16 6337 Ekind (Id) = E_Variable); -- variable
579847c2
AC
6338 Set_Flag265 (Id, V);
6339 end Set_SPARK_Pragma_Inherited;
1c6269d3 6340
70482933
RK
6341 procedure Set_Spec_Entity (Id : E; V : E) is
6342 begin
6343 pragma Assert (Ekind (Id) = E_Package_Body or else Is_Formal (Id));
6344 Set_Node19 (Id, V);
6345 end Set_Spec_Entity;
6346
220d1fd9
AC
6347 procedure Set_SSO_Set_High_By_Default (Id : E; V : B := True) is
6348 begin
6349 pragma Assert
6350 (Is_Base_Type (Id)
6351 and then (Is_Record_Type (Id) or else Is_Array_Type (Id)));
6352 Set_Flag273 (Id, V);
6353 end Set_SSO_Set_High_By_Default;
6354
6355 procedure Set_SSO_Set_Low_By_Default (Id : E; V : B := True) is
6356 begin
6357 pragma Assert
6358 (Is_Base_Type (Id)
6359 and then (Is_Record_Type (Id) or else Is_Array_Type (Id)));
6360 Set_Flag272 (Id, V);
6361 end Set_SSO_Set_Low_By_Default;
6362
60f908dd 6363 procedure Set_Static_Discrete_Predicate (Id : E; V : S) is
26df19ce 6364 begin
baa571ab 6365 pragma Assert (Is_Discrete_Type (Id) and then Has_Predicates (Id));
86200f66 6366 Set_List25 (Id, V);
60f908dd 6367 end Set_Static_Discrete_Predicate;
26df19ce 6368
fc3a3f3b
RD
6369 procedure Set_Static_Real_Or_String_Predicate (Id : E; V : N) is
6370 begin
6371 pragma Assert ((Is_Real_Type (Id) or else Is_String_Type (Id))
6372 and then Has_Predicates (Id));
6373 Set_Node25 (Id, V);
6374 end Set_Static_Real_Or_String_Predicate;
6375
3cebd1c0
AC
6376 procedure Set_Status_Flag_Or_Transient_Decl (Id : E; V : E) is
6377 begin
6378 pragma Assert (Ekind_In (Id, E_Constant, E_Variable));
6379 Set_Node15 (Id, V);
6380 end Set_Status_Flag_Or_Transient_Decl;
6381
70482933
RK
6382 procedure Set_Storage_Size_Variable (Id : E; V : E) is
6383 begin
6384 pragma Assert (Is_Access_Type (Id) or else Is_Task_Type (Id));
21d27997 6385 pragma Assert (Id = Base_Type (Id));
760804f3 6386 Set_Node26 (Id, V);
70482933
RK
6387 end Set_Storage_Size_Variable;
6388
0a36105d
JM
6389 procedure Set_Static_Elaboration_Desired (Id : E; V : B) is
6390 begin
6391 pragma Assert (Ekind (Id) = E_Package);
6392 Set_Flag77 (Id, V);
6393 end Set_Static_Elaboration_Desired;
6394
6395 procedure Set_Static_Initialization (Id : E; V : N) is
6396 begin
6397 pragma Assert
6398 (Ekind (Id) = E_Procedure and then not Is_Dispatching_Operation (Id));
477cfc5b 6399 Set_Node30 (Id, V);
0a36105d
JM
6400 end Set_Static_Initialization;
6401
fbf5a39b
AC
6402 procedure Set_Stored_Constraint (Id : E; V : L) is
6403 begin
6404 pragma Assert (Nkind (Id) in N_Entity);
6405 Set_Elist23 (Id, V);
6406 end Set_Stored_Constraint;
6407
50ea6357
AC
6408 procedure Set_Stores_Attribute_Old_Prefix (Id : E; V : B := True) is
6409 begin
6410 pragma Assert (Ekind (Id) = E_Constant);
6411 Set_Flag270 (Id, V);
6412 end Set_Stores_Attribute_Old_Prefix;
6413
70482933
RK
6414 procedure Set_Strict_Alignment (Id : E; V : B := True) is
6415 begin
21d27997 6416 pragma Assert (Id = Base_Type (Id));
70482933
RK
6417 Set_Flag145 (Id, V);
6418 end Set_Strict_Alignment;
6419
6420 procedure Set_String_Literal_Length (Id : E; V : U) is
6421 begin
6422 pragma Assert (Ekind (Id) = E_String_Literal_Subtype);
6423 Set_Uint16 (Id, V);
6424 end Set_String_Literal_Length;
6425
6426 procedure Set_String_Literal_Low_Bound (Id : E; V : N) is
6427 begin
6428 pragma Assert (Ekind (Id) = E_String_Literal_Subtype);
760804f3 6429 Set_Node18 (Id, V);
70482933
RK
6430 end Set_String_Literal_Low_Bound;
6431
3ddfabe3 6432 procedure Set_Subprograms_For_Type (Id : E; V : L) is
fd0ff1cf 6433 begin
3ddfabe3
AC
6434 pragma Assert (Is_Type (Id));
6435 Set_Elist29 (Id, V);
fd0ff1cf
RD
6436 end Set_Subprograms_For_Type;
6437
3830827c
AC
6438 procedure Set_Subps_Index (Id : E; V : U) is
6439 begin
6440 pragma Assert (Is_Subprogram (Id));
6441 Set_Uint24 (Id, V);
6442 end Set_Subps_Index;
6443
70482933
RK
6444 procedure Set_Suppress_Elaboration_Warnings (Id : E; V : B := True) is
6445 begin
6446 Set_Flag148 (Id, V);
6447 end Set_Suppress_Elaboration_Warnings;
6448
5b1e6aca 6449 procedure Set_Suppress_Initialization (Id : E; V : B := True) is
70482933 6450 begin
99425ec3 6451 pragma Assert (Is_Type (Id) or else Ekind (Id) = E_Variable);
70482933 6452 Set_Flag105 (Id, V);
5b1e6aca 6453 end Set_Suppress_Initialization;
70482933 6454
70482933
RK
6455 procedure Set_Suppress_Style_Checks (Id : E; V : B := True) is
6456 begin
6457 Set_Flag165 (Id, V);
6458 end Set_Suppress_Style_Checks;
6459
0a36105d
JM
6460 procedure Set_Suppress_Value_Tracking_On_Call (Id : E; V : B := True) is
6461 begin
6462 Set_Flag217 (Id, V);
6463 end Set_Suppress_Value_Tracking_On_Call;
6464
a9d8907c
JM
6465 procedure Set_Task_Body_Procedure (Id : E; V : N) is
6466 begin
6e443c90
RD
6467 pragma Assert (Ekind (Id) in Task_Kind);
6468 Set_Node25 (Id, V);
a9d8907c
JM
6469 end Set_Task_Body_Procedure;
6470
59fad002
AC
6471 procedure Set_Thunk_Entity (Id : E; V : E) is
6472 begin
6473 pragma Assert (Ekind_In (Id, E_Function, E_Procedure)
6474 and then Is_Thunk (Id));
6475 Set_Node31 (Id, V);
6476 end Set_Thunk_Entity;
6477
fbf5a39b 6478 procedure Set_Treat_As_Volatile (Id : E; V : B := True) is
70482933
RK
6479 begin
6480 Set_Flag41 (Id, V);
fbf5a39b 6481 end Set_Treat_As_Volatile;
70482933
RK
6482
6483 procedure Set_Underlying_Full_View (Id : E; V : E) is
6484 begin
6485 pragma Assert (Ekind (Id) in Private_Kind);
6486 Set_Node19 (Id, V);
6487 end Set_Underlying_Full_View;
6488
39f346aa
ES
6489 procedure Set_Underlying_Record_View (Id : E; V : E) is
6490 begin
6491 pragma Assert (Ekind (Id) = E_Record_Type);
cf49bd32 6492 Set_Node28 (Id, V);
39f346aa
ES
6493 end Set_Underlying_Record_View;
6494
0a36105d
JM
6495 procedure Set_Universal_Aliasing (Id : E; V : B := True) is
6496 begin
d347f572 6497 pragma Assert (Is_Type (Id) and then Is_Base_Type (Id));
0a36105d
JM
6498 Set_Flag216 (Id, V);
6499 end Set_Universal_Aliasing;
6500
70482933
RK
6501 procedure Set_Unset_Reference (Id : E; V : N) is
6502 begin
6503 Set_Node16 (Id, V);
6504 end Set_Unset_Reference;
6505
5d37ba92
ES
6506 procedure Set_Used_As_Generic_Actual (Id : E; V : B := True) is
6507 begin
6508 Set_Flag222 (Id, V);
6509 end Set_Used_As_Generic_Actual;
6510
88e7531b
AC
6511 procedure Set_Uses_Lock_Free (Id : E; V : B := True) is
6512 begin
6513 pragma Assert (Ekind (Id) = E_Protected_Type);
6514 Set_Flag188 (Id, V);
6515 end Set_Uses_Lock_Free;
6516
6517 procedure Set_Uses_Sec_Stack (Id : E; V : B := True) is
6518 begin
6519 Set_Flag95 (Id, V);
6520 end Set_Uses_Sec_Stack;
6521
70482933
RK
6522 procedure Set_Warnings_Off (Id : E; V : B := True) is
6523 begin
6524 Set_Flag96 (Id, V);
6525 end Set_Warnings_Off;
6526
0f282086
RD
6527 procedure Set_Warnings_Off_Used (Id : E; V : B := True) is
6528 begin
6529 Set_Flag236 (Id, V);
6530 end Set_Warnings_Off_Used;
6531
6532 procedure Set_Warnings_Off_Used_Unmodified (Id : E; V : B := True) is
6533 begin
6534 Set_Flag237 (Id, V);
6535 end Set_Warnings_Off_Used_Unmodified;
6536
6537 procedure Set_Warnings_Off_Used_Unreferenced (Id : E; V : B := True) is
6538 begin
6539 Set_Flag238 (Id, V);
6540 end Set_Warnings_Off_Used_Unreferenced;
6541
10b93b2e
HK
6542 procedure Set_Was_Hidden (Id : E; V : B := True) is
6543 begin
6544 Set_Flag196 (Id, V);
6545 end Set_Was_Hidden;
6546
6547 procedure Set_Wrapped_Entity (Id : E; V : E) is
6548 begin
3428cb9f 6549 pragma Assert (Ekind_In (Id, E_Function, E_Procedure)
df3e68b1 6550 and then Is_Primitive_Wrapper (Id));
10b93b2e
HK
6551 Set_Node27 (Id, V);
6552 end Set_Wrapped_Entity;
6553
70482933
RK
6554 -----------------------------------
6555 -- Field Initialization Routines --
6556 -----------------------------------
6557
6558 procedure Init_Alignment (Id : E) is
6559 begin
6560 Set_Uint14 (Id, Uint_0);
6561 end Init_Alignment;
6562
6563 procedure Init_Alignment (Id : E; V : Int) is
6564 begin
6565 Set_Uint14 (Id, UI_From_Int (V));
6566 end Init_Alignment;
6567
6568 procedure Init_Component_Bit_Offset (Id : E) is
6569 begin
6570 Set_Uint11 (Id, No_Uint);
6571 end Init_Component_Bit_Offset;
6572
6573 procedure Init_Component_Bit_Offset (Id : E; V : Int) is
6574 begin
6575 Set_Uint11 (Id, UI_From_Int (V));
6576 end Init_Component_Bit_Offset;
6577
6578 procedure Init_Component_Size (Id : E) is
6579 begin
6580 Set_Uint22 (Id, Uint_0);
6581 end Init_Component_Size;
6582
6583 procedure Init_Component_Size (Id : E; V : Int) is
6584 begin
6585 Set_Uint22 (Id, UI_From_Int (V));
6586 end Init_Component_Size;
6587
6588 procedure Init_Digits_Value (Id : E) is
6589 begin
6590 Set_Uint17 (Id, Uint_0);
6591 end Init_Digits_Value;
6592
6593 procedure Init_Digits_Value (Id : E; V : Int) is
6594 begin
6595 Set_Uint17 (Id, UI_From_Int (V));
6596 end Init_Digits_Value;
6597
6598 procedure Init_Esize (Id : E) is
6599 begin
6600 Set_Uint12 (Id, Uint_0);
6601 end Init_Esize;
6602
6603 procedure Init_Esize (Id : E; V : Int) is
6604 begin
6605 Set_Uint12 (Id, UI_From_Int (V));
6606 end Init_Esize;
6607
6608 procedure Init_Normalized_First_Bit (Id : E) is
6609 begin
6610 Set_Uint8 (Id, No_Uint);
6611 end Init_Normalized_First_Bit;
6612
6613 procedure Init_Normalized_First_Bit (Id : E; V : Int) is
6614 begin
6615 Set_Uint8 (Id, UI_From_Int (V));
6616 end Init_Normalized_First_Bit;
6617
6618 procedure Init_Normalized_Position (Id : E) is
6619 begin
fbf5a39b 6620 Set_Uint14 (Id, No_Uint);
70482933
RK
6621 end Init_Normalized_Position;
6622
6623 procedure Init_Normalized_Position (Id : E; V : Int) is
6624 begin
fbf5a39b 6625 Set_Uint14 (Id, UI_From_Int (V));
70482933
RK
6626 end Init_Normalized_Position;
6627
6628 procedure Init_Normalized_Position_Max (Id : E) is
6629 begin
6630 Set_Uint10 (Id, No_Uint);
6631 end Init_Normalized_Position_Max;
6632
6633 procedure Init_Normalized_Position_Max (Id : E; V : Int) is
6634 begin
6635 Set_Uint10 (Id, UI_From_Int (V));
6636 end Init_Normalized_Position_Max;
6637
6638 procedure Init_RM_Size (Id : E) is
6639 begin
6640 Set_Uint13 (Id, Uint_0);
6641 end Init_RM_Size;
6642
6643 procedure Init_RM_Size (Id : E; V : Int) is
6644 begin
6645 Set_Uint13 (Id, UI_From_Int (V));
6646 end Init_RM_Size;
6647
6648 -----------------------------
6649 -- Init_Component_Location --
6650 -----------------------------
6651
6652 procedure Init_Component_Location (Id : E) is
6653 begin
6654 Set_Uint8 (Id, No_Uint); -- Normalized_First_Bit
fbf5a39b 6655 Set_Uint10 (Id, No_Uint); -- Normalized_Position_Max
5d37ba92 6656 Set_Uint11 (Id, No_Uint); -- Component_Bit_Offset
70482933 6657 Set_Uint12 (Id, Uint_0); -- Esize
fbf5a39b 6658 Set_Uint14 (Id, No_Uint); -- Normalized_Position
70482933
RK
6659 end Init_Component_Location;
6660
996c8821
RD
6661 ----------------------------
6662 -- Init_Object_Size_Align --
6663 ----------------------------
6664
6665 procedure Init_Object_Size_Align (Id : E) is
6666 begin
6667 Set_Uint12 (Id, Uint_0); -- Esize
6668 Set_Uint14 (Id, Uint_0); -- Alignment
6669 end Init_Object_Size_Align;
6670
70482933
RK
6671 ---------------
6672 -- Init_Size --
6673 ---------------
6674
6675 procedure Init_Size (Id : E; V : Int) is
6676 begin
d15f9422 6677 pragma Assert (not Is_Object (Id));
996c8821 6678 Set_Uint12 (Id, UI_From_Int (V)); -- Esize
70482933
RK
6679 Set_Uint13 (Id, UI_From_Int (V)); -- RM_Size
6680 end Init_Size;
6681
6682 ---------------------
6683 -- Init_Size_Align --
6684 ---------------------
6685
6686 procedure Init_Size_Align (Id : E) is
6687 begin
d15f9422 6688 pragma Assert (not Is_Object (Id));
996c8821 6689 Set_Uint12 (Id, Uint_0); -- Esize
70482933
RK
6690 Set_Uint13 (Id, Uint_0); -- RM_Size
6691 Set_Uint14 (Id, Uint_0); -- Alignment
6692 end Init_Size_Align;
6693
6694 ----------------------------------------------
6695 -- Type Representation Attribute Predicates --
6696 ----------------------------------------------
6697
6698 function Known_Alignment (E : Entity_Id) return B is
6699 begin
07fc65c4
GB
6700 return Uint14 (E) /= Uint_0
6701 and then Uint14 (E) /= No_Uint;
70482933
RK
6702 end Known_Alignment;
6703
6704 function Known_Component_Bit_Offset (E : Entity_Id) return B is
6705 begin
6706 return Uint11 (E) /= No_Uint;
6707 end Known_Component_Bit_Offset;
6708
6709 function Known_Component_Size (E : Entity_Id) return B is
6710 begin
07fc65c4
GB
6711 return Uint22 (Base_Type (E)) /= Uint_0
6712 and then Uint22 (Base_Type (E)) /= No_Uint;
70482933
RK
6713 end Known_Component_Size;
6714
6715 function Known_Esize (E : Entity_Id) return B is
6716 begin
07fc65c4
GB
6717 return Uint12 (E) /= Uint_0
6718 and then Uint12 (E) /= No_Uint;
70482933
RK
6719 end Known_Esize;
6720
6721 function Known_Normalized_First_Bit (E : Entity_Id) return B is
6722 begin
6723 return Uint8 (E) /= No_Uint;
6724 end Known_Normalized_First_Bit;
6725
6726 function Known_Normalized_Position (E : Entity_Id) return B is
6727 begin
fbf5a39b 6728 return Uint14 (E) /= No_Uint;
70482933
RK
6729 end Known_Normalized_Position;
6730
6731 function Known_Normalized_Position_Max (E : Entity_Id) return B is
6732 begin
6733 return Uint10 (E) /= No_Uint;
6734 end Known_Normalized_Position_Max;
6735
6736 function Known_RM_Size (E : Entity_Id) return B is
6737 begin
07fc65c4
GB
6738 return Uint13 (E) /= No_Uint
6739 and then (Uint13 (E) /= Uint_0
fbf5a39b
AC
6740 or else Is_Discrete_Type (E)
6741 or else Is_Fixed_Point_Type (E));
70482933
RK
6742 end Known_RM_Size;
6743
6744 function Known_Static_Component_Bit_Offset (E : Entity_Id) return B is
6745 begin
6746 return Uint11 (E) /= No_Uint
6747 and then Uint11 (E) >= Uint_0;
6748 end Known_Static_Component_Bit_Offset;
6749
6750 function Known_Static_Component_Size (E : Entity_Id) return B is
6751 begin
6752 return Uint22 (Base_Type (E)) > Uint_0;
6753 end Known_Static_Component_Size;
6754
6755 function Known_Static_Esize (E : Entity_Id) return B is
6756 begin
92252980
RD
6757 return Uint12 (E) > Uint_0
6758 and then not Is_Generic_Type (E);
70482933
RK
6759 end Known_Static_Esize;
6760
07fc65c4
GB
6761 function Known_Static_Normalized_First_Bit (E : Entity_Id) return B is
6762 begin
6763 return Uint8 (E) /= No_Uint
6764 and then Uint8 (E) >= Uint_0;
6765 end Known_Static_Normalized_First_Bit;
6766
70482933
RK
6767 function Known_Static_Normalized_Position (E : Entity_Id) return B is
6768 begin
fbf5a39b
AC
6769 return Uint14 (E) /= No_Uint
6770 and then Uint14 (E) >= Uint_0;
70482933
RK
6771 end Known_Static_Normalized_Position;
6772
6773 function Known_Static_Normalized_Position_Max (E : Entity_Id) return B is
6774 begin
6775 return Uint10 (E) /= No_Uint
6776 and then Uint10 (E) >= Uint_0;
6777 end Known_Static_Normalized_Position_Max;
6778
6779 function Known_Static_RM_Size (E : Entity_Id) return B is
6780 begin
92252980
RD
6781 return (Uint13 (E) > Uint_0
6782 or else Is_Discrete_Type (E)
6783 or else Is_Fixed_Point_Type (E))
6784 and then not Is_Generic_Type (E);
70482933
RK
6785 end Known_Static_RM_Size;
6786
6787 function Unknown_Alignment (E : Entity_Id) return B is
6788 begin
07fc65c4
GB
6789 return Uint14 (E) = Uint_0
6790 or else Uint14 (E) = No_Uint;
70482933
RK
6791 end Unknown_Alignment;
6792
6793 function Unknown_Component_Bit_Offset (E : Entity_Id) return B is
6794 begin
6795 return Uint11 (E) = No_Uint;
6796 end Unknown_Component_Bit_Offset;
6797
6798 function Unknown_Component_Size (E : Entity_Id) return B is
6799 begin
07fc65c4
GB
6800 return Uint22 (Base_Type (E)) = Uint_0
6801 or else
6802 Uint22 (Base_Type (E)) = No_Uint;
70482933
RK
6803 end Unknown_Component_Size;
6804
6805 function Unknown_Esize (E : Entity_Id) return B is
6806 begin
07fc65c4
GB
6807 return Uint12 (E) = No_Uint
6808 or else
6809 Uint12 (E) = Uint_0;
70482933
RK
6810 end Unknown_Esize;
6811
6812 function Unknown_Normalized_First_Bit (E : Entity_Id) return B is
6813 begin
6814 return Uint8 (E) = No_Uint;
6815 end Unknown_Normalized_First_Bit;
6816
6817 function Unknown_Normalized_Position (E : Entity_Id) return B is
6818 begin
fbf5a39b 6819 return Uint14 (E) = No_Uint;
70482933
RK
6820 end Unknown_Normalized_Position;
6821
6822 function Unknown_Normalized_Position_Max (E : Entity_Id) return B is
6823 begin
6824 return Uint10 (E) = No_Uint;
6825 end Unknown_Normalized_Position_Max;
6826
6827 function Unknown_RM_Size (E : Entity_Id) return B is
6828 begin
07fc65c4 6829 return (Uint13 (E) = Uint_0
fbf5a39b
AC
6830 and then not Is_Discrete_Type (E)
6831 and then not Is_Fixed_Point_Type (E))
07fc65c4 6832 or else Uint13 (E) = No_Uint;
70482933
RK
6833 end Unknown_RM_Size;
6834
6835 --------------------
6836 -- Address_Clause --
6837 --------------------
6838
6839 function Address_Clause (Id : E) return N is
70482933 6840 begin
15e934bf 6841 return Get_Attribute_Definition_Clause (Id, Attribute_Address);
70482933
RK
6842 end Address_Clause;
6843
c159409f
AC
6844 ---------------
6845 -- Aft_Value --
6846 ---------------
6847
6848 function Aft_Value (Id : E) return U is
6849 Result : Nat := 1;
6850 Delta_Val : Ureal := Delta_Value (Id);
6851 begin
6852 while Delta_Val < Ureal_Tenth loop
6853 Delta_Val := Delta_Val * Ureal_10;
6854 Result := Result + 1;
6855 end loop;
6856
6857 return UI_From_Int (Result);
6858 end Aft_Value;
6859
70482933
RK
6860 ----------------------
6861 -- Alignment_Clause --
6862 ----------------------
6863
6864 function Alignment_Clause (Id : E) return N is
70482933 6865 begin
15e934bf 6866 return Get_Attribute_Definition_Clause (Id, Attribute_Alignment);
70482933
RK
6867 end Alignment_Clause;
6868
70482933
RK
6869 -------------------
6870 -- Append_Entity --
6871 -------------------
6872
6873 procedure Append_Entity (Id : Entity_Id; V : Entity_Id) is
6874 begin
6875 if Last_Entity (V) = Empty then
21d27997 6876 Set_First_Entity (Id => V, V => Id);
70482933
RK
6877 else
6878 Set_Next_Entity (Last_Entity (V), Id);
6879 end if;
6880
6881 Set_Next_Entity (Id, Empty);
6882 Set_Scope (Id, V);
21d27997 6883 Set_Last_Entity (Id => V, V => Id);
70482933
RK
6884 end Append_Entity;
6885
6886 ---------------
6887 -- Base_Type --
6888 ---------------
6889
6890 function Base_Type (Id : E) return E is
d8b962d8
AC
6891 begin
6892 if Is_Base_Type (Id) then
f96b2d85 6893 return Id;
d8b962d8
AC
6894 else
6895 pragma Assert (Is_Type (Id));
6896 return Etype (Id);
f96b2d85 6897 end if;
70482933
RK
6898 end Base_Type;
6899
6900 -------------------------
6901 -- Component_Alignment --
6902 -------------------------
6903
6904 -- Component Alignment is encoded using two flags, Flag128/129 as
6905 -- follows. Note that both flags False = Align_Default, so that the
6906 -- default initialization of flags to False initializes component
6907 -- alignment to the default value as required.
6908
6909 -- Flag128 Flag129 Value
6910 -- ------- ------- -----
6911 -- False False Calign_Default
6912 -- False True Calign_Component_Size
6913 -- True False Calign_Component_Size_4
6914 -- True True Calign_Storage_Unit
6915
6916 function Component_Alignment (Id : E) return C is
fbf5a39b 6917 BT : constant Node_Id := Base_Type (Id);
70482933
RK
6918
6919 begin
6920 pragma Assert (Is_Array_Type (Id) or else Is_Record_Type (Id));
6921
6922 if Flag128 (BT) then
6923 if Flag129 (BT) then
6924 return Calign_Storage_Unit;
6925 else
6926 return Calign_Component_Size_4;
6927 end if;
6928
6929 else
6930 if Flag129 (BT) then
6931 return Calign_Component_Size;
6932 else
6933 return Calign_Default;
6934 end if;
6935 end if;
6936 end Component_Alignment;
6937
70482933
RK
6938 ----------------------
6939 -- Declaration_Node --
6940 ----------------------
6941
6942 function Declaration_Node (Id : E) return N is
6943 P : Node_Id;
6944
6945 begin
6946 if Ekind (Id) = E_Incomplete_Type
6947 and then Present (Full_View (Id))
6948 then
6949 P := Parent (Full_View (Id));
6950 else
6951 P := Parent (Id);
6952 end if;
6953
6954 loop
6955 if Nkind (P) /= N_Selected_Component
6956 and then Nkind (P) /= N_Expanded_Name
6957 and then
6958 not (Nkind (P) = N_Defining_Program_Unit_Name
6959 and then Is_Child_Unit (Id))
6960 then
6961 return P;
6962 else
6963 P := Parent (P);
6964 end if;
6965 end loop;
70482933
RK
6966 end Declaration_Node;
6967
e477d718
AC
6968 ---------------------------------
6969 -- Default_Init_Cond_Procedure --
6970 ---------------------------------
6971
6972 function Default_Init_Cond_Procedure (Id : E) return E is
3ddfabe3
AC
6973 Subp_Elmt : Elmt_Id;
6974 Subp_Id : Entity_Id;
6975 Subps : Elist_Id;
e477d718
AC
6976
6977 begin
6978 pragma Assert
6979 (Is_Type (Id)
caef4e57 6980 and then (Has_Default_Init_Cond (Id)
3ddfabe3 6981 or else Has_Inherited_Default_Init_Cond (Id)));
e477d718 6982
3ddfabe3 6983 Subps := Subprograms_For_Type (Base_Type (Id));
e477d718 6984
3ddfabe3
AC
6985 if Present (Subps) then
6986 Subp_Elmt := First_Elmt (Subps);
6987 while Present (Subp_Elmt) loop
6988 Subp_Id := Node (Subp_Elmt);
6989
6990 if Is_Default_Init_Cond_Procedure (Subp_Id) then
6991 return Subp_Id;
6992 end if;
6993
6994 Next_Elmt (Subp_Elmt);
6995 end loop;
6996 end if;
e477d718
AC
6997
6998 return Empty;
6999 end Default_Init_Cond_Procedure;
7000
70482933
RK
7001 ---------------------
7002 -- Designated_Type --
7003 ---------------------
7004
7005 function Designated_Type (Id : E) return E is
7006 Desig_Type : E;
7007
7008 begin
7009 Desig_Type := Directly_Designated_Type (Id);
7010
fbf5a39b
AC
7011 if Ekind (Desig_Type) = E_Incomplete_Type
7012 and then Present (Full_View (Desig_Type))
70482933
RK
7013 then
7014 return Full_View (Desig_Type);
7015
7016 elsif Is_Class_Wide_Type (Desig_Type)
7017 and then Ekind (Etype (Desig_Type)) = E_Incomplete_Type
7018 and then Present (Full_View (Etype (Desig_Type)))
7019 and then Present (Class_Wide_Type (Full_View (Etype (Desig_Type))))
7020 then
7021 return Class_Wide_Type (Full_View (Etype (Desig_Type)));
7022
7023 else
7024 return Desig_Type;
7025 end if;
7026 end Designated_Type;
7027
70482933
RK
7028 ----------------------
7029 -- Entry_Index_Type --
7030 ----------------------
7031
7032 function Entry_Index_Type (Id : E) return N is
7033 begin
7034 pragma Assert (Ekind (Id) = E_Entry_Family);
7035 return Etype (Discrete_Subtype_Definition (Parent (Id)));
7036 end Entry_Index_Type;
7037
7038 ---------------------
f937473f 7039 -- First_Component --
70482933
RK
7040 ---------------------
7041
7042 function First_Component (Id : E) return E is
7043 Comp_Id : E;
7044
7045 begin
7046 pragma Assert
aafc151a
AC
7047 (Is_Concurrent_Type (Id)
7048 or else Is_Incomplete_Or_Private_Type (Id)
7049 or else Is_Record_Type (Id));
70482933
RK
7050
7051 Comp_Id := First_Entity (Id);
70482933
RK
7052 while Present (Comp_Id) loop
7053 exit when Ekind (Comp_Id) = E_Component;
7054 Comp_Id := Next_Entity (Comp_Id);
7055 end loop;
7056
7057 return Comp_Id;
7058 end First_Component;
7059
f937473f
RD
7060 -------------------------------------
7061 -- First_Component_Or_Discriminant --
7062 -------------------------------------
7063
7064 function First_Component_Or_Discriminant (Id : E) return E is
7065 Comp_Id : E;
7066
7067 begin
7068 pragma Assert
aafc151a 7069 (Is_Concurrent_Type (Id)
329ea7ec 7070 or else Is_Incomplete_Or_Private_Type (Id)
aafc151a 7071 or else Is_Record_Type (Id)
329ea7ec 7072 or else Has_Discriminants (Id));
f937473f
RD
7073
7074 Comp_Id := First_Entity (Id);
7075 while Present (Comp_Id) loop
329ea7ec 7076 exit when Ekind_In (Comp_Id, E_Component, E_Discriminant);
f937473f
RD
7077 Comp_Id := Next_Entity (Comp_Id);
7078 end loop;
7079
7080 return Comp_Id;
7081 end First_Component_Or_Discriminant;
7082
70482933
RK
7083 ------------------
7084 -- First_Formal --
7085 ------------------
7086
7087 function First_Formal (Id : E) return E is
7088 Formal : E;
7089
7090 begin
7091 pragma Assert
c9d70ab1
AC
7092 (Is_Generic_Subprogram (Id)
7093 or else Is_Overloadable (Id)
df3e68b1
HK
7094 or else Ekind_In (Id, E_Entry_Family,
7095 E_Subprogram_Body,
7096 E_Subprogram_Type));
70482933
RK
7097
7098 if Ekind (Id) = E_Enumeration_Literal then
7099 return Empty;
7100
7101 else
7102 Formal := First_Entity (Id);
7103
d9d25d04
AC
7104 -- Deal with the common, non-generic case first
7105
7106 if No (Formal) or else Is_Formal (Formal) then
7107 return Formal;
7108 end if;
7109
c9d70ab1 7110 -- The first/next entity chain of a generic subprogram contains all
d9d25d04 7111 -- generic formal parameters, followed by the formal parameters.
c9d70ab1
AC
7112
7113 if Is_Generic_Subprogram (Id) then
7114 while Present (Formal) and then not Is_Formal (Formal) loop
7115 Next_Entity (Formal);
7116 end loop;
70482933
RK
7117 return Formal;
7118 else
7119 return Empty;
7120 end if;
7121 end if;
7122 end First_Formal;
7123
6e443c90
RD
7124 ------------------------------
7125 -- First_Formal_With_Extras --
7126 ------------------------------
7127
7128 function First_Formal_With_Extras (Id : E) return E is
7129 Formal : E;
7130
7131 begin
7132 pragma Assert
c9d70ab1
AC
7133 (Is_Generic_Subprogram (Id)
7134 or else Is_Overloadable (Id)
df3e68b1
HK
7135 or else Ekind_In (Id, E_Entry_Family,
7136 E_Subprogram_Body,
7137 E_Subprogram_Type));
6e443c90
RD
7138
7139 if Ekind (Id) = E_Enumeration_Literal then
7140 return Empty;
7141
7142 else
7143 Formal := First_Entity (Id);
7144
c9d70ab1
AC
7145 -- The first/next entity chain of a generic subprogram contains all
7146 -- generic formal parameters, followed by the formal parameters. Go
e9999161 7147 -- directly to the parameters by skipping the formal part.
c9d70ab1
AC
7148
7149 if Is_Generic_Subprogram (Id) then
7150 while Present (Formal) and then not Is_Formal (Formal) loop
7151 Next_Entity (Formal);
7152 end loop;
7153 end if;
7154
6e443c90
RD
7155 if Present (Formal) and then Is_Formal (Formal) then
7156 return Formal;
7157 else
7158 return Extra_Formals (Id); -- Empty if no extra formals
7159 end if;
7160 end if;
7161 end First_Formal_With_Extras;
7162
07fc65c4
GB
7163 -------------------------------------
7164 -- Get_Attribute_Definition_Clause --
7165 -------------------------------------
7166
7167 function Get_Attribute_Definition_Clause
1d571f3b
AC
7168 (E : Entity_Id;
7169 Id : Attribute_Id) return Node_Id
07fc65c4
GB
7170 is
7171 N : Node_Id;
7172
7173 begin
7174 N := First_Rep_Item (E);
7175 while Present (N) loop
7176 if Nkind (N) = N_Attribute_Definition_Clause
7177 and then Get_Attribute_Id (Chars (N)) = Id
7178 then
7179 return N;
7180 else
7181 Next_Rep_Item (N);
7182 end if;
7183 end loop;
7184
7185 return Empty;
7186 end Get_Attribute_Definition_Clause;
7187
5d37ba92
ES
7188 -------------------
7189 -- Get_Full_View --
7190 -------------------
7191
7192 function Get_Full_View (T : Entity_Id) return Entity_Id is
7193 begin
47d3b920 7194 if Ekind (T) = E_Incomplete_Type and then Present (Full_View (T)) then
5d37ba92
ES
7195 return Full_View (T);
7196
7197 elsif Is_Class_Wide_Type (T)
7198 and then Ekind (Root_Type (T)) = E_Incomplete_Type
7199 and then Present (Full_View (Root_Type (T)))
7200 then
7201 return Class_Wide_Type (Full_View (Root_Type (T)));
7202
7203 else
7204 return T;
7205 end if;
7206 end Get_Full_View;
7207
1355d373
AC
7208 ----------------
7209 -- Get_Pragma --
7210 ----------------
7211
78d432da 7212 function Get_Pragma (E : Entity_Id; Id : Pragma_Id) return Node_Id is
f06f5f6b
AC
7213
7214 -- Classification pragmas
7215
7216 Is_CLS : constant Boolean :=
7217 Id = Pragma_Abstract_State or else
c0dd5b38 7218 Id = Pragma_Attach_Handler or else
f06f5f6b
AC
7219 Id = Pragma_Async_Readers or else
7220 Id = Pragma_Async_Writers or else
7221 Id = Pragma_Constant_After_Elaboration or else
7222 Id = Pragma_Depends or else
7223 Id = Pragma_Effective_Reads or else
7224 Id = Pragma_Effective_Writes or else
7225 Id = Pragma_Extensions_Visible or else
7226 Id = Pragma_Global or else
7227 Id = Pragma_Initial_Condition or else
7228 Id = Pragma_Initializes or else
c0dd5b38 7229 Id = Pragma_Interrupt_Handler or else
f06f5f6b
AC
7230 Id = Pragma_Part_Of or else
7231 Id = Pragma_Refined_Depends or else
7232 Id = Pragma_Refined_Global or else
847d950d
HK
7233 Id = Pragma_Refined_State or else
7234 Id = Pragma_Volatile_Function;
f06f5f6b
AC
7235
7236 -- Contract / test case pragmas
7237
ff7a7e12 7238 Is_CTC : constant Boolean :=
f06f5f6b 7239 Id = Pragma_Contract_Cases or else
ff7a7e12 7240 Id = Pragma_Test_Case;
f06f5f6b
AC
7241
7242 -- Pre / postcondition pragmas
7243
ff7a7e12 7244 Is_PPC : constant Boolean :=
f06f5f6b
AC
7245 Id = Pragma_Precondition or else
7246 Id = Pragma_Postcondition or else
4f7c83ca 7247 Id = Pragma_Refined_Post;
ff7a7e12 7248
f06f5f6b 7249 In_Contract : constant Boolean := Is_CLS or Is_CTC or Is_PPC;
ab8843fa 7250
039538bc
AC
7251 Item : Node_Id;
7252 Items : Node_Id;
ab8843fa
HK
7253
7254 begin
7255 -- Handle pragmas that appear in N_Contract nodes. Those have to be
7256 -- extracted from their specialized list.
7257
7258 if In_Contract then
78d432da
HK
7259 Items := Contract (E);
7260
7261 if No (Items) then
7262 return Empty;
7263
f06f5f6b 7264 elsif Is_CLS then
78d432da
HK
7265 Item := Classifications (Items);
7266
7267 elsif Is_CTC then
7268 Item := Contract_Test_Cases (Items);
7269
7270 else
7271 Item := Pre_Post_Conditions (Items);
7272 end if;
7273
7274 -- Regular pragmas
7275
7276 else
7277 Item := First_Rep_Item (E);
7278 end if;
7279
7280 while Present (Item) loop
7281 if Nkind (Item) = N_Pragma
7282 and then Get_Pragma_Id (Pragma_Name (Item)) = Id
1355d373 7283 then
78d432da
HK
7284 return Item;
7285
7286 -- All nodes in N_Contract are chained using Next_Pragma
7287
ab8843fa 7288 elsif In_Contract then
78d432da
HK
7289 Item := Next_Pragma (Item);
7290
7291 -- Regular pragmas
7292
1355d373 7293 else
78d432da 7294 Next_Rep_Item (Item);
1355d373
AC
7295 end if;
7296 end loop;
7297
7298 return Empty;
7299 end Get_Pragma;
7300
8a95f4e8
RD
7301 --------------------------------------
7302 -- Get_Record_Representation_Clause --
7303 --------------------------------------
7304
7305 function Get_Record_Representation_Clause (E : Entity_Id) return Node_Id is
7306 N : Node_Id;
7307
7308 begin
7309 N := First_Rep_Item (E);
7310 while Present (N) loop
7311 if Nkind (N) = N_Record_Representation_Clause then
7312 return N;
7313 end if;
7314
7315 Next_Rep_Item (N);
7316 end loop;
7317
7318 return Empty;
7319 end Get_Record_Representation_Clause;
7320
70482933
RK
7321 ------------------------
7322 -- Has_Attach_Handler --
7323 ------------------------
7324
7325 function Has_Attach_Handler (Id : E) return B is
7326 Ritem : Node_Id;
7327
7328 begin
7329 pragma Assert (Is_Protected_Type (Id));
7330
7331 Ritem := First_Rep_Item (Id);
7332 while Present (Ritem) loop
7333 if Nkind (Ritem) = N_Pragma
0f282086 7334 and then Pragma_Name (Ritem) = Name_Attach_Handler
70482933
RK
7335 then
7336 return True;
7337 else
e606088a 7338 Next_Rep_Item (Ritem);
70482933
RK
7339 end if;
7340 end loop;
7341
7342 return False;
7343 end Has_Attach_Handler;
7344
7345 -----------------
7346 -- Has_Entries --
7347 -----------------
7348
7349 function Has_Entries (Id : E) return B is
0f282086 7350 Ent : Entity_Id;
70482933
RK
7351
7352 begin
7353 pragma Assert (Is_Concurrent_Type (Id));
70482933 7354
1d571f3b 7355 Ent := First_Entity (Id);
70482933
RK
7356 while Present (Ent) loop
7357 if Is_Entry (Ent) then
0f282086 7358 return True;
70482933
RK
7359 end if;
7360
7361 Ent := Next_Entity (Ent);
7362 end loop;
7363
0f282086 7364 return False;
70482933
RK
7365 end Has_Entries;
7366
7367 ----------------------------
7368 -- Has_Foreign_Convention --
7369 ----------------------------
7370
7371 function Has_Foreign_Convention (Id : E) return B is
7372 begin
e2cc5258
AC
7373 -- While regular Intrinsics such as the Standard operators fit in the
7374 -- "Ada" convention, those with an Interface_Name materialize GCC
7375 -- builtin imports for which Ada special treatments shouldn't apply.
7376
7377 return Convention (Id) in Foreign_Convention
7378 or else (Convention (Id) = Convention_Intrinsic
9a0ddeee 7379 and then Present (Interface_Name (Id)));
70482933
RK
7380 end Has_Foreign_Convention;
7381
7382 ---------------------------
7383 -- Has_Interrupt_Handler --
7384 ---------------------------
7385
7386 function Has_Interrupt_Handler (Id : E) return B is
7387 Ritem : Node_Id;
7388
7389 begin
7390 pragma Assert (Is_Protected_Type (Id));
7391
7392 Ritem := First_Rep_Item (Id);
7393 while Present (Ritem) loop
7394 if Nkind (Ritem) = N_Pragma
0f282086 7395 and then Pragma_Name (Ritem) = Name_Interrupt_Handler
70482933
RK
7396 then
7397 return True;
7398 else
e606088a 7399 Next_Rep_Item (Ritem);
70482933
RK
7400 end if;
7401 end loop;
7402
7403 return False;
7404 end Has_Interrupt_Handler;
7405
3ddfabe3
AC
7406 --------------------
7407 -- Has_Invariants --
7408 --------------------
7409
7410 function Has_Invariants (Id : E) return B is
7411 begin
7412 return Has_Own_Invariants (Id) or else Has_Inherited_Invariants (Id);
7413 end Has_Invariants;
7414
47346923
AC
7415 --------------------------
7416 -- Has_Non_Limited_View --
7417 --------------------------
7418
7419 function Has_Non_Limited_View (Id : E) return B is
7420 begin
7421 return (Ekind (Id) in Incomplete_Kind
f8dae9bb
AC
7422 or else Ekind (Id) in Class_Wide_Kind
7423 or else Ekind (Id) = E_Abstract_State)
47346923
AC
7424 and then Present (Non_Limited_View (Id));
7425 end Has_Non_Limited_View;
7426
08f52d9f
AC
7427 ---------------------------------
7428 -- Has_Non_Null_Abstract_State --
7429 ---------------------------------
7430
7431 function Has_Non_Null_Abstract_State (Id : E) return B is
7432 begin
7433 pragma Assert (Ekind_In (Id, E_Generic_Package, E_Package));
7434
7435 return
7436 Present (Abstract_States (Id))
7437 and then
7438 not Is_Null_State (Node (First_Elmt (Abstract_States (Id))));
7439 end Has_Non_Null_Abstract_State;
7440
2f54ef3d
AC
7441 -------------------------------------
7442 -- Has_Non_Null_Visible_Refinement --
7443 -------------------------------------
c5c0ce68 7444
2f54ef3d 7445 function Has_Non_Null_Visible_Refinement (Id : E) return B is
22a4f9d5
AC
7446 Constits : Elist_Id;
7447
c5c0ce68
HK
7448 begin
7449 -- "Refinement" is a concept applicable only to abstract states
7450
7451 pragma Assert (Ekind (Id) = E_Abstract_State);
22a4f9d5 7452 Constits := Refinement_Constituents (Id);
c5c0ce68 7453
22a4f9d5
AC
7454 -- For a refinement to be non-null, the first constituent must be
7455 -- anything other than null.
c5c0ce68 7456
22a4f9d5
AC
7457 return
7458 Has_Visible_Refinement (Id)
7459 and then Present (Constits)
7460 and then Nkind (Node (First_Elmt (Constits))) /= N_Null;
2f54ef3d 7461 end Has_Non_Null_Visible_Refinement;
c5c0ce68 7462
39af2bac
AC
7463 -----------------------------
7464 -- Has_Null_Abstract_State --
7465 -----------------------------
7466
7467 function Has_Null_Abstract_State (Id : E) return B is
7468 begin
7469 pragma Assert (Ekind_In (Id, E_Generic_Package, E_Package));
7470
7471 return
7472 Present (Abstract_States (Id))
7473 and then Is_Null_State (Node (First_Elmt (Abstract_States (Id))));
7474 end Has_Null_Abstract_State;
7475
2f54ef3d
AC
7476 ---------------------------------
7477 -- Has_Null_Visible_Refinement --
7478 ---------------------------------
c5c0ce68 7479
2f54ef3d 7480 function Has_Null_Visible_Refinement (Id : E) return B is
22a4f9d5
AC
7481 Constits : Elist_Id;
7482
c5c0ce68
HK
7483 begin
7484 -- "Refinement" is a concept applicable only to abstract states
7485
7486 pragma Assert (Ekind (Id) = E_Abstract_State);
22a4f9d5 7487 Constits := Refinement_Constituents (Id);
c5c0ce68 7488
22a4f9d5
AC
7489 -- For a refinement to be null, the state's sole constituent must be a
7490 -- null.
c5c0ce68 7491
22a4f9d5
AC
7492 return
7493 Has_Visible_Refinement (Id)
7494 and then Present (Constits)
7495 and then Nkind (Node (First_Elmt (Constits))) = N_Null;
2f54ef3d 7496 end Has_Null_Visible_Refinement;
c5c0ce68 7497
0f282086
RD
7498 --------------------
7499 -- Has_Unmodified --
7500 --------------------
7501
7502 function Has_Unmodified (E : Entity_Id) return Boolean is
7503 begin
7504 if Has_Pragma_Unmodified (E) then
7505 return True;
7506 elsif Warnings_Off (E) then
7507 Set_Warnings_Off_Used_Unmodified (E);
7508 return True;
7509 else
7510 return False;
7511 end if;
7512 end Has_Unmodified;
7513
7514 ---------------------
7515 -- Has_Unreferenced --
7516 ---------------------
7517
7518 function Has_Unreferenced (E : Entity_Id) return Boolean is
7519 begin
7520 if Has_Pragma_Unreferenced (E) then
7521 return True;
7522 elsif Warnings_Off (E) then
7523 Set_Warnings_Off_Used_Unreferenced (E);
7524 return True;
7525 else
7526 return False;
7527 end if;
7528 end Has_Unreferenced;
7529
7530 ----------------------
7531 -- Has_Warnings_Off --
7532 ----------------------
7533
7534 function Has_Warnings_Off (E : Entity_Id) return Boolean is
7535 begin
7536 if Warnings_Off (E) then
7537 Set_Warnings_Off_Used (E);
7538 return True;
7539 else
7540 return False;
7541 end if;
7542 end Has_Warnings_Off;
7543
70482933
RK
7544 ------------------------------
7545 -- Implementation_Base_Type --
7546 ------------------------------
7547
7548 function Implementation_Base_Type (Id : E) return E is
7549 Bastyp : Entity_Id;
7550 Imptyp : Entity_Id;
7551
7552 begin
7553 Bastyp := Base_Type (Id);
7554
7555 if Is_Incomplete_Or_Private_Type (Bastyp) then
7556 Imptyp := Underlying_Type (Bastyp);
7557
7558 -- If we have an implementation type, then just return it,
7559 -- otherwise we return the Base_Type anyway. This can only
7560 -- happen in error situations and should avoid some error bombs.
7561
7562 if Present (Imptyp) then
07fc65c4 7563 return Base_Type (Imptyp);
70482933
RK
7564 else
7565 return Bastyp;
7566 end if;
7567
7568 else
7569 return Bastyp;
7570 end if;
7571 end Implementation_Base_Type;
7572
fd0ff1cf
RD
7573 -------------------------
7574 -- Invariant_Procedure --
7575 -------------------------
7576
7577 function Invariant_Procedure (Id : E) return E is
3ddfabe3
AC
7578 Subp_Elmt : Elmt_Id;
7579 Subp_Id : Entity_Id;
7580 Subps : Elist_Id;
fd0ff1cf
RD
7581
7582 begin
3ddfabe3 7583 pragma Assert (Is_Type (Id));
fd0ff1cf 7584
3ddfabe3 7585 Subps := Subprograms_For_Type (Id);
fd0ff1cf 7586
3ddfabe3
AC
7587 if Present (Subps) then
7588 Subp_Elmt := First_Elmt (Subps);
7589 while Present (Subp_Elmt) loop
7590 Subp_Id := Node (Subp_Elmt);
7591
7592 if Is_Invariant_Procedure (Subp_Id) then
7593 return Subp_Id;
fd0ff1cf 7594 end if;
fd0ff1cf 7595
3ddfabe3
AC
7596 Next_Elmt (Subp_Elmt);
7597 end loop;
fd0ff1cf 7598 end if;
3ddfabe3
AC
7599
7600 return Empty;
fd0ff1cf
RD
7601 end Invariant_Procedure;
7602
f280dd8f
RD
7603 ----------------------
7604 -- Is_Atomic_Or_VFA --
7605 ----------------------
7606
7607 function Is_Atomic_Or_VFA (Id : E) return B is
7608 begin
57abdadd 7609 return Is_Atomic (Id) or else Is_Volatile_Full_Access (Id);
f280dd8f
RD
7610 end Is_Atomic_Or_VFA;
7611
d347f572
AC
7612 ------------------
7613 -- Is_Base_Type --
7614 ------------------
7615
d8b962d8
AC
7616 -- Global flag table allowing rapid computation of this function
7617
7618 Entity_Is_Base_Type : constant array (Entity_Kind) of Boolean :=
15f0f591
AC
7619 (E_Enumeration_Subtype |
7620 E_Incomplete_Type |
7621 E_Signed_Integer_Subtype |
7622 E_Modular_Integer_Subtype |
7623 E_Floating_Point_Subtype |
7624 E_Ordinary_Fixed_Point_Subtype |
7625 E_Decimal_Fixed_Point_Subtype |
7626 E_Array_Subtype |
15f0f591
AC
7627 E_Record_Subtype |
7628 E_Private_Subtype |
7629 E_Record_Subtype_With_Private |
7630 E_Limited_Private_Subtype |
7631 E_Access_Subtype |
7632 E_Protected_Subtype |
7633 E_Task_Subtype |
7634 E_String_Literal_Subtype |
7635 E_Class_Wide_Subtype => False,
7636 others => True);
d8b962d8 7637
d347f572
AC
7638 function Is_Base_Type (Id : E) return Boolean is
7639 begin
d8b962d8 7640 return Entity_Is_Base_Type (Ekind (Id));
d347f572
AC
7641 end Is_Base_Type;
7642
70482933
RK
7643 ---------------------
7644 -- Is_Boolean_Type --
7645 ---------------------
7646
7647 function Is_Boolean_Type (Id : E) return B is
7648 begin
7649 return Root_Type (Id) = Standard_Boolean;
7650 end Is_Boolean_Type;
7651
21d27997
RD
7652 ------------------------
7653 -- Is_Constant_Object --
7654 ------------------------
7655
7656 function Is_Constant_Object (Id : E) return B is
7657 K : constant Entity_Kind := Ekind (Id);
7658 begin
7659 return
7660 K = E_Constant or else K = E_In_Parameter or else K = E_Loop_Parameter;
7661 end Is_Constant_Object;
7662
c8593453
AC
7663 --------------------------
7664 -- Is_Controlled_Active --
7665 --------------------------
7666
7667 function Is_Controlled_Active (Id : E) return B is
7668 begin
7669 return Is_Controlled (Id) and then not Disable_Controlled (Id);
7670 end Is_Controlled_Active;
7671
21d27997
RD
7672 --------------------
7673 -- Is_Discriminal --
7674 --------------------
7675
7676 function Is_Discriminal (Id : E) return B is
7677 begin
3428cb9f 7678 return (Ekind_In (Id, E_Constant, E_In_Parameter)
df3e68b1 7679 and then Present (Discriminal_Link (Id)));
21d27997
RD
7680 end Is_Discriminal;
7681
70482933
RK
7682 ----------------------
7683 -- Is_Dynamic_Scope --
7684 ----------------------
7685
7686 function Is_Dynamic_Scope (Id : E) return B is
7687 begin
7688 return
7689 Ekind (Id) = E_Block
7690 or else
7691 Ekind (Id) = E_Function
7692 or else
7693 Ekind (Id) = E_Procedure
7694 or else
7695 Ekind (Id) = E_Subprogram_Body
7696 or else
7697 Ekind (Id) = E_Task_Type
7698 or else
a780db15
AC
7699 (Ekind (Id) = E_Limited_Private_Type
7700 and then Present (Full_View (Id))
7701 and then Ekind (Full_View (Id)) = E_Task_Type)
7702 or else
70482933
RK
7703 Ekind (Id) = E_Entry
7704 or else
6e443c90
RD
7705 Ekind (Id) = E_Entry_Family
7706 or else
7707 Ekind (Id) = E_Return_Statement;
70482933
RK
7708 end Is_Dynamic_Scope;
7709
7710 --------------------
7711 -- Is_Entity_Name --
7712 --------------------
7713
7714 function Is_Entity_Name (N : Node_Id) return Boolean is
7715 Kind : constant Node_Kind := Nkind (N);
7716
7717 begin
7718 -- Identifiers, operator symbols, expanded names are entity names
7719
7720 return Kind = N_Identifier
7721 or else Kind = N_Operator_Symbol
7722 or else Kind = N_Expanded_Name
7723
7724 -- Attribute references are entity names if they refer to an entity.
7725 -- Note that we don't do this by testing for the presence of the
7726 -- Entity field in the N_Attribute_Reference node, since it may not
7727 -- have been set yet.
7728
7729 or else (Kind = N_Attribute_Reference
7730 and then Is_Entity_Attribute_Name (Attribute_Name (N)));
7731 end Is_Entity_Name;
7732
aa500b7a
AC
7733 -----------------------
7734 -- Is_External_State --
7735 -----------------------
7736
7737 function Is_External_State (Id : E) return B is
7738 begin
7739 return
7740 Ekind (Id) = E_Abstract_State and then Has_Option (Id, Name_External);
7741 end Is_External_State;
7742
df3e68b1
HK
7743 ------------------
7744 -- Is_Finalizer --
7745 ------------------
7746
7747 function Is_Finalizer (Id : E) return B is
7748 begin
a7e68e7f 7749 return Ekind (Id) = E_Procedure and then Chars (Id) = Name_uFinalizer;
df3e68b1
HK
7750 end Is_Finalizer;
7751
cf6956bb
AC
7752 -------------------
7753 -- Is_Null_State --
7754 -------------------
7755
7756 function Is_Null_State (Id : E) return B is
7757 begin
7758 return
a7e68e7f 7759 Ekind (Id) = E_Abstract_State and then Nkind (Parent (Id)) = N_Null;
cf6956bb
AC
7760 end Is_Null_State;
7761
8b034336
AC
7762 ---------------------
7763 -- Is_Packed_Array --
7764 ---------------------
7765
7766 function Is_Packed_Array (Id : E) return B is
7767 begin
7768 return Is_Array_Type (Id) and then Is_Packed (Id);
7769 end Is_Packed_Array;
7770
f4d379b8
HK
7771 -----------------------------------
7772 -- Is_Package_Or_Generic_Package --
7773 -----------------------------------
70482933 7774
f4d379b8 7775 function Is_Package_Or_Generic_Package (Id : E) return B is
70482933 7776 begin
a7e68e7f 7777 return Ekind_In (Id, E_Generic_Package, E_Package);
f4d379b8 7778 end Is_Package_Or_Generic_Package;
70482933 7779
21d27997
RD
7780 ---------------
7781 -- Is_Prival --
7782 ---------------
70482933 7783
21d27997 7784 function Is_Prival (Id : E) return B is
70482933 7785 begin
3428cb9f 7786 return (Ekind_In (Id, E_Constant, E_Variable)
df3e68b1 7787 and then Present (Prival_Link (Id)));
21d27997
RD
7788 end Is_Prival;
7789
7790 ----------------------------
7791 -- Is_Protected_Component --
7792 ----------------------------
7793
7794 function Is_Protected_Component (Id : E) return B is
7795 begin
a7e68e7f 7796 return Ekind (Id) = E_Component and then Is_Protected_Type (Scope (Id));
21d27997 7797 end Is_Protected_Component;
70482933 7798
fa5aa835
AC
7799 ----------------------------
7800 -- Is_Protected_Interface --
7801 ----------------------------
7802
7803 function Is_Protected_Interface (Id : E) return B is
7804 Typ : constant Entity_Id := Base_Type (Id);
7805 begin
7806 if not Is_Interface (Typ) then
7807 return False;
7808 elsif Is_Class_Wide_Type (Typ) then
7809 return Is_Protected_Interface (Etype (Typ));
7810 else
7811 return Protected_Present (Type_Definition (Parent (Typ)));
7812 end if;
7813 end Is_Protected_Interface;
7814
70482933
RK
7815 ------------------------------
7816 -- Is_Protected_Record_Type --
7817 ------------------------------
7818
7819 function Is_Protected_Record_Type (Id : E) return B is
7820 begin
7821 return
7822 Is_Concurrent_Record_Type (Id)
7823 and then Is_Protected_Type (Corresponding_Concurrent_Type (Id));
7824 end Is_Protected_Record_Type;
7825
6e443c90 7826 --------------------------------
21d27997 7827 -- Is_Standard_Character_Type --
6e443c90 7828 --------------------------------
653da906 7829
21d27997 7830 function Is_Standard_Character_Type (Id : E) return B is
70482933 7831 begin
21d27997 7832 if Is_Type (Id) then
70482933 7833 declare
21d27997 7834 R : constant Entity_Id := Root_Type (Id);
70482933 7835 begin
21d27997
RD
7836 return
7837 R = Standard_Character
7838 or else
7839 R = Standard_Wide_Character
7840 or else
7841 R = Standard_Wide_Wide_Character;
70482933
RK
7842 end;
7843
70482933
RK
7844 else
7845 return False;
7846 end if;
21d27997 7847 end Is_Standard_Character_Type;
70482933 7848
bc3c2eca
AC
7849 -----------------------------
7850 -- Is_Standard_String_Type --
7851 -----------------------------
7852
7853 function Is_Standard_String_Type (Id : E) return B is
7854 begin
7855 if Is_Type (Id) then
7856 declare
7857 R : constant Entity_Id := Root_Type (Id);
7858 begin
7859 return
7860 R = Standard_String
7861 or else
7862 R = Standard_Wide_String
7863 or else
7864 R = Standard_Wide_Wide_String;
7865 end;
7866
7867 else
7868 return False;
7869 end if;
7870 end Is_Standard_String_Type;
7871
70482933
RK
7872 --------------------
7873 -- Is_String_Type --
7874 --------------------
7875
7876 function Is_String_Type (Id : E) return B is
7877 begin
f8c79ade
AC
7878 return Is_Array_Type (Id)
7879 and then Id /= Any_Composite
7880 and then Number_Dimensions (Id) = 1
7881 and then Is_Character_Type (Component_Type (Id));
70482933
RK
7882 end Is_String_Type;
7883
fa5aa835
AC
7884 -------------------------------
7885 -- Is_Synchronized_Interface --
7886 -------------------------------
7887
7888 function Is_Synchronized_Interface (Id : E) return B is
7889 Typ : constant Entity_Id := Base_Type (Id);
7890
7891 begin
7892 if not Is_Interface (Typ) then
7893 return False;
7894
7895 elsif Is_Class_Wide_Type (Typ) then
7896 return Is_Synchronized_Interface (Etype (Typ));
7897
7898 else
7899 return Protected_Present (Type_Definition (Parent (Typ)))
7900 or else Synchronized_Present (Type_Definition (Parent (Typ)))
7901 or else Task_Present (Type_Definition (Parent (Typ)));
7902 end if;
7903 end Is_Synchronized_Interface;
7904
75b87c16
AC
7905 ---------------------------
7906 -- Is_Synchronized_State --
7907 ---------------------------
7908
7909 function Is_Synchronized_State (Id : E) return B is
7910 begin
7911 return
7912 Ekind (Id) = E_Abstract_State
7913 and then Has_Option (Id, Name_Synchronous);
7914 end Is_Synchronized_State;
7915
fa5aa835
AC
7916 -----------------------
7917 -- Is_Task_Interface --
7918 -----------------------
7919
7920 function Is_Task_Interface (Id : E) return B is
7921 Typ : constant Entity_Id := Base_Type (Id);
7922 begin
7923 if not Is_Interface (Typ) then
7924 return False;
7925 elsif Is_Class_Wide_Type (Typ) then
7926 return Is_Task_Interface (Etype (Typ));
7927 else
7928 return Task_Present (Type_Definition (Parent (Typ)));
7929 end if;
7930 end Is_Task_Interface;
7931
70482933
RK
7932 -------------------------
7933 -- Is_Task_Record_Type --
7934 -------------------------
7935
7936 function Is_Task_Record_Type (Id : E) return B is
7937 begin
7938 return
7939 Is_Concurrent_Record_Type (Id)
7940 and then Is_Task_Type (Corresponding_Concurrent_Type (Id));
7941 end Is_Task_Record_Type;
7942
7943 ------------------------
7944 -- Is_Wrapper_Package --
7945 ------------------------
7946
7947 function Is_Wrapper_Package (Id : E) return B is
7948 begin
09a078a1 7949 return (Ekind (Id) = E_Package and then Present (Related_Instance (Id)));
70482933
RK
7950 end Is_Wrapper_Package;
7951
ea7f928b
AC
7952 -----------------
7953 -- Last_Formal --
7954 -----------------
7955
7956 function Last_Formal (Id : E) return E is
7957 Formal : E;
58009744 7958
ea7f928b
AC
7959 begin
7960 pragma Assert
7961 (Is_Overloadable (Id)
7962 or else Ekind_In (Id, E_Entry_Family,
7963 E_Subprogram_Body,
7964 E_Subprogram_Type));
7965
7966 if Ekind (Id) = E_Enumeration_Literal then
7967 return Empty;
7968
7969 else
7970 Formal := First_Formal (Id);
7971
7972 if Present (Formal) then
58009744
AC
7973 while Present (Next_Formal (Formal)) loop
7974 Formal := Next_Formal (Formal);
ea7f928b
AC
7975 end loop;
7976 end if;
7977
7978 return Formal;
7979 end if;
7980 end Last_Formal;
7981
26df19ce
AC
7982 function Model_Emin_Value (Id : E) return Uint is
7983 begin
7984 return Machine_Emin_Value (Id);
7985 end Model_Emin_Value;
7986
7987 -------------------------
7988 -- Model_Epsilon_Value --
7989 -------------------------
7990
7991 function Model_Epsilon_Value (Id : E) return Ureal is
7992 Radix : constant Ureal := UR_From_Uint (Machine_Radix_Value (Id));
7993 begin
7994 return Radix ** (1 - Model_Mantissa_Value (Id));
7995 end Model_Epsilon_Value;
7996
7997 --------------------------
7998 -- Model_Mantissa_Value --
7999 --------------------------
8000
8001 function Model_Mantissa_Value (Id : E) return Uint is
8002 begin
8003 return Machine_Mantissa_Value (Id);
8004 end Model_Mantissa_Value;
8005
8006 -----------------------
8007 -- Model_Small_Value --
8008 -----------------------
8009
8010 function Model_Small_Value (Id : E) return Ureal is
8011 Radix : constant Ureal := UR_From_Uint (Machine_Radix_Value (Id));
8012 begin
8013 return Radix ** (Model_Emin_Value (Id) - 1);
8014 end Model_Small_Value;
8015
8016 ------------------------
8017 -- Machine_Emax_Value --
8018 ------------------------
8019
8020 function Machine_Emax_Value (Id : E) return Uint is
8021 Digs : constant Pos := UI_To_Int (Digits_Value (Base_Type (Id)));
8022
8023 begin
8024 case Float_Rep (Id) is
8025 when IEEE_Binary =>
8026 case Digs is
8027 when 1 .. 6 => return Uint_128;
8028 when 7 .. 15 => return 2**10;
c7f0d2c0 8029 when 16 .. 33 => return 2**14;
26df19ce
AC
8030 when others => return No_Uint;
8031 end case;
8032
26df19ce
AC
8033 when AAMP =>
8034 return Uint_2 ** Uint_7 - Uint_1;
8035 end case;
8036 end Machine_Emax_Value;
8037
8038 ------------------------
8039 -- Machine_Emin_Value --
8040 ------------------------
8041
8042 function Machine_Emin_Value (Id : E) return Uint is
8043 begin
8044 case Float_Rep (Id) is
8045 when IEEE_Binary => return Uint_3 - Machine_Emax_Value (Id);
26df19ce
AC
8046 when AAMP => return -Machine_Emax_Value (Id);
8047 end case;
8048 end Machine_Emin_Value;
8049
8050 ----------------------------
8051 -- Machine_Mantissa_Value --
8052 ----------------------------
8053
8054 function Machine_Mantissa_Value (Id : E) return Uint is
8055 Digs : constant Pos := UI_To_Int (Digits_Value (Base_Type (Id)));
8056
8057 begin
8058 case Float_Rep (Id) is
8059 when IEEE_Binary =>
8060 case Digs is
8061 when 1 .. 6 => return Uint_24;
8062 when 7 .. 15 => return UI_From_Int (53);
8063 when 16 .. 18 => return Uint_64;
9eea4346 8064 when 19 .. 33 => return UI_From_Int (113);
26df19ce
AC
8065 when others => return No_Uint;
8066 end case;
8067
26df19ce
AC
8068 when AAMP =>
8069 case Digs is
8070 when 1 .. 6 => return Uint_24;
8071 when 7 .. 9 => return UI_From_Int (40);
8072 when others => return No_Uint;
8073 end case;
8074 end case;
8075 end Machine_Mantissa_Value;
8076
8077 -------------------------
8078 -- Machine_Radix_Value --
8079 -------------------------
8080
8081 function Machine_Radix_Value (Id : E) return U is
8082 begin
8083 case Float_Rep (Id) is
ba0c6e47 8084 when IEEE_Binary | AAMP =>
26df19ce
AC
8085 return Uint_2;
8086 end case;
8087 end Machine_Radix_Value;
8088
70482933
RK
8089 --------------------
8090 -- Next_Component --
8091 --------------------
8092
8093 function Next_Component (Id : E) return E is
8094 Comp_Id : E;
8095
8096 begin
8097 Comp_Id := Next_Entity (Id);
70482933
RK
8098 while Present (Comp_Id) loop
8099 exit when Ekind (Comp_Id) = E_Component;
8100 Comp_Id := Next_Entity (Comp_Id);
8101 end loop;
8102
8103 return Comp_Id;
8104 end Next_Component;
8105
f937473f
RD
8106 ------------------------------------
8107 -- Next_Component_Or_Discriminant --
8108 ------------------------------------
8109
8110 function Next_Component_Or_Discriminant (Id : E) return E is
8111 Comp_Id : E;
8112
8113 begin
8114 Comp_Id := Next_Entity (Id);
8115 while Present (Comp_Id) loop
3428cb9f 8116 exit when Ekind_In (Comp_Id, E_Component, E_Discriminant);
f937473f
RD
8117 Comp_Id := Next_Entity (Comp_Id);
8118 end loop;
8119
8120 return Comp_Id;
8121 end Next_Component_Or_Discriminant;
8122
70482933
RK
8123 -----------------------
8124 -- Next_Discriminant --
8125 -----------------------
8126
8127 -- This function actually implements both Next_Discriminant and
fbf5a39b 8128 -- Next_Stored_Discriminant by making sure that the Discriminant
70482933
RK
8129 -- returned is of the same variety as Id.
8130
8131 function Next_Discriminant (Id : E) return E is
8132
8133 -- Derived Tagged types with private extensions look like this...
fbf5a39b 8134
70482933
RK
8135 -- E_Discriminant d1
8136 -- E_Discriminant d2
8137 -- E_Component _tag
8138 -- E_Discriminant d1
8139 -- E_Discriminant d2
8140 -- ...
fbf5a39b 8141
82c80734 8142 -- so it is critical not to go past the leading discriminants
70482933
RK
8143
8144 D : E := Id;
8145
8146 begin
8147 pragma Assert (Ekind (Id) = E_Discriminant);
8148
8149 loop
8150 D := Next_Entity (D);
ba673907 8151 if No (D)
70482933 8152 or else (Ekind (D) /= E_Discriminant
df3e68b1 8153 and then not Is_Itype (D))
70482933
RK
8154 then
8155 return Empty;
8156 end if;
8157
8158 exit when Ekind (D) = E_Discriminant
8159 and then (Is_Completely_Hidden (D) = Is_Completely_Hidden (Id));
8160 end loop;
8161
8162 return D;
8163 end Next_Discriminant;
8164
8165 -----------------
8166 -- Next_Formal --
8167 -----------------
8168
8169 function Next_Formal (Id : E) return E is
8170 P : E;
8171
8172 begin
f937473f
RD
8173 -- Follow the chain of declared entities as long as the kind of the
8174 -- entity corresponds to a formal parameter. Skip internal entities
8175 -- that may have been created for implicit subtypes, in the process
8176 -- of analyzing default expressions.
70482933
RK
8177
8178 P := Id;
70482933 8179 loop
47a6f660
AC
8180 Next_Entity (P);
8181
58009744 8182 if No (P) or else Is_Formal (P) then
70482933
RK
8183 return P;
8184 elsif not Is_Internal (P) then
8185 return Empty;
8186 end if;
8187 end loop;
8188 end Next_Formal;
8189
8190 -----------------------------
8191 -- Next_Formal_With_Extras --
8192 -----------------------------
8193
8194 function Next_Formal_With_Extras (Id : E) return E is
8195 begin
8196 if Present (Extra_Formal (Id)) then
8197 return Extra_Formal (Id);
70482933 8198 else
58009744 8199 return Next_Formal (Id);
70482933
RK
8200 end if;
8201 end Next_Formal_With_Extras;
8202
70482933
RK
8203 ----------------
8204 -- Next_Index --
8205 ----------------
8206
8207 function Next_Index (Id : Node_Id) return Node_Id is
8208 begin
8209 return Next (Id);
8210 end Next_Index;
8211
8212 ------------------
8213 -- Next_Literal --
8214 ------------------
8215
8216 function Next_Literal (Id : E) return E is
8217 begin
8218 pragma Assert (Nkind (Id) in N_Entity);
8219 return Next (Id);
8220 end Next_Literal;
8221
fbf5a39b
AC
8222 ------------------------------
8223 -- Next_Stored_Discriminant --
8224 ------------------------------
8225
8226 function Next_Stored_Discriminant (Id : E) return E is
8227 begin
8228 -- See comment in Next_Discriminant
8229
8230 return Next_Discriminant (Id);
8231 end Next_Stored_Discriminant;
8232
70482933
RK
8233 -----------------------
8234 -- Number_Dimensions --
8235 -----------------------
8236
8237 function Number_Dimensions (Id : E) return Pos is
8238 N : Int;
8239 T : Node_Id;
8240
8241 begin
f8c79ade 8242 if Ekind (Id) = E_String_Literal_Subtype then
70482933
RK
8243 return 1;
8244
8245 else
8246 N := 0;
8247 T := First_Index (Id);
70482933
RK
8248 while Present (T) loop
8249 N := N + 1;
f8c79ade 8250 Next_Index (T);
70482933
RK
8251 end loop;
8252
8253 return N;
8254 end if;
8255 end Number_Dimensions;
8256
70482933
RK
8257 --------------------
8258 -- Number_Entries --
8259 --------------------
8260
8261 function Number_Entries (Id : E) return Nat is
58009744
AC
8262 N : Int;
8263 Ent : Entity_Id;
70482933
RK
8264
8265 begin
8266 pragma Assert (Is_Concurrent_Type (Id));
1d571f3b 8267
70482933
RK
8268 N := 0;
8269 Ent := First_Entity (Id);
70482933
RK
8270 while Present (Ent) loop
8271 if Is_Entry (Ent) then
8272 N := N + 1;
8273 end if;
8274
8275 Ent := Next_Entity (Ent);
8276 end loop;
8277
8278 return N;
8279 end Number_Entries;
8280
8281 --------------------
8282 -- Number_Formals --
8283 --------------------
8284
8285 function Number_Formals (Id : E) return Pos is
8286 N : Int;
8287 Formal : Entity_Id;
8288
8289 begin
8290 N := 0;
8291 Formal := First_Formal (Id);
70482933
RK
8292 while Present (Formal) loop
8293 N := N + 1;
8294 Formal := Next_Formal (Formal);
8295 end loop;
8296
8297 return N;
8298 end Number_Formals;
8299
8300 --------------------
8301 -- Parameter_Mode --
8302 --------------------
8303
8304 function Parameter_Mode (Id : E) return Formal_Kind is
8305 begin
8306 return Ekind (Id);
8307 end Parameter_Mode;
8308
3ddfabe3
AC
8309 ---------------------------------
8310 -- Partial_Invariant_Procedure --
8311 ---------------------------------
8312
8313 function Partial_Invariant_Procedure (Id : E) return E is
8314 Subp_Elmt : Elmt_Id;
8315 Subp_Id : Entity_Id;
8316 Subps : Elist_Id;
8317
8318 begin
8319 pragma Assert (Is_Type (Id));
8320
8321 Subps := Subprograms_For_Type (Id);
8322
8323 if Present (Subps) then
8324 Subp_Elmt := First_Elmt (Subps);
8325 while Present (Subp_Elmt) loop
8326 Subp_Id := Node (Subp_Elmt);
8327
8328 if Is_Partial_Invariant_Procedure (Subp_Id) then
8329 return Subp_Id;
8330 end if;
8331
8332 Next_Elmt (Subp_Elmt);
8333 end loop;
8334 end if;
8335
8336 return Empty;
8337 end Partial_Invariant_Procedure;
8338
cf6956bb
AC
8339 ------------------------
8340 -- Predicate_Function --
8341 ------------------------
8342
8343 function Predicate_Function (Id : E) return E is
3ddfabe3
AC
8344 Subp_Elmt : Elmt_Id;
8345 Subp_Id : Entity_Id;
8346 Subps : Elist_Id;
8347 Typ : Entity_Id;
cf6956bb
AC
8348
8349 begin
8350 pragma Assert (Is_Type (Id));
8351
3ddfabe3
AC
8352 -- If type is private and has a completion, predicate may be defined on
8353 -- the full view.
e93f4e12 8354
6905a049
AC
8355 if Is_Private_Type (Id)
8356 and then
8357 (not Has_Predicates (Id) or else No (Subprograms_For_Type (Id)))
8358 and then Present (Full_View (Id))
8359 then
3ddfabe3 8360 Typ := Full_View (Id);
6905a049 8361
e93f4e12 8362 else
3ddfabe3 8363 Typ := Id;
e93f4e12
AC
8364 end if;
8365
3ddfabe3 8366 Subps := Subprograms_For_Type (Typ);
cf6956bb 8367
3ddfabe3
AC
8368 if Present (Subps) then
8369 Subp_Elmt := First_Elmt (Subps);
8370 while Present (Subp_Elmt) loop
8371 Subp_Id := Node (Subp_Elmt);
8372
8373 if Ekind (Subp_Id) = E_Function
8374 and then Is_Predicate_Function (Subp_Id)
8375 then
8376 return Subp_Id;
cf6956bb 8377 end if;
cf6956bb 8378
3ddfabe3
AC
8379 Next_Elmt (Subp_Elmt);
8380 end loop;
cf6956bb 8381 end if;
3ddfabe3
AC
8382
8383 return Empty;
cf6956bb
AC
8384 end Predicate_Function;
8385
fc142f63
AC
8386 --------------------------
8387 -- Predicate_Function_M --
8388 --------------------------
8389
8390 function Predicate_Function_M (Id : E) return E is
3ddfabe3
AC
8391 Subp_Elmt : Elmt_Id;
8392 Subp_Id : Entity_Id;
8393 Subps : Elist_Id;
8394 Typ : Entity_Id;
fc142f63
AC
8395
8396 begin
8397 pragma Assert (Is_Type (Id));
8398
3ddfabe3
AC
8399 -- If type is private and has a completion, predicate may be defined on
8400 -- the full view.
8401
8402 if Is_Private_Type (Id)
8403 and then
8404 (not Has_Predicates (Id) or else No (Subprograms_For_Type (Id)))
8405 and then Present (Full_View (Id))
8406 then
8407 Typ := Full_View (Id);
2e86f679 8408
2e86f679 8409 else
3ddfabe3 8410 Typ := Id;
2e86f679
RD
8411 end if;
8412
3ddfabe3 8413 Subps := Subprograms_For_Type (Typ);
fc142f63 8414
3ddfabe3
AC
8415 if Present (Subps) then
8416 Subp_Elmt := First_Elmt (Subps);
8417 while Present (Subp_Elmt) loop
8418 Subp_Id := Node (Subp_Elmt);
8419
8420 if Ekind (Subp_Id) = E_Function
8421 and then Is_Predicate_Function_M (Subp_Id)
8422 then
8423 return Subp_Id;
fc142f63 8424 end if;
fc142f63 8425
3ddfabe3
AC
8426 Next_Elmt (Subp_Elmt);
8427 end loop;
fc142f63 8428 end if;
3ddfabe3
AC
8429
8430 return Empty;
fc142f63
AC
8431 end Predicate_Function_M;
8432
b98e2969
AC
8433 -------------------------
8434 -- Present_In_Rep_Item --
8435 -------------------------
8436
8437 function Present_In_Rep_Item (E : Entity_Id; N : Node_Id) return Boolean is
8438 Ritem : Node_Id;
8439
8440 begin
8441 Ritem := First_Rep_Item (E);
8442
8443 while Present (Ritem) loop
8444 if Ritem = N then
8445 return True;
8446 end if;
8447
8448 Next_Rep_Item (Ritem);
8449 end loop;
8450
8451 return False;
8452 end Present_In_Rep_Item;
8453
12009a12
AC
8454 --------------------------
8455 -- Primitive_Operations --
8456 --------------------------
8457
8458 function Primitive_Operations (Id : E) return L is
8459 begin
8460 if Is_Concurrent_Type (Id) then
8461 if Present (Corresponding_Record_Type (Id)) then
8462 return Direct_Primitive_Operations
56812278
AC
8463 (Corresponding_Record_Type (Id));
8464
8465 -- If expansion is disabled the corresponding record type is absent,
8466 -- but if the type has ancestors it may have primitive operations.
8467
8468 elsif Is_Tagged_Type (Id) then
8469 return Direct_Primitive_Operations (Id);
8470
12009a12
AC
8471 else
8472 return No_Elist;
8473 end if;
8474 else
8475 return Direct_Primitive_Operations (Id);
8476 end if;
8477 end Primitive_Operations;
8478
b7f17b20
ES
8479 ---------------------
8480 -- Record_Rep_Item --
8481 ---------------------
8482
8483 procedure Record_Rep_Item (E : Entity_Id; N : Node_Id) is
8484 begin
8485 Set_Next_Rep_Item (N, First_Rep_Item (E));
8486 Set_First_Rep_Item (E, N);
8487 end Record_Rep_Item;
8488
70482933
RK
8489 ---------------
8490 -- Root_Type --
8491 ---------------
8492
8493 function Root_Type (Id : E) return E is
8494 T, Etyp : E;
8495
8496 begin
8497 pragma Assert (Nkind (Id) in N_Entity);
8498
8499 T := Base_Type (Id);
8500
8501 if Ekind (T) = E_Class_Wide_Type then
8502 return Etype (T);
8503
d3f70b35 8504 -- Other cases
70482933
RK
8505
8506 else
8507 loop
8508 Etyp := Etype (T);
8509
8510 if T = Etyp then
8511 return T;
8512
fbf5a39b
AC
8513 -- Following test catches some error cases resulting from
8514 -- previous errors.
8515
8516 elsif No (Etyp) then
ee2ba856 8517 Check_Error_Detected;
fbf5a39b
AC
8518 return T;
8519
70482933
RK
8520 elsif Is_Private_Type (T) and then Etyp = Full_View (T) then
8521 return T;
8522
8523 elsif Is_Private_Type (Etyp) and then Full_View (Etyp) = T then
8524 return T;
8525 end if;
8526
8527 T := Etyp;
fbf5a39b 8528
21d27997
RD
8529 -- Return if there is a circularity in the inheritance chain. This
8530 -- happens in some error situations and we do not want to get
8531 -- stuck in this loop.
fbf5a39b
AC
8532
8533 if T = Base_Type (Id) then
8534 return T;
8535 end if;
70482933
RK
8536 end loop;
8537 end if;
70482933
RK
8538 end Root_Type;
8539
26df19ce
AC
8540 ---------------------
8541 -- Safe_Emax_Value --
8542 ---------------------
8543
8544 function Safe_Emax_Value (Id : E) return Uint is
8545 begin
8546 return Machine_Emax_Value (Id);
8547 end Safe_Emax_Value;
8548
8549 ----------------------
8550 -- Safe_First_Value --
8551 ----------------------
8552
8553 function Safe_First_Value (Id : E) return Ureal is
8554 begin
8555 return -Safe_Last_Value (Id);
8556 end Safe_First_Value;
8557
8558 ---------------------
8559 -- Safe_Last_Value --
8560 ---------------------
8561
8562 function Safe_Last_Value (Id : E) return Ureal is
8563 Radix : constant Uint := Machine_Radix_Value (Id);
8564 Mantissa : constant Uint := Machine_Mantissa_Value (Id);
8565 Emax : constant Uint := Safe_Emax_Value (Id);
8566 Significand : constant Uint := Radix ** Mantissa - 1;
8567 Exponent : constant Uint := Emax - Mantissa;
8568
8569 begin
8570 if Radix = 2 then
8571 return
8572 UR_From_Components
8573 (Num => Significand * 2 ** (Exponent mod 4),
8574 Den => -Exponent / 4,
8575 Rbase => 16);
26df19ce
AC
8576 else
8577 return
8578 UR_From_Components
8579 (Num => Significand,
8580 Den => -Exponent,
8581 Rbase => 16);
8582 end if;
8583 end Safe_Last_Value;
8584
70482933
RK
8585 -----------------
8586 -- Scope_Depth --
8587 -----------------
8588
8589 function Scope_Depth (Id : E) return Uint is
1d571f3b 8590 Scop : Entity_Id;
70482933
RK
8591
8592 begin
1d571f3b 8593 Scop := Id;
70482933
RK
8594 while Is_Record_Type (Scop) loop
8595 Scop := Scope (Scop);
8596 end loop;
8597
8598 return Scope_Depth_Value (Scop);
8599 end Scope_Depth;
8600
8601 ---------------------
8602 -- Scope_Depth_Set --
8603 ---------------------
8604
8605 function Scope_Depth_Set (Id : E) return B is
8606 begin
8607 return not Is_Record_Type (Id)
8608 and then Field22 (Id) /= Union_Id (Empty);
8609 end Scope_Depth_Set;
8610
8611 -----------------------------
8612 -- Set_Component_Alignment --
8613 -----------------------------
8614
8615 -- Component Alignment is encoded using two flags, Flag128/129 as
8616 -- follows. Note that both flags False = Align_Default, so that the
8617 -- default initialization of flags to False initializes component
8618 -- alignment to the default value as required.
8619
8620 -- Flag128 Flag129 Value
8621 -- ------- ------- -----
8622 -- False False Calign_Default
8623 -- False True Calign_Component_Size
8624 -- True False Calign_Component_Size_4
8625 -- True True Calign_Storage_Unit
8626
8627 procedure Set_Component_Alignment (Id : E; V : C) is
8628 begin
8629 pragma Assert ((Is_Array_Type (Id) or else Is_Record_Type (Id))
d347f572 8630 and then Is_Base_Type (Id));
70482933
RK
8631
8632 case V is
8633 when Calign_Default =>
8634 Set_Flag128 (Id, False);
8635 Set_Flag129 (Id, False);
8636
8637 when Calign_Component_Size =>
8638 Set_Flag128 (Id, False);
8639 Set_Flag129 (Id, True);
8640
8641 when Calign_Component_Size_4 =>
8642 Set_Flag128 (Id, True);
8643 Set_Flag129 (Id, False);
8644
8645 when Calign_Storage_Unit =>
8646 Set_Flag128 (Id, True);
8647 Set_Flag129 (Id, True);
8648 end case;
8649 end Set_Component_Alignment;
8650
e477d718
AC
8651 -------------------------------------
8652 -- Set_Default_Init_Cond_Procedure --
8653 -------------------------------------
8654
8655 procedure Set_Default_Init_Cond_Procedure (Id : E; V : E) is
3ddfabe3
AC
8656 Base_Typ : Entity_Id;
8657 Subp_Elmt : Elmt_Id;
8658 Subp_Id : Entity_Id;
8659 Subps : Elist_Id;
e477d718
AC
8660
8661 begin
4bfb35fd 8662 -- Once set, this attribute cannot be reset
d1b83e62
AC
8663
8664 if No (V) then
8665 pragma Assert (No (Default_Init_Cond_Procedure (Id)));
8666 return;
8667 end if;
8668
e477d718 8669 pragma Assert
caef4e57
HK
8670 (Is_Type (Id)
8671 and then (Has_Default_Init_Cond (Id)
3ddfabe3
AC
8672 or else Has_Inherited_Default_Init_Cond (Id)));
8673
caef4e57 8674 Base_Typ := Base_Type (Id);
3ddfabe3
AC
8675 Subps := Subprograms_For_Type (Base_Typ);
8676
8677 if No (Subps) then
8678 Subps := New_Elmt_List;
8679 Set_Subprograms_For_Type (Base_Typ, Subps);
8680 end if;
e477d718 8681
3ddfabe3
AC
8682 Subp_Elmt := First_Elmt (Subps);
8683 Prepend_Elmt (V, Subps);
e477d718 8684
3ddfabe3
AC
8685 -- Check for a duplicate default initial condition procedure
8686
8687 while Present (Subp_Elmt) loop
8688 Subp_Id := Node (Subp_Elmt);
e477d718 8689
caef4e57 8690 if Is_Default_Init_Cond_Procedure (Subp_Id) then
e477d718
AC
8691 raise Program_Error;
8692 end if;
8693
3ddfabe3 8694 Next_Elmt (Subp_Elmt);
e477d718
AC
8695 end loop;
8696 end Set_Default_Init_Cond_Procedure;
8697
fd0ff1cf
RD
8698 -----------------------------
8699 -- Set_Invariant_Procedure --
8700 -----------------------------
8701
8702 procedure Set_Invariant_Procedure (Id : E; V : E) is
3ddfabe3
AC
8703 Subp_Elmt : Elmt_Id;
8704 Subp_Id : Entity_Id;
8705 Subps : Elist_Id;
fd0ff1cf
RD
8706
8707 begin
3ddfabe3
AC
8708 pragma Assert (Is_Type (Id));
8709
8710 Subps := Subprograms_For_Type (Id);
8711
8712 if No (Subps) then
8713 Subps := New_Elmt_List;
8714 Set_Subprograms_For_Type (Id, Subps);
8715 end if;
8716
8717 Subp_Elmt := First_Elmt (Subps);
8718 Prepend_Elmt (V, Subps);
fd0ff1cf 8719
3ddfabe3 8720 -- Check for a duplicate invariant procedure
fd0ff1cf 8721
3ddfabe3
AC
8722 while Present (Subp_Elmt) loop
8723 Subp_Id := Node (Subp_Elmt);
fc142f63 8724
3ddfabe3 8725 if Is_Invariant_Procedure (Subp_Id) then
fd0ff1cf 8726 raise Program_Error;
fd0ff1cf 8727 end if;
3ddfabe3
AC
8728
8729 Next_Elmt (Subp_Elmt);
fd0ff1cf 8730 end loop;
fd0ff1cf
RD
8731 end Set_Invariant_Procedure;
8732
3ddfabe3
AC
8733 -------------------------------------
8734 -- Set_Partial_Invariant_Procedure --
8735 -------------------------------------
8736
8737 procedure Set_Partial_Invariant_Procedure (Id : E; V : E) is
8738 Subp_Elmt : Elmt_Id;
8739 Subp_Id : Entity_Id;
8740 Subps : Elist_Id;
8741
8742 begin
8743 pragma Assert (Is_Type (Id));
8744
8745 Subps := Subprograms_For_Type (Id);
8746
8747 if No (Subps) then
8748 Subps := New_Elmt_List;
8749 Set_Subprograms_For_Type (Id, Subps);
8750 end if;
8751
8752 Subp_Elmt := First_Elmt (Subps);
8753 Prepend_Elmt (V, Subps);
8754
8755 -- Check for a duplicate partial invariant procedure
8756
8757 while Present (Subp_Elmt) loop
8758 Subp_Id := Node (Subp_Elmt);
8759
8760 if Is_Partial_Invariant_Procedure (Subp_Id) then
8761 raise Program_Error;
8762 end if;
8763
8764 Next_Elmt (Subp_Elmt);
8765 end loop;
8766 end Set_Partial_Invariant_Procedure;
8767
4818e7b9
RD
8768 ----------------------------
8769 -- Set_Predicate_Function --
8770 ----------------------------
fd0ff1cf 8771
4818e7b9 8772 procedure Set_Predicate_Function (Id : E; V : E) is
3ddfabe3
AC
8773 Subp_Elmt : Elmt_Id;
8774 Subp_Id : Entity_Id;
8775 Subps : Elist_Id;
fd0ff1cf
RD
8776
8777 begin
8778 pragma Assert (Is_Type (Id) and then Has_Predicates (Id));
8779
3ddfabe3
AC
8780 Subps := Subprograms_For_Type (Id);
8781
8782 if No (Subps) then
8783 Subps := New_Elmt_List;
8784 Set_Subprograms_For_Type (Id, Subps);
8785 end if;
fd0ff1cf 8786
3ddfabe3
AC
8787 Subp_Elmt := First_Elmt (Subps);
8788 Prepend_Elmt (V, Subps);
8789
8790 -- Check for a duplicate predication function
8791
8792 while Present (Subp_Elmt) loop
8793 Subp_Id := Node (Subp_Elmt);
8794
8795 if Ekind (Subp_Id) = E_Function
8796 and then Is_Predicate_Function (Subp_Id)
8797 then
fd0ff1cf 8798 raise Program_Error;
fd0ff1cf 8799 end if;
3ddfabe3
AC
8800
8801 Next_Elmt (Subp_Elmt);
fd0ff1cf 8802 end loop;
4818e7b9 8803 end Set_Predicate_Function;
fd0ff1cf 8804
fc142f63
AC
8805 ------------------------------
8806 -- Set_Predicate_Function_M --
8807 ------------------------------
8808
8809 procedure Set_Predicate_Function_M (Id : E; V : E) is
3ddfabe3
AC
8810 Subp_Elmt : Elmt_Id;
8811 Subp_Id : Entity_Id;
8812 Subps : Elist_Id;
fc142f63
AC
8813
8814 begin
8815 pragma Assert (Is_Type (Id) and then Has_Predicates (Id));
8816
3ddfabe3
AC
8817 Subps := Subprograms_For_Type (Id);
8818
8819 if No (Subps) then
8820 Subps := New_Elmt_List;
8821 Set_Subprograms_For_Type (Id, Subps);
8822 end if;
8823
8824 Subp_Elmt := First_Elmt (Subps);
8825 Prepend_Elmt (V, Subps);
fc142f63 8826
3ddfabe3 8827 -- Check for a duplicate predication function
fc142f63 8828
3ddfabe3
AC
8829 while Present (Subp_Elmt) loop
8830 Subp_Id := Node (Subp_Elmt);
8831
8832 if Ekind (Subp_Id) = E_Function
8833 and then Is_Predicate_Function_M (Subp_Id)
8834 then
fc142f63 8835 raise Program_Error;
fc142f63 8836 end if;
3ddfabe3
AC
8837
8838 Next_Elmt (Subp_Elmt);
fc142f63
AC
8839 end loop;
8840 end Set_Predicate_Function_M;
8841
70482933
RK
8842 -----------------
8843 -- Size_Clause --
8844 -----------------
8845
8846 function Size_Clause (Id : E) return N is
70482933 8847 begin
15e934bf 8848 return Get_Attribute_Definition_Clause (Id, Attribute_Size);
70482933
RK
8849 end Size_Clause;
8850
82c80734
RD
8851 ------------------------
8852 -- Stream_Size_Clause --
8853 ------------------------
8854
8855 function Stream_Size_Clause (Id : E) return N is
8856 begin
15e934bf 8857 return Get_Attribute_Definition_Clause (Id, Attribute_Stream_Size);
82c80734
RD
8858 end Stream_Size_Clause;
8859
70482933
RK
8860 ------------------
8861 -- Subtype_Kind --
8862 ------------------
8863
8864 function Subtype_Kind (K : Entity_Kind) return Entity_Kind is
8865 Kind : Entity_Kind;
8866
8867 begin
8868 case K is
8869 when Access_Kind =>
8870 Kind := E_Access_Subtype;
8871
8872 when E_Array_Type |
8873 E_Array_Subtype =>
8874 Kind := E_Array_Subtype;
8875
8876 when E_Class_Wide_Type |
8877 E_Class_Wide_Subtype =>
8878 Kind := E_Class_Wide_Subtype;
8879
8880 when E_Decimal_Fixed_Point_Type |
8881 E_Decimal_Fixed_Point_Subtype =>
8882 Kind := E_Decimal_Fixed_Point_Subtype;
8883
8884 when E_Ordinary_Fixed_Point_Type |
8885 E_Ordinary_Fixed_Point_Subtype =>
8886 Kind := E_Ordinary_Fixed_Point_Subtype;
8887
8888 when E_Private_Type |
8889 E_Private_Subtype =>
8890 Kind := E_Private_Subtype;
8891
8892 when E_Limited_Private_Type |
8893 E_Limited_Private_Subtype =>
8894 Kind := E_Limited_Private_Subtype;
8895
8896 when E_Record_Type_With_Private |
8897 E_Record_Subtype_With_Private =>
8898 Kind := E_Record_Subtype_With_Private;
8899
8900 when E_Record_Type |
8901 E_Record_Subtype =>
8902 Kind := E_Record_Subtype;
8903
70482933
RK
8904 when Enumeration_Kind =>
8905 Kind := E_Enumeration_Subtype;
8906
8907 when Float_Kind =>
8908 Kind := E_Floating_Point_Subtype;
8909
8910 when Signed_Integer_Kind =>
8911 Kind := E_Signed_Integer_Subtype;
8912
8913 when Modular_Integer_Kind =>
8914 Kind := E_Modular_Integer_Subtype;
8915
8916 when Protected_Kind =>
8917 Kind := E_Protected_Subtype;
8918
8919 when Task_Kind =>
8920 Kind := E_Task_Subtype;
8921
8922 when others =>
8923 Kind := E_Void;
8924 raise Program_Error;
8925 end case;
8926
8927 return Kind;
8928 end Subtype_Kind;
8929
70482933
RK
8930 ---------------------
8931 -- Type_High_Bound --
8932 ---------------------
8933
8934 function Type_High_Bound (Id : E) return Node_Id is
6e443c90 8935 Rng : constant Node_Id := Scalar_Range (Id);
70482933 8936 begin
6e443c90
RD
8937 if Nkind (Rng) = N_Subtype_Indication then
8938 return High_Bound (Range_Expression (Constraint (Rng)));
70482933 8939 else
6e443c90 8940 return High_Bound (Rng);
70482933
RK
8941 end if;
8942 end Type_High_Bound;
8943
8944 --------------------
8945 -- Type_Low_Bound --
8946 --------------------
8947
8948 function Type_Low_Bound (Id : E) return Node_Id is
6e443c90 8949 Rng : constant Node_Id := Scalar_Range (Id);
70482933 8950 begin
6e443c90
RD
8951 if Nkind (Rng) = N_Subtype_Indication then
8952 return Low_Bound (Range_Expression (Constraint (Rng)));
70482933 8953 else
6e443c90 8954 return Low_Bound (Rng);
70482933
RK
8955 end if;
8956 end Type_Low_Bound;
8957
8958 ---------------------
8959 -- Underlying_Type --
8960 ---------------------
8961
8962 function Underlying_Type (Id : E) return E is
8963 begin
70482933
RK
8964 -- For record_with_private the underlying type is always the direct
8965 -- full view. Never try to take the full view of the parent it
8966 -- doesn't make sense.
8967
8968 if Ekind (Id) = E_Record_Type_With_Private then
8969 return Full_View (Id);
8970
8971 elsif Ekind (Id) in Incomplete_Or_Private_Kind then
8972
8973 -- If we have an incomplete or private type with a full view,
bf0b0e5e 8974 -- then we return the Underlying_Type of this full view.
70482933
RK
8975
8976 if Present (Full_View (Id)) then
fbf5a39b
AC
8977 if Id = Full_View (Id) then
8978
8979 -- Previous error in declaration
8980
8981 return Empty;
8982
8983 else
8984 return Underlying_Type (Full_View (Id));
8985 end if;
70482933 8986
bf0b0e5e
AC
8987 -- If we have a private type with an underlying full view, then we
8988 -- return the Underlying_Type of this underlying full view.
8989
8990 elsif Ekind (Id) in Private_Kind
8991 and then Present (Underlying_Full_View (Id))
8992 then
8993 return Underlying_Type (Underlying_Full_View (Id));
8994
10b93b2e
HK
8995 -- If we have an incomplete entity that comes from the limited
8996 -- view then we return the Underlying_Type of its non-limited
8997 -- view.
8998
7b56a91b 8999 elsif From_Limited_With (Id)
10b93b2e
HK
9000 and then Present (Non_Limited_View (Id))
9001 then
9002 return Underlying_Type (Non_Limited_View (Id));
9003
70482933
RK
9004 -- Otherwise check for the case where we have a derived type or
9005 -- subtype, and if so get the Underlying_Type of the parent type.
9006
9007 elsif Etype (Id) /= Id then
9008 return Underlying_Type (Etype (Id));
9009
9010 -- Otherwise we have an incomplete or private type that has
9011 -- no full view, which means that we have not encountered the
9012 -- completion, so return Empty to indicate the underlying type
9013 -- is not yet known.
9014
9015 else
9016 return Empty;
9017 end if;
9018
80211802
AC
9019 -- For non-incomplete, non-private types, return the type itself Also
9020 -- for entities that are not types at all return the entity itself.
70482933
RK
9021
9022 else
9023 return Id;
9024 end if;
9025 end Underlying_Type;
9026
9027 ------------------------
9028 -- Write_Entity_Flags --
9029 ------------------------
9030
9031 procedure Write_Entity_Flags (Id : Entity_Id; Prefix : String) is
9032
9033 procedure W (Flag_Name : String; Flag : Boolean);
9034 -- Write out given flag if it is set
9035
165eab5f
AC
9036 -------
9037 -- W --
9038 -------
9039
70482933
RK
9040 procedure W (Flag_Name : String; Flag : Boolean) is
9041 begin
9042 if Flag then
9043 Write_Str (Prefix);
9044 Write_Str (Flag_Name);
9045 Write_Str (" = True");
9046 Write_Eol;
9047 end if;
9048 end W;
9049
9050 -- Start of processing for Write_Entity_Flags
9051
9052 begin
9053 if (Is_Array_Type (Id) or else Is_Record_Type (Id))
d347f572 9054 and then Is_Base_Type (Id)
70482933
RK
9055 then
9056 Write_Str (Prefix);
9057 Write_Str ("Component_Alignment = ");
9058
9059 case Component_Alignment (Id) is
9060 when Calign_Default =>
9061 Write_Str ("Calign_Default");
9062
9063 when Calign_Component_Size =>
9064 Write_Str ("Calign_Component_Size");
9065
9066 when Calign_Component_Size_4 =>
9067 Write_Str ("Calign_Component_Size_4");
9068
9069 when Calign_Storage_Unit =>
9070 Write_Str ("Calign_Storage_Unit");
9071 end case;
9072
9073 Write_Eol;
9074 end if;
9075
f937473f
RD
9076 W ("Address_Taken", Flag104 (Id));
9077 W ("Body_Needed_For_SAL", Flag40 (Id));
9078 W ("C_Pass_By_Copy", Flag125 (Id));
9079 W ("Can_Never_Be_Null", Flag38 (Id));
9080 W ("Checks_May_Be_Suppressed", Flag31 (Id));
8636f52f 9081 W ("Contains_Ignored_Ghost_Code", Flag279 (Id));
f937473f
RD
9082 W ("Debug_Info_Off", Flag166 (Id));
9083 W ("Default_Expressions_Processed", Flag108 (Id));
9084 W ("Delay_Cleanups", Flag114 (Id));
9085 W ("Delay_Subprogram_Descriptors", Flag50 (Id));
9086 W ("Depends_On_Private", Flag14 (Id));
9087 W ("Discard_Names", Flag88 (Id));
9088 W ("Elaboration_Entity_Required", Flag174 (Id));
9089 W ("Elaborate_Body_Desirable", Flag210 (Id));
9090 W ("Entry_Accepted", Flag152 (Id));
ce0bead3 9091 W ("Can_Use_Internal_Rep", Flag229 (Id));
f937473f 9092 W ("Finalize_Storage_Only", Flag158 (Id));
7b56a91b 9093 W ("From_Limited_With", Flag159 (Id));
f937473f
RD
9094 W ("Has_Aliased_Components", Flag135 (Id));
9095 W ("Has_Alignment_Clause", Flag46 (Id));
9096 W ("Has_All_Calls_Remote", Flag79 (Id));
f937473f
RD
9097 W ("Has_Atomic_Components", Flag86 (Id));
9098 W ("Has_Biased_Representation", Flag139 (Id));
9099 W ("Has_Completion", Flag26 (Id));
9100 W ("Has_Completion_In_Body", Flag71 (Id));
9101 W ("Has_Complex_Representation", Flag140 (Id));
9102 W ("Has_Component_Size_Clause", Flag68 (Id));
9103 W ("Has_Contiguous_Rep", Flag181 (Id));
9104 W ("Has_Controlled_Component", Flag43 (Id));
9105 W ("Has_Controlling_Result", Flag98 (Id));
9106 W ("Has_Convention_Pragma", Flag119 (Id));
a01b9df6 9107 W ("Has_Default_Aspect", Flag39 (Id));
e477d718 9108 W ("Has_Default_Init_Cond", Flag3 (Id));
c159409f 9109 W ("Has_Delayed_Aspects", Flag200 (Id));
f937473f 9110 W ("Has_Delayed_Freeze", Flag18 (Id));
15e934bf 9111 W ("Has_Delayed_Rep_Aspects", Flag261 (Id));
f937473f 9112 W ("Has_Discriminants", Flag5 (Id));
aab45d22
AC
9113 W ("Has_Dispatch_Table", Flag220 (Id));
9114 W ("Has_Dynamic_Predicate_Aspect", Flag258 (Id));
f937473f
RD
9115 W ("Has_Enumeration_Rep_Clause", Flag66 (Id));
9116 W ("Has_Exit", Flag47 (Id));
c9d70ab1 9117 W ("Has_Expanded_Contract", Flag240 (Id));
f937473f
RD
9118 W ("Has_Forward_Instantiation", Flag175 (Id));
9119 W ("Has_Fully_Qualified_Name", Flag173 (Id));
9120 W ("Has_Gigi_Rep_Item", Flag82 (Id));
9121 W ("Has_Homonym", Flag56 (Id));
0da80d7d 9122 W ("Has_Implicit_Dereference", Flag251 (Id));
43bebb10 9123 W ("Has_Independent_Components", Flag34 (Id));
e606088a 9124 W ("Has_Inheritable_Invariants", Flag248 (Id));
e477d718 9125 W ("Has_Inherited_Default_Init_Cond", Flag133 (Id));
3ddfabe3 9126 W ("Has_Inherited_Invariants", Flag291 (Id));
5d37ba92 9127 W ("Has_Initial_Value", Flag219 (Id));
d436b30d 9128 W ("Has_Loop_Entry_Attributes", Flag260 (Id));
f937473f
RD
9129 W ("Has_Machine_Radix_Clause", Flag83 (Id));
9130 W ("Has_Master_Entity", Flag21 (Id));
9131 W ("Has_Missing_Return", Flag142 (Id));
9132 W ("Has_Nested_Block_With_Handler", Flag101 (Id));
5a271a7f 9133 W ("Has_Nested_Subprogram", Flag282 (Id));
f937473f 9134 W ("Has_Non_Standard_Rep", Flag75 (Id));
fc999c5d 9135 W ("Has_Out_Or_In_Out_Parameter", Flag110 (Id));
f937473f 9136 W ("Has_Object_Size_Clause", Flag172 (Id));
3ddfabe3 9137 W ("Has_Own_Invariants", Flag232 (Id));
f937473f 9138 W ("Has_Per_Object_Constraint", Flag154 (Id));
f937473f
RD
9139 W ("Has_Pragma_Controlled", Flag27 (Id));
9140 W ("Has_Pragma_Elaborate_Body", Flag150 (Id));
9141 W ("Has_Pragma_Inline", Flag157 (Id));
ce0bead3 9142 W ("Has_Pragma_Inline_Always", Flag230 (Id));
42ae3870 9143 W ("Has_Pragma_No_Inline", Flag201 (Id));
bd29d519 9144 W ("Has_Pragma_Ordered", Flag198 (Id));
f937473f 9145 W ("Has_Pragma_Pack", Flag121 (Id));
5d37ba92 9146 W ("Has_Pragma_Preelab_Init", Flag221 (Id));
f937473f
RD
9147 W ("Has_Pragma_Pure", Flag203 (Id));
9148 W ("Has_Pragma_Pure_Function", Flag179 (Id));
4c8a5bb8 9149 W ("Has_Pragma_Thread_Local_Storage", Flag169 (Id));
9d77af56 9150 W ("Has_Pragma_Unmodified", Flag233 (Id));
f937473f
RD
9151 W ("Has_Pragma_Unreferenced", Flag180 (Id));
9152 W ("Has_Pragma_Unreferenced_Objects", Flag212 (Id));
fd0ff1cf 9153 W ("Has_Predicates", Flag250 (Id));
f937473f 9154 W ("Has_Primitive_Operations", Flag120 (Id));
87729e5a 9155 W ("Has_Private_Ancestor", Flag151 (Id));
f937473f 9156 W ("Has_Private_Declaration", Flag155 (Id));
96e90ac1 9157 W ("Has_Protected", Flag271 (Id));
f937473f
RD
9158 W ("Has_Qualified_Name", Flag161 (Id));
9159 W ("Has_RACW", Flag214 (Id));
9160 W ("Has_Record_Rep_Clause", Flag65 (Id));
9161 W ("Has_Recursive_Call", Flag143 (Id));
4c51ff88 9162 W ("Has_Shift_Operator", Flag267 (Id));
f937473f
RD
9163 W ("Has_Size_Clause", Flag29 (Id));
9164 W ("Has_Small_Clause", Flag67 (Id));
9165 W ("Has_Specified_Layout", Flag100 (Id));
9166 W ("Has_Specified_Stream_Input", Flag190 (Id));
9167 W ("Has_Specified_Stream_Output", Flag191 (Id));
9168 W ("Has_Specified_Stream_Read", Flag192 (Id));
9169 W ("Has_Specified_Stream_Write", Flag193 (Id));
9170 W ("Has_Static_Discriminants", Flag211 (Id));
ee4eee0a 9171 W ("Has_Static_Predicate", Flag269 (Id));
aab45d22 9172 W ("Has_Static_Predicate_Aspect", Flag259 (Id));
f937473f
RD
9173 W ("Has_Storage_Size_Clause", Flag23 (Id));
9174 W ("Has_Stream_Size_Clause", Flag184 (Id));
f937473f 9175 W ("Has_Task", Flag30 (Id));
4969efdf 9176 W ("Has_Timing_Event", Flag289 (Id));
ce0bead3 9177 W ("Has_Thunks", Flag228 (Id));
f937473f
RD
9178 W ("Has_Unchecked_Union", Flag123 (Id));
9179 W ("Has_Unknown_Discriminants", Flag72 (Id));
c5c0ce68 9180 W ("Has_Visible_Refinement", Flag263 (Id));
f937473f
RD
9181 W ("Has_Volatile_Components", Flag87 (Id));
9182 W ("Has_Xref_Entry", Flag182 (Id));
9183 W ("In_Package_Body", Flag48 (Id));
9184 W ("In_Private_Part", Flag45 (Id));
9185 W ("In_Use", Flag8 (Id));
f937473f 9186 W ("Is_Abstract_Subprogram", Flag19 (Id));
e477d718 9187 W ("Is_Abstract_Type", Flag146 (Id));
f937473f
RD
9188 W ("Is_Access_Constant", Flag69 (Id));
9189 W ("Is_Ada_2005_Only", Flag185 (Id));
599a7411 9190 W ("Is_Ada_2012_Only", Flag199 (Id));
f937473f
RD
9191 W ("Is_Aliased", Flag15 (Id));
9192 W ("Is_Asynchronous", Flag81 (Id));
9193 W ("Is_Atomic", Flag85 (Id));
9194 W ("Is_Bit_Packed_Array", Flag122 (Id));
9195 W ("Is_CPP_Class", Flag74 (Id));
9196 W ("Is_Called", Flag102 (Id));
9197 W ("Is_Character_Type", Flag63 (Id));
c5cec2fe 9198 W ("Is_Checked_Ghost_Entity", Flag277 (Id));
f937473f
RD
9199 W ("Is_Child_Unit", Flag73 (Id));
9200 W ("Is_Class_Wide_Equivalent_Type", Flag35 (Id));
9201 W ("Is_Compilation_Unit", Flag149 (Id));
9202 W ("Is_Completely_Hidden", Flag103 (Id));
9203 W ("Is_Concurrent_Record_Type", Flag20 (Id));
9204 W ("Is_Constr_Subt_For_UN_Aliased", Flag141 (Id));
9205 W ("Is_Constr_Subt_For_U_Nominal", Flag80 (Id));
9206 W ("Is_Constrained", Flag12 (Id));
9207 W ("Is_Constructor", Flag76 (Id));
9208 W ("Is_Controlled", Flag42 (Id));
9209 W ("Is_Controlling_Formal", Flag97 (Id));
e477d718 9210 W ("Is_Default_Init_Cond_Procedure", Flag132 (Id));
d9d25d04 9211 W ("Is_Descendant_Of_Address", Flag223 (Id));
f937473f 9212 W ("Is_Discrim_SO_Function", Flag176 (Id));
e2ef0ff6 9213 W ("Is_Discriminant_Check_Function", Flag264 (Id));
21d27997 9214 W ("Is_Dispatch_Table_Entity", Flag234 (Id));
f937473f
RD
9215 W ("Is_Dispatching_Operation", Flag6 (Id));
9216 W ("Is_Eliminated", Flag124 (Id));
9217 W ("Is_Entry_Formal", Flag52 (Id));
75a957f5 9218 W ("Is_Exception_Handler", Flag286 (Id));
f937473f
RD
9219 W ("Is_Exported", Flag99 (Id));
9220 W ("Is_First_Subtype", Flag70 (Id));
9221 W ("Is_For_Access_Subtype", Flag118 (Id));
9222 W ("Is_Formal_Subprogram", Flag111 (Id));
9223 W ("Is_Frozen", Flag4 (Id));
fce54763 9224 W ("Is_Generic_Actual_Subprogram", Flag274 (Id));
f937473f
RD
9225 W ("Is_Generic_Actual_Type", Flag94 (Id));
9226 W ("Is_Generic_Instance", Flag130 (Id));
9227 W ("Is_Generic_Type", Flag13 (Id));
9228 W ("Is_Hidden", Flag57 (Id));
7b4ebba5 9229 W ("Is_Hidden_Non_Overridden_Subpgm", Flag2 (Id));
f937473f 9230 W ("Is_Hidden_Open_Scope", Flag171 (Id));
c5cec2fe 9231 W ("Is_Ignored_Ghost_Entity", Flag278 (Id));
f937473f 9232 W ("Is_Immediately_Visible", Flag7 (Id));
df177175 9233 W ("Is_Implementation_Defined", Flag254 (Id));
f937473f 9234 W ("Is_Imported", Flag24 (Id));
43bebb10 9235 W ("Is_Independent", Flag268 (Id));
f937473f 9236 W ("Is_Inlined", Flag11 (Id));
4bd4bb7f 9237 W ("Is_Inlined_Always", Flag1 (Id));
f937473f
RD
9238 W ("Is_Instantiated", Flag126 (Id));
9239 W ("Is_Interface", Flag186 (Id));
9240 W ("Is_Internal", Flag17 (Id));
9241 W ("Is_Interrupt_Handler", Flag89 (Id));
9242 W ("Is_Intrinsic_Subprogram", Flag64 (Id));
fc142f63 9243 W ("Is_Invariant_Procedure", Flag257 (Id));
f937473f
RD
9244 W ("Is_Itype", Flag91 (Id));
9245 W ("Is_Known_Non_Null", Flag37 (Id));
9246 W ("Is_Known_Null", Flag204 (Id));
9247 W ("Is_Known_Valid", Flag170 (Id));
9248 W ("Is_Limited_Composite", Flag106 (Id));
9249 W ("Is_Limited_Interface", Flag197 (Id));
9250 W ("Is_Limited_Record", Flag25 (Id));
e477d718 9251 W ("Is_Local_Anonymous_Access", Flag194 (Id));
f937473f
RD
9252 W ("Is_Machine_Code_Subprogram", Flag137 (Id));
9253 W ("Is_Non_Static_Subtype", Flag109 (Id));
9254 W ("Is_Null_Init_Proc", Flag178 (Id));
9255 W ("Is_Obsolescent", Flag153 (Id));
ce0bead3 9256 W ("Is_Only_Out_Parameter", Flag226 (Id));
f937473f
RD
9257 W ("Is_Package_Body_Entity", Flag160 (Id));
9258 W ("Is_Packed", Flag51 (Id));
ee4eee0a 9259 W ("Is_Packed_Array_Impl_Type", Flag138 (Id));
b54d1d39 9260 W ("Is_Param_Block_Component_Type", Flag215 (Id));
3ddfabe3 9261 W ("Is_Partial_Invariant_Procedure", Flag292 (Id));
f937473f 9262 W ("Is_Potentially_Use_Visible", Flag9 (Id));
fc142f63
AC
9263 W ("Is_Predicate_Function", Flag255 (Id));
9264 W ("Is_Predicate_Function_M", Flag256 (Id));
f937473f 9265 W ("Is_Preelaborated", Flag59 (Id));
d44202ba 9266 W ("Is_Primitive", Flag218 (Id));
f937473f
RD
9267 W ("Is_Primitive_Wrapper", Flag195 (Id));
9268 W ("Is_Private_Composite", Flag107 (Id));
9269 W ("Is_Private_Descendant", Flag53 (Id));
d44202ba 9270 W ("Is_Private_Primitive", Flag245 (Id));
df3e68b1 9271 W ("Is_Processed_Transient", Flag252 (Id));
f937473f
RD
9272 W ("Is_Public", Flag10 (Id));
9273 W ("Is_Pure", Flag44 (Id));
9274 W ("Is_Pure_Unit_Access_Type", Flag189 (Id));
685094bf 9275 W ("Is_RACW_Stub_Type", Flag244 (Id));
d5e96bc6 9276 W ("Is_Raised", Flag224 (Id));
f937473f
RD
9277 W ("Is_Remote_Call_Interface", Flag62 (Id));
9278 W ("Is_Remote_Types", Flag61 (Id));
9279 W ("Is_Renaming_Of_Object", Flag112 (Id));
9280 W ("Is_Return_Object", Flag209 (Id));
273adcdf 9281 W ("Is_Safe_To_Reevaluate", Flag249 (Id));
f937473f 9282 W ("Is_Shared_Passive", Flag60 (Id));
5a271a7f 9283 W ("Is_Static_Type", Flag281 (Id));
f937473f
RD
9284 W ("Is_Statically_Allocated", Flag28 (Id));
9285 W ("Is_Tag", Flag78 (Id));
9286 W ("Is_Tagged_Type", Flag55 (Id));
fdce4bb7 9287 W ("Is_Thunk", Flag225 (Id));
0f282086 9288 W ("Is_Trivial_Subprogram", Flag235 (Id));
f937473f
RD
9289 W ("Is_True_Constant", Flag163 (Id));
9290 W ("Is_Unchecked_Union", Flag117 (Id));
9013065b 9291 W ("Is_Underlying_Record_View", Flag246 (Id));
d3ef4bd6 9292 W ("Is_Unimplemented", Flag284 (Id));
f937473f 9293 W ("Is_Unsigned_Type", Flag144 (Id));
f8dae9bb 9294 W ("Is_Uplevel_Referenced_Entity", Flag283 (Id));
f937473f 9295 W ("Is_Valued_Procedure", Flag127 (Id));
f937473f 9296 W ("Is_Visible_Formal", Flag206 (Id));
8398e82e 9297 W ("Is_Visible_Lib_Unit", Flag116 (Id));
f937473f 9298 W ("Is_Volatile", Flag16 (Id));
57abdadd 9299 W ("Is_Volatile_Full_Access", Flag285 (Id));
f937473f
RD
9300 W ("Itype_Printed", Flag202 (Id));
9301 W ("Kill_Elaboration_Checks", Flag32 (Id));
9302 W ("Kill_Range_Checks", Flag33 (Id));
f937473f 9303 W ("Known_To_Have_Preelab_Init", Flag207 (Id));
fad0600d 9304 W ("Low_Bound_Tested", Flag205 (Id));
f937473f
RD
9305 W ("Machine_Radix_10", Flag84 (Id));
9306 W ("Materialize_Entity", Flag168 (Id));
15e934bf 9307 W ("May_Inherit_Delayed_Rep_Aspects", Flag262 (Id));
f937473f
RD
9308 W ("Must_Be_On_Byte_Boundary", Flag183 (Id));
9309 W ("Must_Have_Preelab_Init", Flag208 (Id));
9310 W ("Needs_Debug_Info", Flag147 (Id));
9311 W ("Needs_No_Actuals", Flag22 (Id));
9312 W ("Never_Set_In_Source", Flag115 (Id));
a6282852 9313 W ("No_Dynamic_Predicate_On_actual", Flag276 (Id));
f937473f 9314 W ("No_Pool_Assigned", Flag131 (Id));
a6282852 9315 W ("No_Predicate_On_actual", Flag275 (Id));
f937473f
RD
9316 W ("No_Return", Flag113 (Id));
9317 W ("No_Strict_Aliasing", Flag136 (Id));
9318 W ("Non_Binary_Modulus", Flag58 (Id));
9319 W ("Nonzero_Is_True", Flag162 (Id));
d1f453b7 9320 W ("OK_To_Rename", Flag247 (Id));
0f282086 9321 W ("OK_To_Reorder_Components", Flag239 (Id));
21d27997
RD
9322 W ("Optimize_Alignment_Space", Flag241 (Id));
9323 W ("Optimize_Alignment_Time", Flag242 (Id));
9324 W ("Overlays_Constant", Flag243 (Id));
dacc3457 9325 W ("Partial_View_Has_Unknown_Discr", Flag280 (Id));
f937473f
RD
9326 W ("Reachable", Flag49 (Id));
9327 W ("Referenced", Flag156 (Id));
9328 W ("Referenced_As_LHS", Flag36 (Id));
ce0bead3
HK
9329 W ("Referenced_As_Out_Parameter", Flag227 (Id));
9330 W ("Renamed_In_Spec", Flag231 (Id));
f937473f
RD
9331 W ("Requires_Overriding", Flag213 (Id));
9332 W ("Return_Present", Flag54 (Id));
9333 W ("Returns_By_Ref", Flag90 (Id));
9334 W ("Reverse_Bit_Order", Flag164 (Id));
de94a7e7 9335 W ("Reverse_Storage_Order", Flag93 (Id));
2700b9c1 9336 W ("Rewritten_For_C", Flag287 (Id));
8d4611f7 9337 W ("Predicates_Ignored", Flag288 (Id));
f937473f
RD
9338 W ("Sec_Stack_Needed_For_Return", Flag167 (Id));
9339 W ("Size_Depends_On_Discriminant", Flag177 (Id));
9340 W ("Size_Known_At_Compile_Time", Flag92 (Id));
579847c2
AC
9341 W ("SPARK_Aux_Pragma_Inherited", Flag266 (Id));
9342 W ("SPARK_Pragma_Inherited", Flag265 (Id));
220d1fd9
AC
9343 W ("SSO_Set_High_By_Default", Flag273 (Id));
9344 W ("SSO_Set_Low_By_Default", Flag272 (Id));
0a36105d 9345 W ("Static_Elaboration_Desired", Flag77 (Id));
50ea6357 9346 W ("Stores_Attribute_Old_Prefix", Flag270 (Id));
f937473f
RD
9347 W ("Strict_Alignment", Flag145 (Id));
9348 W ("Suppress_Elaboration_Warnings", Flag148 (Id));
5b1e6aca 9349 W ("Suppress_Initialization", Flag105 (Id));
f937473f 9350 W ("Suppress_Style_Checks", Flag165 (Id));
0a36105d 9351 W ("Suppress_Value_Tracking_On_Call", Flag217 (Id));
f937473f 9352 W ("Treat_As_Volatile", Flag41 (Id));
0a36105d 9353 W ("Universal_Aliasing", Flag216 (Id));
5d37ba92 9354 W ("Used_As_Generic_Actual", Flag222 (Id));
f937473f 9355 W ("Uses_Sec_Stack", Flag95 (Id));
f937473f 9356 W ("Warnings_Off", Flag96 (Id));
0f282086
RD
9357 W ("Warnings_Off_Used", Flag236 (Id));
9358 W ("Warnings_Off_Used_Unmodified", Flag237 (Id));
9359 W ("Warnings_Off_Used_Unreferenced", Flag238 (Id));
f937473f 9360 W ("Was_Hidden", Flag196 (Id));
70482933
RK
9361 end Write_Entity_Flags;
9362
9363 -----------------------
9364 -- Write_Entity_Info --
9365 -----------------------
9366
9367 procedure Write_Entity_Info (Id : Entity_Id; Prefix : String) is
9368
9369 procedure Write_Attribute (Which : String; Nam : E);
9370 -- Write attribute value with given string name
9371
9372 procedure Write_Kind (Id : Entity_Id);
9373 -- Write Ekind field of entity
9374
6e443c90
RD
9375 ---------------------
9376 -- Write_Attribute --
9377 ---------------------
9378
70482933
RK
9379 procedure Write_Attribute (Which : String; Nam : E) is
9380 begin
9381 Write_Str (Prefix);
9382 Write_Str (Which);
9383 Write_Int (Int (Nam));
9384 Write_Str (" ");
9385 Write_Name (Chars (Nam));
9386 Write_Str (" ");
9387 end Write_Attribute;
9388
6e443c90
RD
9389 ----------------
9390 -- Write_Kind --
9391 ----------------
9392
70482933
RK
9393 procedure Write_Kind (Id : Entity_Id) is
9394 K : constant String := Entity_Kind'Image (Ekind (Id));
9395
9396 begin
9397 Write_Str (Prefix);
9398 Write_Str (" Kind ");
9399
9400 if Is_Type (Id) and then Is_Tagged_Type (Id) then
9401 Write_Str ("TAGGED ");
9402 end if;
9403
9404 Write_Str (K (3 .. K'Length));
9405 Write_Str (" ");
9406
9407 if Is_Type (Id) and then Depends_On_Private (Id) then
9408 Write_Str ("Depends_On_Private ");
9409 end if;
9410 end Write_Kind;
9411
9412 -- Start of processing for Write_Entity_Info
9413
9414 begin
9415 Write_Eol;
9416 Write_Attribute ("Name ", Id);
9417 Write_Int (Int (Id));
9418 Write_Eol;
9419 Write_Kind (Id);
9420 Write_Eol;
9421 Write_Attribute (" Type ", Etype (Id));
9422 Write_Eol;
9423 Write_Attribute (" Scope ", Scope (Id));
9424 Write_Eol;
9425
9426 case Ekind (Id) is
9427
9428 when Discrete_Kind =>
9429 Write_Str ("Bounds: Id = ");
9430
9431 if Present (Scalar_Range (Id)) then
9432 Write_Int (Int (Type_Low_Bound (Id)));
9433 Write_Str (" .. Id = ");
9434 Write_Int (Int (Type_High_Bound (Id)));
9435 else
9436 Write_Str ("Empty");
9437 end if;
9438
9439 Write_Eol;
9440
9441 when Array_Kind =>
9442 declare
9443 Index : E;
9444
9445 begin
1d571f3b
AC
9446 Write_Attribute
9447 (" Component Type ", Component_Type (Id));
70482933
RK
9448 Write_Eol;
9449 Write_Str (Prefix);
3b42c566 9450 Write_Str (" Indexes ");
70482933
RK
9451
9452 Index := First_Index (Id);
70482933
RK
9453 while Present (Index) loop
9454 Write_Attribute (" ", Etype (Index));
9455 Index := Next_Index (Index);
9456 end loop;
9457
9458 Write_Eol;
9459 end;
9460
9461 when Access_Kind =>
9462 Write_Attribute
9463 (" Directly Designated Type ",
9464 Directly_Designated_Type (Id));
9465 Write_Eol;
9466
9467 when Overloadable_Kind =>
9468 if Present (Homonym (Id)) then
9469 Write_Str (" Homonym ");
9470 Write_Name (Chars (Homonym (Id)));
9471 Write_Str (" ");
9472 Write_Int (Int (Homonym (Id)));
9473 Write_Eol;
9474 end if;
9475
9476 Write_Eol;
9477
9478 when E_Component =>
9479 if Ekind (Scope (Id)) in Record_Kind then
9480 Write_Attribute (
9481 " Original_Record_Component ",
9482 Original_Record_Component (Id));
9483 Write_Int (Int (Original_Record_Component (Id)));
9484 Write_Eol;
9485 end if;
9486
9487 when others => null;
9488 end case;
9489 end Write_Entity_Info;
9490
9491 -----------------------
9492 -- Write_Field6_Name --
9493 -----------------------
9494
9495 procedure Write_Field6_Name (Id : Entity_Id) is
caf07df9 9496 pragma Unreferenced (Id);
70482933
RK
9497 begin
9498 Write_Str ("First_Rep_Item");
9499 end Write_Field6_Name;
9500
9501 -----------------------
9502 -- Write_Field7_Name --
9503 -----------------------
9504
9505 procedure Write_Field7_Name (Id : Entity_Id) is
caf07df9 9506 pragma Unreferenced (Id);
70482933
RK
9507 begin
9508 Write_Str ("Freeze_Node");
9509 end Write_Field7_Name;
9510
9511 -----------------------
9512 -- Write_Field8_Name --
9513 -----------------------
9514
9515 procedure Write_Field8_Name (Id : Entity_Id) is
9516 begin
9517 case Ekind (Id) is
f937473f 9518 when Type_Kind =>
70482933
RK
9519 Write_Str ("Associated_Node_For_Itype");
9520
df3e68b1
HK
9521 when E_Package =>
9522 Write_Str ("Dependent_Instances");
9523
51bf9bdf
AC
9524 when E_Loop =>
9525 Write_Str ("First_Exit_Statement");
9526
df3e68b1
HK
9527 when E_Variable =>
9528 Write_Str ("Hiding_Loop_Variable");
9529
9530 when Formal_Kind |
9531 E_Function |
9532 E_Subprogram_Body =>
9533 Write_Str ("Mechanism");
9534
9535 when E_Component |
9536 E_Discriminant =>
9537 Write_Str ("Normalized_First_Bit");
70482933 9538
ab8843fa
HK
9539 when E_Abstract_State =>
9540 Write_Str ("Refinement_Constituents");
9541
f937473f 9542 when E_Return_Statement =>
6e443c90
RD
9543 Write_Str ("Return_Applies_To");
9544
f937473f 9545 when others =>
70482933
RK
9546 Write_Str ("Field8??");
9547 end case;
9548 end Write_Field8_Name;
9549
9550 -----------------------
9551 -- Write_Field9_Name --
9552 -----------------------
9553
9554 procedure Write_Field9_Name (Id : Entity_Id) is
9555 begin
9556 case Ekind (Id) is
f937473f 9557 when Type_Kind =>
70482933
RK
9558 Write_Str ("Class_Wide_Type");
9559
df3e68b1
HK
9560 when Object_Kind =>
9561 Write_Str ("Current_Value");
9562
f937473f
RD
9563 when E_Function |
9564 E_Generic_Function |
9565 E_Generic_Package |
9566 E_Generic_Procedure |
9567 E_Package |
9568 E_Procedure =>
70482933
RK
9569 Write_Str ("Renaming_Map");
9570
f937473f 9571 when others =>
70482933
RK
9572 Write_Str ("Field9??");
9573 end case;
9574 end Write_Field9_Name;
9575
9576 ------------------------
9577 -- Write_Field10_Name --
9578 ------------------------
9579
9580 procedure Write_Field10_Name (Id : Entity_Id) is
9581 begin
9582 case Ekind (Id) is
46202729
AC
9583 when Class_Wide_Kind |
9584 Incomplete_Kind |
9585 E_Record_Type |
9586 E_Record_Subtype |
9587 Private_Kind |
9588 Concurrent_Kind =>
9589 Write_Str ("Direct_Primitive_Operations");
70482933 9590
f937473f
RD
9591 when E_In_Parameter |
9592 E_Constant =>
70482933
RK
9593 Write_Str ("Discriminal_Link");
9594
caf07df9
AC
9595 when Float_Kind =>
9596 Write_Str ("Float_Rep");
9597
f937473f
RD
9598 when E_Function |
9599 E_Package |
9600 E_Package_Body |
9601 E_Procedure =>
70482933
RK
9602 Write_Str ("Handler_Records");
9603
f937473f
RD
9604 when E_Component |
9605 E_Discriminant =>
70482933
RK
9606 Write_Str ("Normalized_Position_Max");
9607
75b87c16
AC
9608 when E_Abstract_State |
9609 E_Variable =>
9610 Write_Str ("Part_Of_Constituents");
9611
f937473f 9612 when others =>
70482933
RK
9613 Write_Str ("Field10??");
9614 end case;
9615 end Write_Field10_Name;
9616
9617 ------------------------
9618 -- Write_Field11_Name --
9619 ------------------------
9620
9621 procedure Write_Field11_Name (Id : Entity_Id) is
9622 begin
9623 case Ekind (Id) is
df3e68b1
HK
9624 when E_Block =>
9625 Write_Str ("Block_Node");
70482933 9626
f937473f
RD
9627 when E_Component |
9628 E_Discriminant =>
70482933
RK
9629 Write_Str ("Component_Bit_Offset");
9630
df3e68b1
HK
9631 when Formal_Kind =>
9632 Write_Str ("Entry_Component");
70482933 9633
f937473f 9634 when E_Enumeration_Literal =>
70482933
RK
9635 Write_Str ("Enumeration_Pos");
9636
df3e68b1
HK
9637 when Type_Kind |
9638 E_Constant =>
9639 Write_Str ("Full_View");
9640
9641 when E_Generic_Package =>
9642 Write_Str ("Generic_Homonym");
70482933 9643
fdc54be6
AC
9644 when E_Variable =>
9645 Write_Str ("Part_Of_References");
9646
9647 when E_Entry |
9648 E_Entry_Family |
9649 E_Function |
9650 E_Procedure =>
70482933
RK
9651 Write_Str ("Protected_Body_Subprogram");
9652
f937473f 9653 when others =>
70482933
RK
9654 Write_Str ("Field11??");
9655 end case;
9656 end Write_Field11_Name;
9657
9658 ------------------------
9659 -- Write_Field12_Name --
9660 ------------------------
9661
9662 procedure Write_Field12_Name (Id : Entity_Id) is
9663 begin
9664 case Ekind (Id) is
df3e68b1
HK
9665 when E_Package =>
9666 Write_Str ("Associated_Formal_Package");
9667
f937473f 9668 when Entry_Kind =>
70482933
RK
9669 Write_Str ("Barrier_Function");
9670
f937473f 9671 when E_Enumeration_Literal =>
70482933
RK
9672 Write_Str ("Enumeration_Rep");
9673
f937473f
RD
9674 when Type_Kind |
9675 E_Component |
9676 E_Constant |
9677 E_Discriminant |
0a36105d 9678 E_Exception |
f937473f
RD
9679 E_In_Parameter |
9680 E_In_Out_Parameter |
9681 E_Out_Parameter |
9682 E_Loop_Parameter |
9683 E_Variable =>
70482933
RK
9684 Write_Str ("Esize");
9685
f937473f
RD
9686 when E_Function |
9687 E_Procedure =>
70482933
RK
9688 Write_Str ("Next_Inlined_Subprogram");
9689
f937473f 9690 when others =>
70482933
RK
9691 Write_Str ("Field12??");
9692 end case;
9693 end Write_Field12_Name;
9694
9695 ------------------------
9696 -- Write_Field13_Name --
9697 ------------------------
9698
9699 procedure Write_Field13_Name (Id : Entity_Id) is
9700 begin
9701 case Ekind (Id) is
f937473f
RD
9702 when E_Component |
9703 E_Discriminant =>
70482933
RK
9704 Write_Str ("Component_Clause");
9705
f937473f 9706 when E_Function =>
477cfc5b 9707 Write_Str ("Elaboration_Entity");
70482933 9708
f937473f
RD
9709 when E_Procedure |
9710 E_Package |
9711 Generic_Unit_Kind =>
70482933
RK
9712 Write_Str ("Elaboration_Entity");
9713
df3e68b1
HK
9714 when Formal_Kind |
9715 E_Variable =>
9716 Write_Str ("Extra_Accessibility");
9717
9718 when Type_Kind =>
9719 Write_Str ("RM_Size");
9720
f937473f 9721 when others =>
70482933
RK
9722 Write_Str ("Field13??");
9723 end case;
9724 end Write_Field13_Name;
9725
9726 -----------------------
9727 -- Write_Field14_Name --
9728 -----------------------
9729
9730 procedure Write_Field14_Name (Id : Entity_Id) is
9731 begin
9732 case Ekind (Id) is
f937473f
RD
9733 when Type_Kind |
9734 Formal_Kind |
9735 E_Constant |
0a36105d 9736 E_Exception |
c9d70ab1
AC
9737 E_Loop_Parameter |
9738 E_Variable =>
70482933
RK
9739 Write_Str ("Alignment");
9740
df3e68b1
HK
9741 when E_Component |
9742 E_Discriminant =>
9743 Write_Str ("Normalized_Position");
9744
c9d70ab1
AC
9745 when E_Entry |
9746 E_Entry_Family |
9747 E_Function |
9748 E_Procedure =>
9749 Write_Str ("Postconditions_Proc");
9750
9751 when E_Generic_Package |
9752 E_Package =>
70482933
RK
9753 Write_Str ("Shadow_Entities");
9754
f937473f 9755 when others =>
70482933
RK
9756 Write_Str ("Field14??");
9757 end case;
9758 end Write_Field14_Name;
9759
9760 ------------------------
9761 -- Write_Field15_Name --
9762 ------------------------
9763
9764 procedure Write_Field15_Name (Id : Entity_Id) is
9765 begin
9766 case Ekind (Id) is
f937473f 9767 when E_Discriminant =>
70482933
RK
9768 Write_Str ("Discriminant_Number");
9769
df3e68b1
HK
9770 when E_Component =>
9771 Write_Str ("DT_Entry_Count");
70482933 9772
f937473f
RD
9773 when E_Function |
9774 E_Procedure =>
70482933
RK
9775 Write_Str ("DT_Position");
9776
f937473f 9777 when Entry_Kind =>
70482933
RK
9778 Write_Str ("Entry_Parameters_Type");
9779
df3e68b1
HK
9780 when Formal_Kind =>
9781 Write_Str ("Extra_Formal");
9782
760804f3
AC
9783 when Type_Kind =>
9784 Write_Str ("Pending_Access_Types");
70482933 9785
f937473f
RD
9786 when E_Package |
9787 E_Package_Body =>
70482933
RK
9788 Write_Str ("Related_Instance");
9789
3cebd1c0
AC
9790 when E_Constant |
9791 E_Variable =>
9792 Write_Str ("Status_Flag_Or_Transient_Decl");
9793
f937473f 9794 when others =>
70482933
RK
9795 Write_Str ("Field15??");
9796 end case;
9797 end Write_Field15_Name;
9798
9799 ------------------------
9800 -- Write_Field16_Name --
9801 ------------------------
9802
9803 procedure Write_Field16_Name (Id : Entity_Id) is
9804 begin
9805 case Ekind (Id) is
df3e68b1
HK
9806 when E_Record_Type |
9807 E_Record_Type_With_Private =>
9808 Write_Str ("Access_Disp_Table");
9809
7b56a91b
AC
9810 when E_Abstract_State =>
9811 Write_Str ("Body_References");
9812
df3e68b1
HK
9813 when E_Record_Subtype |
9814 E_Class_Wide_Subtype =>
9815 Write_Str ("Cloned_Subtype");
70482933 9816
f937473f
RD
9817 when E_Function |
9818 E_Procedure =>
70482933
RK
9819 Write_Str ("DTC_Entity");
9820
df3e68b1
HK
9821 when E_Component =>
9822 Write_Str ("Entry_Formal");
9823
f937473f
RD
9824 when E_Package |
9825 E_Generic_Package |
9826 Concurrent_Kind =>
70482933
RK
9827 Write_Str ("First_Private_Entity");
9828
df3e68b1
HK
9829 when Enumeration_Kind =>
9830 Write_Str ("Lit_Strings");
70482933 9831
760804f3
AC
9832 when Decimal_Fixed_Point_Kind =>
9833 Write_Str ("Scale_Value");
9834
f937473f 9835 when E_String_Literal_Subtype =>
70482933
RK
9836 Write_Str ("String_Literal_Length");
9837
f937473f
RD
9838 when E_Variable |
9839 E_Out_Parameter =>
70482933
RK
9840 Write_Str ("Unset_Reference");
9841
f937473f 9842 when others =>
70482933
RK
9843 Write_Str ("Field16??");
9844 end case;
9845 end Write_Field16_Name;
9846
9847 ------------------------
9848 -- Write_Field17_Name --
9849 ------------------------
9850
9851 procedure Write_Field17_Name (Id : Entity_Id) is
9852 begin
9853 case Ekind (Id) is
df3e68b1
HK
9854 when Formal_Kind |
9855 E_Constant |
9856 E_Generic_In_Out_Parameter |
9857 E_Variable =>
9858 Write_Str ("Actual_Subtype");
9859
f937473f 9860 when Digits_Kind =>
70482933
RK
9861 Write_Str ("Digits_Value");
9862
f937473f 9863 when E_Discriminant =>
70482933
RK
9864 Write_Str ("Discriminal");
9865
f937473f
RD
9866 when E_Block |
9867 Class_Wide_Kind |
9868 Concurrent_Kind |
9869 Private_Kind |
9870 E_Entry |
9871 E_Entry_Family |
9872 E_Function |
9873 E_Generic_Function |
9874 E_Generic_Package |
9875 E_Generic_Procedure |
9876 E_Loop |
9877 E_Operator |
9878 E_Package |
9879 E_Package_Body |
9880 E_Procedure |
9881 E_Record_Type |
9882 E_Record_Subtype |
9883 E_Return_Statement |
9884 E_Subprogram_Body |
9885 E_Subprogram_Type =>
70482933
RK
9886 Write_Str ("First_Entity");
9887
f937473f 9888 when Array_Kind =>
70482933
RK
9889 Write_Str ("First_Index");
9890
f937473f 9891 when Enumeration_Kind =>
70482933
RK
9892 Write_Str ("First_Literal");
9893
f937473f 9894 when Access_Kind =>
70482933
RK
9895 Write_Str ("Master_Id");
9896
f937473f 9897 when Modular_Integer_Kind =>
70482933
RK
9898 Write_Str ("Modulus");
9899
df3e68b1
HK
9900 when E_Component =>
9901 Write_Str ("Prival");
9902
f937473f 9903 when others =>
70482933
RK
9904 Write_Str ("Field17??");
9905 end case;
9906 end Write_Field17_Name;
9907
5d37ba92 9908 ------------------------
70482933 9909 -- Write_Field18_Name --
5d37ba92 9910 ------------------------
70482933
RK
9911
9912 procedure Write_Field18_Name (Id : Entity_Id) is
9913 begin
9914 case Ekind (Id) is
f937473f
RD
9915 when E_Enumeration_Literal |
9916 E_Function |
9917 E_Operator |
9918 E_Procedure =>
70482933
RK
9919 Write_Str ("Alias");
9920
f937473f 9921 when E_Record_Type =>
70482933
RK
9922 Write_Str ("Corresponding_Concurrent_Type");
9923
5042f726
AC
9924 when E_Subprogram_Body =>
9925 Write_Str ("Corresponding_Protected_Entry");
9926
df3e68b1
HK
9927 when Concurrent_Kind =>
9928 Write_Str ("Corresponding_Record_Type");
9929
9930 when E_Label |
9931 E_Loop |
9932 E_Block =>
9933 Write_Str ("Enclosing_Scope");
9934
f937473f 9935 when E_Entry_Index_Parameter =>
70482933
RK
9936 Write_Str ("Entry_Index_Constant");
9937
f937473f
RD
9938 when E_Class_Wide_Subtype |
9939 E_Access_Protected_Subprogram_Type |
9940 E_Anonymous_Access_Protected_Subprogram_Type |
9941 E_Access_Subprogram_Type |
9942 E_Exception_Type =>
70482933
RK
9943 Write_Str ("Equivalent_Type");
9944
f937473f 9945 when Fixed_Point_Kind =>
70482933
RK
9946 Write_Str ("Delta_Value");
9947
760804f3
AC
9948 when Enumeration_Kind =>
9949 Write_Str ("Lit_Indexes");
9950
df3e68b1
HK
9951 when Incomplete_Or_Private_Kind |
9952 E_Record_Subtype =>
9953 Write_Str ("Private_Dependents");
9954
5d37ba92 9955 when Object_Kind =>
70482933
RK
9956 Write_Str ("Renamed_Object");
9957
f937473f
RD
9958 when E_Exception |
9959 E_Package |
9960 E_Generic_Function |
9961 E_Generic_Procedure |
9962 E_Generic_Package =>
70482933
RK
9963 Write_Str ("Renamed_Entity");
9964
760804f3
AC
9965 when E_String_Literal_Subtype =>
9966 Write_Str ("String_Literal_Low_Bound");
9967
f937473f 9968 when others =>
70482933
RK
9969 Write_Str ("Field18??");
9970 end case;
9971 end Write_Field18_Name;
9972
9973 -----------------------
9974 -- Write_Field19_Name --
9975 -----------------------
9976
9977 procedure Write_Field19_Name (Id : Entity_Id) is
9978 begin
9979 case Ekind (Id) is
df3e68b1
HK
9980 when E_Package |
9981 E_Generic_Package =>
9982 Write_Str ("Body_Entity");
9983
9984 when E_Discriminant =>
9985 Write_Str ("Corresponding_Discriminant");
9986
6d9e03cb 9987 when Scalar_Kind =>
815839a3 9988 Write_Str ("Default_Aspect_Value");
6d9e03cb 9989
47346923
AC
9990 when E_Abstract_State |
9991 E_Class_Wide_Type |
9992 E_Incomplete_Type =>
9993 Write_Str ("Non_Limited_View");
9994
bff469f7
AC
9995 when E_Incomplete_Subtype =>
9996 if From_Limited_With (Id) then
9997 Write_Str ("Non_Limited_View");
9998 end if;
9999
6d9e03cb
AC
10000 when E_Array_Type =>
10001 Write_Str ("Default_Component_Value");
10002
760804f3
AC
10003 when E_Protected_Type =>
10004 Write_Str ("Entry_Bodies_Array");
10005
10006 when E_Function |
10007 E_Operator |
10008 E_Subprogram_Type =>
10009 Write_Str ("Extra_Accessibility_Of_Result");
10010
df3e68b1
HK
10011 when E_Record_Type =>
10012 Write_Str ("Parent_Subtype");
10013
df3e68b1
HK
10014 when E_Constant |
10015 E_Variable =>
fbf5a39b
AC
10016 Write_Str ("Size_Check_Code");
10017
f937473f
RD
10018 when E_Package_Body |
10019 Formal_Kind =>
70482933
RK
10020 Write_Str ("Spec_Entity");
10021
f937473f 10022 when Private_Kind =>
70482933
RK
10023 Write_Str ("Underlying_Full_View");
10024
f937473f 10025 when others =>
70482933
RK
10026 Write_Str ("Field19??");
10027 end case;
10028 end Write_Field19_Name;
10029
10030 -----------------------
10031 -- Write_Field20_Name --
10032 -----------------------
10033
10034 procedure Write_Field20_Name (Id : Entity_Id) is
10035 begin
10036 case Ekind (Id) is
f937473f 10037 when Array_Kind =>
70482933
RK
10038 Write_Str ("Component_Type");
10039
f937473f
RD
10040 when E_In_Parameter |
10041 E_Generic_In_Parameter =>
70482933
RK
10042 Write_Str ("Default_Value");
10043
f937473f 10044 when Access_Kind =>
70482933
RK
10045 Write_Str ("Directly_Designated_Type");
10046
f937473f 10047 when E_Component =>
70482933
RK
10048 Write_Str ("Discriminant_Checking_Func");
10049
f937473f 10050 when E_Discriminant =>
70482933
RK
10051 Write_Str ("Discriminant_Default_Value");
10052
f937473f
RD
10053 when E_Block |
10054 Class_Wide_Kind |
10055 Concurrent_Kind |
10056 Private_Kind |
10057 E_Entry |
10058 E_Entry_Family |
10059 E_Function |
10060 E_Generic_Function |
10061 E_Generic_Package |
10062 E_Generic_Procedure |
10063 E_Loop |
10064 E_Operator |
10065 E_Package |
10066 E_Package_Body |
10067 E_Procedure |
10068 E_Record_Type |
10069 E_Record_Subtype |
10070 E_Return_Statement |
10071 E_Subprogram_Body |
10072 E_Subprogram_Type =>
70482933
RK
10073 Write_Str ("Last_Entity");
10074
df3e68b1
HK
10075 when E_Constant |
10076 E_Variable =>
10077 Write_Str ("Prival_Link");
10078
f937473f 10079 when Scalar_Kind =>
70482933
RK
10080 Write_Str ("Scalar_Range");
10081
f937473f 10082 when E_Exception =>
70482933
RK
10083 Write_Str ("Register_Exception_Call");
10084
f937473f 10085 when others =>
70482933
RK
10086 Write_Str ("Field20??");
10087 end case;
10088 end Write_Field20_Name;
10089
10090 -----------------------
10091 -- Write_Field21_Name --
10092 -----------------------
10093
10094 procedure Write_Field21_Name (Id : Entity_Id) is
10095 begin
10096 case Ekind (Id) is
df3e68b1
HK
10097 when Entry_Kind =>
10098 Write_Str ("Accept_Address");
10099
10100 when E_In_Parameter =>
10101 Write_Str ("Default_Expr_Function");
70482933 10102
f937473f
RD
10103 when Concurrent_Kind |
10104 Incomplete_Or_Private_Kind |
10105 Class_Wide_Kind |
10106 E_Record_Type |
10107 E_Record_Subtype =>
70482933
RK
10108 Write_Str ("Discriminant_Constraint");
10109
df3e68b1
HK
10110 when E_Constant |
10111 E_Exception |
10112 E_Function |
10113 E_Generic_Function |
10114 E_Procedure |
10115 E_Generic_Procedure |
10116 E_Variable =>
10117 Write_Str ("Interface_Name");
70482933 10118
f937473f
RD
10119 when Array_Kind |
10120 Modular_Integer_Kind =>
07fc65c4 10121 Write_Str ("Original_Array_Type");
af4b9434 10122
df3e68b1
HK
10123 when Fixed_Point_Kind =>
10124 Write_Str ("Small_Value");
10125
f937473f 10126 when others =>
70482933
RK
10127 Write_Str ("Field21??");
10128 end case;
10129 end Write_Field21_Name;
10130
10131 -----------------------
10132 -- Write_Field22_Name --
10133 -----------------------
10134
10135 procedure Write_Field22_Name (Id : Entity_Id) is
10136 begin
10137 case Ekind (Id) is
f937473f 10138 when Access_Kind =>
70482933
RK
10139 Write_Str ("Associated_Storage_Pool");
10140
f937473f 10141 when Array_Kind =>
70482933
RK
10142 Write_Str ("Component_Size");
10143
df3e68b1
HK
10144 when E_Record_Type =>
10145 Write_Str ("Corresponding_Remote_Type");
10146
f937473f
RD
10147 when E_Component |
10148 E_Discriminant =>
70482933
RK
10149 Write_Str ("Original_Record_Component");
10150
f937473f 10151 when E_Enumeration_Literal =>
70482933
RK
10152 Write_Str ("Enumeration_Rep_Expr");
10153
df3e68b1
HK
10154 when E_Record_Type_With_Private |
10155 E_Record_Subtype_With_Private |
10156 E_Private_Type |
10157 E_Private_Subtype |
10158 E_Limited_Private_Type |
10159 E_Limited_Private_Subtype =>
10160 Write_Str ("Private_View");
10161
f937473f 10162 when Formal_Kind =>
70482933
RK
10163 Write_Str ("Protected_Formal");
10164
f937473f
RD
10165 when E_Block |
10166 E_Entry |
10167 E_Entry_Family |
10168 E_Function |
10169 E_Loop |
10170 E_Package |
10171 E_Package_Body |
10172 E_Generic_Package |
10173 E_Generic_Function |
10174 E_Generic_Procedure |
10175 E_Procedure |
10176 E_Protected_Type |
10177 E_Return_Statement |
10178 E_Subprogram_Body |
10179 E_Task_Type =>
70482933
RK
10180 Write_Str ("Scope_Depth_Value");
10181
f937473f 10182 when E_Variable =>
685094bf 10183 Write_Str ("Shared_Var_Procs_Instance");
70482933 10184
f937473f 10185 when others =>
70482933
RK
10186 Write_Str ("Field22??");
10187 end case;
10188 end Write_Field22_Name;
10189
10190 ------------------------
10191 -- Write_Field23_Name --
10192 ------------------------
10193
10194 procedure Write_Field23_Name (Id : Entity_Id) is
10195 begin
10196 case Ekind (Id) is
df3e68b1
HK
10197 when E_Discriminant =>
10198 Write_Str ("CR_Discriminant");
70482933 10199
f937473f 10200 when E_Block =>
70482933
RK
10201 Write_Str ("Entry_Cancel_Parameter");
10202
f937473f 10203 when E_Enumeration_Type =>
70482933
RK
10204 Write_Str ("Enum_Pos_To_Rep");
10205
f937473f
RD
10206 when Formal_Kind |
10207 E_Variable =>
70482933
RK
10208 Write_Str ("Extra_Constrained");
10209
d3f70b35
AC
10210 when Access_Kind =>
10211 Write_Str ("Finalization_Master");
10212
f937473f
RD
10213 when E_Generic_Function |
10214 E_Generic_Package |
10215 E_Generic_Procedure =>
70482933
RK
10216 Write_Str ("Inner_Instances");
10217
df3e68b1 10218 when Array_Kind =>
8ca597af 10219 Write_Str ("Packed_Array_Impl_Type");
df3e68b1
HK
10220
10221 when Entry_Kind =>
10222 Write_Str ("Protection_Object");
10223
f937473f
RD
10224 when Concurrent_Kind |
10225 Incomplete_Or_Private_Kind |
10226 Class_Wide_Kind |
10227 E_Record_Type |
10228 E_Record_Subtype =>
fbf5a39b 10229 Write_Str ("Stored_Constraint");
70482933 10230
f937473f
RD
10231 when E_Function |
10232 E_Procedure =>
21d27997
RD
10233 if Present (Scope (Id))
10234 and then Is_Protected_Type (Scope (Id))
10235 then
10236 Write_Str ("Protection_Object");
10237 else
10238 Write_Str ("Generic_Renamings");
10239 end if;
70482933 10240
f937473f 10241 when E_Package =>
fbf5a39b
AC
10242 if Is_Generic_Instance (Id) then
10243 Write_Str ("Generic_Renamings");
10244 else
4c8e94ab 10245 Write_Str ("Limited_View");
fbf5a39b
AC
10246 end if;
10247
f937473f 10248 when others =>
70482933
RK
10249 Write_Str ("Field23??");
10250 end case;
10251 end Write_Field23_Name;
10252
165eab5f
AC
10253 ------------------------
10254 -- Write_Field24_Name --
10255 ------------------------
10256
10257 procedure Write_Field24_Name (Id : Entity_Id) is
10258 begin
21d27997 10259 case Ekind (Id) is
df3e68b1
HK
10260 when E_Constant |
10261 E_Variable |
10262 Type_Kind =>
bce79204 10263 Write_Str ("Related_Expression");
a4941eec 10264
5a271a7f
RD
10265 when E_Function |
10266 E_Operator |
10267 E_Procedure =>
f8dae9bb 10268 Write_Str ("Subps_Index");
5a271a7f 10269
167b47d9
AC
10270 when E_Package =>
10271 Write_Str ("Incomplete_Actuals");
10272
21d27997 10273 when others =>
cf49bd32 10274 Write_Str ("Field24???");
21d27997 10275 end case;
165eab5f
AC
10276 end Write_Field24_Name;
10277
10278 ------------------------
10279 -- Write_Field25_Name --
10280 ------------------------
10281
10282 procedure Write_Field25_Name (Id : Entity_Id) is
10283 begin
10284 case Ekind (Id) is
c0cdbd39
AC
10285 when E_Generic_Package |
10286 E_Package =>
cf6956bb
AC
10287 Write_Str ("Abstract_States");
10288
8a0183fd
HK
10289 when E_Entry |
10290 E_Entry_Family =>
10291 Write_Str ("Contract_Wrapper");
10292
df3e68b1
HK
10293 when E_Variable =>
10294 Write_Str ("Debug_Renaming_Link");
10295
f937473f 10296 when E_Component =>
6e443c90
RD
10297 Write_Str ("DT_Offset_To_Top_Func");
10298
f937473f
RD
10299 when E_Procedure |
10300 E_Function =>
ce2b6ba5 10301 Write_Str ("Interface_Alias");
a9d8907c 10302
f937473f
RD
10303 when E_Record_Type |
10304 E_Record_Subtype |
10305 E_Record_Type_With_Private |
10306 E_Record_Subtype_With_Private =>
ce2b6ba5 10307 Write_Str ("Interfaces");
6e443c90 10308
6d9e03cb
AC
10309 when E_Array_Type |
10310 E_Array_Subtype =>
10311 Write_Str ("Related_Array_Object");
10312
f937473f 10313 when Task_Kind =>
6e443c90
RD
10314 Write_Str ("Task_Body_Procedure");
10315
fc3a3f3b 10316 when Discrete_Kind =>
60f908dd 10317 Write_Str ("Static_Discrete_Predicate");
26df19ce 10318
fc3a3f3b
RD
10319 when Real_Kind =>
10320 Write_Str ("Static_Real_Or_String_Predicate");
10321
f937473f 10322 when others =>
165eab5f
AC
10323 Write_Str ("Field25??");
10324 end case;
10325 end Write_Field25_Name;
10326
10327 ------------------------
10328 -- Write_Field26_Name --
10329 ------------------------
10330
10331 procedure Write_Field26_Name (Id : Entity_Id) is
10332 begin
10333 case Ekind (Id) is
df3e68b1
HK
10334 when E_Record_Type |
10335 E_Record_Type_With_Private =>
10336 Write_Str ("Dispatch_Table_Wrappers");
10337
10338 when E_In_Out_Parameter |
10339 E_Out_Parameter |
10340 E_Variable =>
10341 Write_Str ("Last_Assignment");
10342
760804f3
AC
10343 when E_Procedure |
10344 E_Function =>
10345 Write_Str ("Overridden_Operation");
ded8909b 10346
f937473f
RD
10347 when E_Generic_Package |
10348 E_Package =>
f4d379b8
HK
10349 Write_Str ("Package_Instantiation");
10350
df3e68b1
HK
10351 when E_Component |
10352 E_Constant =>
10353 Write_Str ("Related_Type");
10354
760804f3
AC
10355 when Access_Kind |
10356 Task_Kind =>
10357 Write_Str ("Storage_Size_Variable");
10b93b2e 10358
f937473f 10359 when others =>
165eab5f
AC
10360 Write_Str ("Field26??");
10361 end case;
10362 end Write_Field26_Name;
10363
10364 ------------------------
10365 -- Write_Field27_Name --
10366 ------------------------
10367
10368 procedure Write_Field27_Name (Id : Entity_Id) is
10369 begin
10370 case Ekind (Id) is
df3e68b1
HK
10371 when E_Package |
10372 Type_Kind =>
10373 Write_Str ("Current_Use_Clause");
10374
cefce34c
JM
10375 when E_Component |
10376 E_Constant |
10377 E_Variable =>
10378 Write_Str ("Related_Type");
10379
59fad002
AC
10380 when E_Procedure |
10381 E_Function =>
10b93b2e
HK
10382 Write_Str ("Wrapped_Entity");
10383
f937473f 10384 when others =>
165eab5f
AC
10385 Write_Str ("Field27??");
10386 end case;
10387 end Write_Field27_Name;
10388
6e443c90
RD
10389 ------------------------
10390 -- Write_Field28_Name --
10391 ------------------------
10392
10393 procedure Write_Field28_Name (Id : Entity_Id) is
10394 begin
10395 case Ekind (Id) is
94bbf008
AC
10396 when E_Entry |
10397 E_Entry_Family |
df3e68b1 10398 E_Function |
94bbf008
AC
10399 E_Procedure |
10400 E_Subprogram_Body |
10401 E_Subprogram_Type =>
6e443c90
RD
10402 Write_Str ("Extra_Formals");
10403
54e28df2
HK
10404 when E_Package |
10405 E_Package_Body =>
10406 Write_Str ("Finalizer");
10407
10408 when E_Constant |
10409 E_Variable =>
02217452
AC
10410 Write_Str ("Initialization_Statements");
10411
760804f3
AC
10412 when E_Access_Subprogram_Type =>
10413 Write_Str ("Original_Access_Type");
10414
10415 when Task_Kind =>
10416 Write_Str ("Relative_Deadline_Variable");
10417
cf49bd32
TQ
10418 when E_Record_Type =>
10419 Write_Str ("Underlying_Record_View");
10420
f937473f 10421 when others =>
6e443c90
RD
10422 Write_Str ("Field28??");
10423 end case;
10424 end Write_Field28_Name;
10425
477cfc5b
AC
10426 ------------------------
10427 -- Write_Field29_Name --
10428 ------------------------
10429
e606088a
AC
10430 procedure Write_Field29_Name (Id : Entity_Id) is
10431 begin
10432 case Ekind (Id) is
8c7ff9a0
AC
10433 when E_Constant |
10434 E_Variable =>
10435 Write_Str ("BIP_Initialization_Call");
10436
e606088a 10437 when Type_Kind =>
fd0ff1cf 10438 Write_Str ("Subprograms_For_Type");
e606088a
AC
10439
10440 when others =>
10441 Write_Str ("Field29??");
10442 end case;
10443 end Write_Field29_Name;
10444
477cfc5b
AC
10445 ------------------------
10446 -- Write_Field30_Name --
10447 ------------------------
10448
10449 procedure Write_Field30_Name (Id : Entity_Id) is
10450 begin
10451 case Ekind (Id) is
75b87c16
AC
10452 when E_Protected_Type |
10453 E_Task_Type =>
10454 Write_Str ("Anonymous_Object");
10455
477cfc5b
AC
10456 when E_Function =>
10457 Write_Str ("Corresponding_Equality");
10458
4ac2bbbd
AC
10459 when E_Constant |
10460 E_Variable =>
10461 Write_Str ("Last_Aggregate_Assignment");
10462
477cfc5b
AC
10463 when E_Procedure =>
10464 Write_Str ("Static_Initialization");
10465
10466 when others =>
10467 Write_Str ("Field30??");
10468 end case;
10469 end Write_Field30_Name;
10470
10471 ------------------------
10472 -- Write_Field31_Name --
10473 ------------------------
10474
10475 procedure Write_Field31_Name (Id : Entity_Id) is
10476 begin
10477 case Ekind (Id) is
59fad002
AC
10478 when E_Procedure |
10479 E_Function =>
10480 Write_Str ("Thunk_Entity");
10481
ab01e614
AC
10482 when Type_Kind =>
10483 Write_Str ("Derived_Type_Link");
10484
3830827c
AC
10485 when E_Constant |
10486 E_In_Parameter |
10487 E_In_Out_Parameter |
10488 E_Loop_Parameter |
10489 E_Out_Parameter |
10490 E_Variable =>
10491 Write_Str ("Activation_Record_Component");
10492
477cfc5b
AC
10493 when others =>
10494 Write_Str ("Field31??");
10495 end case;
10496 end Write_Field31_Name;
10497
10498 ------------------------
10499 -- Write_Field32_Name --
10500 ------------------------
10501
10502 procedure Write_Field32_Name (Id : Entity_Id) is
10503 begin
10504 case Ekind (Id) is
caf07df9
AC
10505 when E_Abstract_State |
10506 E_Constant |
10507 E_Variable =>
10508 Write_Str ("Encapsulating_State");
10509
888be6b1
AC
10510 when E_Function =>
10511 Write_Str ("Corresponding_Procedure");
10512
10513 when E_Procedure =>
10514 Write_Str ("Corresponding_Function");
10515
49d41397
RD
10516 when Type_Kind =>
10517 Write_Str ("No_Tagged_Streams_Pragma");
10518
477cfc5b
AC
10519 when others =>
10520 Write_Str ("Field32??");
10521 end case;
10522 end Write_Field32_Name;
10523
10524 ------------------------
10525 -- Write_Field33_Name --
10526 ------------------------
10527
10528 procedure Write_Field33_Name (Id : Entity_Id) is
10529 begin
10530 case Ekind (Id) is
19992053
AC
10531 when E_Constant |
10532 E_Variable |
10533 Subprogram_Kind |
10534 Type_Kind =>
10535 Write_Str ("Linker_Section_Pragma");
10536
477cfc5b
AC
10537 when others =>
10538 Write_Str ("Field33??");
10539 end case;
10540 end Write_Field33_Name;
10541
10542 ------------------------
10543 -- Write_Field34_Name --
10544 ------------------------
10545
10546 procedure Write_Field34_Name (Id : Entity_Id) is
10547 begin
10548 case Ekind (Id) is
eb7d283d
HK
10549 when E_Constant |
10550 E_Entry |
6c3c671e 10551 E_Entry_Family |
f99ff327
AC
10552 E_Function |
10553 E_Generic_Function |
6c3c671e 10554 E_Generic_Package |
f99ff327
AC
10555 E_Generic_Procedure |
10556 E_Operator |
6c3c671e
AC
10557 E_Package |
10558 E_Package_Body |
f99ff327 10559 E_Procedure |
75b87c16 10560 E_Protected_Type |
6c3c671e 10561 E_Subprogram_Body |
f99ff327
AC
10562 E_Task_Body |
10563 E_Task_Type |
6c3c671e 10564 E_Variable |
f99ff327 10565 E_Void =>
6c3c671e
AC
10566 Write_Str ("Contract");
10567
477cfc5b
AC
10568 when others =>
10569 Write_Str ("Field34??");
10570 end case;
10571 end Write_Field34_Name;
10572
10573 ------------------------
10574 -- Write_Field35_Name --
10575 ------------------------
10576
10577 procedure Write_Field35_Name (Id : Entity_Id) is
10578 begin
10579 case Ekind (Id) is
32b794c8
AC
10580 when Type_Kind =>
10581 Write_Str ("Anonymous_Master");
10582
32bba3c9
AC
10583 when Subprogram_Kind =>
10584 Write_Str ("Import_Pragma");
760804f3 10585
477cfc5b
AC
10586 when others =>
10587 Write_Str ("Field35??");
10588 end case;
10589 end Write_Field35_Name;
10590
57d08392
AC
10591 ------------------------
10592 -- Write_Field36_Name --
10593 ------------------------
10594
10595 procedure Write_Field36_Name (Id : Entity_Id) is
32b794c8 10596 pragma Unreferenced (Id);
57d08392 10597 begin
32b794c8 10598 Write_Str ("Field36??");
57d08392
AC
10599 end Write_Field36_Name;
10600
10601 ------------------------
10602 -- Write_Field37_Name --
10603 ------------------------
10604
10605 procedure Write_Field37_Name (Id : Entity_Id) is
caf07df9 10606 pragma Unreferenced (Id);
57d08392 10607 begin
caf07df9 10608 Write_Str ("Associated_Entity");
57d08392
AC
10609 end Write_Field37_Name;
10610
10611 ------------------------
10612 -- Write_Field38_Name --
10613 ------------------------
10614
10615 procedure Write_Field38_Name (Id : Entity_Id) is
10616 begin
10617 case Ekind (Id) is
877a5a12
AC
10618 when E_Function |
10619 E_Procedure =>
2700b9c1
AC
10620 Write_Str ("Class-wide preconditions");
10621
57d08392
AC
10622 when others =>
10623 Write_Str ("Field38??");
10624 end case;
10625 end Write_Field38_Name;
10626
10627 ------------------------
10628 -- Write_Field39_Name --
10629 ------------------------
10630
10631 procedure Write_Field39_Name (Id : Entity_Id) is
10632 begin
10633 case Ekind (Id) is
877a5a12
AC
10634 when E_Function |
10635 E_Procedure =>
2700b9c1
AC
10636 Write_Str ("Class-wide postcondition");
10637
57d08392
AC
10638 when others =>
10639 Write_Str ("Field39??");
10640 end case;
10641 end Write_Field39_Name;
10642
10643 ------------------------
10644 -- Write_Field40_Name --
10645 ------------------------
10646
10647 procedure Write_Field40_Name (Id : Entity_Id) is
10648 begin
10649 case Ekind (Id) is
877a5a12
AC
10650 when E_Entry |
10651 E_Entry_Family |
10652 E_Function |
10653 E_Generic_Function |
10654 E_Generic_Package |
10655 E_Generic_Procedure |
f99ff327 10656 E_Operator |
877a5a12
AC
10657 E_Package |
10658 E_Package_Body |
10659 E_Procedure |
10660 E_Protected_Body |
10661 E_Protected_Type |
10662 E_Subprogram_Body |
10663 E_Task_Body |
75b87c16
AC
10664 E_Task_Type |
10665 E_Variable =>
877a5a12
AC
10666 Write_Str ("SPARK_Pragma");
10667
57d08392
AC
10668 when others =>
10669 Write_Str ("Field40??");
10670 end case;
10671 end Write_Field40_Name;
10672
10673 ------------------------
10674 -- Write_Field41_Name --
10675 ------------------------
10676
10677 procedure Write_Field41_Name (Id : Entity_Id) is
10678 begin
10679 case Ekind (Id) is
877a5a12
AC
10680 when E_Generic_Package |
10681 E_Package |
10682 E_Package_Body |
10683 E_Protected_Type |
10684 E_Task_Type =>
10685 Write_Str ("SPARK_Aux_Pragma");
10686
42f11e4c
AC
10687 when E_Function |
10688 E_Procedure =>
10689 Write_Str ("Original_Protected_Subprogram");
10690
57d08392
AC
10691 when others =>
10692 Write_Str ("Field41??");
10693 end case;
10694 end Write_Field41_Name;
10695
70482933
RK
10696 -------------------------
10697 -- Iterator Procedures --
10698 -------------------------
10699
f937473f 10700 procedure Proc_Next_Component (N : in out Node_Id) is
70482933
RK
10701 begin
10702 N := Next_Component (N);
10703 end Proc_Next_Component;
10704
f937473f
RD
10705 procedure Proc_Next_Component_Or_Discriminant (N : in out Node_Id) is
10706 begin
9d77af56
RD
10707 N := Next_Entity (N);
10708 while Present (N) loop
3428cb9f 10709 exit when Ekind_In (N, E_Component, E_Discriminant);
9d77af56
RD
10710 N := Next_Entity (N);
10711 end loop;
f937473f
RD
10712 end Proc_Next_Component_Or_Discriminant;
10713
10714 procedure Proc_Next_Discriminant (N : in out Node_Id) is
70482933
RK
10715 begin
10716 N := Next_Discriminant (N);
10717 end Proc_Next_Discriminant;
10718
f937473f 10719 procedure Proc_Next_Formal (N : in out Node_Id) is
70482933
RK
10720 begin
10721 N := Next_Formal (N);
10722 end Proc_Next_Formal;
10723
f937473f 10724 procedure Proc_Next_Formal_With_Extras (N : in out Node_Id) is
70482933
RK
10725 begin
10726 N := Next_Formal_With_Extras (N);
10727 end Proc_Next_Formal_With_Extras;
10728
f937473f 10729 procedure Proc_Next_Index (N : in out Node_Id) is
70482933
RK
10730 begin
10731 N := Next_Index (N);
10732 end Proc_Next_Index;
10733
f937473f 10734 procedure Proc_Next_Inlined_Subprogram (N : in out Node_Id) is
70482933
RK
10735 begin
10736 N := Next_Inlined_Subprogram (N);
10737 end Proc_Next_Inlined_Subprogram;
10738
f937473f 10739 procedure Proc_Next_Literal (N : in out Node_Id) is
70482933
RK
10740 begin
10741 N := Next_Literal (N);
10742 end Proc_Next_Literal;
10743
f937473f 10744 procedure Proc_Next_Stored_Discriminant (N : in out Node_Id) is
fbf5a39b
AC
10745 begin
10746 N := Next_Stored_Discriminant (N);
10747 end Proc_Next_Stored_Discriminant;
10748
70482933 10749end Einfo;