summaryrefslogtreecommitdiff
path: root/gcc/ada/atree.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2010-06-23 06:11:20 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2010-06-23 06:11:20 +0000
commit5a44b136feb61bbde8d58721533ccfe5cd5aa41d (patch)
treea113ff1fa79d32ab0316b4d56173faae6ce7c95a /gcc/ada/atree.adb
parent92940d4e46661a7632770b2835426c4ed9e98845 (diff)
downloadgcc-5a44b136feb61bbde8d58721533ccfe5cd5aa41d.tar.gz
2010-06-23 Robert Dewar <dewar@adacore.com>
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Properly handle checking returns in generic case. (Check_Missing_Return): New procedure. 2010-06-23 Robert Dewar <dewar@adacore.com> * bindgen.adb, switch-b.adb: Minor reformatting. 2010-06-23 Javier Miranda <miranda@adacore.com> * frontend.adb (Frontend): Add call to initialize the new package SCIL_LL. * exp_ch7.adb (Wrap_Transient_Expression): Remove call to Adjust_SCIL_Node. (Wrap_Transient_Statement): Remove call to Adjust_SCIL_Node. * sem_ch5.adb (Analyze_Iteration_Scheme.Process_Bounds): Remove call to Adjust_SCIL_Node. * exp_util.adb (Insert_Actions): Remove code for N_SCIL_Dispatch_Table_Object_Init and N_SCIL_Tag_Init nodes. (Remove_Side_Effects): Remove calls to Adjust_SCIL_Node. * sinfo.adb (SCIL_Entity, SCIL_Tag_Value): Remove checks on N_SCIL_Tag_Init and N_SCIL_Dispatch_Table_Object_Init in the assertion. (SCIL_Related_Node, Set_SCIL_Related_Node): Removed. * sinfo.ads (SCIL_Related_Node): Field removed. (N_SCIL_Dispatch_Table_Object_Init): Node removed. (N_SCIL_Tag_Init): Node removed. * sem_scil.ads, sem_scil.adb (Adjust_SCIL_Node): Removed. (Check_SCIL_Node): New implementation. (Find_SCIL_Node): Removed. * sem.adb (Analyze): Remove management of N_SCIL_Dispatch_Table_Object_Init and N_SCIL_Tag_Init nodes. * sem_util.adb (Insert_Explicit_Dereference): Remove call to Adjust_SCIL_Node. * exp_ch4.adb (Expand_N_In): Code cleanup: remove call to Set_SCIL_Related_Node and avoid adding the SCIL node before the referenced node using Insert_Action because this is not longer required. (Expand_Short_Circuit_Operator): Remove call to SCIL node. * exp_ch6.adb (Expand_Call): Remove call to Adjust_SCIL_Node. * sem_ch4.adb (Analyze_Type_Conversion): Remove call to Adjust_SCIL_Node * exp_disp.adb (Expand_Dispatching_Call): Minor code reorganization because we no longer require to generate the SCIL node before the call. (Make_DT): Remove generation of SCI_Dispatch_Table_Object_Init node. Remove calls to Set_SCIL_Related_Node and avoid adding the SCIL nodes before the referenced node using Insert_Action because this is not longer required. * atree.adb (Allocate_Initialize_Node, Replace, Rewrite): Add call to update the SCIL_Node field. * sprint.adb (Sprint_Node_Actual): Remove code for N_SCIL_Dispatch_Table_Object_Init and N_SCIL_Tag_Init nodes. * treepr.adb (Print_Node): Print the SCIL node field (if available). * exp_ch3.adb (Build_Init_Procedure): Remove generation of SCIL_Tag_Init nodes. * scil_ll.ads, scil_ll.adb: New files. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161244 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/atree.adb')
-rw-r--r--gcc/ada/atree.adb21
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/ada/atree.adb b/gcc/ada/atree.adb
index 8bf09cb866c..c0c5bd8dde9 100644
--- a/gcc/ada/atree.adb
+++ b/gcc/ada/atree.adb
@@ -38,8 +38,10 @@ pragma Style_Checks (All_Checks);
with Debug; use Debug;
with Nlists; use Nlists;
+with Opt; use Opt;
with Output; use Output;
with Sinput; use Sinput;
+with SCIL_LL; use SCIL_LL;
with Tree_IO; use Tree_IO;
package body Atree is
@@ -531,6 +533,13 @@ package body Atree is
Orig_Nodes.Set_Last (Nodes.Last);
Allocate_List_Tables (Nodes.Last);
+
+ -- Update the SCIL_Node field (if available)
+
+ if Generate_SCIL then
+ Set_SCIL_Node (New_Id, Get_SCIL_Node (Src));
+ end if;
+
return New_Id;
end Allocate_Initialize_Node;
@@ -1570,6 +1579,12 @@ package body Atree is
-- to Rewrite if there were an intention to save the original node.
Orig_Nodes.Table (Old_Node) := Old_Node;
+
+ -- Update the SCIL_Node field (if available)
+
+ if Generate_SCIL then
+ Set_SCIL_Node (Old_Node, Get_SCIL_Node (New_Node));
+ end if;
end Replace;
-------------
@@ -1628,6 +1643,12 @@ package body Atree is
end if;
Fix_Parents (Ref_Node => New_Node, Fix_Node => Old_Node);
+
+ -- Update the SCIL_Node field (if available)
+
+ if Generate_SCIL then
+ Set_SCIL_Node (Old_Node, Get_SCIL_Node (New_Node));
+ end if;
end Rewrite;
-------------------------