diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-07-20 15:06:01 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-07-20 15:06:01 +0200 |
commit | 6fb4cddeee68c3284e62389aadc9e505092c11a9 (patch) | |
tree | d18d20b93c356cb855681e19f4cae6b09a57c073 /gcc/ada/sinfo.ads | |
parent | ae65d635df87446453628c005cacf2ed3850b9c6 (diff) | |
download | gcc-6fb4cddeee68c3284e62389aadc9e505092c11a9.tar.gz |
[multiple changes]
2009-07-20 Robert Dewar <dewar@adacore.com>
* vms_data.ads: Minor reformatting
* einfo.ads, einfo.adb (Parent_Subtype): Now allowed on record subtype,
applies to base type.
(Parent_Subtype): Now allowed on record subtype, applies to base type
* exp_ch5.adb (Expand_Assign_Record): Handle Componentwise_Assignment
for case of fully repped tagged type.
(Make_Tag_Ctrl_Assignment): Set Componentwise_Assignment and avoid
tag save/restore for fully repped tagged type case.
* exp_util.ads, exp_util.adb (Is_Fully_Repped_Tagged_Type): New function
* fe.h (Is_Fully_Repped_Tagged_Type): New function
* sem_ch13.adb (Analyze_Recorrd_Representation_Clause): Check for
overlap of tagged type components with parent type if parent type is
fully repped.
* sinfo.ads, sinfo.adb (Componentwise_Assignment): New flag
* sem_res.adb (Check_No_Direct_Boolean_Operators): Remove handling of
comparisons.
(Resolve_Comparison_Operators): Remove No_Direct_Boolean_Operators check
(Resolve_Equality_Op): Remove No_Direct_Boolean_Operators check
* gnat_rm.texi: Restriction No_Direct_Boolean_Operators includes only
logical operators (AND/OR/XOR), not comparison operators.
* sprint.ads: Minor reformatting
2009-07-20 Ed Schonberg <schonberg@adacore.com>
* sem_intr.adb (Check_Intrinsic_Call): For Import_Value and related
intrinsics, check that argument is a string literal, rather than
checking for staticness.
From-SVN: r149811
Diffstat (limited to 'gcc/ada/sinfo.ads')
-rw-r--r-- | gcc/ada/sinfo.ads | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/ada/sinfo.ads b/gcc/ada/sinfo.ads index 5ba4571f0b8..737f7b66bb3 100644 --- a/gcc/ada/sinfo.ads +++ b/gcc/ada/sinfo.ads @@ -679,6 +679,16 @@ package Sinfo is -- Sem_Aggr for the specific conditions under which an aggregate has this -- flag set. See also the flag Static_Processing_OK. + -- Componentwise_Assignment (Flag14-Sem) + -- Present in N_Assignment_Statement nodes. Set for a record assignment + -- where all that needs doing is to expand it into component-by-component + -- assignments. This is used internally for the case of tagged types with + -- rep clauses, where we need to avoid recursion (we don't want to try to + -- generate a call to the primitive operation, because this is the case + -- where we are compiling the primitive operation). Note that when we are + -- expanding component assignments in this case, we never assign the _tag + -- field, but we recursively assign components of the parent type. + -- Condition_Actions (List3-Sem) -- This field appears in else-if nodes and in the iteration scheme node -- for while loops. This field is only used during semantic processing to @@ -3861,6 +3871,7 @@ package Sinfo is -- Forwards_OK (Flag5-Sem) -- Backwards_OK (Flag6-Sem) -- No_Ctrl_Actions (Flag7-Sem) + -- Componentwise_Assignment (Flag14-Sem) -- Note: if a range check is required, then the Do_Range_Check flag -- is set in the Expression (right hand side), with the check being @@ -7643,6 +7654,9 @@ package Sinfo is function Component_Name (N : Node_Id) return Node_Id; -- Node1 + function Componentwise_Assignment + (N : Node_Id) return Boolean; -- Flag14 + function Condition (N : Node_Id) return Node_Id; -- Node1 @@ -8537,6 +8551,9 @@ package Sinfo is procedure Set_Component_Name (N : Node_Id; Val : Node_Id); -- Node1 + procedure Set_Componentwise_Assignment + (N : Node_Id; Val : Boolean := True); -- Flag14 + procedure Set_Condition (N : Node_Id; Val : Node_Id); -- Node1 @@ -10983,6 +11000,7 @@ package Sinfo is pragma Inline (Component_Items); pragma Inline (Component_List); pragma Inline (Component_Name); + pragma Inline (Componentwise_Assignment); pragma Inline (Condition); pragma Inline (Condition_Actions); pragma Inline (Config_Pragmas); @@ -11278,6 +11296,7 @@ package Sinfo is pragma Inline (Set_Component_Items); pragma Inline (Set_Component_List); pragma Inline (Set_Component_Name); + pragma Inline (Set_Componentwise_Assignment); pragma Inline (Set_Condition); pragma Inline (Set_Condition_Actions); pragma Inline (Set_Config_Pragmas); |