Mercurial > hg > CbC > CbC_gcc
comparison gcc/ada/lib-writ.ads @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 84e7813d76e9 |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
4 -- -- | 4 -- -- |
5 -- L I B . W R I T -- | 5 -- L I B . W R I T -- |
6 -- -- | 6 -- -- |
7 -- S p e c -- | 7 -- S p e c -- |
8 -- -- | 8 -- -- |
9 -- Copyright (C) 1992-2018, Free Software Foundation, Inc. -- | 9 -- Copyright (C) 1992-2019, 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- -- |
54 -- A number of tools use ali.adb to parse ali files. This means that | 54 -- A number of tools use ali.adb to parse ali files. This means that |
55 -- changes to this format can cause old versions of these tools to be | 55 -- changes to this format can cause old versions of these tools to be |
56 -- incompatible with new versions of the compiler. Any changes to ali file | 56 -- incompatible with new versions of the compiler. Any changes to ali file |
57 -- formats must be carefully evaluated to understand any such possible | 57 -- formats must be carefully evaluated to understand any such possible |
58 -- conflicts, and in particular, it is very undesirable to create conflicts | 58 -- conflicts, and in particular, it is very undesirable to create conflicts |
59 -- between older versions of GPS and newer versions of the compiler. | 59 -- between older versions of GNAT Studio and newer versions of the |
60 -- compiler. | |
60 | 61 |
61 -- If the following guidelines are respected, downward compatibility | 62 -- If the following guidelines are respected, downward compatibility |
62 -- problems (old tools reading new ali files) should be minimized: | 63 -- problems (old tools reading new ali files) should be minimized: |
63 | 64 |
64 -- The basic key character format must be kept | 65 -- The basic key character format must be kept |
627 -- nonlimited with clause by the current unit. One Y line is present | 628 -- nonlimited with clause by the current unit. One Y line is present |
628 -- for each unit that is mentioned in an explicit limited with clause | 629 -- for each unit that is mentioned in an explicit limited with clause |
629 -- by the current unit. One Z line is present for each unit that is | 630 -- by the current unit. One Z line is present for each unit that is |
630 -- only implicitly withed by the current unit. The first parameter is | 631 -- only implicitly withed by the current unit. The first parameter is |
631 -- the unit name in internal format. The second parameter is the file | 632 -- the unit name in internal format. The second parameter is the file |
632 -- name of the body unit on which the current compilation unit depends, | 633 -- name of the file that must be compiled to compile this unit. It is |
633 -- except when in GNATprove mode or when the unit is a remote call | 634 -- usually the file for the body, except for packages which have no |
634 -- interface. In these cases, when packages that require a body have | 635 -- body. For units that need a body, if the source file for the body |
635 -- no associated source file, the file name of the spec is used instead | 636 -- cannot be found, the file name of the spec is used instead. The |
636 -- to allow partial analysis of incomplete sources. The third parameter | 637 -- third parameter is the file name of the library information file |
637 -- is the file name of the library information file that contains the | 638 -- that contains the results of compiling this unit. The optional |
638 -- results of compiling this unit. The optional modifiers are used as | 639 -- modifiers are used as follows: |
639 -- follows: | |
640 | 640 |
641 -- E pragma Elaborate applies to this unit | 641 -- E pragma Elaborate applies to this unit |
642 | 642 |
643 -- EA pragma Elaborate_All applies to this unit | 643 -- EA pragma Elaborate_All applies to this unit |
644 | 644 |
845 -- dependency set, both the time stamp and checksum are set to all zero | 845 -- dependency set, both the time stamp and checksum are set to all zero |
846 -- characters. These dummy entries are ignored by the binder in | 846 -- characters. These dummy entries are ignored by the binder in |
847 -- dependency checking, but must be present for proper interpretation | 847 -- dependency checking, but must be present for proper interpretation |
848 -- of the cross-reference data. | 848 -- of the cross-reference data. |
849 | 849 |
850 -- ------------------------- | |
851 -- -- G Invocation Graph -- | |
852 -- ------------------------- | |
853 | |
854 -- An invocation graph line has the following format: | |
855 -- | |
856 -- G line-kind line-attributes | |
857 -- | |
858 -- Attribute line-kind is a Character which denotes the nature of the | |
859 -- line. Table ALI.Invocation_Graph_Line_Codes lists all legal values. | |
860 -- | |
861 -- Attribute line-attributes depends on the value of line-kind, and is | |
862 -- contents are described further below. | |
863 -- | |
864 -- An invocation signature uniquely identifies an invocation construct in | |
865 -- the ALI file namespace, and has the following format: | |
866 -- | |
867 -- [ name scope line column (locations | "none") ] | |
868 -- | |
869 -- Attribute name is a String which denotes the name of the construct | |
870 -- | |
871 -- Attribute scope is a String which denotes the qualified name of the | |
872 -- scope where the construct is declared. | |
873 -- | |
874 -- Attribute line is a Positive which denotes the line number where the | |
875 -- initial declaration of the construct appears. | |
876 -- | |
877 -- Attribute column is a Positive which denotes the column number where | |
878 -- the initial declaration of the construct appears. | |
879 -- | |
880 -- Attribute locations is a String which denotes the line and column | |
881 -- locations of all instances where the initial declaration of the | |
882 -- construct appears. | |
883 -- | |
884 -- When the line-kind denotes invocation graph attributes, line-attributes | |
885 -- are set as follows: | |
886 -- | |
887 -- encoding-kind | |
888 -- | |
889 -- Attribute encoding-kind is a Character which specifies the encoding | |
890 -- kind used when collecting invocation constructs and relations. Table | |
891 -- ALI.Invocation_Graph_Encoding_Codes lists all legal values. | |
892 -- | |
893 -- When the line-kind denotes an invocation construct, line-attributes are | |
894 -- set as follows: | |
895 -- | |
896 -- construct-kind construct-spec-placement construct-body-placement | |
897 -- construct-signature | |
898 -- | |
899 -- Attribute construct-kind is a Character which denotes the nature of | |
900 -- the construct. Table ALI.Invocation_Construct_Codes lists all legal | |
901 -- values. | |
902 -- | |
903 -- Attribute construct-spec-placement is a Character which denotes the | |
904 -- placement of the construct's spec within the unit. All legal values | |
905 -- are listed in table ALI.Spec_And_Body_Placement_Codes. | |
906 -- | |
907 -- Attribute construct-body-placement is a Character which denotes the | |
908 -- placement of the construct's body within the unit. All legal values | |
909 -- are listed in table ALI.Spec_And_Body_Placement_Codes. | |
910 -- | |
911 -- Attribute construct-signature is the invocation signature of the | |
912 -- construct. | |
913 -- | |
914 -- When the line-kind denotes an invocation relation, line-attributes are | |
915 -- set as follows: | |
916 -- | |
917 -- relation-kind (extra-name | "none") invoker-signature | |
918 -- target-signature | |
919 -- | |
920 -- Attribute relation-kind is a Character which denotes the nature of | |
921 -- the relation. All legal values are listed in ALI.Invocation_Codes. | |
922 -- | |
923 -- Attribute extra-name is a String which denotes the name of an extra | |
924 -- entity used for error diagnostics. The value of extra-name depends | |
925 -- on the relation-kind as follows: | |
926 -- | |
927 -- Accept_Alternative - related entry | |
928 -- Access_Taken - related subprogram | |
929 -- Call - not present | |
930 -- Controlled_Adjustment - related controlled type | |
931 -- Controlled_Finalization - related controlled type | |
932 -- Controlled_Initialization - related controlled type | |
933 -- Default_Initial_Condition_Verification - related private type | |
934 -- Initial_Condition_Verification - not present | |
935 -- Instantiation - not present | |
936 -- Internal_Controlled_Adjustment - related controlled type | |
937 -- Internal_Controlled_Finalization - related controlled type | |
938 -- Internal_Controlled_Initialization - related controlled type | |
939 -- Invariant_Verification - related private type | |
940 -- Postcondition_Verification - related routine | |
941 -- Protected_Entry_Call - not present | |
942 -- Protected_Subprogram_Call - not present | |
943 -- Task_Activation - not present | |
944 -- Task_Entry_Call - not present | |
945 -- Type_Initialization - related type | |
946 -- | |
947 -- Attribute invoker-signature is the invocation signature of the | |
948 -- invoker. | |
949 -- | |
950 -- Attribute target-signature is the invocation signature of the target | |
951 | |
850 -------------------------- | 952 -------------------------- |
851 -- Cross-Reference Data -- | 953 -- Cross-Reference Data -- |
852 -------------------------- | 954 -------------------------- |
853 | 955 |
854 -- The cross-reference data follows the dependency lines. See the spec of | 956 -- The cross-reference data follows the dependency lines. See the spec of |