diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-06-17 15:50:40 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-06-17 15:50:40 +0000 |
commit | 6b73a73b84467c75fda165cb2106963904547222 (patch) | |
tree | c9f3f6e4c77ca57ccafa67fbb4e7460cecb5e071 /gcc/ada/sinfo.ads | |
parent | 96ba5229409cfd7a4dfb1210a3952f16ee56e623 (diff) | |
download | ppe42-gcc-6b73a73b84467c75fda165cb2106963904547222.tar.gz ppe42-gcc-6b73a73b84467c75fda165cb2106963904547222.zip |
2010-06-17 Robert Dewar <dewar@adacore.com>
* exp_ch4.ads: Minor code reorganization (specs in alpha order).
2010-06-17 Robert Dewar <dewar@adacore.com>
* debug.adb: New debug flag -gnatd.X to use Expression_With_Actions
node when expanding short circuit form with actions present for right
opnd.
* exp_ch4.adb: Minor reformatting
(Expand_Short_Circuit_Operator): Use new Expression_With_Actions node if
right opeand has actions present, and debug flag -gnatd.X is set.
* exp_util.adb (Insert_Actions): Handle case of Expression_With_Actions
node.
* nlists.adb (Prepend_List): New procedure
(Prepend_List_To): New procedure
* nlists.ads (Prepend_List): New procedure
(Prepend_List_To): New procedure
* sem.adb: Add processing for Expression_With_Actions
* sem_ch4.adb (Analyze_Expression_With_Actions): New procedure
* sem_ch4.ads (Analyze_Expression_With_Actions): New procedure
* sem_res.adb: Add processing for Expression_With_Actions.
* sem_scil.adb: Add processing for Expression_With_Actions
* sinfo.ads, sinfo.adb (N_Expression_With_Actions): New node.
* sprint.ads, sprint.adb: Add processing for Expression_With_Actions
2010-06-17 Doug Rupp <rupp@adacore.com>
* sem_intr.adb (Check_Intrinsic_Operator): Check that the types
involved both have underlying integer types.
* exp_intr.adb (Expand_Binary_Operator) New subprogram to expand a call
to an intrinsic operator when the operand types or sizes are not
identical.
* s-auxdec-vms_64.ads: Revert "+" "-" ops back to Address now that
64/32 Address/Integer works.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160929 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sinfo.ads')
-rw-r--r-- | gcc/ada/sinfo.ads | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gcc/ada/sinfo.ads b/gcc/ada/sinfo.ads index 9a95b1385d9..f6754a8aae7 100644 --- a/gcc/ada/sinfo.ads +++ b/gcc/ada/sinfo.ads @@ -6611,6 +6611,38 @@ package Sinfo is -- Has_Private_View (Flag11-Sem) set in generic units. -- plus fields for expression + ----------------------------- + -- Expression with Actions -- + ----------------------------- + + -- This node is created by the analyzer/expander to handle some + -- expansion cases, notably short circuit forms where there are + -- actions associated with the right hand operand. + + -- The N_Expression_With_Actions node represents an expression with + -- an associated set of actions (which are executable statements). + -- The required semantics is that the set of actions is executed in + -- the order in which it appears just before the expression is + -- evaluated (and these actions must only be executed if the value + -- of the expression is evaluated). The node is considered to be + -- a subexpression, whose value is the value of the Expression after + -- executing all the actions. + + -- Sprint syntax: do + -- action; + -- action; + -- ... + -- action; + -- in expression end + + -- N_Expression_With_Actions + -- Actions (List1) + -- Expression (Node3) + -- plus fields for expression + + -- Note: the actions list is always non-null, since we would + -- never have created this node if there weren't some actions. + -------------------- -- Free Statement -- -------------------- @@ -7195,6 +7227,7 @@ package Sinfo is N_Conditional_Expression, N_Explicit_Dereference, + N_Expression_With_Actions, N_Function_Call, N_Indexed_Component, N_Integer_Literal, @@ -10984,6 +11017,13 @@ package Sinfo is 4 => False, -- Entity (Node4-Sem) 5 => False), -- Etype (Node5-Sem) + N_Expression_With_Actions => + (1 => True, -- Actions (List1) + 2 => False, -- unused + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => False), -- unused + N_Free_Statement => (1 => False, -- Storage_Pool (Node1-Sem) 2 => False, -- Procedure_To_Call (Node2-Sem) |