comparison gcc/ada/sinfo.ads @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
4 -- -- 4 -- --
5 -- S I N F O -- 5 -- S I N F O --
6 -- -- 6 -- --
7 -- S p e c -- 7 -- S p e c --
8 -- -- 8 -- --
9 -- Copyright (C) 1992-2017, Free Software Foundation, Inc. -- 9 -- Copyright (C) 1992-2018, Free Software Foundation, Inc. --
10 -- -- 10 -- --
11 -- GNAT is free software; you can redistribute it and/or modify it under -- 11 -- GNAT is free software; you can redistribute it and/or modify it under --
12 -- terms of the GNU General Public License as published by the Free Soft- -- 12 -- terms of the GNU General Public License as published by the Free Soft- --
13 -- ware Foundation; either version 3, or (at your option) any later ver- -- 13 -- ware Foundation; either version 3, or (at your option) any later ver- --
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
36 -- The grammar in the RM is followed very closely in the tree design, and is 36 -- The grammar in the RM is followed very closely in the tree design, and is
37 -- repeated as part of this source file. 37 -- repeated as part of this source file.
38 38
39 -- The tree contains not only the full syntactic representation of the 39 -- The tree contains not only the full syntactic representation of the
40 -- program, but also the results of semantic analysis. In particular, the 40 -- program, but also the results of semantic analysis. In particular, the
41 -- nodes for defining identifiers, defining character literals and defining 41 -- nodes for defining identifiers, defining character literals, and defining
42 -- operator symbols, collectively referred to as entities, represent what 42 -- operator symbols, collectively referred to as entities, represent what
43 -- would normally be regarded as the symbol table information. In addition a 43 -- would normally be regarded as the symbol table information. In addition a
44 -- number of the tree nodes contain semantic information. 44 -- number of the tree nodes contain semantic information.
45 45
46 -- WARNING: Several files are automatically generated from this package. 46 -- WARNING: Several files are automatically generated from this package.
211 -- Alt := Next (Alt); 211 -- Alt := Next (Alt);
212 -- end loop; 212 -- end loop;
213 213
214 -- The Present function tests for Empty, which in this case signals the end 214 -- The Present function tests for Empty, which in this case signals the end
215 -- of the list. First returns Empty immediately if the list is empty. 215 -- of the list. First returns Empty immediately if the list is empty.
216 -- Present is defined in Atree, First and Next are defined in Nlists. 216 -- Present is defined in Atree; First and Next are defined in Nlists.
217 217
218 -- The exceptions to this rule occur with {DEFINING_IDENTIFIERS} in all 218 -- The exceptions to this rule occur with {DEFINING_IDENTIFIERS} in all
219 -- contexts, which is handled as described in the previous section, and 219 -- contexts, which is handled as described in the previous section, and
220 -- with {,library_unit_NAME} in the N_With_Clause mode, which is handled 220 -- with {,library_unit_NAME} in the N_With_Clause mode, which is handled
221 -- using the First_Name and Last_Name flags, as further detailed in the 221 -- using the First_Name and Last_Name flags, as further detailed in the
387 -- Field Definitions -- 387 -- Field Definitions --
388 ----------------------- 388 -----------------------
389 389
390 -- In the following node definitions, all fields, both syntactic and 390 -- In the following node definitions, all fields, both syntactic and
391 -- semantic, are documented. The one exception is in the case of entities 391 -- semantic, are documented. The one exception is in the case of entities
392 -- (defining identifiers, character literals and operator symbols), where 392 -- (defining identifiers, character literals, and operator symbols), where
393 -- the usage of the fields depends on the entity kind. Entity fields are 393 -- the usage of the fields depends on the entity kind. Entity fields are
394 -- fully documented in the separate package Einfo. 394 -- fully documented in the separate package Einfo.
395 395
396 -- In the node definitions, three common sets of fields are abbreviated to 396 -- In the node definitions, three common sets of fields are abbreviated to
397 -- save both space in the documentation, and also space in the string 397 -- save both space in the documentation, and also space in the string
529 ---------------- 529 ----------------
530 530
531 -- The SPARK RM 6.9 defines two classes of constructs - Ghost entities and 531 -- The SPARK RM 6.9 defines two classes of constructs - Ghost entities and
532 -- Ghost statements. The intent of the feature is to treat Ghost constructs 532 -- Ghost statements. The intent of the feature is to treat Ghost constructs
533 -- as non-existent when Ghost assertion policy Ignore is in effect. 533 -- as non-existent when Ghost assertion policy Ignore is in effect.
534 534 --
535 -- The corresponding nodes which map to Ghost constructs are: 535 -- The corresponding nodes which map to Ghost constructs are:
536 536 --
537 -- Ghost entities 537 -- Ghost entities
538 -- Declaration nodes 538 -- Declaration nodes
539 -- N_Package_Body 539 -- N_Package_Body
540 -- N_Subprogram_Body 540 -- N_Subprogram_Body
541 541 --
542 -- Ghost statements 542 -- Ghost statements
543 -- N_Assignment_Statement 543 -- N_Assignment_Statement
544 -- N_Procedure_Call_Statement 544 -- N_Procedure_Call_Statement
545 -- N_Pragma 545 -- N_Pragma
546 546 --
547 -- In addition, the compiler treats instantiations as Ghost entities 547 -- In addition, the compiler treats instantiations as Ghost entities
548 548 --
549 -- To achieve the removal of ignored Ghost constructs, the compiler relies 549 -- To achieve the removal of ignored Ghost constructs, the compiler relies
550 -- on global variable Ghost_Mode and a mechanism called "Ghost regions". 550 -- on global variables Ghost_Mode and Ignored_Ghost_Region, which comprise
551 -- The values of the global variable are as follows: 551 -- a mechanism called "Ghost regions".
552 552 --
553 -- The values of Ghost_Mode are as follows:
554 --
553 -- 1. Check - All static semantics as defined in SPARK RM 6.9 are in 555 -- 1. Check - All static semantics as defined in SPARK RM 6.9 are in
554 -- effect. The Ghost region has mode Check. 556 -- effect. The Ghost region has mode Check.
555 557 --
556 -- 2. Ignore - Same as Check, ignored Ghost code is not present in ALI 558 -- 2. Ignore - Same as Check, ignored Ghost code is not present in ALI
557 -- files, object files, and the final executable. The Ghost region 559 -- files, object files, and the final executable. The Ghost region
558 -- has mode Ignore. 560 -- has mode Ignore.
559 561 --
560 -- 3. None - No Ghost region is in effect 562 -- 3. None - No Ghost region is in effect
561 563 --
564 -- The value of Ignored_Ghost_Region captures the node which initiates an
565 -- ignored Ghost region.
566 --
562 -- A Ghost region is a compiler operating mode, similar to Check_Syntax, 567 -- A Ghost region is a compiler operating mode, similar to Check_Syntax,
563 -- however a region is much more finely grained and depends on the policy 568 -- however a region is much more finely grained and depends on the policy
564 -- in effect. The region starts prior to the analysis of a Ghost construct 569 -- in effect. The region starts prior to the analysis of a Ghost construct
565 -- and ends immediately after its expansion. The region is established as 570 -- and ends immediately after its expansion. The region is established as
566 -- follows: 571 -- follows:
567 572 --
568 -- 1. Declarations - Prior to analysis, if the declaration is subject to 573 -- 1. Declarations - Prior to analysis, if the declaration is subject to
569 -- pragma Ghost. 574 -- pragma Ghost.
570 575 --
571 -- 2. Renaming declarations - Same as 1) or when the renamed entity is 576 -- 2. Renaming declarations - Same as 1) or when the renamed entity is
572 -- Ghost. 577 -- Ghost.
573 578 --
574 -- 3. Completing declarations - Same as 1) or when the declaration is 579 -- 3. Completing declarations - Same as 1) or when the declaration is
575 -- partially analyzed and the declaration completes a Ghost entity. 580 -- partially analyzed and the declaration completes a Ghost entity.
576 581 --
577 -- 4. N_Package_Body, N_Subprogram_Body - Same as 1) or when the body is 582 -- 4. N_Package_Body, N_Subprogram_Body - Same as 1) or when the body is
578 -- partially analyzed and completes a Ghost entity. 583 -- partially analyzed and completes a Ghost entity.
579 584 --
580 -- 5. N_Assignment_Statement - After the left hand side is analyzed and 585 -- 5. N_Assignment_Statement - After the left hand side is analyzed and
581 -- references a Ghost entity. 586 -- references a Ghost entity.
582 587 --
583 -- 6. N_Procedure_Call_Statement - After the name is analyzed and denotes 588 -- 6. N_Procedure_Call_Statement - After the name is analyzed and denotes
584 -- a Ghost procedure. 589 -- a Ghost procedure.
585 590 --
586 -- 7. N_Pragma - During analysis, when the related entity is Ghost or the 591 -- 7. N_Pragma - During analysis, when the related entity is Ghost or the
587 -- pragma encloses a Ghost entity. 592 -- pragma encloses a Ghost entity.
588 593 --
589 -- 8. Instantiations - Save as 1) or when the instantiation is partially 594 -- 8. Instantiations - Save as 1) or when the instantiation is partially
590 -- analyzed and the generic template is Ghost. 595 -- analyzed and the generic template is Ghost.
591 596 --
592 -- Routines Mark_And_Set_Ghost_xxx and Set_Ghost_Mode install a new Ghost 597 -- The following routines install a new Ghost region:
593 -- region and routine Restore_Ghost_Mode ends a Ghost region. A region may 598 --
594 -- be reinstalled similarly to scopes for decoupled expansion such as the 599 -- Install_Ghost_Region
595 -- generation of dispatch tables or the creation of a predicate function. 600 -- Mark_And_Set_Ghost_xxx
596 601 -- Set_Ghost_Mode
602 --
603 -- The following routine ends a Ghost region:
604 --
605 -- Restore_Ghost_Region
606 --
607 -- A region may be reinstalled similarly to scopes for decoupled expansion
608 -- such as the generation of dispatch tables or the creation of a predicate
609 -- function.
610 --
597 -- If the mode of a Ghost region is Ignore, any newly created nodes as well 611 -- If the mode of a Ghost region is Ignore, any newly created nodes as well
598 -- as source entities are marked as ignored Ghost. In additon, the marking 612 -- as source entities are marked as ignored Ghost. In additon, the marking
599 -- process signals all enclosing scopes that an ignored Ghost node resides 613 -- process signals all enclosing scopes that an ignored Ghost node resides
600 -- within. The compilation unit where the node resides is also added to an 614 -- within. The compilation unit where the node resides is also added to an
601 -- auxiliary table for post processing. 615 -- auxiliary table for post processing.
602 616 --
603 -- After the analysis and expansion of all compilation units takes place 617 -- After the analysis and expansion of all compilation units takes place
604 -- as well as the instantiation of all inlined [generic] bodies, the GNAT 618 -- as well as the instantiation of all inlined [generic] bodies, the GNAT
605 -- driver initiates a separate pass which removes all ignored Ghost nodes 619 -- driver initiates a separate pass which removes all ignored Ghost nodes
606 -- from all units stored in the auxiliary table. 620 -- from all units stored in the auxiliary table.
607 621
624 -- local effects and call-graphs in ALI files, with the completely 638 -- local effects and call-graphs in ALI files, with the completely
625 -- qualified names (in particular the suffix to distinguish homonyms). 639 -- qualified names (in particular the suffix to distinguish homonyms).
626 640
627 -- The tree after this light expansion should be fully analyzed 641 -- The tree after this light expansion should be fully analyzed
628 -- semantically, which sometimes requires the insertion of semantic 642 -- semantically, which sometimes requires the insertion of semantic
629 -- pre-analysis, for example for subprogram contracts and pragma 643 -- preanalysis, for example for subprogram contracts and pragma
630 -- check/assert. In particular, all expression must have their proper type, 644 -- check/assert. In particular, all expression must have their proper type,
631 -- and semantic links should be set between tree nodes (partial to full 645 -- and semantic links should be set between tree nodes (partial to full
632 -- view, etc.) Some kinds of nodes should be either absent, or can be 646 -- view, etc.) Some kinds of nodes should be either absent, or can be
633 -- ignored by the formal verification backend: 647 -- ignored by the formal verification backend:
634 648
1114 -- 1128 --
1115 -- In Ada 2012, Corresponding_Spec is set on expression functions that 1129 -- In Ada 2012, Corresponding_Spec is set on expression functions that
1116 -- complete a subprogram declaration. 1130 -- complete a subprogram declaration.
1117 1131
1118 -- Corresponding_Spec_Of_Stub (Node2-Sem) 1132 -- Corresponding_Spec_Of_Stub (Node2-Sem)
1119 -- This field is present in subprogram, package, task and protected body 1133 -- This field is present in subprogram, package, task, and protected body
1120 -- stubs where it points to the corresponding spec of the stub. Due to 1134 -- stubs where it points to the corresponding spec of the stub. Due to
1121 -- clashes in the structure of nodes, we cannot use Corresponding_Spec. 1135 -- clashes in the structure of nodes, we cannot use Corresponding_Spec.
1122 1136
1123 -- Corresponding_Stub (Node3-Sem) 1137 -- Corresponding_Stub (Node3-Sem)
1124 -- This field is present in an N_Subunit node. It holds the node in 1138 -- This field is present in an N_Subunit node. It holds the node in
1587 -- hidden list header used by the runtime finalization support has been 1601 -- hidden list header used by the runtime finalization support has been
1588 -- added to the size of the prefix. The flag also prevents the infinite 1602 -- added to the size of the prefix. The flag also prevents the infinite
1589 -- expansion of the same attribute in the said context. 1603 -- expansion of the same attribute in the said context.
1590 1604
1591 -- Hidden_By_Use_Clause (Elist5-Sem) 1605 -- Hidden_By_Use_Clause (Elist5-Sem)
1592 -- An entity list present in use clauses that appear within 1606 -- An entity list present in use clauses that appear within
1593 -- instantiations. For the resolution of local entities, entities 1607 -- instantiations. For the resolution of local entities, entities
1594 -- introduced by these use clauses have priority over global ones, and 1608 -- introduced by these use clauses have priority over global ones,
1595 -- outer entities must be explicitly hidden/restored on exit. 1609 -- and outer entities must be explicitly hidden/restored on exit.
1596 1610
1597 -- Implicit_With (Flag16-Sem) 1611 -- Implicit_With (Flag16-Sem)
1598 -- This flag is set in the N_With_Clause node that is implicitly 1612 -- Present in N_With_Clause nodes. The flag indicates that the clause
1599 -- generated for runtime units that are loaded by the expander or in 1613 -- does not comes from source and introduces an implicit dependency on
1600 -- GNATprove mode, and also for package System, if it is loaded 1614 -- a particular unit. Such implicit with clauses are generated by:
1601 -- implicitly by a use of the 'Address or 'Tag attribute. 1615 --
1602 -- ??? There are other implicit with clauses as well. 1616 -- * ABE mechanism - The static elaboration model of both the default
1603 1617 -- and the legacy ABE mechanism use with clauses to encode implicit
1604 -- Implicit_With_From_Instantiation (Flag12-Sem) 1618 -- Elaborate[_All] pragmas.
1605 -- Set in N_With_Clause nodes from generic instantiations. 1619 --
1620 -- * Analysis - A with clause for child unit A.B.C is equivalent to
1621 -- a series of clauses that with A, A.B, and A.B.C. Manipulation of
1622 -- contexts utilizes implicit with clauses to emulate the visibility
1623 -- of a particular unit.
1624 --
1625 -- * RTSfind - The compiler generates code which references entities
1626 -- from the runtime.
1606 1627
1607 -- Import_Interface_Present (Flag16-Sem) 1628 -- Import_Interface_Present (Flag16-Sem)
1608 -- This flag is set in an Interface or Import pragma if a matching 1629 -- This flag is set in an Interface or Import pragma if a matching
1609 -- pragma of the other kind is also present. This is used to avoid 1630 -- pragma of the other kind is also present. This is used to avoid
1610 -- generating some unwanted error messages. 1631 -- generating some unwanted error messages.
1611 1632
1612 -- Includes_Infinities (Flag11-Sem) 1633 -- Includes_Infinities (Flag11-Sem)
1613 -- This flag is present in N_Range nodes. It is set for the range of 1634 -- This flag is present in N_Range nodes. It is set for the range of
1614 -- unconstrained float types defined in Standard, which include not only 1635 -- unconstrained float types defined in Standard, which include not only
1615 -- the given range of values, but also legitimately can include infinite 1636 -- the given range of values, but also legitimately can include infinite
1707 -- a Debug_Policy pragma that resulted in totally disabling the flagged 1728 -- a Debug_Policy pragma that resulted in totally disabling the flagged
1708 -- aspect or policy as a result of using the GNAT-defined policy DISABLE. 1729 -- aspect or policy as a result of using the GNAT-defined policy DISABLE.
1709 -- If this flag is set, the aspect or policy is not analyzed for semantic 1730 -- If this flag is set, the aspect or policy is not analyzed for semantic
1710 -- correctness, so any expressions etc will not be marked as analyzed. 1731 -- correctness, so any expressions etc will not be marked as analyzed.
1711 1732
1712 -- Is_Dispatching_Call (Flag3-Sem) 1733 -- Is_Dispatching_Call (Flag6-Sem)
1713 -- Present in call marker nodes. Set when the related call which prompted 1734 -- Present in call marker nodes. Set when the related call which prompted
1714 -- the creation of the marker is dispatching. 1735 -- the creation of the marker is dispatching.
1715 1736
1716 -- Is_Dynamic_Coextension (Flag18-Sem) 1737 -- Is_Dynamic_Coextension (Flag18-Sem)
1717 -- Present in allocator nodes, to indicate that this is an allocator 1738 -- Present in allocator nodes, to indicate that this is an allocator
1718 -- for an access discriminant of a dynamically allocated object. The 1739 -- for an access discriminant of a dynamically allocated object. The
1719 -- coextension must be deallocated and finalized at the same time as 1740 -- coextension must be deallocated and finalized at the same time as
1720 -- the enclosing object. 1741 -- the enclosing object. The partner flag Is_Static_Coextension must
1742 -- be cleared before setting this flag to True.
1721 1743
1722 -- Is_Effective_Use_Clause (Flag1-Sem) 1744 -- Is_Effective_Use_Clause (Flag1-Sem)
1723 -- Present in both N_Use_Type_Clause and N_Use_Package_Clause to indicate 1745 -- Present in both N_Use_Type_Clause and N_Use_Package_Clause to indicate
1724 -- a use clause is "used" in the current source. 1746 -- a use clause is "used" in the current source.
1725 1747
1726 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem) 1748 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem)
1727 -- Present in nodes which represent an elaboration scenario. Those are 1749 -- Present in the following nodes:
1728 -- assignment statement, attribute reference, call marker, entry call 1750 --
1729 -- statement, expanded name, function call, identifier, instantiation, 1751 -- assignment statement
1730 -- procedure call statement, and requeue statement nodes. Set when the 1752 -- attribute reference
1731 -- node appears within a context which allows for the generation of 1753 -- call marker
1732 -- run-time ABE checks. This flag detemines whether the ABE Processing 1754 -- entry call statement
1755 -- expanded name
1756 -- function call
1757 -- function instantiation
1758 -- identifier
1759 -- package instantiation
1760 -- procedure call statement
1761 -- procedure instantiation
1762 -- requeue statement
1763 --
1764 -- Set when the node appears within a context which allows the generation
1765 -- of run-time ABE checks. This flag detemines whether the ABE Processing
1733 -- phase generates conditional ABE checks and guaranteed ABE failures. 1766 -- phase generates conditional ABE checks and guaranteed ABE failures.
1767
1768 -- Is_Elaboration_Code (Flag9-Sem)
1769 -- Present in assignment statements. Set for an assignment which updates
1770 -- the elaboration flag of a package or subprogram when the corresponding
1771 -- body is successfully elaborated.
1772
1773 -- Is_Elaboration_Warnings_OK_Node (Flag3-Sem)
1774 -- Present in the following nodes:
1775 --
1776 -- attribute reference
1777 -- call marker
1778 -- entry call statement
1779 -- function call
1780 -- function instantiation
1781 -- package instantiation
1782 -- procedure call statement
1783 -- procedure instantiation
1784 -- requeue statement
1785 --
1786 -- Set when the node appears within a context where elaboration warnings
1787 -- are enabled. This flag determines whether the ABE processing phase
1788 -- generates diagnostics on various elaboration issues.
1734 1789
1735 -- Is_Entry_Barrier_Function (Flag8-Sem) 1790 -- Is_Entry_Barrier_Function (Flag8-Sem)
1736 -- This flag is set on N_Subprogram_Declaration and N_Subprogram_Body 1791 -- This flag is set on N_Subprogram_Declaration and N_Subprogram_Body
1737 -- nodes which emulate the barrier function of a protected entry body. 1792 -- nodes which emulate the barrier function of a protected entry body.
1738 -- The flag is used when checking for incorrect use of Current_Task. 1793 -- The flag is used when checking for incorrect use of Current_Task.
1752 -- objects. The wrapper prevents interference between exception handlers 1807 -- objects. The wrapper prevents interference between exception handlers
1753 -- and At_End handlers. 1808 -- and At_End handlers.
1754 1809
1755 -- Is_Generic_Contract_Pragma (Flag2-Sem) 1810 -- Is_Generic_Contract_Pragma (Flag2-Sem)
1756 -- This flag is present in N_Pragma nodes. It is set when the pragma is 1811 -- This flag is present in N_Pragma nodes. It is set when the pragma is
1757 -- a source construct, applies to a generic unit or its body and denotes 1812 -- a source construct, applies to a generic unit or its body, and denotes
1758 -- one of the following contract-related annotations: 1813 -- one of the following contract-related annotations:
1759 -- Abstract_State 1814 -- Abstract_State
1760 -- Contract_Cases 1815 -- Contract_Cases
1761 -- Depends 1816 -- Depends
1762 -- Extensions_Visible 1817 -- Extensions_Visible
1810 -- the finalization machinery to wrap initialization statements. This 1865 -- the finalization machinery to wrap initialization statements. This
1811 -- flag aids the ABE Processing phase to suppress the diagnostics of 1866 -- flag aids the ABE Processing phase to suppress the diagnostics of
1812 -- finalization actions in initialization contexts. 1867 -- finalization actions in initialization contexts.
1813 1868
1814 -- Is_Known_Guaranteed_ABE (Flag18-Sem) 1869 -- Is_Known_Guaranteed_ABE (Flag18-Sem)
1815 -- Present in call markers and instantiations. Set when the elaboration 1870 -- NOTE: this flag is shared between the legacy ABE mechanism and the
1816 -- or evaluation of the scenario results in a guaranteed ABE. The flag 1871 -- default ABE mechanism.
1817 -- is used to suppress the instantiation of generic bodies because gigi 1872 --
1818 -- cannot handle certain forms of premature instantiation, as well as to 1873 -- Present in the following nodes:
1819 -- prevent the reexamination of the node by the ABE Processing phase. 1874 --
1875 -- call marker
1876 -- formal package declaration
1877 -- function call
1878 -- function instantiation
1879 -- package instantiation
1880 -- procedure call statement
1881 -- procedure instantiation
1882 --
1883 -- Set when the elaboration or evaluation of the scenario results in
1884 -- a guaranteed ABE. The flag is used to suppress the instantiation of
1885 -- generic bodies because gigi cannot handle certain forms of premature
1886 -- instantiation, as well as to prevent the reexamination of the node by
1887 -- the ABE Processing phase.
1820 1888
1821 -- Is_Machine_Number (Flag11-Sem) 1889 -- Is_Machine_Number (Flag11-Sem)
1822 -- This flag is set in an N_Real_Literal node to indicate that the value 1890 -- This flag is set in an N_Real_Literal node to indicate that the value
1823 -- is a machine number. This avoids some unnecessary cases of converting 1891 -- is a machine number. This avoids some unnecessary cases of converting
1824 -- real literals to machine numbers. 1892 -- real literals to machine numbers.
1825 1893
1826 -- Is_Null_Loop (Flag16-Sem) 1894 -- Is_Null_Loop (Flag16-Sem)
1827 -- This flag is set in an N_Loop_Statement node if the corresponding loop 1895 -- This flag is set in an N_Loop_Statement node if the corresponding loop
1828 -- can be determined to be null at compile time. This is used to remove 1896 -- can be determined to be null at compile time. This is used to remove
1829 -- the loop entirely at expansion time. 1897 -- the loop entirely at expansion time.
1898
1899 -- Is_OpenAcc_Environment (Flag13-Sem)
1900 -- This flag is set in an N_Loop_Statement node if it contains an
1901 -- Acc_Data, Acc_Parallel or Add_Kernels pragma.
1902
1903 -- Is_OpenAcc_Loop (Flag14-Sem)
1904 -- This flag is set in an N_Loop_Statement node if it contains an
1905 -- OpenAcc_Loop pragma.
1830 1906
1831 -- Is_Overloaded (Flag5-Sem) 1907 -- Is_Overloaded (Flag5-Sem)
1832 -- A flag present in all expression nodes. Used temporarily during 1908 -- A flag present in all expression nodes. Used temporarily during
1833 -- overloading determination. The setting of this flag is not relevant 1909 -- overloading determination. The setting of this flag is not relevant
1834 -- once overloading analysis is complete. 1910 -- once overloading analysis is complete.
1861 -- Present in N_Qualified_Expression nodes. Set when the qualification is 1937 -- Present in N_Qualified_Expression nodes. Set when the qualification is
1862 -- converting a universal literal to a specific type. Such qualifiers aid 1938 -- converting a universal literal to a specific type. Such qualifiers aid
1863 -- the resolution of accidental overloading of binary or unary operators 1939 -- the resolution of accidental overloading of binary or unary operators
1864 -- which may occur in instances. 1940 -- which may occur in instances.
1865 1941
1866 -- Is_Recorded_Scenario (Flag6-Sem) 1942 -- Is_Read (Flag1-Sem)
1867 -- Present in call marker and instantiation nodes. Set when the scenario 1943 -- Present in variable reference markers. Set when the original variable
1868 -- was saved by the ABE Recording phase. This flag aids the ABE machinery 1944 -- reference constitues a read of the variable.
1869 -- to keep its internal data up-to-date in case the node is transformed
1870 -- by Atree.Rewrite.
1871 1945
1872 -- Is_Source_Call (Flag4-Sem) 1946 -- Is_Source_Call (Flag4-Sem)
1873 -- Present in call marker nodes. Set when the related call came from 1947 -- Present in call marker nodes. Set when the related call came from
1874 -- source. 1948 -- source.
1875 1949
1882 -- determines when the SPARK model of elaboration be activated by the 1956 -- determines when the SPARK model of elaboration be activated by the
1883 -- ABE Processing phase. 1957 -- ABE Processing phase.
1884 1958
1885 -- Is_Static_Coextension (Flag14-Sem) 1959 -- Is_Static_Coextension (Flag14-Sem)
1886 -- Present in N_Allocator nodes. Set if the allocator is a coextension 1960 -- Present in N_Allocator nodes. Set if the allocator is a coextension
1887 -- of an object allocated on the stack rather than the heap. 1961 -- of an object allocated on the stack rather than the heap. The partner
1962 -- flag Is_Dynamic_Coextension must be cleared before setting this flag
1963 -- to True.
1888 1964
1889 -- Is_Static_Expression (Flag6-Sem) 1965 -- Is_Static_Expression (Flag6-Sem)
1890 -- Indicates that an expression is a static expression according to the 1966 -- Indicates that an expression is a static expression according to the
1891 -- rules in (RM 4.9). Note that it is possible for this flag to be set 1967 -- rules in (RM 4.9). Note that it is possible for this flag to be set
1892 -- when Raises_Constraint_Error is also set. In practice almost all cases 1968 -- when Raises_Constraint_Error is also set. In practice almost all cases
1910 -- Is_Task_Body_Procedure (Flag1-Sem) 1986 -- Is_Task_Body_Procedure (Flag1-Sem)
1911 -- This flag is set on N_Subprogram_Declaration and N_Subprogram_Body 1987 -- This flag is set on N_Subprogram_Declaration and N_Subprogram_Body
1912 -- nodes which emulate the body of a task unit. 1988 -- nodes which emulate the body of a task unit.
1913 1989
1914 -- Is_Task_Master (Flag5-Sem) 1990 -- Is_Task_Master (Flag5-Sem)
1915 -- A flag set in a Subprogram_Body, Block_Statement or Task_Body node to 1991 -- A flag set in a Subprogram_Body, Block_Statement, or Task_Body node to
1916 -- indicate that the construct is a task master (i.e. has declared tasks 1992 -- indicate that the construct is a task master (i.e. has declared tasks
1917 -- or declares an access to a task type). 1993 -- or declares an access to a task type).
1994
1995 -- Is_Write (Flag2-Sem)
1996 -- Present in variable reference markers. Set when the original variable
1997 -- reference constitues a write of the variable.
1918 1998
1919 -- Itype (Node1-Sem) 1999 -- Itype (Node1-Sem)
1920 -- Used in N_Itype_Reference node to reference an itype for which it is 2000 -- Used in N_Itype_Reference node to reference an itype for which it is
1921 -- important to ensure that it is defined. See description of this node 2001 -- important to ensure that it is defined. See description of this node
1922 -- for further details. 2002 -- for further details.
2015 -- cause freezing even though they normally would. This flag is also 2095 -- cause freezing even though they normally would. This flag is also
2016 -- present in an N_Subtype_Indication node, since we also use these in 2096 -- present in an N_Subtype_Indication node, since we also use these in
2017 -- calls to Freeze_Expression. 2097 -- calls to Freeze_Expression.
2018 2098
2019 -- Next_Entity (Node2-Sem) 2099 -- Next_Entity (Node2-Sem)
2020 -- Present in defining identifiers, defining character literals and 2100 -- Present in defining identifiers, defining character literals, and
2021 -- defining operator symbols (i.e. in all entities). The entities of a 2101 -- defining operator symbols (i.e. in all entities). The entities of a
2022 -- scope are chained, and this field is used as the forward pointer for 2102 -- scope are chained, and this field is used as the forward pointer for
2023 -- this list. See Einfo for further details. 2103 -- this list. See Einfo for further details.
2024 2104
2025 -- Next_Exit_Statement (Node3-Sem) 2105 -- Next_Exit_Statement (Node3-Sem)
2081 -- controlled. Also indicates that the primitive _assign should not be 2161 -- controlled. Also indicates that the primitive _assign should not be
2082 -- used for a tagged assignment. This is used in init procs and aggregate 2162 -- used for a tagged assignment. This is used in init procs and aggregate
2083 -- expansions where the generated assignments are initializations, not 2163 -- expansions where the generated assignments are initializations, not
2084 -- real assignments. 2164 -- real assignments.
2085 2165
2166 -- No_Elaboration_Check (Flag4-Sem)
2167 -- NOTE: this flag is relevant only for the legacy ABE mechanism and
2168 -- should not be used outside of that context.
2169 --
2170 -- Present in N_Function_Call and N_Procedure_Call_Statement. Indicates
2171 -- that no elaboration check is needed on the call, because it appears in
2172 -- the context of a local Suppress pragma. This is used on calls within
2173 -- task bodies, where the actual elaboration checks are applied after
2174 -- analysis, when the local scope stack is not present
2175
2086 -- No_Entities_Ref_In_Spec (Flag8-Sem) 2176 -- No_Entities_Ref_In_Spec (Flag8-Sem)
2087 -- Present in N_With_Clause nodes. Set if the with clause is on the 2177 -- Present in N_With_Clause nodes. Set if the with clause is on the
2088 -- package or subprogram spec where the main unit is the corresponding 2178 -- package or subprogram spec where the main unit is the corresponding
2089 -- body, and no entities of the with'ed unit are referenced by the spec 2179 -- body, and no entities of the with'ed unit are referenced by the spec
2090 -- (an entity may still be referenced in the body, so this flag is used 2180 -- (an entity may still be referenced in the body, so this flag is used
2158 -- declaration, generic declaration or instantiation, or library level 2248 -- declaration, generic declaration or instantiation, or library level
2159 -- rename) this field points to the compilation unit node for the parent 2249 -- rename) this field points to the compilation unit node for the parent
2160 -- package specification. This field is Empty for library bodies (the 2250 -- package specification. This field is Empty for library bodies (the
2161 -- parent spec in this case can be found from the corresponding spec). 2251 -- parent spec in this case can be found from the corresponding spec).
2162 2252
2253 -- Parent_With (Flag1-Sem)
2254 -- Present in N_With_Clause nodes. The flag indicates that the clause
2255 -- was generated for an ancestor unit to provide proper visibility. A
2256 -- with clause for child unit A.B.C produces two implicit parent with
2257 -- clauses for A and A.B.
2258
2163 -- Premature_Use (Node5-Sem) 2259 -- Premature_Use (Node5-Sem)
2164 -- Present in N_Incomplete_Type_Declaration node. Used for improved 2260 -- Present in N_Incomplete_Type_Declaration node. Used for improved
2165 -- error diagnostics: if there is a premature usage of an incomplete 2261 -- error diagnostics: if there is a premature usage of an incomplete
2166 -- type, a subsequently generated error message indicates the position 2262 -- type, a subsequently generated error message indicates the position
2167 -- of its full declaration. 2263 -- of its full declaration.
2232 -- containing a single N_Object_Declaration representing the return 2328 -- containing a single N_Object_Declaration representing the return
2233 -- object. We use a list (instead of just a pointer to the object decl) 2329 -- object. We use a list (instead of just a pointer to the object decl)
2234 -- because Analyze wants to insert extra actions on this list. 2330 -- because Analyze wants to insert extra actions on this list.
2235 2331
2236 -- Rounded_Result (Flag18-Sem) 2332 -- Rounded_Result (Flag18-Sem)
2237 -- Present in N_Type_Conversion, N_Op_Divide and N_Op_Multiply nodes. 2333 -- Present in N_Type_Conversion, N_Op_Divide, and N_Op_Multiply nodes.
2238 -- Used in the fixed-point cases to indicate that the result must be 2334 -- Used in the fixed-point cases to indicate that the result must be
2239 -- rounded as a result of the use of the 'Round attribute. Also used for 2335 -- rounded as a result of the use of the 'Round attribute. Also used for
2240 -- integer N_Op_Divide nodes to indicate that the result should be 2336 -- integer N_Op_Divide nodes to indicate that the result should be
2241 -- rounded to the nearest integer (breaking ties away from zero), rather 2337 -- rounded to the nearest integer (breaking ties away from zero), rather
2242 -- than truncated towards zero as usual. These rounded integer operations 2338 -- than truncated towards zero as usual. These rounded integer operations
2265 -- SCIL_Target_Prim (Node2-Sem) 2361 -- SCIL_Target_Prim (Node2-Sem)
2266 -- Present in N_SCIL_Dispatching_Call nodes. References the primitive 2362 -- Present in N_SCIL_Dispatching_Call nodes. References the primitive
2267 -- operation named (statically) in a dispatching call. 2363 -- operation named (statically) in a dispatching call.
2268 2364
2269 -- Scope (Node3-Sem) 2365 -- Scope (Node3-Sem)
2270 -- Present in defining identifiers, defining character literals and 2366 -- Present in defining identifiers, defining character literals, and
2271 -- defining operator symbols (i.e. in all entities). The entities of a 2367 -- defining operator symbols (i.e. in all entities). The entities of a
2272 -- scope all use this field to reference the corresponding scope entity. 2368 -- scope all use this field to reference the corresponding scope entity.
2273 -- See Einfo for further details. 2369 -- See Einfo for further details.
2274 2370
2275 -- Shift_Count_OK (Flag4-Sem) 2371 -- Shift_Count_OK (Flag4-Sem)
2284 -- source type entity for the unchecked conversion instantiation 2380 -- source type entity for the unchecked conversion instantiation
2285 -- which gigi must do size validation for. 2381 -- which gigi must do size validation for.
2286 2382
2287 -- Split_PPC (Flag17) 2383 -- Split_PPC (Flag17)
2288 -- When a Pre or Post aspect specification is processed, it is broken 2384 -- When a Pre or Post aspect specification is processed, it is broken
2289 -- into AND THEN sections. The left most section has Split_PPC set to 2385 -- into AND THEN sections. The leftmost section has Split_PPC set to
2290 -- False, indicating that it is the original specification (e.g. for 2386 -- False, indicating that it is the original specification (e.g. for
2291 -- posting errors). For other sections, Split_PPC is set to True. 2387 -- posting errors). For other sections, Split_PPC is set to True.
2292 -- This flag is set in both the N_Aspect_Specification node itself, 2388 -- This flag is set in both the N_Aspect_Specification node itself,
2293 -- and in the pragma which is generated from this node. 2389 -- and in the pragma which is generated from this node.
2294 2390
2316 -- body of the loop should be suppressed. This is set when the range 2412 -- body of the loop should be suppressed. This is set when the range
2317 -- of a FOR loop is known to be null, or is probably null (loop would 2413 -- of a FOR loop is known to be null, or is probably null (loop would
2318 -- only execute if invalid values are present). 2414 -- only execute if invalid values are present).
2319 2415
2320 -- Target (Node1-Sem) 2416 -- Target (Node1-Sem)
2321 -- Present in call marker nodes. References the entity of the entry, 2417 -- Present in call and variable reference marker nodes. References the
2322 -- operator, or subprogram invoked by the related call or requeue. 2418 -- entity of the original entity, operator, or subprogram being invoked,
2419 -- or the original variable being read or written.
2323 2420
2324 -- Target_Type (Node2-Sem) 2421 -- Target_Type (Node2-Sem)
2325 -- Used in an N_Validate_Unchecked_Conversion node to point to the target 2422 -- Used in an N_Validate_Unchecked_Conversion node to point to the target
2326 -- type entity for the unchecked conversion instantiation which gigi must 2423 -- type entity for the unchecked conversion instantiation which gigi must
2327 -- do size validation for. 2424 -- do size validation for.
2336 -- these actions. The final tree is always rewritten to eliminate the 2433 -- these actions. The final tree is always rewritten to eliminate the
2337 -- need for this field, so in the tree passed to Gigi, this field is 2434 -- need for this field, so in the tree passed to Gigi, this field is
2338 -- always set to No_List. 2435 -- always set to No_List.
2339 2436
2340 -- Treat_Fixed_As_Integer (Flag14-Sem) 2437 -- Treat_Fixed_As_Integer (Flag14-Sem)
2341 -- This flag appears in operator nodes for divide, multiply, mod and rem 2438 -- This flag appears in operator nodes for divide, multiply, mod, and rem
2342 -- on fixed-point operands. It indicates that the operands are to be 2439 -- on fixed-point operands. It indicates that the operands are to be
2343 -- treated as integer values, ignoring small values. This flag is only 2440 -- treated as integer values, ignoring small values. This flag is only
2344 -- set as a result of expansion of fixed-point operations. Typically a 2441 -- set as a result of expansion of fixed-point operations. Typically a
2345 -- fixed-point multiplication in the source generates subsidiary 2442 -- fixed-point multiplication in the source generates subsidiary
2346 -- multiplication and division operations that work with the underlying 2443 -- multiplication and division operations that work with the underlying
2412 -- During the analysis procedure, stubs in some situations get rewritten 2509 -- During the analysis procedure, stubs in some situations get rewritten
2413 -- by the corresponding bodies, and we set this flag to remember that 2510 -- by the corresponding bodies, and we set this flag to remember that
2414 -- this happened. Note that it is not good enough to rely on the use of 2511 -- this happened. Note that it is not good enough to rely on the use of
2415 -- Original_Node here because of the case of nested instantiations where 2512 -- Original_Node here because of the case of nested instantiations where
2416 -- the substituted node can be copied. 2513 -- the substituted node can be copied.
2417
2418 -- Withed_Body (Node1-Sem)
2419 -- Present in N_With_Clause nodes. Set if the unit in whose context
2420 -- the with_clause appears instantiates a generic contained in the
2421 -- library unit of the with_clause and as a result loads its body.
2422 -- Used for a more precise unit traversal for CodePeer.
2423 2514
2424 -------------------------------------------------- 2515 --------------------------------------------------
2425 -- Note on Use of End_Label and End_Span Fields -- 2516 -- Note on Use of End_Label and End_Span Fields --
2426 -------------------------------------------------- 2517 --------------------------------------------------
2427 2518
2726 2817
2727 -- We allow this special usage in all Ada modes, but it would be a 2818 -- We allow this special usage in all Ada modes, but it would be a
2728 -- pain to allow these aspects to pervade the pragma syntax, and the 2819 -- pain to allow these aspects to pervade the pragma syntax, and the
2729 -- representation of pragma nodes internally. So what we do is to 2820 -- representation of pragma nodes internally. So what we do is to
2730 -- replace these ASPECT_MARK forms with identifiers whose name is one 2821 -- replace these ASPECT_MARK forms with identifiers whose name is one
2731 -- of the special internal names _Pre, _Post or _Type_Invariant. 2822 -- of the special internal names _Pre, _Post, or _Type_Invariant.
2732 2823
2733 -- We do a similar replacement of these Aspect_Mark forms in the 2824 -- We do a similar replacement of these Aspect_Mark forms in the
2734 -- Expression of a pragma argument association for the cases of 2825 -- Expression of a pragma argument association for the cases of
2735 -- the first arguments of any Check pragmas and Check_Policy pragmas 2826 -- the first arguments of any Check pragmas and Check_Policy pragmas
2736 2827
2775 -- depending on the setting of the Ekind field. These additional 2866 -- depending on the setting of the Ekind field. These additional
2776 -- fields are defined (and access subprograms declared) in package 2867 -- fields are defined (and access subprograms declared) in package
2777 -- Einfo. 2868 -- Einfo.
2778 2869
2779 -- Note: N_Defining_Identifier is an extended node whose fields are 2870 -- Note: N_Defining_Identifier is an extended node whose fields are
2780 -- deliberate layed out to match the layout of fields in an ordinary 2871 -- deliberately layed out to match the layout of fields in an ordinary
2781 -- N_Identifier node allowing for easy alteration of an identifier 2872 -- N_Identifier node allowing for easy alteration of an identifier
2782 -- node into a defining identifier node. For details, see procedure 2873 -- node into a defining identifier node. For details, see procedure
2783 -- Sinfo.CN.Change_Identifier_To_Defining_Identifier. 2874 -- Sinfo.CN.Change_Identifier_To_Defining_Identifier.
2784 2875
2785 -- N_Defining_Identifier 2876 -- N_Defining_Identifier
3023 3114
3024 -- DERIVED_TYPE_DEFINITION ::= 3115 -- DERIVED_TYPE_DEFINITION ::=
3025 -- [abstract] [limited] new [NULL_EXCLUSION] parent_SUBTYPE_INDICATION 3116 -- [abstract] [limited] new [NULL_EXCLUSION] parent_SUBTYPE_INDICATION
3026 -- [[and INTERFACE_LIST] RECORD_EXTENSION_PART] 3117 -- [[and INTERFACE_LIST] RECORD_EXTENSION_PART]
3027 3118
3028 -- Note: ABSTRACT, LIMITED and record extension part are not permitted 3119 -- Note: ABSTRACT, LIMITED, and record extension part are not permitted
3029 -- in Ada 83 mode 3120 -- in Ada 83 mode.
3030 3121
3031 -- Note: a record extension part is required if ABSTRACT is present 3122 -- Note: a record extension part is required if ABSTRACT is present
3032 3123
3033 -- N_Derived_Type_Definition 3124 -- N_Derived_Type_Definition
3034 -- Sloc points to NEW 3125 -- Sloc points to NEW
3335 -- Access_Definition is an optional field that gives support to 3426 -- Access_Definition is an optional field that gives support to
3336 -- Ada 2005 (AI-230). The parser generates nodes that have either the 3427 -- Ada 2005 (AI-230). The parser generates nodes that have either the
3337 -- Subtype_Indication field or else the Access_Definition field. 3428 -- Subtype_Indication field or else the Access_Definition field.
3338 3429
3339 -- N_Component_Definition 3430 -- N_Component_Definition
3340 -- Sloc points to ALIASED, ACCESS or to first token of subtype mark 3431 -- Sloc points to ALIASED, ACCESS, or to first token of subtype mark
3341 -- Aliased_Present (Flag4) 3432 -- Aliased_Present (Flag4)
3342 -- Null_Exclusion_Present (Flag11) 3433 -- Null_Exclusion_Present (Flag11)
3343 -- Subtype_Indication (Node5) (set to Empty if not present) 3434 -- Subtype_Indication (Node5) (set to Empty if not present)
3344 -- Access_Definition (Node3) (set to Empty if not present) 3435 -- Access_Definition (Node3) (set to Empty if not present)
3345 3436
3483 -- record 3574 -- record
3484 -- COMPONENT_LIST 3575 -- COMPONENT_LIST
3485 -- end record 3576 -- end record
3486 -- | null record 3577 -- | null record
3487 3578
3488 -- Note: the Abstract_Present, Tagged_Present and Limited_Present 3579 -- Note: the Abstract_Present, Tagged_Present, and Limited_Present
3489 -- flags appear only for a record definition appearing in a record 3580 -- flags appear only for a record definition appearing in a record
3490 -- type definition. 3581 -- type definition.
3491 3582
3492 -- Note: the NULL RECORD case is not permitted in Ada 83 3583 -- Note: the NULL RECORD case is not permitted in Ada 83
3493 3584
3991 -- Expressions (List1) (set to No_List if no associated expressions) 4082 -- Expressions (List1) (set to No_List if no associated expressions)
3992 -- Entity (Node4-Sem) used if the attribute yields a type 4083 -- Entity (Node4-Sem) used if the attribute yields a type
3993 -- Associated_Node (Node4-Sem) 4084 -- Associated_Node (Node4-Sem)
3994 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem) 4085 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem)
3995 -- Is_SPARK_Mode_On_Node (Flag2-Sem) 4086 -- Is_SPARK_Mode_On_Node (Flag2-Sem)
4087 -- Is_Elaboration_Warnings_OK_Node (Flag3-Sem)
3996 -- Header_Size_Added (Flag11-Sem) 4088 -- Header_Size_Added (Flag11-Sem)
3997 -- Redundant_Use (Flag13-Sem) 4089 -- Redundant_Use (Flag13-Sem)
3998 -- Must_Be_Byte_Aligned (Flag14-Sem) 4090 -- Must_Be_Byte_Aligned (Flag14-Sem)
3999 -- plus fields for expression 4091 -- plus fields for expression
4000 4092
4011 4103
4012 -- There is no explicit node in the tree for an attribute designator. 4104 -- There is no explicit node in the tree for an attribute designator.
4013 -- Instead the Attribute_Name and Expressions fields of the parent 4105 -- Instead the Attribute_Name and Expressions fields of the parent
4014 -- node (N_Attribute_Reference node) hold the information. 4106 -- node (N_Attribute_Reference node) hold the information.
4015 4107
4016 -- Note: if ACCESS, DELTA or DIGITS appears in an attribute 4108 -- Note: if ACCESS, DELTA, or DIGITS appears in an attribute
4017 -- designator, then they are treated as identifiers internally 4109 -- designator, then they are treated as identifiers internally
4018 -- rather than the keywords of the same name. 4110 -- rather than the keywords of the same name.
4019 4111
4020 -------------------------------------- 4112 --------------------------------------
4021 -- 4.1.4 Range Attribute Reference -- 4113 -- 4.1.4 Range Attribute Reference --
4063 -- Note: this structure is used for both record and array aggregates 4155 -- Note: this structure is used for both record and array aggregates
4064 -- since the two cases are not separable by the parser. The parser 4156 -- since the two cases are not separable by the parser. The parser
4065 -- makes no attempt to enforce consistency here, so it is up to the 4157 -- makes no attempt to enforce consistency here, so it is up to the
4066 -- semantic phase to make sure that the aggregate is consistent (i.e. 4158 -- semantic phase to make sure that the aggregate is consistent (i.e.
4067 -- that it is not a "half-and-half" case that mixes record and array 4159 -- that it is not a "half-and-half" case that mixes record and array
4068 -- syntax. In particular, for a record aggregate, the expressions 4160 -- syntax). In particular, for a record aggregate, the expressions
4069 -- field will be set if there are positional associations. 4161 -- field will be set if there are positional associations.
4070 4162
4071 -- Note: N_Aggregate is not used for all aggregates; in particular, 4163 -- Note: N_Aggregate is not used for all aggregates; in particular,
4072 -- there is a separate node kind for extension aggregates. 4164 -- there is a separate node kind for extension aggregates.
4073 4165
4588 4680
4589 -- CONDITIONAL_EXPRESSION ::= IF_EXPRESSION | CASE_EXPRESSION 4681 -- CONDITIONAL_EXPRESSION ::= IF_EXPRESSION | CASE_EXPRESSION
4590 4682
4591 -------------------------- 4683 --------------------------
4592 -- 4.5.7 If Expression -- 4684 -- 4.5.7 If Expression --
4593 ---------------------------- 4685 --------------------------
4594 4686
4595 -- IF_EXPRESSION ::= 4687 -- IF_EXPRESSION ::=
4596 -- if CONDITION then DEPENDENT_EXPRESSION 4688 -- if CONDITION then DEPENDENT_EXPRESSION
4597 -- {elsif CONDITION then DEPENDENT_EXPRESSION} 4689 -- {elsif CONDITION then DEPENDENT_EXPRESSION}
4598 -- [else DEPENDENT_EXPRESSION] 4690 -- [else DEPENDENT_EXPRESSION]
4670 4762
4671 -- Note: this node never appears in the tree passed to the back end, 4763 -- Note: this node never appears in the tree passed to the back end,
4672 -- since the expander converts case expressions into case statements. 4764 -- since the expander converts case expressions into case statements.
4673 4765
4674 --------------------------------- 4766 ---------------------------------
4675 -- 4.5.9 Quantified Expression -- 4767 -- 4.5.8 Quantified Expression --
4676 --------------------------------- 4768 ---------------------------------
4677 4769
4678 -- QUANTIFIED_EXPRESSION ::= 4770 -- QUANTIFIED_EXPRESSION ::=
4679 -- for QUANTIFIER LOOP_PARAMETER_SPECIFICATION => PREDICATE 4771 -- for QUANTIFIER LOOP_PARAMETER_SPECIFICATION => PREDICATE
4680 -- | for QUANTIFIER ITERATOR_SPECIFICATION => PREDICATE 4772 -- | for QUANTIFIER ITERATOR_SPECIFICATION => PREDICATE
4895 -- Do_Length_Check (Flag4-Sem) 4987 -- Do_Length_Check (Flag4-Sem)
4896 -- Forwards_OK (Flag5-Sem) 4988 -- Forwards_OK (Flag5-Sem)
4897 -- Backwards_OK (Flag6-Sem) 4989 -- Backwards_OK (Flag6-Sem)
4898 -- No_Ctrl_Actions (Flag7-Sem) 4990 -- No_Ctrl_Actions (Flag7-Sem)
4899 -- Has_Target_Names (Flag8-Sem) 4991 -- Has_Target_Names (Flag8-Sem)
4992 -- Is_Elaboration_Code (Flag9-Sem)
4900 -- Do_Tag_Check (Flag13-Sem) 4993 -- Do_Tag_Check (Flag13-Sem)
4901 -- Componentwise_Assignment (Flag14-Sem) 4994 -- Componentwise_Assignment (Flag14-Sem)
4902 -- Suppress_Assignment_Checks (Flag18-Sem) 4995 -- Suppress_Assignment_Checks (Flag18-Sem)
4903 4996
4904 -- Note: if a range check is required, then the Do_Range_Check flag 4997 -- Note: if a range check is required, then the Do_Range_Check flag
5039 -- Sloc points to LOOP 5132 -- Sloc points to LOOP
5040 -- Identifier (Node1) loop identifier (set to Empty if no identifier) 5133 -- Identifier (Node1) loop identifier (set to Empty if no identifier)
5041 -- Iteration_Scheme (Node2) (set to Empty if no iteration scheme) 5134 -- Iteration_Scheme (Node2) (set to Empty if no iteration scheme)
5042 -- Statements (List3) 5135 -- Statements (List3)
5043 -- End_Label (Node4) 5136 -- End_Label (Node4)
5137 -- Is_OpenAcc_Environment (Flag13-Sem)
5138 -- Is_OpenAcc_Loop (Flag14-Sem)
5044 -- Has_Created_Identifier (Flag15) 5139 -- Has_Created_Identifier (Flag15)
5045 -- Is_Null_Loop (Flag16) 5140 -- Is_Null_Loop (Flag16)
5046 -- Suppress_Loop_Warnings (Flag17) 5141 -- Suppress_Loop_Warnings (Flag17)
5047 5142
5048 -- Note: the parser fills in the Identifier field if there is an 5143 -- Note: the parser fills in the Identifier field if there is an
5476 -- actual parameter part) 5571 -- actual parameter part)
5477 -- First_Named_Actual (Node4-Sem) 5572 -- First_Named_Actual (Node4-Sem)
5478 -- Controlling_Argument (Node1-Sem) (set to Empty if not dispatching) 5573 -- Controlling_Argument (Node1-Sem) (set to Empty if not dispatching)
5479 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem) 5574 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem)
5480 -- Is_SPARK_Mode_On_Node (Flag2-Sem) 5575 -- Is_SPARK_Mode_On_Node (Flag2-Sem)
5576 -- Is_Elaboration_Warnings_OK_Node (Flag3-Sem)
5577 -- No_Elaboration_Check (Flag4-Sem)
5481 -- Do_Tag_Check (Flag13-Sem) 5578 -- Do_Tag_Check (Flag13-Sem)
5579 -- Is_Known_Guaranteed_ABE (Flag18-Sem)
5482 -- plus fields for expression 5580 -- plus fields for expression
5483 5581
5484 -- If any IN parameter requires a range check, then the corresponding 5582 -- If any IN parameter requires a range check, then the corresponding
5485 -- argument expression has the Do_Range_Check flag set, and the range 5583 -- argument expression has the Do_Range_Check flag set, and the range
5486 -- check is done against the formal type. Note that this argument 5584 -- check is done against the formal type. Note that this argument
5506 -- actual parameter part) 5604 -- actual parameter part)
5507 -- First_Named_Actual (Node4-Sem) 5605 -- First_Named_Actual (Node4-Sem)
5508 -- Controlling_Argument (Node1-Sem) (set to Empty if not dispatching) 5606 -- Controlling_Argument (Node1-Sem) (set to Empty if not dispatching)
5509 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem) 5607 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem)
5510 -- Is_SPARK_Mode_On_Node (Flag2-Sem) 5608 -- Is_SPARK_Mode_On_Node (Flag2-Sem)
5609 -- Is_Elaboration_Warnings_OK_Node (Flag3-Sem)
5610 -- No_Elaboration_Check (Flag4-Sem)
5511 -- Is_Expanded_Build_In_Place_Call (Flag11-Sem) 5611 -- Is_Expanded_Build_In_Place_Call (Flag11-Sem)
5512 -- Do_Tag_Check (Flag13-Sem) 5612 -- Do_Tag_Check (Flag13-Sem)
5513 -- No_Side_Effect_Removal (Flag17-Sem) 5613 -- No_Side_Effect_Removal (Flag17-Sem)
5614 -- Is_Known_Guaranteed_ABE (Flag18-Sem)
5514 -- plus fields for expression 5615 -- plus fields for expression
5515 5616
5516 -------------------------------- 5617 --------------------------------
5517 -- 6.4 Actual Parameter Part -- 5618 -- 6.4 Actual Parameter Part --
5518 -------------------------------- 5619 --------------------------------
5541 5642
5542 --------------------------- 5643 ---------------------------
5543 -- 6.4 Actual Parameter -- 5644 -- 6.4 Actual Parameter --
5544 --------------------------- 5645 ---------------------------
5545 5646
5546 -- EXPLICIT_ACTUAL_PARAMETER ::= EXPRESSION | variable_NAME 5647 -- EXPLICIT_ACTUAL_PARAMETER ::=
5648 -- EXPRESSION | variable_NAME | REDUCTION_EXPRESSION_PARAMETER
5547 5649
5548 --------------------------- 5650 ---------------------------
5549 -- 6.5 Return Statement -- 5651 -- 6.5 Return Statement --
5550 --------------------------- 5652 ---------------------------
5551 5653
6219 -- Parameter_Associations (List3) (set to No_List if no 6321 -- Parameter_Associations (List3) (set to No_List if no
6220 -- actual parameter part) 6322 -- actual parameter part)
6221 -- First_Named_Actual (Node4-Sem) 6323 -- First_Named_Actual (Node4-Sem)
6222 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem) 6324 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem)
6223 -- Is_SPARK_Mode_On_Node (Flag2-Sem) 6325 -- Is_SPARK_Mode_On_Node (Flag2-Sem)
6326 -- Is_Elaboration_Warnings_OK_Node (Flag3-Sem)
6224 6327
6225 ------------------------------ 6328 ------------------------------
6226 -- 9.5.4 Requeue Statement -- 6329 -- 9.5.4 Requeue Statement --
6227 ------------------------------ 6330 ------------------------------
6228 6331
6236 -- Sloc points to REQUEUE 6339 -- Sloc points to REQUEUE
6237 -- Name (Node2) 6340 -- Name (Node2)
6238 -- Abort_Present (Flag15) 6341 -- Abort_Present (Flag15)
6239 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem) 6342 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem)
6240 -- Is_SPARK_Mode_On_Node (Flag2-Sem) 6343 -- Is_SPARK_Mode_On_Node (Flag2-Sem)
6344 -- Is_Elaboration_Warnings_OK_Node (Flag3-Sem)
6241 6345
6242 -------------------------- 6346 --------------------------
6243 -- 9.6 Delay Statement -- 6347 -- 9.6 Delay Statement --
6244 -------------------------- 6348 --------------------------
6245 6349
6641 -- set to Standard_Location, but it is incorrect to test the Sloc 6745 -- set to Standard_Location, but it is incorrect to test the Sloc
6642 -- to find out if a with clause is implicit, test the flag instead. 6746 -- to find out if a with clause is implicit, test the flag instead.
6643 6747
6644 -- N_With_Clause 6748 -- N_With_Clause
6645 -- Sloc points to first token of library unit name 6749 -- Sloc points to first token of library unit name
6646 -- Withed_Body (Node1-Sem)
6647 -- Name (Node2) 6750 -- Name (Node2)
6751 -- Private_Present (Flag15) set if with_clause has private keyword
6752 -- Limited_Present (Flag17) set if LIMITED is present
6648 -- Next_Implicit_With (Node3-Sem) 6753 -- Next_Implicit_With (Node3-Sem)
6649 -- Library_Unit (Node4-Sem) 6754 -- Library_Unit (Node4-Sem)
6650 -- Corresponding_Spec (Node5-Sem) 6755 -- Corresponding_Spec (Node5-Sem)
6651 -- First_Name (Flag5) (set to True if first name or only one name) 6756 -- First_Name (Flag5) (set to True if first name or only one name)
6652 -- Last_Name (Flag6) (set to True if last name or only one name) 6757 -- Last_Name (Flag6) (set to True if last name or only one name)
6653 -- Context_Installed (Flag13-Sem) 6758 -- Context_Installed (Flag13-Sem)
6654 -- Elaborate_Present (Flag4-Sem) 6759 -- Elaborate_Present (Flag4-Sem)
6655 -- Elaborate_All_Present (Flag14-Sem) 6760 -- Elaborate_All_Present (Flag14-Sem)
6656 -- Elaborate_All_Desirable (Flag9-Sem) 6761 -- Elaborate_All_Desirable (Flag9-Sem)
6657 -- Elaborate_Desirable (Flag11-Sem) 6762 -- Elaborate_Desirable (Flag11-Sem)
6658 -- Private_Present (Flag15) set if with_clause has private keyword
6659 -- Implicit_With (Flag16-Sem) 6763 -- Implicit_With (Flag16-Sem)
6660 -- Implicit_With_From_Instantiation (Flag12-Sem)
6661 -- Limited_Present (Flag17) set if LIMITED is present
6662 -- Limited_View_Installed (Flag18-Sem) 6764 -- Limited_View_Installed (Flag18-Sem)
6765 -- Parent_With (Flag1-Sem)
6663 -- Unreferenced_In_Spec (Flag7-Sem) 6766 -- Unreferenced_In_Spec (Flag7-Sem)
6664 -- No_Entities_Ref_In_Spec (Flag8-Sem) 6767 -- No_Entities_Ref_In_Spec (Flag8-Sem)
6665 6768
6666 -- Note: Limited_Present and Limited_View_Installed are used to support 6769 -- Note: Limited_Present and Limited_View_Installed are used to support
6667 -- the implementation of Ada 2005 (AI-50217). 6770 -- the implementation of Ada 2005 (AI-50217).
7033 -- generic actual part) 7136 -- generic actual part)
7034 -- Parent_Spec (Node4-Sem) 7137 -- Parent_Spec (Node4-Sem)
7035 -- Instance_Spec (Node5-Sem) 7138 -- Instance_Spec (Node5-Sem)
7036 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem) 7139 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem)
7037 -- Is_SPARK_Mode_On_Node (Flag2-Sem) 7140 -- Is_SPARK_Mode_On_Node (Flag2-Sem)
7141 -- Is_Elaboration_Warnings_OK_Node (Flag3-Sem)
7038 -- Is_Declaration_Level_Node (Flag5-Sem) 7142 -- Is_Declaration_Level_Node (Flag5-Sem)
7039 -- Is_Recorded_Scenario (Flag6-Sem)
7040 -- Is_Known_Guaranteed_ABE (Flag18-Sem) 7143 -- Is_Known_Guaranteed_ABE (Flag18-Sem)
7041 7144
7042 -- N_Procedure_Instantiation 7145 -- N_Procedure_Instantiation
7043 -- Sloc points to PROCEDURE 7146 -- Sloc points to PROCEDURE
7044 -- Defining_Unit_Name (Node1) 7147 -- Defining_Unit_Name (Node1)
7047 -- Generic_Associations (List3) (set to No_List if no 7150 -- Generic_Associations (List3) (set to No_List if no
7048 -- generic actual part) 7151 -- generic actual part)
7049 -- Instance_Spec (Node5-Sem) 7152 -- Instance_Spec (Node5-Sem)
7050 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem) 7153 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem)
7051 -- Is_SPARK_Mode_On_Node (Flag2-Sem) 7154 -- Is_SPARK_Mode_On_Node (Flag2-Sem)
7155 -- Is_Elaboration_Warnings_OK_Node (Flag3-Sem)
7052 -- Is_Declaration_Level_Node (Flag5-Sem) 7156 -- Is_Declaration_Level_Node (Flag5-Sem)
7053 -- Is_Recorded_Scenario (Flag6-Sem)
7054 -- Must_Override (Flag14) set if overriding indicator present 7157 -- Must_Override (Flag14) set if overriding indicator present
7055 -- Must_Not_Override (Flag15) set if not_overriding indicator present 7158 -- Must_Not_Override (Flag15) set if not_overriding indicator present
7056 -- Is_Known_Guaranteed_ABE (Flag18-Sem) 7159 -- Is_Known_Guaranteed_ABE (Flag18-Sem)
7057 7160
7058 -- N_Function_Instantiation 7161 -- N_Function_Instantiation
7063 -- generic actual part) 7166 -- generic actual part)
7064 -- Parent_Spec (Node4-Sem) 7167 -- Parent_Spec (Node4-Sem)
7065 -- Instance_Spec (Node5-Sem) 7168 -- Instance_Spec (Node5-Sem)
7066 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem) 7169 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem)
7067 -- Is_SPARK_Mode_On_Node (Flag2-Sem) 7170 -- Is_SPARK_Mode_On_Node (Flag2-Sem)
7171 -- Is_Elaboration_Warnings_OK_Node (Flag3-Sem)
7068 -- Is_Declaration_Level_Node (Flag5-Sem) 7172 -- Is_Declaration_Level_Node (Flag5-Sem)
7069 -- Is_Recorded_Scenario (Flag6-Sem)
7070 -- Must_Override (Flag14) set if overriding indicator present 7173 -- Must_Override (Flag14) set if overriding indicator present
7071 -- Must_Not_Override (Flag15) set if not_overriding indicator present 7174 -- Must_Not_Override (Flag15) set if not_overriding indicator present
7072 -- Is_Known_Guaranteed_ABE (Flag18-Sem) 7175 -- Is_Known_Guaranteed_ABE (Flag18-Sem)
7073 7176
7074 -- Note: overriding indicator is an Ada 2005 feature 7177 -- Note: overriding indicator is an Ada 2005 feature
7380 -- Name (Node2) 7483 -- Name (Node2)
7381 -- Generic_Associations (List3) (set to No_List if (<>) case or 7484 -- Generic_Associations (List3) (set to No_List if (<>) case or
7382 -- empty generic actual part) 7485 -- empty generic actual part)
7383 -- Box_Present (Flag15) 7486 -- Box_Present (Flag15)
7384 -- Instance_Spec (Node5-Sem) 7487 -- Instance_Spec (Node5-Sem)
7488 -- Is_Known_Guaranteed_ABE (Flag18-Sem)
7385 7489
7386 -------------------------------------- 7490 --------------------------------------
7387 -- 12.7 Formal Package Actual Part -- 7491 -- 12.7 Formal Package Actual Part --
7388 -------------------------------------- 7492 --------------------------------------
7389 7493
7819 -- N_Call_Marker 7923 -- N_Call_Marker
7820 -- Sloc points to Sloc of original call 7924 -- Sloc points to Sloc of original call
7821 -- Target (Node1-Sem) 7925 -- Target (Node1-Sem)
7822 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem) 7926 -- Is_Elaboration_Checks_OK_Node (Flag1-Sem)
7823 -- Is_SPARK_Mode_On_Node (Flag2-Sem) 7927 -- Is_SPARK_Mode_On_Node (Flag2-Sem)
7824 -- Is_Dispatching_Call (Flag3-Sem) 7928 -- Is_Elaboration_Warnings_OK_Node (Flag3-Sem)
7825 -- Is_Source_Call (Flag4-Sem) 7929 -- Is_Source_Call (Flag4-Sem)
7826 -- Is_Declaration_Level_Node (Flag5-Sem) 7930 -- Is_Declaration_Level_Node (Flag5-Sem)
7827 -- Is_Recorded_Scenario (Flag6-Sem) 7931 -- Is_Dispatching_Call (Flag6-Sem)
7828 -- Is_Known_Guaranteed_ABE (Flag18-Sem) 7932 -- Is_Known_Guaranteed_ABE (Flag18-Sem)
7829 7933
7830 ------------------------ 7934 ------------------------
7831 -- Compound Statement -- 7935 -- Compound Statement --
7832 ------------------------ 7936 ------------------------
7909 8013
7910 -- Contract_Test_Cases contains a collection of pragmas that correspond 8014 -- Contract_Test_Cases contains a collection of pragmas that correspond
7911 -- to aspects/pragmas Contract_Cases and Test_Case. The ordering in the 8015 -- to aspects/pragmas Contract_Cases and Test_Case. The ordering in the
7912 -- list is in LIFO fashion. 8016 -- list is in LIFO fashion.
7913 8017
7914 -- Classifications contains pragmas that either declare, categorize or 8018 -- Classifications contains pragmas that either declare, categorize, or
7915 -- establish dependencies between subprogram or package inputs and 8019 -- establish dependencies between subprogram or package inputs and
7916 -- outputs. Currently the following pragmas appear in this list: 8020 -- outputs. Currently the following pragmas appear in this list:
7917 -- Abstract_States 8021 -- Abstract_States
7918 -- Async_Readers 8022 -- Async_Readers
7919 -- Async_Writers 8023 -- Async_Writers
8452 -- Source_Type (Node1-Sem) 8556 -- Source_Type (Node1-Sem)
8453 -- Target_Type (Node2-Sem) 8557 -- Target_Type (Node2-Sem)
8454 8558
8455 -- Note: in the case where a debug source file is generated, the Sloc 8559 -- Note: in the case where a debug source file is generated, the Sloc
8456 -- for this node points to the VALIDATE keyword in the file output. 8560 -- for this node points to the VALIDATE keyword in the file output.
8561
8562 -------------------------------
8563 -- Variable_Reference_Marker --
8564 -------------------------------
8565
8566 -- This node is created during the analysis of direct or expanded names,
8567 -- and the resolution of entry and subprogram calls. It performs several
8568 -- functions:
8569
8570 -- * Variable reference markers provide a uniform model for handling
8571 -- variable references by the ABE mechanism, regardless of whether
8572 -- expansion took place.
8573
8574 -- * The variable reference marker captures the entity of the variable
8575 -- being read or written.
8576
8577 -- * The variable reference markers aid the ABE Processing phase by
8578 -- signaling the presence of a call in case the original variable
8579 -- reference was transformed by expansion.
8580
8581 -- Sprint syntax: r#target# -- for a read
8582 -- rw#target# -- for a read/write
8583 -- w#target# -- for a write
8584
8585 -- The Sprint syntax shown above is not enabled by default
8586
8587 -- N_Variable_Reference_Marker
8588 -- Sloc points to Sloc of original variable reference
8589 -- Target (Node1-Sem)
8590 -- Is_Read (Flag1-Sem)
8591 -- Is_Write (Flag2-Sem)
8457 8592
8458 ----------- 8593 -----------
8459 -- Empty -- 8594 -- Empty --
8460 ----------- 8595 -----------
8461 8596
8875 N_Subunit, 9010 N_Subunit,
8876 N_Task_Definition, 9011 N_Task_Definition,
8877 N_Triggering_Alternative, 9012 N_Triggering_Alternative,
8878 N_Use_Type_Clause, 9013 N_Use_Type_Clause,
8879 N_Validate_Unchecked_Conversion, 9014 N_Validate_Unchecked_Conversion,
9015 N_Variable_Reference_Marker,
8880 N_Variant, 9016 N_Variant,
8881 N_Variant_Part, 9017 N_Variant_Part,
8882 N_With_Clause, 9018 N_With_Clause,
8883 N_Unused_At_End); 9019 N_Unused_At_End);
8884 9020
9596 (N : Node_Id) return Boolean; -- Flag16 9732 (N : Node_Id) return Boolean; -- Flag16
9597 9733
9598 function Implicit_With 9734 function Implicit_With
9599 (N : Node_Id) return Boolean; -- Flag16 9735 (N : Node_Id) return Boolean; -- Flag16
9600 9736
9601 function Implicit_With_From_Instantiation
9602 (N : Node_Id) return Boolean; -- Flag12
9603
9604 function Import_Interface_Present 9737 function Import_Interface_Present
9605 (N : Node_Id) return Boolean; -- Flag16 9738 (N : Node_Id) return Boolean; -- Flag16
9606 9739
9607 function In_Present 9740 function In_Present
9608 (N : Node_Id) return Boolean; -- Flag15 9741 (N : Node_Id) return Boolean; -- Flag15
9660 9793
9661 function Is_Disabled 9794 function Is_Disabled
9662 (N : Node_Id) return Boolean; -- Flag15 9795 (N : Node_Id) return Boolean; -- Flag15
9663 9796
9664 function Is_Dispatching_Call 9797 function Is_Dispatching_Call
9665 (N : Node_Id) return Boolean; -- Flag3 9798 (N : Node_Id) return Boolean; -- Flag6
9666 9799
9667 function Is_Dynamic_Coextension 9800 function Is_Dynamic_Coextension
9668 (N : Node_Id) return Boolean; -- Flag18 9801 (N : Node_Id) return Boolean; -- Flag18
9669 9802
9670 function Is_Effective_Use_Clause 9803 function Is_Effective_Use_Clause
9671 (N : Node_Id) return Boolean; -- Flag1 9804 (N : Node_Id) return Boolean; -- Flag1
9672 9805
9673 function Is_Elaboration_Checks_OK_Node 9806 function Is_Elaboration_Checks_OK_Node
9674 (N : Node_Id) return Boolean; -- Flag1 9807 (N : Node_Id) return Boolean; -- Flag1
9675 9808
9809 function Is_Elaboration_Code
9810 (N : Node_Id) return Boolean; -- Flag9
9811
9812 function Is_Elaboration_Warnings_OK_Node
9813 (N : Node_Id) return Boolean; -- Flag3
9814
9676 function Is_Elsif 9815 function Is_Elsif
9677 (N : Node_Id) return Boolean; -- Flag13 9816 (N : Node_Id) return Boolean; -- Flag13
9678 9817
9679 function Is_Entry_Barrier_Function 9818 function Is_Entry_Barrier_Function
9680 (N : Node_Id) return Boolean; -- Flag8 9819 (N : Node_Id) return Boolean; -- Flag8
9716 (N : Node_Id) return Boolean; -- Flag11 9855 (N : Node_Id) return Boolean; -- Flag11
9717 9856
9718 function Is_Null_Loop 9857 function Is_Null_Loop
9719 (N : Node_Id) return Boolean; -- Flag16 9858 (N : Node_Id) return Boolean; -- Flag16
9720 9859
9860 function Is_OpenAcc_Environment
9861 (N : Node_Id) return Boolean; -- Flag13
9862
9863 function Is_OpenAcc_Loop
9864 (N : Node_Id) return Boolean; -- Flag14
9865
9721 function Is_Overloaded 9866 function Is_Overloaded
9722 (N : Node_Id) return Boolean; -- Flag5 9867 (N : Node_Id) return Boolean; -- Flag5
9723 9868
9724 function Is_Power_Of_2_For_Shift 9869 function Is_Power_Of_2_For_Shift
9725 (N : Node_Id) return Boolean; -- Flag13 9870 (N : Node_Id) return Boolean; -- Flag13
9731 (N : Node_Id) return Boolean; -- Flag7 9876 (N : Node_Id) return Boolean; -- Flag7
9732 9877
9733 function Is_Qualified_Universal_Literal 9878 function Is_Qualified_Universal_Literal
9734 (N : Node_Id) return Boolean; -- Flag4 9879 (N : Node_Id) return Boolean; -- Flag4
9735 9880
9736 function Is_Recorded_Scenario 9881 function Is_Read
9737 (N : Node_Id) return Boolean; -- Flag6 9882 (N : Node_Id) return Boolean; -- Flag1
9738 9883
9739 function Is_Source_Call 9884 function Is_Source_Call
9740 (N : Node_Id) return Boolean; -- Flag4 9885 (N : Node_Id) return Boolean; -- Flag4
9741 9886
9742 function Is_SPARK_Mode_On_Node 9887 function Is_SPARK_Mode_On_Node
9758 (N : Node_Id) return Boolean; -- Flag1 9903 (N : Node_Id) return Boolean; -- Flag1
9759 9904
9760 function Is_Task_Master 9905 function Is_Task_Master
9761 (N : Node_Id) return Boolean; -- Flag5 9906 (N : Node_Id) return Boolean; -- Flag5
9762 9907
9908 function Is_Write
9909 (N : Node_Id) return Boolean; -- Flag2
9910
9763 function Iteration_Scheme 9911 function Iteration_Scheme
9764 (N : Node_Id) return Node_Id; -- Node2 9912 (N : Node_Id) return Node_Id; -- Node2
9765 9913
9766 function Iterator_Specification 9914 function Iterator_Specification
9767 (N : Node_Id) return Node_Id; -- Node2 9915 (N : Node_Id) return Node_Id; -- Node2
9857 (N : Node_Id) return Node_Id; -- Node3 10005 (N : Node_Id) return Node_Id; -- Node3
9858 10006
9859 function No_Ctrl_Actions 10007 function No_Ctrl_Actions
9860 (N : Node_Id) return Boolean; -- Flag7 10008 (N : Node_Id) return Boolean; -- Flag7
9861 10009
10010 function No_Elaboration_Check
10011 (N : Node_Id) return Boolean; -- Flag4
10012
9862 function No_Entities_Ref_In_Spec 10013 function No_Entities_Ref_In_Spec
9863 (N : Node_Id) return Boolean; -- Flag8 10014 (N : Node_Id) return Boolean; -- Flag8
9864 10015
9865 function No_Initialization 10016 function No_Initialization
9866 (N : Node_Id) return Boolean; -- Flag13 10017 (N : Node_Id) return Boolean; -- Flag13
9920 (N : Node_Id) return Node_Id; -- Node2 10071 (N : Node_Id) return Node_Id; -- Node2
9921 10072
9922 function Parent_Spec 10073 function Parent_Spec
9923 (N : Node_Id) return Node_Id; -- Node4 10074 (N : Node_Id) return Node_Id; -- Node4
9924 10075
10076 function Parent_With
10077 (N : Node_Id) return Boolean; -- Flag1
10078
9925 function Position 10079 function Position
9926 (N : Node_Id) return Node_Id; -- Node2 10080 (N : Node_Id) return Node_Id; -- Node2
9927 10081
9928 function Pragma_Argument_Associations 10082 function Pragma_Argument_Associations
9929 (N : Node_Id) return List_Id; -- List2 10083 (N : Node_Id) return List_Id; -- List2
10159 function Was_Expression_Function 10313 function Was_Expression_Function
10160 (N : Node_Id) return Boolean; -- Flag18 10314 (N : Node_Id) return Boolean; -- Flag18
10161 10315
10162 function Was_Originally_Stub 10316 function Was_Originally_Stub
10163 (N : Node_Id) return Boolean; -- Flag13 10317 (N : Node_Id) return Boolean; -- Flag13
10164
10165 function Withed_Body
10166 (N : Node_Id) return Node_Id; -- Node1
10167 10318
10168 -- End functions (note used by xsinfo utility program to end processing) 10319 -- End functions (note used by xsinfo utility program to end processing)
10169 10320
10170 ---------------------------- 10321 ----------------------------
10171 -- Node Update Procedures -- 10322 -- Node Update Procedures --
10685 (N : Node_Id; Val : Boolean := True); -- Flag16 10836 (N : Node_Id; Val : Boolean := True); -- Flag16
10686 10837
10687 procedure Set_Implicit_With 10838 procedure Set_Implicit_With
10688 (N : Node_Id; Val : Boolean := True); -- Flag16 10839 (N : Node_Id; Val : Boolean := True); -- Flag16
10689 10840
10690 procedure Set_Implicit_With_From_Instantiation
10691 (N : Node_Id; Val : Boolean := True); -- Flag12
10692
10693 procedure Set_Import_Interface_Present 10841 procedure Set_Import_Interface_Present
10694 (N : Node_Id; Val : Boolean := True); -- Flag16 10842 (N : Node_Id; Val : Boolean := True); -- Flag16
10695 10843
10696 procedure Set_In_Present 10844 procedure Set_In_Present
10697 (N : Node_Id; Val : Boolean := True); -- Flag15 10845 (N : Node_Id; Val : Boolean := True); -- Flag15
10749 10897
10750 procedure Set_Is_Disabled 10898 procedure Set_Is_Disabled
10751 (N : Node_Id; Val : Boolean := True); -- Flag15 10899 (N : Node_Id; Val : Boolean := True); -- Flag15
10752 10900
10753 procedure Set_Is_Dispatching_Call 10901 procedure Set_Is_Dispatching_Call
10754 (N : Node_Id; Val : Boolean := True); -- Flag3 10902 (N : Node_Id; Val : Boolean := True); -- Flag6
10755 10903
10756 procedure Set_Is_Dynamic_Coextension 10904 procedure Set_Is_Dynamic_Coextension
10757 (N : Node_Id; Val : Boolean := True); -- Flag18 10905 (N : Node_Id; Val : Boolean := True); -- Flag18
10758 10906
10759 procedure Set_Is_Effective_Use_Clause 10907 procedure Set_Is_Effective_Use_Clause
10760 (N : Node_Id; Val : Boolean := True); -- Flag1 10908 (N : Node_Id; Val : Boolean := True); -- Flag1
10761 10909
10762 procedure Set_Is_Elaboration_Checks_OK_Node 10910 procedure Set_Is_Elaboration_Checks_OK_Node
10763 (N : Node_Id; Val : Boolean := True); -- Flag1 10911 (N : Node_Id; Val : Boolean := True); -- Flag1
10764 10912
10913 procedure Set_Is_Elaboration_Code
10914 (N : Node_Id; Val : Boolean := True); -- Flag9
10915
10916 procedure Set_Is_Elaboration_Warnings_OK_Node
10917 (N : Node_Id; Val : Boolean := True); -- Flag3
10918
10765 procedure Set_Is_Elsif 10919 procedure Set_Is_Elsif
10766 (N : Node_Id; Val : Boolean := True); -- Flag13 10920 (N : Node_Id; Val : Boolean := True); -- Flag13
10767 10921
10768 procedure Set_Is_Entry_Barrier_Function 10922 procedure Set_Is_Entry_Barrier_Function
10769 (N : Node_Id; Val : Boolean := True); -- Flag8 10923 (N : Node_Id; Val : Boolean := True); -- Flag8
10805 (N : Node_Id; Val : Boolean := True); -- Flag11 10959 (N : Node_Id; Val : Boolean := True); -- Flag11
10806 10960
10807 procedure Set_Is_Null_Loop 10961 procedure Set_Is_Null_Loop
10808 (N : Node_Id; Val : Boolean := True); -- Flag16 10962 (N : Node_Id; Val : Boolean := True); -- Flag16
10809 10963
10964 procedure Set_Is_OpenAcc_Environment
10965 (N : Node_Id; Val : Boolean := True); -- Flag13
10966
10967 procedure Set_Is_OpenAcc_Loop
10968 (N : Node_Id; Val : Boolean := True); -- Flag14
10969
10810 procedure Set_Is_Overloaded 10970 procedure Set_Is_Overloaded
10811 (N : Node_Id; Val : Boolean := True); -- Flag5 10971 (N : Node_Id; Val : Boolean := True); -- Flag5
10812 10972
10813 procedure Set_Is_Power_Of_2_For_Shift 10973 procedure Set_Is_Power_Of_2_For_Shift
10814 (N : Node_Id; Val : Boolean := True); -- Flag13 10974 (N : Node_Id; Val : Boolean := True); -- Flag13
10820 (N : Node_Id; Val : Boolean := True); -- Flag7 10980 (N : Node_Id; Val : Boolean := True); -- Flag7
10821 10981
10822 procedure Set_Is_Qualified_Universal_Literal 10982 procedure Set_Is_Qualified_Universal_Literal
10823 (N : Node_Id; Val : Boolean := True); -- Flag4 10983 (N : Node_Id; Val : Boolean := True); -- Flag4
10824 10984
10825 procedure Set_Is_Recorded_Scenario 10985 procedure Set_Is_Read
10826 (N : Node_Id; Val : Boolean := True); -- Flag6 10986 (N : Node_Id; Val : Boolean := True); -- Flag1
10827 10987
10828 procedure Set_Is_Source_Call 10988 procedure Set_Is_Source_Call
10829 (N : Node_Id; Val : Boolean := True); -- Flag4 10989 (N : Node_Id; Val : Boolean := True); -- Flag4
10830 10990
10831 procedure Set_Is_SPARK_Mode_On_Node 10991 procedure Set_Is_SPARK_Mode_On_Node
10847 (N : Node_Id; Val : Boolean := True); -- Flag1 11007 (N : Node_Id; Val : Boolean := True); -- Flag1
10848 11008
10849 procedure Set_Is_Task_Master 11009 procedure Set_Is_Task_Master
10850 (N : Node_Id; Val : Boolean := True); -- Flag5 11010 (N : Node_Id; Val : Boolean := True); -- Flag5
10851 11011
11012 procedure Set_Is_Write
11013 (N : Node_Id; Val : Boolean := True); -- Flag2
11014
10852 procedure Set_Iteration_Scheme 11015 procedure Set_Iteration_Scheme
10853 (N : Node_Id; Val : Node_Id); -- Node2 11016 (N : Node_Id; Val : Node_Id); -- Node2
10854 11017
10855 procedure Set_Iterator_Specification 11018 procedure Set_Iterator_Specification
10856 (N : Node_Id; Val : Node_Id); -- Node2 11019 (N : Node_Id; Val : Node_Id); -- Node2
10946 (N : Node_Id; Val : Node_Id); -- Node3 11109 (N : Node_Id; Val : Node_Id); -- Node3
10947 11110
10948 procedure Set_No_Ctrl_Actions 11111 procedure Set_No_Ctrl_Actions
10949 (N : Node_Id; Val : Boolean := True); -- Flag7 11112 (N : Node_Id; Val : Boolean := True); -- Flag7
10950 11113
11114 procedure Set_No_Elaboration_Check
11115 (N : Node_Id; Val : Boolean := True); -- Flag4
11116
10951 procedure Set_No_Entities_Ref_In_Spec 11117 procedure Set_No_Entities_Ref_In_Spec
10952 (N : Node_Id; Val : Boolean := True); -- Flag8 11118 (N : Node_Id; Val : Boolean := True); -- Flag8
10953 11119
10954 procedure Set_No_Initialization 11120 procedure Set_No_Initialization
10955 (N : Node_Id; Val : Boolean := True); -- Flag13 11121 (N : Node_Id; Val : Boolean := True); -- Flag13
11009 (N : Node_Id; Val : Node_Id); -- Node2 11175 (N : Node_Id; Val : Node_Id); -- Node2
11010 11176
11011 procedure Set_Parent_Spec 11177 procedure Set_Parent_Spec
11012 (N : Node_Id; Val : Node_Id); -- Node4 11178 (N : Node_Id; Val : Node_Id); -- Node4
11013 11179
11180 procedure Set_Parent_With
11181 (N : Node_Id; Val : Boolean := True); -- Flag1
11182
11014 procedure Set_Position 11183 procedure Set_Position
11015 (N : Node_Id; Val : Node_Id); -- Node2 11184 (N : Node_Id; Val : Node_Id); -- Node2
11016 11185
11017 procedure Set_Pragma_Argument_Associations 11186 procedure Set_Pragma_Argument_Associations
11018 (N : Node_Id; Val : List_Id); -- List2 11187 (N : Node_Id; Val : List_Id); -- List2
11248 procedure Set_Was_Expression_Function 11417 procedure Set_Was_Expression_Function
11249 (N : Node_Id; Val : Boolean := True); -- Flag18 11418 (N : Node_Id; Val : Boolean := True); -- Flag18
11250 11419
11251 procedure Set_Was_Originally_Stub 11420 procedure Set_Was_Originally_Stub
11252 (N : Node_Id; Val : Boolean := True); -- Flag13 11421 (N : Node_Id; Val : Boolean := True); -- Flag13
11253
11254 procedure Set_Withed_Body
11255 (N : Node_Id; Val : Node_Id); -- Node1
11256 11422
11257 ------------------------- 11423 -------------------------
11258 -- Iterator Procedures -- 11424 -- Iterator Procedures --
11259 ------------------------- 11425 -------------------------
11260 11426
11361 V6 : Node_Kind; 11527 V6 : Node_Kind;
11362 V7 : Node_Kind; 11528 V7 : Node_Kind;
11363 V8 : Node_Kind; 11529 V8 : Node_Kind;
11364 V9 : Node_Kind) return Boolean; 11530 V9 : Node_Kind) return Boolean;
11365 11531
11532 function Nkind_In
11533 (T : Node_Kind;
11534 V1 : Node_Kind;
11535 V2 : Node_Kind;
11536 V3 : Node_Kind;
11537 V4 : Node_Kind;
11538 V5 : Node_Kind;
11539 V6 : Node_Kind;
11540 V7 : Node_Kind;
11541 V8 : Node_Kind;
11542 V9 : Node_Kind;
11543 V10 : Node_Kind) return Boolean;
11544
11545 function Nkind_In
11546 (T : Node_Kind;
11547 V1 : Node_Kind;
11548 V2 : Node_Kind;
11549 V3 : Node_Kind;
11550 V4 : Node_Kind;
11551 V5 : Node_Kind;
11552 V6 : Node_Kind;
11553 V7 : Node_Kind;
11554 V8 : Node_Kind;
11555 V9 : Node_Kind;
11556 V10 : Node_Kind;
11557 V11 : Node_Kind) return Boolean;
11558
11366 pragma Inline (Nkind_In); 11559 pragma Inline (Nkind_In);
11367 -- Inline all above functions 11560 -- Inline all above functions
11368 11561
11369 ----------------------- 11562 -----------------------
11370 -- Utility Functions -- 11563 -- Utility Functions --
11753 3 => True, -- Expression (Node3) 11946 3 => True, -- Expression (Node3)
11754 4 => True, -- Discrete_Choices (List4) 11947 4 => True, -- Discrete_Choices (List4)
11755 5 => False), -- unused 11948 5 => False), -- unused
11756 11949
11757 N_Delta_Aggregate => 11950 N_Delta_Aggregate =>
11758 (1 => False, -- Expressions (List1) 11951 (1 => False, -- Expressions (List1-Sem)
11759 2 => True, -- Component_Associations (List2) 11952 2 => True, -- Component_Associations (List2)
11760 3 => True, -- Expression (Node3) 11953 3 => True, -- Expression (Node3)
11761 4 => False, -- Unused 11954 4 => False, -- Unused
11762 5 => False), -- Etype (Node5-Sem) 11955 5 => False), -- Etype (Node5-Sem)
11763 11956
11964 4 => True, -- Subtype_Mark (Node4) 12157 4 => True, -- Subtype_Mark (Node4)
11965 5 => False), -- Etype (Node5-Sem) 12158 5 => False), -- Etype (Node5-Sem)
11966 12159
11967 N_Quantified_Expression => 12160 N_Quantified_Expression =>
11968 (1 => True, -- Condition (Node1) 12161 (1 => True, -- Condition (Node1)
11969 2 => True, -- Iterator_Specification 12162 2 => True, -- Iterator_Specification (Node2)
11970 3 => False, -- unused 12163 3 => False, -- unused
11971 4 => True, -- Loop_Parameter_Specification (Node4) 12164 4 => True, -- Loop_Parameter_Specification (Node4)
11972 5 => False), -- Etype (Node5-Sem) 12165 5 => False), -- Etype (Node5-Sem)
11973 12166
11974 N_Allocator => 12167 N_Allocator =>
13021 2 => False, -- unused 13214 2 => False, -- unused
13022 3 => False, -- unused 13215 3 => False, -- unused
13023 4 => False, -- unused 13216 4 => False, -- unused
13024 5 => False), -- unused 13217 5 => False), -- unused
13025 13218
13026 -- Entries for Empty, Error and Unused. Even thought these have a Chars 13219 N_Variable_Reference_Marker =>
13220 (1 => False, -- Target (Node1-Sem)
13221 2 => False, -- unused
13222 3 => False, -- unused
13223 4 => False, -- unused
13224 5 => False), -- unused
13225
13226 -- Entries for Empty, Error, and Unused. Even though these have a Chars
13027 -- field for debugging purposes, they are not really syntactic fields, so 13227 -- field for debugging purposes, they are not really syntactic fields, so
13028 -- we mark all fields as unused. 13228 -- we mark all fields as unused.
13029 13229
13030 N_Empty => 13230 N_Empty =>
13031 (1 => False, -- unused 13231 (1 => False, -- unused
13226 pragma Inline (Header_Size_Added); 13426 pragma Inline (Header_Size_Added);
13227 pragma Inline (Hidden_By_Use_Clause); 13427 pragma Inline (Hidden_By_Use_Clause);
13228 pragma Inline (High_Bound); 13428 pragma Inline (High_Bound);
13229 pragma Inline (Identifier); 13429 pragma Inline (Identifier);
13230 pragma Inline (Implicit_With); 13430 pragma Inline (Implicit_With);
13231 pragma Inline (Implicit_With_From_Instantiation);
13232 pragma Inline (Interface_List); 13431 pragma Inline (Interface_List);
13233 pragma Inline (Interface_Present); 13432 pragma Inline (Interface_Present);
13234 pragma Inline (Includes_Infinities); 13433 pragma Inline (Includes_Infinities);
13235 pragma Inline (Import_Interface_Present); 13434 pragma Inline (Import_Interface_Present);
13236 pragma Inline (In_Present); 13435 pragma Inline (In_Present);
13254 pragma Inline (Is_Disabled); 13453 pragma Inline (Is_Disabled);
13255 pragma Inline (Is_Dispatching_Call); 13454 pragma Inline (Is_Dispatching_Call);
13256 pragma Inline (Is_Dynamic_Coextension); 13455 pragma Inline (Is_Dynamic_Coextension);
13257 pragma Inline (Is_Effective_Use_Clause); 13456 pragma Inline (Is_Effective_Use_Clause);
13258 pragma Inline (Is_Elaboration_Checks_OK_Node); 13457 pragma Inline (Is_Elaboration_Checks_OK_Node);
13458 pragma Inline (Is_Elaboration_Code);
13459 pragma Inline (Is_Elaboration_Warnings_OK_Node);
13259 pragma Inline (Is_Elsif); 13460 pragma Inline (Is_Elsif);
13260 pragma Inline (Is_Entry_Barrier_Function); 13461 pragma Inline (Is_Entry_Barrier_Function);
13261 pragma Inline (Is_Expanded_Build_In_Place_Call); 13462 pragma Inline (Is_Expanded_Build_In_Place_Call);
13262 pragma Inline (Is_Expanded_Contract); 13463 pragma Inline (Is_Expanded_Contract);
13263 pragma Inline (Is_Finalization_Wrapper); 13464 pragma Inline (Is_Finalization_Wrapper);
13269 pragma Inline (Is_Inherited_Pragma); 13470 pragma Inline (Is_Inherited_Pragma);
13270 pragma Inline (Is_Initialization_Block); 13471 pragma Inline (Is_Initialization_Block);
13271 pragma Inline (Is_Known_Guaranteed_ABE); 13472 pragma Inline (Is_Known_Guaranteed_ABE);
13272 pragma Inline (Is_Machine_Number); 13473 pragma Inline (Is_Machine_Number);
13273 pragma Inline (Is_Null_Loop); 13474 pragma Inline (Is_Null_Loop);
13475 pragma Inline (Is_OpenAcc_Environment);
13476 pragma Inline (Is_OpenAcc_Loop);
13274 pragma Inline (Is_Overloaded); 13477 pragma Inline (Is_Overloaded);
13275 pragma Inline (Is_Power_Of_2_For_Shift); 13478 pragma Inline (Is_Power_Of_2_For_Shift);
13276 pragma Inline (Is_Prefixed_Call); 13479 pragma Inline (Is_Prefixed_Call);
13277 pragma Inline (Is_Protected_Subprogram_Body); 13480 pragma Inline (Is_Protected_Subprogram_Body);
13278 pragma Inline (Is_Qualified_Universal_Literal); 13481 pragma Inline (Is_Qualified_Universal_Literal);
13279 pragma Inline (Is_Recorded_Scenario); 13482 pragma Inline (Is_Read);
13280 pragma Inline (Is_Source_Call); 13483 pragma Inline (Is_Source_Call);
13281 pragma Inline (Is_SPARK_Mode_On_Node); 13484 pragma Inline (Is_SPARK_Mode_On_Node);
13282 pragma Inline (Is_Static_Coextension); 13485 pragma Inline (Is_Static_Coextension);
13283 pragma Inline (Is_Static_Expression); 13486 pragma Inline (Is_Static_Expression);
13284 pragma Inline (Is_Subprogram_Descriptor); 13487 pragma Inline (Is_Subprogram_Descriptor);
13285 pragma Inline (Is_Task_Allocation_Block); 13488 pragma Inline (Is_Task_Allocation_Block);
13286 pragma Inline (Is_Task_Body_Procedure); 13489 pragma Inline (Is_Task_Body_Procedure);
13287 pragma Inline (Is_Task_Master); 13490 pragma Inline (Is_Task_Master);
13491 pragma Inline (Is_Write);
13288 pragma Inline (Iteration_Scheme); 13492 pragma Inline (Iteration_Scheme);
13289 pragma Inline (Itype); 13493 pragma Inline (Itype);
13290 pragma Inline (Kill_Range_Check); 13494 pragma Inline (Kill_Range_Check);
13291 pragma Inline (Last_Bit); 13495 pragma Inline (Last_Bit);
13292 pragma Inline (Last_Name); 13496 pragma Inline (Last_Name);
13315 pragma Inline (Next_Named_Actual); 13519 pragma Inline (Next_Named_Actual);
13316 pragma Inline (Next_Pragma); 13520 pragma Inline (Next_Pragma);
13317 pragma Inline (Next_Rep_Item); 13521 pragma Inline (Next_Rep_Item);
13318 pragma Inline (Next_Use_Clause); 13522 pragma Inline (Next_Use_Clause);
13319 pragma Inline (No_Ctrl_Actions); 13523 pragma Inline (No_Ctrl_Actions);
13524 pragma Inline (No_Elaboration_Check);
13320 pragma Inline (No_Entities_Ref_In_Spec); 13525 pragma Inline (No_Entities_Ref_In_Spec);
13321 pragma Inline (No_Initialization); 13526 pragma Inline (No_Initialization);
13322 pragma Inline (No_Minimize_Eliminate); 13527 pragma Inline (No_Minimize_Eliminate);
13323 pragma Inline (No_Side_Effect_Removal); 13528 pragma Inline (No_Side_Effect_Removal);
13324 pragma Inline (No_Truncation); 13529 pragma Inline (No_Truncation);
13336 pragma Inline (Out_Present); 13541 pragma Inline (Out_Present);
13337 pragma Inline (Parameter_Associations); 13542 pragma Inline (Parameter_Associations);
13338 pragma Inline (Parameter_Specifications); 13543 pragma Inline (Parameter_Specifications);
13339 pragma Inline (Parameter_Type); 13544 pragma Inline (Parameter_Type);
13340 pragma Inline (Parent_Spec); 13545 pragma Inline (Parent_Spec);
13546 pragma Inline (Parent_With);
13341 pragma Inline (Position); 13547 pragma Inline (Position);
13342 pragma Inline (Pragma_Argument_Associations); 13548 pragma Inline (Pragma_Argument_Associations);
13343 pragma Inline (Pragma_Identifier); 13549 pragma Inline (Pragma_Identifier);
13344 pragma Inline (Pragmas_After); 13550 pragma Inline (Pragmas_After);
13345 pragma Inline (Pragmas_Before); 13551 pragma Inline (Pragmas_Before);
13416 pragma Inline (Visible_Declarations); 13622 pragma Inline (Visible_Declarations);
13417 pragma Inline (Used_Operations); 13623 pragma Inline (Used_Operations);
13418 pragma Inline (Was_Attribute_Reference); 13624 pragma Inline (Was_Attribute_Reference);
13419 pragma Inline (Was_Expression_Function); 13625 pragma Inline (Was_Expression_Function);
13420 pragma Inline (Was_Originally_Stub); 13626 pragma Inline (Was_Originally_Stub);
13421 pragma Inline (Withed_Body);
13422 13627
13423 pragma Inline (Set_Abort_Present); 13628 pragma Inline (Set_Abort_Present);
13424 pragma Inline (Set_Abortable_Part); 13629 pragma Inline (Set_Abortable_Part);
13425 pragma Inline (Set_Abstract_Present); 13630 pragma Inline (Set_Abstract_Present);
13426 pragma Inline (Set_Accept_Handler_Records); 13631 pragma Inline (Set_Accept_Handler_Records);
13612 pragma Inline (Set_Is_Disabled); 13817 pragma Inline (Set_Is_Disabled);
13613 pragma Inline (Set_Is_Dispatching_Call); 13818 pragma Inline (Set_Is_Dispatching_Call);
13614 pragma Inline (Set_Is_Dynamic_Coextension); 13819 pragma Inline (Set_Is_Dynamic_Coextension);
13615 pragma Inline (Set_Is_Effective_Use_Clause); 13820 pragma Inline (Set_Is_Effective_Use_Clause);
13616 pragma Inline (Set_Is_Elaboration_Checks_OK_Node); 13821 pragma Inline (Set_Is_Elaboration_Checks_OK_Node);
13822 pragma Inline (Set_Is_Elaboration_Code);
13823 pragma Inline (Set_Is_Elaboration_Warnings_OK_Node);
13617 pragma Inline (Set_Is_Elsif); 13824 pragma Inline (Set_Is_Elsif);
13618 pragma Inline (Set_Is_Entry_Barrier_Function); 13825 pragma Inline (Set_Is_Entry_Barrier_Function);
13619 pragma Inline (Set_Is_Expanded_Build_In_Place_Call); 13826 pragma Inline (Set_Is_Expanded_Build_In_Place_Call);
13620 pragma Inline (Set_Is_Expanded_Contract); 13827 pragma Inline (Set_Is_Expanded_Contract);
13621 pragma Inline (Set_Is_Finalization_Wrapper); 13828 pragma Inline (Set_Is_Finalization_Wrapper);
13627 pragma Inline (Set_Is_Inherited_Pragma); 13834 pragma Inline (Set_Is_Inherited_Pragma);
13628 pragma Inline (Set_Is_Initialization_Block); 13835 pragma Inline (Set_Is_Initialization_Block);
13629 pragma Inline (Set_Is_Known_Guaranteed_ABE); 13836 pragma Inline (Set_Is_Known_Guaranteed_ABE);
13630 pragma Inline (Set_Is_Machine_Number); 13837 pragma Inline (Set_Is_Machine_Number);
13631 pragma Inline (Set_Is_Null_Loop); 13838 pragma Inline (Set_Is_Null_Loop);
13839 pragma Inline (Set_Is_OpenAcc_Environment);
13840 pragma Inline (Set_Is_OpenAcc_Loop);
13632 pragma Inline (Set_Is_Overloaded); 13841 pragma Inline (Set_Is_Overloaded);
13633 pragma Inline (Set_Is_Power_Of_2_For_Shift); 13842 pragma Inline (Set_Is_Power_Of_2_For_Shift);
13634 pragma Inline (Set_Is_Prefixed_Call); 13843 pragma Inline (Set_Is_Prefixed_Call);
13635 pragma Inline (Set_Is_Protected_Subprogram_Body); 13844 pragma Inline (Set_Is_Protected_Subprogram_Body);
13636 pragma Inline (Set_Is_Qualified_Universal_Literal); 13845 pragma Inline (Set_Is_Qualified_Universal_Literal);
13637 pragma Inline (Set_Is_Recorded_Scenario); 13846 pragma Inline (Set_Is_Read);
13638 pragma Inline (Set_Is_Source_Call); 13847 pragma Inline (Set_Is_Source_Call);
13639 pragma Inline (Set_Is_SPARK_Mode_On_Node); 13848 pragma Inline (Set_Is_SPARK_Mode_On_Node);
13640 pragma Inline (Set_Is_Static_Coextension); 13849 pragma Inline (Set_Is_Static_Coextension);
13641 pragma Inline (Set_Is_Static_Expression); 13850 pragma Inline (Set_Is_Static_Expression);
13642 pragma Inline (Set_Is_Subprogram_Descriptor); 13851 pragma Inline (Set_Is_Subprogram_Descriptor);
13643 pragma Inline (Set_Is_Task_Allocation_Block); 13852 pragma Inline (Set_Is_Task_Allocation_Block);
13644 pragma Inline (Set_Is_Task_Body_Procedure); 13853 pragma Inline (Set_Is_Task_Body_Procedure);
13645 pragma Inline (Set_Is_Task_Master); 13854 pragma Inline (Set_Is_Task_Master);
13855 pragma Inline (Set_Is_Write);
13646 pragma Inline (Set_Iteration_Scheme); 13856 pragma Inline (Set_Iteration_Scheme);
13647 pragma Inline (Set_Iterator_Specification); 13857 pragma Inline (Set_Iterator_Specification);
13648 pragma Inline (Set_Itype); 13858 pragma Inline (Set_Itype);
13649 pragma Inline (Set_Kill_Range_Check); 13859 pragma Inline (Set_Kill_Range_Check);
13650 pragma Inline (Set_Label_Construct); 13860 pragma Inline (Set_Label_Construct);
13674 pragma Inline (Set_Next_Named_Actual); 13884 pragma Inline (Set_Next_Named_Actual);
13675 pragma Inline (Set_Next_Pragma); 13885 pragma Inline (Set_Next_Pragma);
13676 pragma Inline (Set_Next_Rep_Item); 13886 pragma Inline (Set_Next_Rep_Item);
13677 pragma Inline (Set_Next_Use_Clause); 13887 pragma Inline (Set_Next_Use_Clause);
13678 pragma Inline (Set_No_Ctrl_Actions); 13888 pragma Inline (Set_No_Ctrl_Actions);
13889 pragma Inline (Set_No_Elaboration_Check);
13679 pragma Inline (Set_No_Entities_Ref_In_Spec); 13890 pragma Inline (Set_No_Entities_Ref_In_Spec);
13680 pragma Inline (Set_No_Initialization); 13891 pragma Inline (Set_No_Initialization);
13681 pragma Inline (Set_No_Minimize_Eliminate); 13892 pragma Inline (Set_No_Minimize_Eliminate);
13682 pragma Inline (Set_No_Side_Effect_Removal); 13893 pragma Inline (Set_No_Side_Effect_Removal);
13683 pragma Inline (Set_No_Truncation); 13894 pragma Inline (Set_No_Truncation);
13695 pragma Inline (Set_Out_Present); 13906 pragma Inline (Set_Out_Present);
13696 pragma Inline (Set_Parameter_Associations); 13907 pragma Inline (Set_Parameter_Associations);
13697 pragma Inline (Set_Parameter_Specifications); 13908 pragma Inline (Set_Parameter_Specifications);
13698 pragma Inline (Set_Parameter_Type); 13909 pragma Inline (Set_Parameter_Type);
13699 pragma Inline (Set_Parent_Spec); 13910 pragma Inline (Set_Parent_Spec);
13911 pragma Inline (Set_Parent_With);
13700 pragma Inline (Set_Position); 13912 pragma Inline (Set_Position);
13701 pragma Inline (Set_Pragma_Argument_Associations); 13913 pragma Inline (Set_Pragma_Argument_Associations);
13702 pragma Inline (Set_Pragma_Identifier); 13914 pragma Inline (Set_Pragma_Identifier);
13703 pragma Inline (Set_Pragmas_After); 13915 pragma Inline (Set_Pragmas_After);
13704 pragma Inline (Set_Pragmas_Before); 13916 pragma Inline (Set_Pragmas_Before);
13773 pragma Inline (Set_Variants); 13985 pragma Inline (Set_Variants);
13774 pragma Inline (Set_Visible_Declarations); 13986 pragma Inline (Set_Visible_Declarations);
13775 pragma Inline (Set_Was_Attribute_Reference); 13987 pragma Inline (Set_Was_Attribute_Reference);
13776 pragma Inline (Set_Was_Expression_Function); 13988 pragma Inline (Set_Was_Expression_Function);
13777 pragma Inline (Set_Was_Originally_Stub); 13989 pragma Inline (Set_Was_Originally_Stub);
13778 pragma Inline (Set_Withed_Body);
13779 13990
13780 end Sinfo; 13991 end Sinfo;