summaryrefslogtreecommitdiff
path: root/gcc/ada/sinfo.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2009-07-20 13:06:01 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2009-07-20 13:06:01 +0000
commitd2b860b429d3193f405e86e718daad04dd400807 (patch)
treed18d20b93c356cb855681e19f4cae6b09a57c073 /gcc/ada/sinfo.adb
parentacecfc91539df33c7fa9f6d8601efb4cb1437bb6 (diff)
downloadgcc-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.adb16
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