aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.7/gcc/ada/put_scos.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.7/gcc/ada/put_scos.adb')
-rw-r--r--gcc-4.7/gcc/ada/put_scos.adb273
1 files changed, 0 insertions, 273 deletions
diff --git a/gcc-4.7/gcc/ada/put_scos.adb b/gcc-4.7/gcc/ada/put_scos.adb
deleted file mode 100644
index 39fd04fcc..000000000
--- a/gcc-4.7/gcc/ada/put_scos.adb
+++ /dev/null
@@ -1,273 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT COMPILER COMPONENTS --
--- --
--- P U T _ S C O S --
--- --
--- B o d y --
--- --
--- Copyright (C) 2009-2012, 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 Par_SCO; use Par_SCO;
-with SCOs; use SCOs;
-with Snames; use Snames;
-
-procedure Put_SCOs is
- Current_SCO_Unit : SCO_Unit_Index := 0;
- -- Initial value must not be a valid unit index
-
- procedure Write_SCO_Initiate (SU : SCO_Unit_Index);
- -- Start SCO line for unit SU, also emitting SCO unit header if necessary
-
- procedure Output_Range (T : SCO_Table_Entry);
- -- Outputs T.From and T.To in line:col-line:col format
-
- procedure Output_Source_Location (Loc : Source_Location);
- -- Output source location in line:col format
-
- procedure Output_String (S : String);
- -- Output S
-
- ------------------
- -- Output_Range --
- ------------------
-
- procedure Output_Range (T : SCO_Table_Entry) is
- begin
- Output_Source_Location (T.From);
- Write_Info_Char ('-');
- Output_Source_Location (T.To);
- end Output_Range;
-
- ----------------------------
- -- Output_Source_Location --
- ----------------------------
-
- procedure Output_Source_Location (Loc : Source_Location) is
- begin
- Write_Info_Nat (Nat (Loc.Line));
- Write_Info_Char (':');
- Write_Info_Nat (Nat (Loc.Col));
- end Output_Source_Location;
-
- -------------------
- -- Output_String --
- -------------------
-
- procedure Output_String (S : String) is
- begin
- for J in S'Range loop
- Write_Info_Char (S (J));
- end loop;
- end Output_String;
-
- ------------------------
- -- Write_SCO_Initiate --
- ------------------------
-
- procedure Write_SCO_Initiate (SU : SCO_Unit_Index) is
- SUT : SCO_Unit_Table_Entry renames SCO_Unit_Table.Table (SU);
-
- begin
- if Current_SCO_Unit /= SU then
- Write_Info_Initiate ('C');
- Write_Info_Char (' ');
- Write_Info_Nat (SUT.Dep_Num);
- Write_Info_Char (' ');
-
- Output_String (SUT.File_Name.all);
-
- Write_Info_Terminate;
-
- Current_SCO_Unit := SU;
- end if;
-
- Write_Info_Initiate ('C');
- end Write_SCO_Initiate;
-
--- Start of processing for Put_SCOs
-
-begin
- -- Loop through entries in SCO_Unit_Table. Note that entry 0 is by
- -- convention present but unused.
-
- for U in 1 .. SCO_Unit_Table.Last loop
- declare
- SUT : SCO_Unit_Table_Entry renames SCO_Unit_Table.Table (U);
-
- Start : Nat;
- Stop : Nat;
-
- begin
- Start := SUT.From;
- Stop := SUT.To;
-
- -- Loop through SCO entries for this unit
-
- loop
- exit when Start = Stop + 1;
- pragma Assert (Start <= Stop);
-
- Output_SCO_Line : declare
- T : SCO_Table_Entry renames SCO_Table.Table (Start);
- Continuation : Boolean;
-
- Ctr : Nat;
- -- Counter for statement entries
-
- begin
- case T.C1 is
-
- -- Statements (and dominance markers)
-
- when 'S' | '>' =>
- Ctr := 0;
- Continuation := False;
- loop
- if Ctr = 0 then
- Write_SCO_Initiate (U);
- if not Continuation then
- Write_Info_Char ('S');
- Continuation := True;
- else
- Write_Info_Char ('s');
- end if;
- end if;
-
- Write_Info_Char (' ');
-
- declare
- Sent : SCO_Table_Entry
- renames SCO_Table.Table (Start);
- begin
- if Sent.C1 = '>' then
- Write_Info_Char (Sent.C1);
- end if;
-
- if Sent.C2 /= ' ' then
- Write_Info_Char (Sent.C2);
-
- if Sent.C1 = 'S'
- and then (Sent.C2 = 'P' or else Sent.C2 = 'p')
- and then Sent.Pragma_Name /= Unknown_Pragma
- then
- -- Strip leading "PRAGMA_"
-
- declare
- Pnam : constant String :=
- Sent.Pragma_Name'Img;
- begin
- Output_String
- (Pnam (Pnam'First + 7 .. Pnam'Last));
- Write_Info_Char (':');
- end;
- end if;
- end if;
-
- -- For dependence markers (except E), output sloc.
- -- For >E and all statement entries, output sloc
- -- range.
-
- if Sent.C1 = '>' and then Sent.C2 /= 'E' then
- Output_Source_Location (Sent.From);
- else
- Output_Range (Sent);
- end if;
- end;
-
- -- Increment entry counter (up to 6 entries per line,
- -- continuation lines are marked Cs).
-
- Ctr := Ctr + 1;
- if Ctr = 6 then
- Write_Info_Terminate;
- Ctr := 0;
- end if;
-
- exit when SCO_Table.Table (Start).Last;
- Start := Start + 1;
- end loop;
-
- if Ctr > 0 then
- Write_Info_Terminate;
- end if;
-
- -- Decision
-
- when 'E' | 'G' | 'I' | 'P' | 'W' | 'X' =>
- Start := Start + 1;
-
- -- For disabled pragma, or nested decision therein, skip
- -- decision output.
-
- if SCO_Pragma_Disabled (T.Pragma_Sloc) then
- while not SCO_Table.Table (Start).Last loop
- Start := Start + 1;
- end loop;
-
- -- For all other cases output decision line
-
- else
- Write_SCO_Initiate (U);
- Write_Info_Char (T.C1);
-
- if T.C1 /= 'X' then
- Write_Info_Char (' ');
- Output_Source_Location (T.From);
- end if;
-
- -- Loop through table entries for this decision
-
- loop
- declare
- T : SCO_Table_Entry
- renames SCO_Table.Table (Start);
-
- begin
- Write_Info_Char (' ');
-
- if T.C1 = '!' or else
- T.C1 = '&' or else
- T.C1 = '|'
- then
- Write_Info_Char (T.C1);
- Output_Source_Location (T.From);
-
- else
- Write_Info_Char (T.C2);
- Output_Range (T);
- end if;
-
- exit when T.Last;
- Start := Start + 1;
- end;
- end loop;
-
- Write_Info_Terminate;
- end if;
-
- when others =>
- raise Program_Error;
- end case;
- end Output_SCO_Line;
-
- Start := Start + 1;
- end loop;
- end;
- end loop;
-end Put_SCOs;