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