summaryrefslogtreecommitdiff
path: root/gcc/ada/frontend.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2009-07-29 08:43:58 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2009-07-29 08:43:58 +0000
commitef40be71e0683d4d602f3b4754d5337e9de6a041 (patch)
treefa0421e7d4dace9225998210eef8f448dfa1dbf2 /gcc/ada/frontend.adb
parentb8340ddc5b54f3dc851579e5b5805a136e44a176 (diff)
downloadgcc-ef40be71e0683d4d602f3b4754d5337e9de6a041.tar.gz
2009-07-29 Javier Miranda <miranda@adacore.com>
* frontend.adb (Frontend): Code cleanup. * exp_atag.ads, exp_atag.adb (Build_Get_Predefined_Prim_Op_Address): Rewriten as a procedure because it a new out-mode parameters to keep up-to-date the controlling tag node in the caller. (Build_Get_Prim_Op_Address): Rewriten as a procedure because it has a new out-mode parameter to keep up-to-date the controlling tag node in the caller. * exp_ch7.adb, sem_ch5.adb, exp_util.adb, sem_util.adb, exp_ch4.adb, exp_ch6.adb, sem_ch4.adb, exp_ch3.adb: Add new dependency on new package Sem_SCIL. * sem_aux.ads, sem_aux.adb (First_Non_SCIL_Node): Removed. Routine available in new package Sem_SCIL. (Next_Non_SCIL_Node): Ditto. * exp_disp.adb (Adjust_SCIL_Node): Removed. Routine available in new package Sem_SCIL. (Expand_Dispatching_Call): Update call to modified Exp_Atags routines plus complete decoration of SCIL dispatching node. (Find_SCIL_Node): Removed. Routine available in new package Sem_SCIL. * exp_disp.ads (Adjust_SCIL_Node): Removed. Routine available in new package Sem_SCIL. (Find_SCIL_Node): Removed. Routine available in new package Sem_SCIL. * exp_ch3.adb (Build_Init_Procedure): Fix comment. * sem_scil.ads, sem_scil.adb: New files. * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Addition of sem_scil.o. Update dependencies. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150199 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/frontend.adb')
-rw-r--r--gcc/ada/frontend.adb39
1 files changed, 3 insertions, 36 deletions
diff --git a/gcc/ada/frontend.adb b/gcc/ada/frontend.adb
index 8cb372a2552..581d977436a 100644
--- a/gcc/ada/frontend.adb
+++ b/gcc/ada/frontend.adb
@@ -46,12 +46,13 @@ with Prep;
with Prepcomp;
with Restrict; use Restrict;
with Rident; use Rident;
-with Rtsfind;
+with Rtsfind; use Rtsfind;
with Sprint;
with Scn; use Scn;
with Sem; use Sem;
with Sem_Aux;
with Sem_Ch8; use Sem_Ch8;
+with Sem_SCIL;
with Sem_Elab; use Sem_Elab;
with Sem_Prag; use Sem_Prag;
with Sem_Warn; use Sem_Warn;
@@ -63,40 +64,6 @@ with Tbuild; use Tbuild;
with Types; use Types;
procedure Frontend is
-
- -- Comment: I think SCIL processing is gettings scattered too much, this
- -- is a good case, why should the top level frontend driver be doing stuff
- -- at this level, seems wrong to me. I think we should introduce a new
- -- unit Sem_SCIL, and move a lot of this SCIL stuff there. ???
-
- function Check_SCIL_Node (N : Node_Id) return Traverse_Result;
- -- Process a single node during the tree traversal, verifying that field
- -- SCIL_Related_Node of SCIL dispatching call nodes reference subprogram
- -- calls.
-
- procedure Check_SCIL_Nodes is new Traverse_Proc (Check_SCIL_Node);
- -- The traversal procedure itself
-
- ---------------------
- -- Check_SCIL_Node --
- ---------------------
-
- function Check_SCIL_Node (N : Node_Id) return Traverse_Result is
- begin
- if Nkind (N) = N_SCIL_Dispatching_Call then
- if not Nkind_In (SCIL_Related_Node (N), N_Function_Call,
- N_Procedure_Call_Statement)
- then
- pragma Assert (False);
- raise Program_Error;
- end if;
-
- return Skip;
- else
- return OK;
- end if;
- end Check_SCIL_Node;
-
Config_Pragmas : List_Id;
-- Gather configuration pragmas
@@ -404,7 +371,7 @@ begin
-- dispatching calls reference subprogram calls.
if Generate_SCIL then
- pragma Debug (Check_SCIL_Nodes (Cunit (Main_Unit)));
+ pragma Debug (Sem_SCIL.Check_SCIL_Nodes (Cunit (Main_Unit)));
null;
end if;