exp_cg.adb, [...]: Add initial support for dispatch table/callgraph info generation.
2010-06-18 Javier Miranda <miranda@adacore.com> * exp_cg.adb, exp_cg.ads, exp_disp.adb, gnat1drv.adb: Add initial support for dispatch table/callgraph info generation. * gcc-interface/Make-lang.in: Update dependencies. From-SVN: r160997
This commit is contained in:
parent
8a45b58c5d
commit
9c41193c1d
@ -1,3 +1,9 @@
|
||||
2010-06-18 Javier Miranda <miranda@adacore.com>
|
||||
|
||||
* exp_cg.adb, exp_cg.ads, exp_disp.adb, gnat1drv.adb: Add initial
|
||||
support for dispatch table/callgraph info generation.
|
||||
* gcc-interface/Make-lang.in: Update dependencies.
|
||||
|
||||
2010-06-18 Robert Dewar <dewar@adacore.com>
|
||||
|
||||
* exp_ch6.adb: Minor reformatting.
|
||||
|
582
gcc/ada/exp_cg.adb
Normal file
582
gcc/ada/exp_cg.adb
Normal file
@ -0,0 +1,582 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- --
|
||||
-- GNAT COMPILER COMPONENTS --
|
||||
-- --
|
||||
-- E X P _ C G --
|
||||
-- --
|
||||
-- B o d y --
|
||||
-- --
|
||||
-- Copyright (C) 2010, 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- --
|
||||
-- ware Foundation; either version 3, or (at your option) any later ver- --
|
||||
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
|
||||
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
|
||||
-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
|
||||
-- for more details. You should have received a copy of the GNU General --
|
||||
-- Public License distributed with GNAT; see file COPYING3. If not, go to --
|
||||
-- http://www.gnu.org/licenses for a complete copy of the license. --
|
||||
-- --
|
||||
-- GNAT was originally developed by the GNAT team at New York University. --
|
||||
-- Extensive contributions were provided by Ada Core Technologies Inc. --
|
||||
-- --
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
with Atree; use Atree;
|
||||
with Debug; use Debug;
|
||||
with Einfo; use Einfo;
|
||||
with Elists; use Elists;
|
||||
with Exp_Disp; use Exp_Disp;
|
||||
with Exp_Tss; use Exp_Tss;
|
||||
-- with Interfaces.C;
|
||||
-- with Interfaces.C_Streams;
|
||||
-- Why are these commented out ???
|
||||
with Lib; use Lib;
|
||||
with Namet; use Namet;
|
||||
with Opt; use Opt;
|
||||
with Output; use Output;
|
||||
with Sem_Disp; use Sem_Disp;
|
||||
with Sem_Type; use Sem_Type;
|
||||
with Sem_Util; use Sem_Util;
|
||||
with Sinfo; use Sinfo;
|
||||
with Sinput; use Sinput;
|
||||
with Snames; use Snames;
|
||||
with Table;
|
||||
with Uintp; use Uintp;
|
||||
|
||||
package body Exp_CG is
|
||||
|
||||
-- package ICS renames Interfaces.C_Streams;
|
||||
|
||||
package Call_Graph_Nodes is new Table.Table (
|
||||
Table_Component_Type => Node_Id,
|
||||
Table_Index_Type => Natural,
|
||||
Table_Low_Bound => 1,
|
||||
Table_Initial => 50,
|
||||
Table_Increment => 100,
|
||||
Table_Name => "Call_Graph_Nodes");
|
||||
-- Document this table! ???
|
||||
|
||||
function Is_Predefined_Dispatching_Operation (E : Entity_Id) return Boolean;
|
||||
-- Determines if E is a predefined primitive operation.
|
||||
-- Note: This routine should replace the routine with the same name that is
|
||||
-- currently available in exp_disp because it extends its functionality to
|
||||
-- handle fully qualified names ???
|
||||
|
||||
function Slot_Number (Prim : Entity_Id) return Uint;
|
||||
-- Returns the slot number associated with Prim. For predefined primitives
|
||||
-- the slot is returned as a negative number.
|
||||
|
||||
procedure Write_Output (Str : String);
|
||||
-- Used to print a line in the output file (this is used as the
|
||||
-- argument for a call to Set_Special_Output in package Output).
|
||||
|
||||
procedure Write_Call_Info (Call : Node_Id);
|
||||
-- Subsidiary of Generate_CG_Output that generates the output associated
|
||||
-- with a dispatching call.
|
||||
|
||||
procedure Write_Type_Info (Typ : Entity_Id);
|
||||
-- Subsidiary of Generate_CG_Output that generates the output associated
|
||||
-- with a tagged type declaration.
|
||||
|
||||
------------------------
|
||||
-- Generate_CG_Output --
|
||||
------------------------
|
||||
|
||||
procedure Generate_CG_Output is
|
||||
N : Node_Id;
|
||||
|
||||
begin
|
||||
if not Debug_Flag_Dot_Z then
|
||||
return;
|
||||
end if;
|
||||
|
||||
-- Setup write routine, create the output file and generate the output
|
||||
|
||||
Set_Special_Output (Write_Output'Access);
|
||||
|
||||
for J in Call_Graph_Nodes.First .. Call_Graph_Nodes.Last loop
|
||||
N := Call_Graph_Nodes.Table (J);
|
||||
|
||||
if Nkind_In (N, N_Procedure_Call_Statement, N_Function_Call) then
|
||||
Write_Call_Info (N);
|
||||
|
||||
else pragma Assert (Nkind (N) = N_Defining_Identifier);
|
||||
pragma Assert (Is_Tagged_Type (N));
|
||||
|
||||
Write_Type_Info (N);
|
||||
end if;
|
||||
end loop;
|
||||
end Generate_CG_Output;
|
||||
|
||||
----------------
|
||||
-- Initialize --
|
||||
----------------
|
||||
|
||||
procedure Initialize is
|
||||
begin
|
||||
Call_Graph_Nodes.Init;
|
||||
end Initialize;
|
||||
|
||||
-----------------------------------------
|
||||
-- Is_Predefined_Dispatching_Operation --
|
||||
-----------------------------------------
|
||||
|
||||
function Is_Predefined_Dispatching_Operation
|
||||
(E : Entity_Id) return Boolean
|
||||
is
|
||||
function Homonym_Suffix_Length (E : Entity_Id) return Natural;
|
||||
-- Returns the length of the homonym suffix corresponding to E.
|
||||
-- Note: This routine relies on the functionality provided by routines
|
||||
-- of Exp_Dbug. Further work needed here to decide if it should be
|
||||
-- located in that package???
|
||||
|
||||
---------------------------
|
||||
-- Homonym_Suffix_Length --
|
||||
---------------------------
|
||||
|
||||
function Homonym_Suffix_Length (E : Entity_Id) return Natural is
|
||||
Prefix_Length : constant := 2; -- Length of prefix "__"
|
||||
|
||||
H : Entity_Id;
|
||||
Nr : Nat := 1;
|
||||
|
||||
begin
|
||||
if not Has_Homonym (E) then
|
||||
return 0;
|
||||
|
||||
else
|
||||
H := Homonym (E);
|
||||
while Present (H) loop
|
||||
if Scope (H) = Scope (E) then
|
||||
Nr := Nr + 1;
|
||||
end if;
|
||||
|
||||
H := Homonym (H);
|
||||
end loop;
|
||||
|
||||
if Nr = 1 then
|
||||
return 0;
|
||||
|
||||
-- Prefix "__" followed by number
|
||||
|
||||
elsif Nr < 10 then
|
||||
return Prefix_Length + 1;
|
||||
|
||||
elsif Nr < 100 then
|
||||
return Prefix_Length + 2;
|
||||
|
||||
elsif Nr < 1000 then
|
||||
return Prefix_Length + 3;
|
||||
|
||||
else
|
||||
pragma Assert (False);
|
||||
raise Program_Error;
|
||||
end if;
|
||||
end if;
|
||||
end Homonym_Suffix_Length;
|
||||
|
||||
-- Local variables
|
||||
|
||||
Full_Name : constant String := Get_Name_String (Chars (E));
|
||||
TSS_Name : TSS_Name_Type;
|
||||
|
||||
-- Start of processing for Is_Predefined_Dispatching_Operation
|
||||
|
||||
begin
|
||||
if not Is_Dispatching_Operation (E) then
|
||||
return False;
|
||||
end if;
|
||||
|
||||
-- Most predefined primitives have internally generated names. Equality
|
||||
-- must be treated differently; the predefined operation is recognized
|
||||
-- as a homogeneous binary operator that returns Boolean.
|
||||
|
||||
if Full_Name'Length > TSS_Name_Type'Length then
|
||||
TSS_Name :=
|
||||
TSS_Name_Type (Full_Name (Full_Name'Last - TSS_Name'Length + 1
|
||||
.. Full_Name'Last));
|
||||
|
||||
if TSS_Name = TSS_Stream_Read
|
||||
or else TSS_Name = TSS_Stream_Write
|
||||
or else TSS_Name = TSS_Stream_Input
|
||||
or else TSS_Name = TSS_Stream_Output
|
||||
or else TSS_Name = TSS_Deep_Adjust
|
||||
or else TSS_Name = TSS_Deep_Finalize
|
||||
then
|
||||
return True;
|
||||
|
||||
elsif not Has_Fully_Qualified_Name (E) then
|
||||
if Chars (E) = Name_uSize
|
||||
or else Chars (E) = Name_uAlignment
|
||||
or else
|
||||
(Chars (E) = Name_Op_Eq
|
||||
and then Etype (First_Entity (E)) = Etype (Last_Entity (E)))
|
||||
or else Chars (E) = Name_uAssign
|
||||
or else Is_Predefined_Interface_Primitive (E)
|
||||
then
|
||||
return True;
|
||||
end if;
|
||||
|
||||
-- Handle fully qualified names
|
||||
|
||||
else
|
||||
declare
|
||||
type Names_Table is array (Positive range <>) of Name_Id;
|
||||
|
||||
Predef_Names_95 : constant Names_Table :=
|
||||
(Name_uSize,
|
||||
Name_uAlignment,
|
||||
Name_Op_Eq,
|
||||
Name_uAssign);
|
||||
|
||||
Predef_Names_05 : constant Names_Table :=
|
||||
(Name_uDisp_Asynchronous_Select,
|
||||
Name_uDisp_Conditional_Select,
|
||||
Name_uDisp_Get_Prim_Op_Kind,
|
||||
Name_uDisp_Get_Task_Id,
|
||||
Name_uDisp_Requeue,
|
||||
Name_uDisp_Timed_Select);
|
||||
|
||||
Suffix_Length : constant Natural := Homonym_Suffix_Length (E);
|
||||
|
||||
begin
|
||||
for J in Predef_Names_95'Range loop
|
||||
Get_Name_String (Predef_Names_95 (J));
|
||||
|
||||
if Full_Name'Last - Suffix_Length > Name_Len
|
||||
and then
|
||||
Full_Name
|
||||
(Full_Name'Last - Name_Len - Suffix_Length + 1
|
||||
.. Full_Name'Last - Suffix_Length) =
|
||||
Name_Buffer (1 .. Name_Len)
|
||||
then
|
||||
-- For the equality operator the type of the two operands
|
||||
-- must also match.
|
||||
|
||||
return Predef_Names_95 (J) /= Name_Op_Eq
|
||||
or else
|
||||
Etype (First_Entity (E)) = Etype (Last_Entity (E));
|
||||
end if;
|
||||
end loop;
|
||||
|
||||
if Ada_Version >= Ada_05 then
|
||||
for J in Predef_Names_05'Range loop
|
||||
Get_Name_String (Predef_Names_05 (J));
|
||||
|
||||
if Full_Name'Last - Suffix_Length > Name_Len
|
||||
and then
|
||||
Full_Name
|
||||
(Full_Name'Last - Name_Len - Suffix_Length + 1
|
||||
.. Full_Name'Last - Suffix_Length) =
|
||||
Name_Buffer (1 .. Name_Len)
|
||||
then
|
||||
return True;
|
||||
end if;
|
||||
end loop;
|
||||
end if;
|
||||
end;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
return False;
|
||||
end Is_Predefined_Dispatching_Operation;
|
||||
|
||||
----------------------
|
||||
-- Register_CG_Node --
|
||||
----------------------
|
||||
|
||||
procedure Register_CG_Node (N : Node_Id) is
|
||||
begin
|
||||
if Nkind_In (N, N_Procedure_Call_Statement, N_Function_Call) then
|
||||
if Current_Scope = Main_Unit_Entity
|
||||
or else Entity_Is_In_Main_Unit (Current_Scope)
|
||||
then
|
||||
-- Register a copy of the dispatching call node. Needed since the
|
||||
-- node containing a dispatching call is rewriten by the expander.
|
||||
|
||||
declare
|
||||
Copy : constant Node_Id := New_Copy (N);
|
||||
|
||||
begin
|
||||
-- Copy the link to the parent to allow climbing up the tree
|
||||
-- when the call-graph information is generated
|
||||
|
||||
Set_Parent (Copy, Parent (N));
|
||||
Call_Graph_Nodes.Append (Copy);
|
||||
end;
|
||||
end if;
|
||||
|
||||
else pragma Assert (Nkind (N) = N_Defining_Identifier);
|
||||
if Entity_Is_In_Main_Unit (N) then
|
||||
Call_Graph_Nodes.Append (N);
|
||||
end if;
|
||||
end if;
|
||||
end Register_CG_Node;
|
||||
|
||||
-----------------
|
||||
-- Slot_Number --
|
||||
-----------------
|
||||
|
||||
function Slot_Number (Prim : Entity_Id) return Uint is
|
||||
begin
|
||||
if Is_Predefined_Dispatching_Operation (Prim) then
|
||||
return -DT_Position (Prim);
|
||||
else
|
||||
return DT_Position (Prim);
|
||||
end if;
|
||||
end Slot_Number;
|
||||
|
||||
------------------
|
||||
-- Write_Output --
|
||||
------------------
|
||||
|
||||
-- This functionality has been temporarily disabled because bootstrapping the
|
||||
-- compiler with old versions requires no dependency on package Interfaces.C
|
||||
|
||||
-- Import the file stream associated with the "ci" output file. Done to
|
||||
-- generate the output in the file created and left opened by routine
|
||||
-- toplev.c before calling gnat1drv.
|
||||
|
||||
-- Callgraph_Info_File : ICS.FILEs;
|
||||
-- pragma Import (C, Callgraph_Info_File);
|
||||
|
||||
-- procedure Write_Output (Str : String) is
|
||||
-- Line : constant Interfaces.C.char_array := Interfaces.C.To_C (Str);
|
||||
-- Errno : ICS.int;
|
||||
-- begin
|
||||
-- Errno := ICS.fputs (Line'Address, Callgraph_Info_File);
|
||||
-- pragma Assert (Errno = 0);
|
||||
-- end Write_Output;
|
||||
|
||||
procedure Write_Output (Str : String) is
|
||||
begin
|
||||
null;
|
||||
end Write_Output;
|
||||
|
||||
---------------------
|
||||
-- Write_Call_Info --
|
||||
---------------------
|
||||
|
||||
procedure Write_Call_Info (Call : Node_Id) is
|
||||
Ctrl_Arg : constant Node_Id := Controlling_Argument (Call);
|
||||
Ctrl_Typ : constant Entity_Id := Base_Type (Etype (Ctrl_Arg));
|
||||
Prim : constant Entity_Id := Entity (Sinfo.Name (Call));
|
||||
P : Node_Id;
|
||||
|
||||
begin
|
||||
-- Locate the enclosing context: a subprogram (if available) or the
|
||||
-- enclosing library-level package
|
||||
|
||||
P := Parent (Call);
|
||||
while Nkind (P) /= N_Subprogram_Body
|
||||
and then Nkind (Parent (P)) /= N_Compilation_Unit
|
||||
loop
|
||||
P := Parent (P);
|
||||
pragma Assert (Present (P));
|
||||
end loop;
|
||||
|
||||
Write_Str ("edge: { sourcename: ");
|
||||
Write_Char ('"');
|
||||
Write_Name (Chars (Defining_Entity (P)));
|
||||
|
||||
if Nkind (P) = N_Package_Declaration then
|
||||
Write_Str ("___elabs");
|
||||
|
||||
elsif Nkind (P) = N_Package_Body then
|
||||
Write_Str ("___elabb");
|
||||
end if;
|
||||
|
||||
Write_Char ('"');
|
||||
Write_Eol;
|
||||
|
||||
-- The targetname is a triple:
|
||||
-- N: the index in a vtable used for dispatch
|
||||
-- V: the type who's vtable is used
|
||||
-- S: the static type of the expression
|
||||
|
||||
Write_Str (" targetname: ");
|
||||
Write_Char ('"');
|
||||
|
||||
pragma Assert (No (Interface_Alias (Prim)));
|
||||
|
||||
-- The check on Is_Ancestor is done here to avoid problems with
|
||||
-- renamings of primitives. For example:
|
||||
|
||||
-- type Root is tagged ...
|
||||
-- procedure Base (Obj : Root);
|
||||
-- procedure Base2 (Obj : Root) renames Base;
|
||||
|
||||
if Present (Alias (Prim))
|
||||
and then
|
||||
Is_Ancestor
|
||||
(Find_Dispatching_Type (Ultimate_Alias (Prim)),
|
||||
Root_Type (Ctrl_Typ))
|
||||
then
|
||||
Write_Int (UI_To_Int (Slot_Number (Ultimate_Alias (Prim))));
|
||||
Write_Char (':');
|
||||
Write_Name
|
||||
(Chars (Find_Dispatching_Type (Ultimate_Alias (Prim))));
|
||||
else
|
||||
Write_Int (UI_To_Int (Slot_Number (Prim)));
|
||||
Write_Char (':');
|
||||
Write_Name (Chars (Root_Type (Ctrl_Typ)));
|
||||
end if;
|
||||
|
||||
Write_Char (',');
|
||||
Write_Name (Chars (Root_Type (Ctrl_Typ)));
|
||||
|
||||
Write_Char ('"');
|
||||
Write_Eol;
|
||||
|
||||
Write_Str (" label: ");
|
||||
Write_Char ('"');
|
||||
Write_Location (Sloc (Call));
|
||||
Write_Char ('"');
|
||||
Write_Eol;
|
||||
|
||||
Write_Char ('}');
|
||||
Write_Eol;
|
||||
end Write_Call_Info;
|
||||
|
||||
---------------------
|
||||
-- Write_Type_Info --
|
||||
---------------------
|
||||
|
||||
procedure Write_Type_Info (Typ : Entity_Id) is
|
||||
Elmt : Elmt_Id;
|
||||
Prim : Node_Id;
|
||||
|
||||
Parent_Typ : Entity_Id;
|
||||
Separator_Needed : Boolean := False;
|
||||
|
||||
begin
|
||||
-- Initialize Parent_Typ handling private types
|
||||
|
||||
Parent_Typ := Etype (Typ);
|
||||
|
||||
if Present (Full_View (Parent_Typ)) then
|
||||
Parent_Typ := Full_View (Parent_Typ);
|
||||
end if;
|
||||
|
||||
Write_Str ("class {");
|
||||
Write_Eol;
|
||||
|
||||
Write_Str (" classname: ");
|
||||
Write_Char ('"');
|
||||
Write_Name (Chars (Typ));
|
||||
Write_Char ('"');
|
||||
Write_Eol;
|
||||
|
||||
Write_Str (" label: ");
|
||||
Write_Char ('"');
|
||||
Write_Name (Chars (Typ));
|
||||
Write_Char ('\');
|
||||
Write_Location (Sloc (Typ));
|
||||
Write_Char ('"');
|
||||
Write_Eol;
|
||||
|
||||
if Parent_Typ /= Typ then
|
||||
Write_Str (" parent: ");
|
||||
Write_Char ('"');
|
||||
Write_Name (Chars (Parent_Typ));
|
||||
|
||||
-- Note: Einfo prefix not needed if this routine is moved to
|
||||
-- exp_disp???
|
||||
|
||||
if Present (Einfo.Interfaces (Typ))
|
||||
and then not Is_Empty_Elmt_List (Einfo.Interfaces (Typ))
|
||||
then
|
||||
Elmt := First_Elmt (Einfo.Interfaces (Typ));
|
||||
while Present (Elmt) loop
|
||||
Write_Str (", ");
|
||||
Write_Name (Chars (Node (Elmt)));
|
||||
Next_Elmt (Elmt);
|
||||
end loop;
|
||||
end if;
|
||||
|
||||
Write_Char ('"');
|
||||
Write_Eol;
|
||||
end if;
|
||||
|
||||
Write_Str (" virtuals: ");
|
||||
Write_Char ('"');
|
||||
|
||||
Elmt := First_Elmt (Primitive_Operations (Typ));
|
||||
while Present (Elmt) loop
|
||||
Prim := Node (Elmt);
|
||||
|
||||
-- Display only primitives overriden or defined
|
||||
|
||||
if Present (Alias (Prim)) then
|
||||
goto Continue;
|
||||
end if;
|
||||
|
||||
-- Do not generate separator for output of first primitive
|
||||
|
||||
if Separator_Needed then
|
||||
Write_Str ("\n");
|
||||
Write_Eol;
|
||||
Write_Str (" ");
|
||||
else
|
||||
Separator_Needed := True;
|
||||
end if;
|
||||
|
||||
Write_Int (UI_To_Int (Slot_Number (Prim)));
|
||||
Write_Char (':');
|
||||
Write_Name (Chars (Prim));
|
||||
|
||||
-- Display overriding of parent primitives
|
||||
|
||||
if Present (Overridden_Operation (Prim))
|
||||
and then
|
||||
Is_Ancestor
|
||||
(Find_Dispatching_Type (Overridden_Operation (Prim)), Typ)
|
||||
then
|
||||
Write_Char (',');
|
||||
Write_Int
|
||||
(UI_To_Int (Slot_Number (Overridden_Operation (Prim))));
|
||||
Write_Char (':');
|
||||
Write_Name
|
||||
(Chars (Find_Dispatching_Type (Overridden_Operation (Prim))));
|
||||
end if;
|
||||
|
||||
-- Display overriding of interface primitives
|
||||
|
||||
if Has_Interfaces (Typ) then
|
||||
declare
|
||||
Prim_Elmt : Elmt_Id;
|
||||
Prim_Op : Node_Id;
|
||||
Int_Alias : Entity_Id;
|
||||
|
||||
begin
|
||||
Prim_Elmt := First_Elmt (Primitive_Operations (Typ));
|
||||
while Present (Prim_Elmt) loop
|
||||
Prim_Op := Node (Prim_Elmt);
|
||||
Int_Alias := Interface_Alias (Prim_Op);
|
||||
|
||||
if Present (Int_Alias) and then (Alias (Prim_Op)) = Prim then
|
||||
Write_Char (',');
|
||||
Write_Int (UI_To_Int (Slot_Number (Int_Alias)));
|
||||
Write_Char (':');
|
||||
Write_Name (Chars (Find_Dispatching_Type (Int_Alias)));
|
||||
end if;
|
||||
|
||||
Next_Elmt (Prim_Elmt);
|
||||
end loop;
|
||||
end;
|
||||
end if;
|
||||
|
||||
<<Continue>>
|
||||
Next_Elmt (Elmt);
|
||||
end loop;
|
||||
|
||||
Write_Char ('"');
|
||||
Write_Eol;
|
||||
|
||||
Write_Char ('}');
|
||||
Write_Eol;
|
||||
end Write_Type_Info;
|
||||
|
||||
end Exp_CG;
|
47
gcc/ada/exp_cg.ads
Normal file
47
gcc/ada/exp_cg.ads
Normal file
@ -0,0 +1,47 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- --
|
||||
-- GNAT COMPILER COMPONENTS --
|
||||
-- --
|
||||
-- E X P _ C G --
|
||||
-- --
|
||||
-- S p e c --
|
||||
-- --
|
||||
-- Copyright (C) 2010, 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- --
|
||||
-- ware Foundation; either version 3, or (at your option) any later ver- --
|
||||
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
|
||||
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
|
||||
-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
|
||||
-- for more details. You should have received a copy of the GNU General --
|
||||
-- Public License distributed with GNAT; see file COPYING3. If not, go to --
|
||||
-- http://www.gnu.org/licenses for a complete copy of the license. --
|
||||
-- --
|
||||
-- GNAT was originally developed by the GNAT team at New York University. --
|
||||
-- Extensive contributions were provided by Ada Core Technologies Inc. --
|
||||
-- --
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
-- This package contains routines used to store and handle nodes required
|
||||
-- to generate call graph information of dispatching calls.
|
||||
|
||||
with Types; use Types;
|
||||
|
||||
package Exp_CG is
|
||||
|
||||
procedure Generate_CG_Output;
|
||||
-- Generate in the standard output the information associated with tagged
|
||||
-- types declaration and dispatching calls
|
||||
|
||||
procedure Initialize;
|
||||
-- Called at the start of compilation to initialize the table that stores
|
||||
-- the tree nodes used by Generate_Output. This table is required because
|
||||
-- the format of the output requires fully qualified names (and hence the
|
||||
-- output must be generated after the source program has been compiled).
|
||||
|
||||
procedure Register_CG_Node (N : Node_Id);
|
||||
-- Register a dispatching call node or the defining entity of a tagged
|
||||
-- type declaration
|
||||
|
||||
end Exp_CG;
|
@ -31,6 +31,7 @@ with Elists; use Elists;
|
||||
with Errout; use Errout;
|
||||
with Exp_Atag; use Exp_Atag;
|
||||
with Exp_Ch7; use Exp_Ch7;
|
||||
with Exp_CG; use Exp_CG;
|
||||
with Exp_Dbug; use Exp_Dbug;
|
||||
with Exp_Tss; use Exp_Tss;
|
||||
with Exp_Util; use Exp_Util;
|
||||
@ -961,6 +962,10 @@ package body Exp_Disp is
|
||||
Parameter_Associations => New_Params);
|
||||
end if;
|
||||
|
||||
-- Register the dispatching call in the call graph nodes table
|
||||
|
||||
Register_CG_Node (Call_Node);
|
||||
|
||||
Rewrite (Call_Node, New_Call);
|
||||
|
||||
-- Suppress all checks during the analysis of the expanded code
|
||||
@ -5969,6 +5974,10 @@ package body Exp_Disp is
|
||||
end;
|
||||
end if;
|
||||
|
||||
-- Register the tagged type in the call graph nodes table
|
||||
|
||||
Register_CG_Node (Typ);
|
||||
|
||||
return Result;
|
||||
end Make_DT;
|
||||
|
||||
|
@ -144,6 +144,7 @@ GNAT_ADA_OBJS = \
|
||||
ada/exp_aggr.o \
|
||||
ada/exp_atag.o \
|
||||
ada/exp_attr.o \
|
||||
ada/exp_cg.o \
|
||||
ada/exp_ch11.o \
|
||||
ada/exp_ch12.o \
|
||||
ada/exp_ch13.o \
|
||||
@ -188,6 +189,8 @@ GNAT_ADA_OBJS = \
|
||||
ada/gnatvsn.o \
|
||||
ada/hlo.o \
|
||||
ada/hostparm.o \
|
||||
ada/i-c.o \
|
||||
ada/i-cstrea.o \
|
||||
ada/impunit.o \
|
||||
ada/inline.o \
|
||||
ada/interfac.o \
|
||||
@ -1263,8 +1266,9 @@ ada/utils.o : ada/gcc-interface/utils.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
|
||||
$(TARGET_H) function.h langhooks.h $(CGRAPH_H) \
|
||||
$(TREE_DUMP_H) $(TREE_INLINE_H) tree-iterator.h \
|
||||
ada/gcc-interface/ada.h ada/types.h ada/atree.h ada/elists.h ada/namet.h \
|
||||
ada/nlists.h ada/stringt.h ada/uintp.h ada/fe.h ada/sinfo.h ada/einfo.h \
|
||||
$(ADA_TREE_H) ada/gcc-interface/gigi.h gt-ada-utils.h gtype-ada.h
|
||||
ada/nlists.h ada/snames.h ada/stringt.h ada/uintp.h ada/fe.h ada/sinfo.h \
|
||||
ada/einfo.h $(ADA_TREE_H) ada/gcc-interface/gigi.h gt-ada-utils.h \
|
||||
gtype-ada.h
|
||||
$(COMPILER) -c $(ALL_COMPILERFLAGS) -I.. $(ALL_CPPFLAGS) $< -o $@
|
||||
|
||||
ada/utils2.o : ada/gcc-interface/utils2.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
|
||||
@ -1464,29 +1468,50 @@ ada/checks.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
ada/debug.ads ada/einfo.ads ada/einfo.adb ada/elists.ads ada/elists.adb \
|
||||
ada/err_vars.ads ada/errout.ads ada/erroutc.ads ada/eval_fat.ads \
|
||||
ada/exp_aggr.ads ada/exp_ch11.ads ada/exp_ch2.ads ada/exp_ch4.ads \
|
||||
ada/exp_ch6.ads ada/exp_ch7.ads ada/exp_dist.ads ada/exp_pakd.ads \
|
||||
ada/exp_tss.ads ada/exp_util.ads ada/exp_util.adb ada/fname.ads \
|
||||
ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads ada/gnat.ads \
|
||||
ada/g-hesorg.ads ada/g-htable.ads ada/hostparm.ads ada/inline.ads \
|
||||
ada/itypes.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \
|
||||
ada/lib-load.ads ada/lib-sort.adb ada/namet.ads ada/nlists.ads \
|
||||
ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads \
|
||||
ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \
|
||||
ada/rtsfind.adb ada/sem.ads ada/sem_aux.ads ada/sem_cat.ads \
|
||||
ada/sem_ch3.ads ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads \
|
||||
ada/exp_ch6.ads ada/exp_ch7.ads ada/exp_disp.ads ada/exp_dist.ads \
|
||||
ada/exp_pakd.ads ada/exp_tss.ads ada/exp_util.ads ada/exp_util.adb \
|
||||
ada/fname.ads ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads \
|
||||
ada/gnat.ads ada/g-hesorg.ads ada/g-htable.ads ada/hostparm.ads \
|
||||
ada/inline.ads ada/interfac.ads ada/itypes.ads ada/lib.ads ada/lib.adb \
|
||||
ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-xref.ads \
|
||||
ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \
|
||||
ada/nmake.adb ada/opt.ads ada/output.ads ada/restrict.ads \
|
||||
ada/restrict.adb ada/rident.ads ada/rtsfind.ads ada/rtsfind.adb \
|
||||
ada/scans.ads ada/scn.ads ada/scng.ads ada/scng.adb ada/sem.ads \
|
||||
ada/sem_attr.ads ada/sem_aux.ads ada/sem_cat.ads ada/sem_ch3.ads \
|
||||
ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_disp.ads \
|
||||
ada/sem_dist.ads ada/sem_eval.ads ada/sem_eval.adb ada/sem_res.ads \
|
||||
ada/sem_scil.ads ada/sem_type.ads ada/sem_util.ads ada/sem_warn.ads \
|
||||
ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/snames.ads \
|
||||
ada/sprint.ads ada/stand.ads ada/stringt.ads ada/stringt.adb \
|
||||
ada/system.ads ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads \
|
||||
ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads \
|
||||
ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \
|
||||
ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
|
||||
ada/sem_scil.ads ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb \
|
||||
ada/sem_warn.ads ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \
|
||||
ada/snames.ads ada/sprint.ads ada/stand.ads ada/stringt.ads \
|
||||
ada/stringt.adb ada/style.ads ada/styleg.ads ada/styleg.adb \
|
||||
ada/stylesw.ads ada/system.ads ada/s-crc32.ads ada/s-exctab.ads \
|
||||
ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \
|
||||
ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \
|
||||
ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \
|
||||
ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-utf_32.ads \
|
||||
ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \
|
||||
ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads \
|
||||
ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
|
||||
ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \
|
||||
ada/validsw.ads
|
||||
ada/validsw.ads ada/widechar.ads
|
||||
|
||||
ada/exp_cg.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
|
||||
ada/casing.ads ada/exp_cg.ads ada/exp_cg.adb ada/debug.ads \
|
||||
ada/einfo.ads ada/einfo.adb ada/elists.ads ada/elists.adb \
|
||||
ada/exp_disp.ads ada/exp_tss.ads ada/gnat.ads ada/g-htable.ads \
|
||||
ada/hostparm.ads ada/lib.ads ada/namet.ads ada/nlists.ads \
|
||||
ada/nlists.adb ada/nmake.ads ada/opt.ads ada/output.ads \
|
||||
ada/sem_disp.ads ada/sem_type.ads ada/sem_util.ads ada/sinfo.ads \
|
||||
ada/sinfo.adb ada/sinput.ads ada/snames.ads ada/stand.ads \
|
||||
ada/system.ads ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads \
|
||||
ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads \
|
||||
ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \
|
||||
ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
|
||||
ada/s-wchcon.ads ada/table.ads ada/table.adb ada/tree_io.ads \
|
||||
ada/types.ads ada/uintp.ads ada/uintp.adb ada/unchconv.ads \
|
||||
ada/unchdeal.ads ada/urealp.ads
|
||||
|
||||
ada/comperr.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
|
||||
@ -1823,8 +1848,8 @@ ada/exp_ch3.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
|
||||
ada/exp_ch4.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
|
||||
ada/casing.ads ada/checks.ads ada/checks.adb ada/debug.ads \
|
||||
ada/einfo.ads ada/einfo.adb ada/elists.ads ada/elists.adb \
|
||||
ada/casing.ads ada/checks.ads ada/checks.adb ada/csets.ads \
|
||||
ada/debug.ads ada/einfo.ads ada/einfo.adb ada/elists.ads ada/elists.adb \
|
||||
ada/err_vars.ads ada/errout.ads ada/erroutc.ads ada/eval_fat.ads \
|
||||
ada/exp_aggr.ads ada/exp_atag.ads ada/exp_ch11.ads ada/exp_ch2.ads \
|
||||
ada/exp_ch3.ads ada/exp_ch4.ads ada/exp_ch4.adb ada/exp_ch6.ads \
|
||||
@ -1832,24 +1857,28 @@ ada/exp_ch4.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
ada/exp_pakd.ads ada/exp_tss.ads ada/exp_util.ads ada/exp_util.adb \
|
||||
ada/exp_vfpt.ads ada/fname.ads ada/fname-uf.ads ada/freeze.ads \
|
||||
ada/get_targ.ads ada/gnat.ads ada/g-htable.ads ada/hostparm.ads \
|
||||
ada/inline.ads ada/itypes.ads ada/lib.ads ada/namet.ads ada/nlists.ads \
|
||||
ada/inline.ads ada/interfac.ads ada/itypes.ads ada/lib.ads \
|
||||
ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/nlists.ads \
|
||||
ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads \
|
||||
ada/par_sco.ads ada/restrict.ads ada/restrict.adb ada/rident.ads \
|
||||
ada/rtsfind.ads ada/sem.ads ada/sem_aux.ads ada/sem_cat.ads \
|
||||
ada/rtsfind.ads ada/scans.ads ada/scn.ads ada/scng.ads ada/scng.adb \
|
||||
ada/sem.ads ada/sem_attr.ads ada/sem_aux.ads ada/sem_cat.ads \
|
||||
ada/sem_ch13.ads ada/sem_ch3.ads ada/sem_ch6.ads ada/sem_ch8.ads \
|
||||
ada/sem_eval.ads ada/sem_eval.adb ada/sem_res.ads ada/sem_scil.ads \
|
||||
ada/sem_type.ads ada/sem_util.ads ada/sem_warn.ads ada/sinfo.ads \
|
||||
ada/sinfo.adb ada/sinput.ads ada/snames.ads ada/sprint.ads \
|
||||
ada/stand.ads ada/stringt.ads ada/stringt.adb ada/system.ads \
|
||||
ada/s-exctab.ads ada/s-exctab.adb ada/s-htable.ads ada/s-imenne.ads \
|
||||
ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads \
|
||||
ada/sem_disp.ads ada/sem_eval.ads ada/sem_eval.adb ada/sem_res.ads \
|
||||
ada/sem_scil.ads ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb \
|
||||
ada/sem_warn.ads ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \
|
||||
ada/snames.ads ada/sprint.ads ada/stand.ads ada/stringt.ads \
|
||||
ada/stringt.adb ada/style.ads ada/styleg.ads ada/styleg.adb \
|
||||
ada/stylesw.ads ada/system.ads ada/s-crc32.ads ada/s-exctab.ads \
|
||||
ada/s-exctab.adb ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \
|
||||
ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \
|
||||
ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \
|
||||
ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
|
||||
ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \
|
||||
ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads \
|
||||
ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
|
||||
ada/s-utf_32.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \
|
||||
ada/targparm.ads ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads \
|
||||
ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
|
||||
ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \
|
||||
ada/validsw.ads
|
||||
ada/validsw.ads ada/widechar.ads
|
||||
|
||||
ada/exp_ch5.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
|
||||
@ -2048,34 +2077,34 @@ ada/exp_dbug.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
|
||||
ada/exp_disp.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
|
||||
ada/casing.ads ada/checks.ads ada/csets.ads ada/debug.ads ada/einfo.ads \
|
||||
ada/einfo.adb ada/elists.ads ada/elists.adb ada/err_vars.ads \
|
||||
ada/errout.ads ada/erroutc.ads ada/exp_aggr.ads ada/exp_atag.ads \
|
||||
ada/exp_ch11.ads ada/exp_ch6.ads ada/exp_ch7.ads ada/exp_dbug.ads \
|
||||
ada/exp_disp.ads ada/exp_disp.adb ada/exp_tss.ads ada/exp_tss.adb \
|
||||
ada/exp_util.ads ada/exp_util.adb ada/fname.ads ada/fname-uf.ads \
|
||||
ada/freeze.ads ada/get_targ.ads ada/gnat.ads ada/g-htable.ads \
|
||||
ada/hostparm.ads ada/inline.ads ada/interfac.ads ada/itypes.ads \
|
||||
ada/layout.ads ada/lib.ads ada/lib-xref.ads ada/namet.ads ada/namet.adb \
|
||||
ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads \
|
||||
ada/output.ads ada/restrict.ads ada/restrict.adb ada/rident.ads \
|
||||
ada/rtsfind.ads ada/scans.ads ada/scn.ads ada/scng.ads ada/scng.adb \
|
||||
ada/sem.ads ada/sem_attr.ads ada/sem_aux.ads ada/sem_ch6.ads \
|
||||
ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_disp.ads ada/sem_eval.ads \
|
||||
ada/sem_res.ads ada/sem_scil.ads ada/sem_type.ads ada/sem_util.ads \
|
||||
ada/sem_util.adb ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \
|
||||
ada/snames.ads ada/stand.ads ada/stringt.ads ada/stringt.adb \
|
||||
ada/style.ads ada/styleg.ads ada/styleg.adb ada/stylesw.ads \
|
||||
ada/system.ads ada/s-carun8.ads ada/s-crc32.ads ada/s-exctab.ads \
|
||||
ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \
|
||||
ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \
|
||||
ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \
|
||||
ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-utf_32.ads \
|
||||
ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \
|
||||
ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads \
|
||||
ada/types.ads ada/types.adb ada/uintp.ads ada/uintp.adb ada/uname.ads \
|
||||
ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/validsw.ads \
|
||||
ada/widechar.ads
|
||||
ada/casing.ads ada/checks.ads ada/exp_cg.ads ada/csets.ads \
|
||||
ada/debug.ads ada/einfo.ads ada/einfo.adb ada/elists.ads ada/elists.adb \
|
||||
ada/err_vars.ads ada/errout.ads ada/erroutc.ads ada/exp_aggr.ads \
|
||||
ada/exp_atag.ads ada/exp_ch11.ads ada/exp_ch6.ads ada/exp_ch7.ads \
|
||||
ada/exp_dbug.ads ada/exp_disp.ads ada/exp_disp.adb ada/exp_tss.ads \
|
||||
ada/exp_tss.adb ada/exp_util.ads ada/exp_util.adb ada/fname.ads \
|
||||
ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads ada/gnat.ads \
|
||||
ada/g-htable.ads ada/hostparm.ads ada/inline.ads ada/interfac.ads \
|
||||
ada/itypes.ads ada/layout.ads ada/lib.ads ada/lib-xref.ads \
|
||||
ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \
|
||||
ada/nmake.adb ada/opt.ads ada/output.ads ada/restrict.ads \
|
||||
ada/restrict.adb ada/rident.ads ada/rtsfind.ads ada/scans.ads \
|
||||
ada/scn.ads ada/scng.ads ada/scng.adb ada/sem.ads ada/sem_attr.ads \
|
||||
ada/sem_aux.ads ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads \
|
||||
ada/sem_disp.ads ada/sem_eval.ads ada/sem_res.ads ada/sem_scil.ads \
|
||||
ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb ada/sinfo.ads \
|
||||
ada/sinfo.adb ada/sinput.ads ada/snames.ads ada/stand.ads \
|
||||
ada/stringt.ads ada/stringt.adb ada/style.ads ada/styleg.ads \
|
||||
ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-carun8.ads \
|
||||
ada/s-crc32.ads ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads \
|
||||
ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads \
|
||||
ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads \
|
||||
ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \
|
||||
ada/s-unstyp.ads ada/s-utf_32.ads ada/s-wchcon.ads ada/table.ads \
|
||||
ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tbuild.adb \
|
||||
ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/types.adb \
|
||||
ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \
|
||||
ada/unchdeal.ads ada/urealp.ads ada/validsw.ads ada/widechar.ads
|
||||
|
||||
ada/exp_dist.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
|
||||
@ -2102,23 +2131,31 @@ ada/exp_dist.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
|
||||
ada/exp_fixd.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
|
||||
ada/casing.ads ada/checks.ads ada/debug.ads ada/einfo.ads ada/einfo.adb \
|
||||
ada/elists.ads ada/err_vars.ads ada/errout.ads ada/erroutc.ads \
|
||||
ada/eval_fat.ads ada/exp_fixd.ads ada/exp_fixd.adb ada/exp_tss.ads \
|
||||
ada/exp_util.ads ada/gnat.ads ada/g-htable.ads ada/hostparm.ads \
|
||||
ada/lib.ads ada/namet.ads ada/nlists.ads ada/nlists.adb ada/nmake.ads \
|
||||
ada/nmake.adb ada/opt.ads ada/output.ads ada/rtsfind.ads ada/sem.ads \
|
||||
ada/sem_aux.ads ada/sem_cat.ads ada/sem_ch6.ads ada/sem_ch8.ads \
|
||||
ada/sem_eval.ads ada/sem_eval.adb ada/sem_res.ads ada/sem_type.ads \
|
||||
ada/sem_util.ads ada/sem_warn.ads ada/sinfo.ads ada/sinfo.adb \
|
||||
ada/sinput.ads ada/snames.ads ada/stand.ads ada/stringt.ads \
|
||||
ada/stringt.adb ada/system.ads ada/s-exctab.ads ada/s-htable.ads \
|
||||
ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \
|
||||
ada/casing.ads ada/checks.ads ada/csets.ads ada/debug.ads ada/einfo.ads \
|
||||
ada/einfo.adb ada/elists.ads ada/err_vars.ads ada/errout.ads \
|
||||
ada/erroutc.ads ada/eval_fat.ads ada/exp_ch11.ads ada/exp_disp.ads \
|
||||
ada/exp_fixd.ads ada/exp_fixd.adb ada/exp_tss.ads ada/exp_util.ads \
|
||||
ada/fname.ads ada/freeze.ads ada/get_targ.ads ada/gnat.ads \
|
||||
ada/g-htable.ads ada/hostparm.ads ada/interfac.ads ada/lib.ads \
|
||||
ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/nlists.ads \
|
||||
ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads \
|
||||
ada/rident.ads ada/rtsfind.ads ada/scans.ads ada/scn.ads ada/scng.ads \
|
||||
ada/scng.adb ada/sem.ads ada/sem_attr.ads ada/sem_aux.ads \
|
||||
ada/sem_cat.ads ada/sem_ch6.ads ada/sem_ch8.ads ada/sem_disp.ads \
|
||||
ada/sem_eval.ads ada/sem_eval.adb ada/sem_res.ads ada/sem_scil.ads \
|
||||
ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb ada/sem_warn.ads \
|
||||
ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/snames.ads ada/stand.ads \
|
||||
ada/stringt.ads ada/stringt.adb ada/style.ads ada/styleg.ads \
|
||||
ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-crc32.ads \
|
||||
ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \
|
||||
ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \
|
||||
ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \
|
||||
ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
|
||||
ada/s-wchcon.ads ada/table.ads ada/table.adb ada/tbuild.ads \
|
||||
ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb \
|
||||
ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb
|
||||
ada/s-utf_32.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \
|
||||
ada/targparm.ads ada/tbuild.ads ada/tree_io.ads ada/ttypes.ads \
|
||||
ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
|
||||
ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \
|
||||
ada/widechar.ads
|
||||
|
||||
ada/exp_imgv.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
|
||||
@ -2288,29 +2325,34 @@ ada/exp_tss.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
|
||||
ada/exp_util.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
|
||||
ada/casing.ads ada/checks.ads ada/debug.ads ada/einfo.ads ada/einfo.adb \
|
||||
ada/elists.ads ada/elists.adb ada/err_vars.ads ada/errout.ads \
|
||||
ada/erroutc.ads ada/eval_fat.ads ada/exp_aggr.ads ada/exp_ch6.ads \
|
||||
ada/exp_ch7.ads ada/exp_tss.ads ada/exp_util.ads ada/exp_util.adb \
|
||||
ada/fname.ads ada/fname-uf.ads ada/get_targ.ads ada/gnat.ads \
|
||||
ada/casing.ads ada/checks.ads ada/csets.ads ada/debug.ads ada/einfo.ads \
|
||||
ada/einfo.adb ada/elists.ads ada/elists.adb ada/err_vars.ads \
|
||||
ada/errout.ads ada/erroutc.ads ada/eval_fat.ads ada/exp_aggr.ads \
|
||||
ada/exp_ch11.ads ada/exp_ch6.ads ada/exp_ch7.ads ada/exp_disp.ads \
|
||||
ada/exp_tss.ads ada/exp_util.ads ada/exp_util.adb ada/fname.ads \
|
||||
ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads ada/gnat.ads \
|
||||
ada/g-hesorg.ads ada/g-htable.ads ada/hostparm.ads ada/inline.ads \
|
||||
ada/itypes.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \
|
||||
ada/lib-sort.adb ada/namet.ads ada/nlists.ads ada/nlists.adb \
|
||||
ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads ada/restrict.ads \
|
||||
ada/restrict.adb ada/rident.ads ada/rtsfind.ads ada/sem.ads \
|
||||
ada/sem_aux.ads ada/sem_cat.ads ada/sem_ch6.ads ada/sem_ch8.ads \
|
||||
ada/interfac.ads ada/itypes.ads ada/lib.ads ada/lib.adb \
|
||||
ada/lib-list.adb ada/lib-sort.adb ada/lib-xref.ads ada/namet.ads \
|
||||
ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb \
|
||||
ada/opt.ads ada/output.ads ada/restrict.ads ada/restrict.adb \
|
||||
ada/rident.ads ada/rtsfind.ads ada/scans.ads ada/scn.ads ada/scng.ads \
|
||||
ada/scng.adb ada/sem.ads ada/sem_attr.ads ada/sem_aux.ads \
|
||||
ada/sem_cat.ads ada/sem_ch6.ads ada/sem_ch8.ads ada/sem_disp.ads \
|
||||
ada/sem_eval.ads ada/sem_eval.adb ada/sem_res.ads ada/sem_scil.ads \
|
||||
ada/sem_type.ads ada/sem_util.ads ada/sem_warn.ads ada/sinfo.ads \
|
||||
ada/sinfo.adb ada/sinput.ads ada/snames.ads ada/stand.ads \
|
||||
ada/stringt.ads ada/stringt.adb ada/system.ads ada/s-exctab.ads \
|
||||
ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \
|
||||
ada/s-parame.ads ada/s-rident.ads ada/s-soflin.ads ada/s-stache.ads \
|
||||
ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \
|
||||
ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \
|
||||
ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tbuild.adb \
|
||||
ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \
|
||||
ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \
|
||||
ada/urealp.ads ada/urealp.adb ada/validsw.ads
|
||||
ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb ada/sem_warn.ads \
|
||||
ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/snames.ads ada/stand.ads \
|
||||
ada/stringt.ads ada/stringt.adb ada/style.ads ada/styleg.ads \
|
||||
ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-crc32.ads \
|
||||
ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \
|
||||
ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \
|
||||
ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \
|
||||
ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
|
||||
ada/s-utf_32.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \
|
||||
ada/targparm.ads ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads \
|
||||
ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
|
||||
ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \
|
||||
ada/validsw.ads ada/widechar.ads
|
||||
|
||||
ada/exp_vfpt.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
|
||||
@ -2471,8 +2513,8 @@ ada/gnat.o : ada/gnat.ads ada/system.ads
|
||||
|
||||
ada/gnat1drv.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
|
||||
ada/back_end.ads ada/casing.ads ada/comperr.ads ada/csets.ads \
|
||||
ada/debug.ads ada/debug_a.ads ada/einfo.ads ada/einfo.adb \
|
||||
ada/back_end.ads ada/casing.ads ada/exp_cg.ads ada/comperr.ads \
|
||||
ada/csets.ads ada/debug.ads ada/debug_a.ads ada/einfo.ads ada/einfo.adb \
|
||||
ada/elists.ads ada/elists.adb ada/err_vars.ads ada/errout.ads \
|
||||
ada/erroutc.ads ada/exp_tss.ads ada/expander.ads ada/fmap.ads \
|
||||
ada/fname.ads ada/fname-uf.ads ada/frontend.ads ada/get_targ.ads \
|
||||
@ -2531,6 +2573,16 @@ ada/hostparm.o : ada/ada.ads ada/a-unccon.ads ada/hostparm.ads \
|
||||
ada/system.ads ada/s-exctab.ads ada/s-stalib.ads ada/s-unstyp.ads \
|
||||
ada/types.ads ada/unchconv.ads ada/unchdeal.ads
|
||||
|
||||
ada/i-c.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads ada/interfac.ads \
|
||||
ada/i-c.ads ada/i-c.adb ada/system.ads ada/s-exctab.ads \
|
||||
ada/s-exctab.adb ada/s-htable.ads ada/s-parame.ads ada/s-secsta.ads \
|
||||
ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \
|
||||
ada/s-stoele.adb ada/s-traent.ads
|
||||
|
||||
ada/i-cstrea.o : ada/ada.ads ada/a-unccon.ads ada/interfac.ads \
|
||||
ada/i-cstrea.ads ada/i-cstrea.adb ada/system.ads ada/s-crtl.ads \
|
||||
ada/s-parame.ads
|
||||
|
||||
ada/impunit.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
|
||||
ada/casing.ads ada/debug.ads ada/einfo.ads ada/einfo.adb \
|
||||
@ -3234,27 +3286,29 @@ ada/sem_attr.o : ada/ada.ads ada/a-charac.ads ada/a-chlat1.ads \
|
||||
ada/exp_tss.ads ada/exp_util.ads ada/exp_util.adb ada/expander.ads \
|
||||
ada/fname.ads ada/freeze.ads ada/get_targ.ads ada/gnat.ads \
|
||||
ada/g-htable.ads ada/gnatvsn.ads ada/hostparm.ads ada/inline.ads \
|
||||
ada/itypes.ads ada/lib.ads ada/lib-xref.ads ada/namet.ads \
|
||||
ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads \
|
||||
ada/output.ads ada/restrict.ads ada/rident.ads ada/rtsfind.ads \
|
||||
ada/scans.ads ada/sdefault.ads ada/sem.ads ada/sem_aggr.ads \
|
||||
ada/interfac.ads ada/itypes.ads ada/lib.ads ada/lib-xref.ads \
|
||||
ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \
|
||||
ada/nmake.adb ada/opt.ads ada/output.ads ada/restrict.ads \
|
||||
ada/rident.ads ada/rtsfind.ads ada/scans.ads ada/scn.ads ada/scng.ads \
|
||||
ada/scng.adb ada/sdefault.ads ada/sem.ads ada/sem_aggr.ads \
|
||||
ada/sem_attr.ads ada/sem_attr.adb ada/sem_aux.ads ada/sem_cat.ads \
|
||||
ada/sem_ch10.ads ada/sem_ch13.ads ada/sem_ch3.ads ada/sem_ch4.ads \
|
||||
ada/sem_ch6.ads ada/sem_ch8.ads ada/sem_disp.ads ada/sem_dist.ads \
|
||||
ada/sem_elab.ads ada/sem_elim.ads ada/sem_eval.ads ada/sem_eval.adb \
|
||||
ada/sem_intr.ads ada/sem_res.ads ada/sem_res.adb ada/sem_scil.ads \
|
||||
ada/sem_type.ads ada/sem_util.ads ada/sem_warn.ads ada/sinfo.ads \
|
||||
ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \
|
||||
ada/snames.adb ada/sprint.ads ada/stand.ads ada/stringt.ads \
|
||||
ada/stringt.adb ada/style.ads ada/styleg.ads ada/styleg.adb \
|
||||
ada/stylesw.ads ada/system.ads ada/s-carun8.ads ada/s-exctab.ads \
|
||||
ada/s-exctab.adb ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \
|
||||
ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \
|
||||
ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \
|
||||
ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
|
||||
ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \
|
||||
ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypef.ads \
|
||||
ada/ttypes.ads ada/types.ads ada/types.adb ada/uintp.ads ada/uintp.adb \
|
||||
ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb ada/sem_warn.ads \
|
||||
ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \
|
||||
ada/snames.ads ada/snames.adb ada/sprint.ads ada/stand.ads \
|
||||
ada/stringt.ads ada/stringt.adb ada/style.ads ada/styleg.ads \
|
||||
ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-carun8.ads \
|
||||
ada/s-crc32.ads ada/s-exctab.ads ada/s-exctab.adb ada/s-htable.ads \
|
||||
ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \
|
||||
ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \
|
||||
ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \
|
||||
ada/s-traent.ads ada/s-unstyp.ads ada/s-utf_32.ads ada/s-wchcon.ads \
|
||||
ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \
|
||||
ada/tbuild.adb ada/tree_io.ads ada/ttypef.ads ada/ttypes.ads \
|
||||
ada/types.ads ada/types.adb ada/uintp.ads ada/uintp.adb ada/uname.ads \
|
||||
ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \
|
||||
ada/validsw.ads ada/widechar.ads
|
||||
|
||||
@ -3675,33 +3729,33 @@ ada/sem_ch9.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
|
||||
ada/sem_disp.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
|
||||
ada/casing.ads ada/checks.ads ada/csets.ads ada/debug.ads ada/einfo.ads \
|
||||
ada/einfo.adb ada/elists.ads ada/elists.adb ada/err_vars.ads \
|
||||
ada/errout.ads ada/erroutc.ads ada/exp_aggr.ads ada/exp_atag.ads \
|
||||
ada/exp_ch11.ads ada/exp_ch6.ads ada/exp_ch7.ads ada/exp_dbug.ads \
|
||||
ada/exp_disp.ads ada/exp_disp.adb ada/exp_tss.ads ada/exp_util.ads \
|
||||
ada/exp_util.adb ada/fname.ads ada/fname-uf.ads ada/freeze.ads \
|
||||
ada/get_targ.ads ada/gnat.ads ada/g-htable.ads ada/hostparm.ads \
|
||||
ada/inline.ads ada/interfac.ads ada/itypes.ads ada/layout.ads \
|
||||
ada/lib.ads ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/nlists.ads \
|
||||
ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads \
|
||||
ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \
|
||||
ada/scans.ads ada/scn.ads ada/scng.ads ada/scng.adb ada/sem.ads \
|
||||
ada/sem_attr.ads ada/sem_aux.ads ada/sem_ch3.ads ada/sem_ch6.ads \
|
||||
ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_disp.ads ada/sem_disp.adb \
|
||||
ada/sem_eval.ads ada/sem_res.ads ada/sem_scil.ads ada/sem_type.ads \
|
||||
ada/sem_util.ads ada/sem_util.adb ada/sinfo.ads ada/sinfo.adb \
|
||||
ada/sinput.ads ada/snames.ads ada/stand.ads ada/stringt.ads \
|
||||
ada/style.ads ada/styleg.ads ada/styleg.adb ada/stylesw.ads \
|
||||
ada/system.ads ada/s-crc32.ads ada/s-exctab.ads ada/s-htable.ads \
|
||||
ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \
|
||||
ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \
|
||||
ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \
|
||||
ada/s-traent.ads ada/s-unstyp.ads ada/s-utf_32.ads ada/s-wchcon.ads \
|
||||
ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \
|
||||
ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \
|
||||
ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \
|
||||
ada/urealp.ads ada/validsw.ads ada/widechar.ads
|
||||
ada/casing.ads ada/checks.ads ada/exp_cg.ads ada/csets.ads \
|
||||
ada/debug.ads ada/einfo.ads ada/einfo.adb ada/elists.ads ada/elists.adb \
|
||||
ada/err_vars.ads ada/errout.ads ada/erroutc.ads ada/exp_aggr.ads \
|
||||
ada/exp_atag.ads ada/exp_ch11.ads ada/exp_ch6.ads ada/exp_ch7.ads \
|
||||
ada/exp_dbug.ads ada/exp_disp.ads ada/exp_disp.adb ada/exp_tss.ads \
|
||||
ada/exp_util.ads ada/exp_util.adb ada/fname.ads ada/fname-uf.ads \
|
||||
ada/freeze.ads ada/get_targ.ads ada/gnat.ads ada/g-htable.ads \
|
||||
ada/hostparm.ads ada/inline.ads ada/interfac.ads ada/itypes.ads \
|
||||
ada/layout.ads ada/lib.ads ada/lib-xref.ads ada/namet.ads ada/namet.adb \
|
||||
ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads \
|
||||
ada/output.ads ada/restrict.ads ada/restrict.adb ada/rident.ads \
|
||||
ada/rtsfind.ads ada/scans.ads ada/scn.ads ada/scng.ads ada/scng.adb \
|
||||
ada/sem.ads ada/sem_attr.ads ada/sem_aux.ads ada/sem_ch3.ads \
|
||||
ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_disp.ads \
|
||||
ada/sem_disp.adb ada/sem_eval.ads ada/sem_res.ads ada/sem_scil.ads \
|
||||
ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb ada/sinfo.ads \
|
||||
ada/sinfo.adb ada/sinput.ads ada/snames.ads ada/stand.ads \
|
||||
ada/stringt.ads ada/style.ads ada/styleg.ads ada/styleg.adb \
|
||||
ada/stylesw.ads ada/system.ads ada/s-crc32.ads ada/s-exctab.ads \
|
||||
ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \
|
||||
ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \
|
||||
ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \
|
||||
ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-utf_32.ads \
|
||||
ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \
|
||||
ada/tbuild.ads ada/tree_io.ads ada/ttypes.ads ada/types.ads \
|
||||
ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \
|
||||
ada/unchdeal.ads ada/urealp.ads ada/validsw.ads ada/widechar.ads
|
||||
|
||||
ada/sem_dist.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
|
||||
ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/atree.adb \
|
||||
|
@ -30,6 +30,7 @@ with Csets; use Csets;
|
||||
with Debug; use Debug;
|
||||
with Elists;
|
||||
with Errout; use Errout;
|
||||
with Exp_CG;
|
||||
with Fmap;
|
||||
with Fname; use Fname;
|
||||
with Fname.UF; use Fname.UF;
|
||||
@ -596,6 +597,7 @@ begin
|
||||
Nlists.Initialize;
|
||||
Sinput.Initialize;
|
||||
Sem.Initialize;
|
||||
Exp_CG.Initialize;
|
||||
Csets.Initialize;
|
||||
Uintp.Initialize;
|
||||
Urealp.Initialize;
|
||||
@ -985,6 +987,10 @@ begin
|
||||
|
||||
Namet.Unlock;
|
||||
|
||||
-- Generate the call-graph output of dispatching calls
|
||||
|
||||
Exp_CG.Generate_CG_Output;
|
||||
|
||||
-- Validate unchecked conversions (using the values for size and
|
||||
-- alignment annotated by the backend where possible).
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user