Mercurial > hg > CbC > CbC_gcc
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; |