diff 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
line wrap: on
line diff
--- a/gcc/ada/lib-writ.ads	Thu Oct 25 07:37:49 2018 +0900
+++ b/gcc/ada/lib-writ.ads	Thu Feb 13 11:34:05 2020 +0900
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2018, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2019, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -56,7 +56,8 @@
    --  incompatible with new versions of the compiler. Any changes to ali file
    --  formats must be carefully evaluated to understand any such possible
    --  conflicts, and in particular, it is very undesirable to create conflicts
-   --  between older versions of GPS and newer versions of the compiler.
+   --  between older versions of GNAT Studio and newer versions of the
+   --  compiler.
 
    --  If the following guidelines are respected, downward compatibility
    --  problems (old tools reading new ali files) should be minimized:
@@ -629,14 +630,13 @@
    --      by the current unit. One Z line is present for each unit that is
    --      only implicitly withed by the current unit. The first parameter is
    --      the unit name in internal format. The second parameter is the file
-   --      name of the body unit on which the current compilation unit depends,
-   --      except when in GNATprove mode or when the unit is a remote call
-   --      interface. In these cases, when packages that require a body have
-   --      no associated source file, the file name of the spec is used instead
-   --      to allow partial analysis of incomplete sources. The third parameter
-   --      is the file name of the library information file that contains the
-   --      results of compiling this unit. The optional modifiers are used as
-   --      follows:
+   --      name of the file that must be compiled to compile this unit. It is
+   --      usually the file for the body, except for packages which have no
+   --      body. For units that need a body, if the source file for the body
+   --      cannot be found, the file name of the spec is used instead. The
+   --      third parameter is the file name of the library information file
+   --      that contains the results of compiling this unit. The optional
+   --      modifiers are used as follows:
 
    --        E   pragma Elaborate applies to this unit
 
@@ -847,6 +847,108 @@
    --      dependency checking, but must be present for proper interpretation
    --      of the cross-reference data.
 
+   --  -------------------------
+   --  -- G  Invocation Graph --
+   --  -------------------------
+
+   --  An invocation graph line has the following format:
+   --
+   --    G line-kind line-attributes
+   --
+   --      Attribute line-kind is a Character which denotes the nature of the
+   --      line. Table ALI.Invocation_Graph_Line_Codes lists all legal values.
+   --
+   --      Attribute line-attributes depends on the value of line-kind, and is
+   --      contents are described further below.
+   --
+   --  An invocation signature uniquely identifies an invocation construct in
+   --  the ALI file namespace, and has the following format:
+   --
+   --      [ name scope line column (locations | "none") ]
+   --
+   --      Attribute name is a String which denotes the name of the construct
+   --
+   --      Attribute scope is a String which denotes the qualified name of the
+   --      scope where the construct is declared.
+   --
+   --      Attribute line is a Positive which denotes the line number where the
+   --      initial declaration of the construct appears.
+   --
+   --      Attribute column is a Positive which denotes the column number where
+   --      the initial declaration of the construct appears.
+   --
+   --      Attribute locations is a String which denotes the line and column
+   --      locations of all instances where the initial declaration of the
+   --      construct appears.
+   --
+   --  When the line-kind denotes invocation graph attributes, line-attributes
+   --  are set as follows:
+   --
+   --      encoding-kind
+   --
+   --      Attribute encoding-kind is a Character which specifies the encoding
+   --      kind used when collecting invocation constructs and relations. Table
+   --      ALI.Invocation_Graph_Encoding_Codes lists all legal values.
+   --
+   --  When the line-kind denotes an invocation construct, line-attributes are
+   --  set as follows:
+   --
+   --      construct-kind construct-spec-placement construct-body-placement
+   --        construct-signature
+   --
+   --      Attribute construct-kind is a Character which denotes the nature of
+   --      the construct. Table ALI.Invocation_Construct_Codes lists all legal
+   --      values.
+   --
+   --      Attribute construct-spec-placement is a Character which denotes the
+   --      placement of the construct's spec within the unit. All legal values
+   --      are listed in table ALI.Spec_And_Body_Placement_Codes.
+   --
+   --      Attribute construct-body-placement is a Character which denotes the
+   --      placement of the construct's body within the unit. All legal values
+   --      are listed in table ALI.Spec_And_Body_Placement_Codes.
+   --
+   --      Attribute construct-signature is the invocation signature of the
+   --      construct.
+   --
+   --  When the line-kind denotes an invocation relation, line-attributes are
+   --  set as follows:
+   --
+   --      relation-kind (extra-name | "none") invoker-signature
+   --         target-signature
+   --
+   --      Attribute relation-kind is a Character which denotes the nature of
+   --      the relation. All legal values are listed in ALI.Invocation_Codes.
+   --
+   --      Attribute extra-name is a String which denotes the name of an extra
+   --      entity used for error diagnostics. The value of extra-name depends
+   --      on the relation-kind as follows:
+   --
+   --        Accept_Alternative                     - related entry
+   --        Access_Taken                           - related subprogram
+   --        Call                                   - not present
+   --        Controlled_Adjustment                  - related controlled type
+   --        Controlled_Finalization                - related controlled type
+   --        Controlled_Initialization              - related controlled type
+   --        Default_Initial_Condition_Verification - related private type
+   --        Initial_Condition_Verification         - not present
+   --        Instantiation                          - not present
+   --        Internal_Controlled_Adjustment         - related controlled type
+   --        Internal_Controlled_Finalization       - related controlled type
+   --        Internal_Controlled_Initialization     - related controlled type
+   --        Invariant_Verification                 - related private type
+   --        Postcondition_Verification             - related routine
+   --        Protected_Entry_Call                   - not present
+   --        Protected_Subprogram_Call              - not present
+   --        Task_Activation                        - not present
+   --        Task_Entry_Call                        - not present
+   --        Type_Initialization                    - related type
+   --
+   --      Attribute invoker-signature is the invocation signature of the
+   --      invoker.
+   --
+   --      Attribute target-signature is the invocation signature of the target
+
    --------------------------
    -- Cross-Reference Data --
    --------------------------