summaryrefslogtreecommitdiff
path: root/gcc/ada/exp_intr.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-06 10:19:06 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-06 10:19:06 +0000
commit5542710d9721b6e72ad27f80a8200a310780c2ae (patch)
tree70f1831653300095e4ad7c8d1f70957a7acbb97e /gcc/ada/exp_intr.adb
parentc85e352b333da4d65db122702473a7cc9a04d491 (diff)
downloadgcc-5542710d9721b6e72ad27f80a8200a310780c2ae.tar.gz
2014-02-06 Eric Botcazou <ebotcazou@adacore.com>
* gnat_rm.texi: Small wording tweak. 2014-02-06 Pascal Obry <obry@adacore.com> * prj-attr.adb, projects.texi, snames.ads-tmpl: Add Included_Patterns and Included_Artifact_Patterns attribute definitions. 2014-02-06 Yannick Moy <moy@adacore.com> * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set SPARK_Mode pragma component for all subprograms, including stubs. 2014-02-06 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch10.adb (Analyze_Package_Body_Stub): Maintain the configuration options of the enclosing context in a stack-like fasion. (Analyze_Subprogram_Body_Stub): Maintain the configuration options of the enclosing context in a stack-like fashion. 2014-02-06 Robert Dewar <dewar@adacore.com> * debug.adb: -gnatd.u sets Modify_Tree_For C * exp_ch4.adb (Expand_N_Op_Rotate_Left): Expand out if Modify_Tree_For_C (Expand_N_Op_Rotate_Right): ditto. (Expand_N_Op_Arithmetic_Right_Shift): ditto. * exp_intr.adb (Expand_Shift): Call expander so we do Modify_Tree_For_C expansions. * gnat1drv.adb (Adjust_Global_Switches): Set Modify_Tree_For_C if -gnatd.u set. 2014-02-06 Fedor Rybin <frybin@adacore.com> * prj-proc.ads (Tree_Loaded_Callback): new type Callback used after the phase 1 of the processing of each aggregated project to get access to project trees of aggregated projects. (Process_Project_Tree_Phase_1): new parameter On_New_Tree_Loaded If specified, On_New_Tree_Loaded is called after each aggregated project has been processed succesfully. (Process): new parameter On_New_Tree_Loaded. * prj-proc.adb (Process_Aggregated_Projects): On_New_Tree_Loaded callback added after processing of each aggregated project. (Recursive_Process): new parameter On_New_Tree_Loaded. (Process): new parameter On_New_Tree_Loaded. (Process_Project_Tree_Phase_1): new parameter On_New_Tree_Loaded. * prj-conf.ads (Parse_Project_And_Apply_Config): new parameter On_New_Tree_Loaded. * prj-conf.adb (Parse_Project_And_Apply_Config): new parameter On_New_Tree_Loaded. 2014-02-06 Bob Duff <duff@adacore.com> * gnat_ugn.texi: Implement --insert-blank-lines and --preserve-blank-lines switches. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207545 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_intr.adb')
-rw-r--r--gcc/ada/exp_intr.adb12
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ada/exp_intr.adb b/gcc/ada/exp_intr.adb
index 6f9df388362..fa0ced2f08e 100644
--- a/gcc/ada/exp_intr.adb
+++ b/gcc/ada/exp_intr.adb
@@ -27,6 +27,7 @@ with Atree; use Atree;
with Checks; use Checks;
with Einfo; use Einfo;
with Elists; use Elists;
+with Expander; use Expander;
with Exp_Atag; use Exp_Atag;
with Exp_Ch4; use Exp_Ch4;
with Exp_Ch7; use Exp_Ch7;
@@ -643,7 +644,7 @@ package body Exp_Intr is
-- As a result, whenever a shift is used in the source program, it will
-- remain as a call until converted by this routine to the operator node
- -- form which Gigi is expecting to see.
+ -- form which the back end is expecting to see.
-- Note: it is possible for the expander to generate shift operator nodes
-- directly, which will be analyzed in the normal manner by calling Analyze
@@ -681,8 +682,15 @@ package body Exp_Intr is
Rewrite (N, Snode);
Set_Analyzed (N);
- else
+ -- However, we do call the expander, so that the expansion for
+ -- rotates and shift_right_arithmetic happens if Modify_Tree_For_C
+ -- is set.
+
+ if Expander_Active then
+ Expand (N);
+ end if;
+ else
-- If the context type is not the type of the operator, it is an
-- inherited operator for a derived type. Wrap the node in a
-- conversion so that it is type-consistent for possible further