diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-07-20 13:06:01 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-07-20 13:06:01 +0000 |
commit | d2b860b429d3193f405e86e718daad04dd400807 (patch) | |
tree | d18d20b93c356cb855681e19f4cae6b09a57c073 /gcc/ada/sinfo.adb | |
parent | acecfc91539df33c7fa9f6d8601efb4cb1437bb6 (diff) | |
download | gcc-d2b860b429d3193f405e86e718daad04dd400807.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@149811 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sinfo.adb')
-rw-r--r-- | gcc/ada/sinfo.adb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ada/sinfo.adb b/gcc/ada/sinfo.adb index 2ed3ad3ff85..da6adb20072 100644 --- a/gcc/ada/sinfo.adb +++ b/gcc/ada/sinfo.adb @@ -464,6 +464,14 @@ package body Sinfo is return Node1 (N); end Component_Name; + function Componentwise_Assignment + (N : Node_Id) return Boolean is + begin + pragma Assert (False + or else NT (N).Nkind = N_Assignment_Statement); + return Flag14 (N); + end Componentwise_Assignment; + function Condition (N : Node_Id) return Node_Id is begin @@ -3271,6 +3279,14 @@ package body Sinfo is Set_Node1_With_Parent (N, Val); end Set_Component_Name; + procedure Set_Componentwise_Assignment + (N : Node_Id; Val : Boolean := True) is + begin + pragma Assert (False + or else NT (N).Nkind = N_Assignment_Statement); + Set_Flag14 (N, Val); + end Set_Componentwise_Assignment; + procedure Set_Condition (N : Node_Id; Val : Node_Id) is begin |