aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sinfo.ads
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2014-07-16 16:29:36 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2014-07-16 16:29:36 +0200
commitb07b7acecfd5b064a30b15b4767401ff56a60da7 (patch)
tree270eac77157878d2ac1d4ba2c4b9f07f95787c34 /gcc/ada/sinfo.ads
parent904aac81db2a08a89fcfd6321cdf5b1f328d94ee (diff)
downloadgcc-b07b7acecfd5b064a30b15b4767401ff56a60da7.zip
gcc-b07b7acecfd5b064a30b15b4767401ff56a60da7.tar.gz
gcc-b07b7acecfd5b064a30b15b4767401ff56a60da7.tar.bz2
[multiple changes]
2014-07-16 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch7.adb (Process_Declarations): Reinstate the check on a hook object to ensure that the related transient declaration is finalizable. * exp_util.adb (Is_Aliased): Do not consider expresison with actions as a special context. (Requires_Cleanup_Actions): Reinstate the check on a hook object to ensure that the related transient declaration is finalizable. 2014-07-16 Robert Dewar <dewar@adacore.com> * checks.ads, checks.adb (Allocation_Checks_Suppressed): New function. * snames.ads-tmpl: Add Allocation_Check to list of check names. * types.ads: Add Allocation_Check to list of check names. 2014-07-16 Thomas Quinot <quinot@adacore.com> * sem_util.adb (Enter_Name): replace bogus test for presence of Corresponding_Remote_Type with correct test on Ekind. * sem_res.adb (Valid_Conversion): ditto; also clarify validity of calls to Corresponding_ Remote_Type (documentation fix). 2014-07-16 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Document illegal case of Unrestricted_Access. * sem_attr.adb (Analyze_Access_Attribute): Set_Non_Aliased_Prefix where it applies. (Resolve_Attribute, case Access): Flag illegal Unrestricted_Access use. * sinfo.ads, sinfo.adb (Non_Aliased_Prefix): New flag. From-SVN: r212655
Diffstat (limited to 'gcc/ada/sinfo.ads')
-rw-r--r--gcc/ada/sinfo.ads19
1 files changed, 18 insertions, 1 deletions
diff --git a/gcc/ada/sinfo.ads b/gcc/ada/sinfo.ads
index 73dea2a..521ab0b 100644
--- a/gcc/ada/sinfo.ads
+++ b/gcc/ada/sinfo.ads
@@ -1809,6 +1809,13 @@ package Sinfo is
-- is used for properly setting out of range values for use by pragmas
-- Initialize_Scalars and Normalize_Scalars.
+ -- Non_Aliased_Prefix (Flag18-Sem)
+ -- Present in N_Attribute_Reference nodes. Set only for the case of an
+ -- Unrestricted_Access reference whose prefix is non-aliased, which is
+ -- the case that is permitted for Unrestricted_Access except when the
+ -- expected type is a thin pointer to unconstrained array. This flag is
+ -- to assist in detecting this illegal use of Unrestricted_Access.
+
-- Original_Discriminant (Node2-Sem)
-- Present in identifiers. Used in references to discriminants that
-- appear in generic units. Because the names of the discriminants may be
@@ -3621,8 +3628,10 @@ package Sinfo is
-- Associated_Node (Node4-Sem)
-- Do_Overflow_Check (Flag17-Sem)
-- Header_Size_Added (Flag11-Sem)
+ -- Must_Be_Byte_Aligned (Flag14-Sem)
+ -- Non_Aliased_Prefix (Flag18-Sem)
-- Redundant_Use (Flag13-Sem)
- -- Must_Be_Byte_Aligned (Flag14)
+
-- plus fields for expression
-- Note: in Modify_Tree_For_C mode, Max and Min attributes are expanded
@@ -9242,6 +9251,9 @@ package Sinfo is
function No_Truncation
(N : Node_Id) return Boolean; -- Flag17
+ function Non_Aliased_Prefix
+ (N : Node_Id) return Boolean; -- Flag18
+
function Null_Present
(N : Node_Id) return Boolean; -- Flag13
@@ -10244,6 +10256,9 @@ package Sinfo is
procedure Set_No_Truncation
(N : Node_Id; Val : Boolean := True); -- Flag17
+ procedure Set_Non_Aliased_Prefix
+ (N : Node_Id; Val : Boolean := True); -- Flag18
+
procedure Set_Null_Present
(N : Node_Id; Val : Boolean := True); -- Flag13
@@ -12510,6 +12525,7 @@ package Sinfo is
pragma Inline (No_Initialization);
pragma Inline (No_Minimize_Eliminate);
pragma Inline (No_Truncation);
+ pragma Inline (Non_Aliased_Prefix);
pragma Inline (Null_Present);
pragma Inline (Null_Exclusion_Present);
pragma Inline (Null_Exclusion_In_Return_Present);
@@ -12840,6 +12856,7 @@ package Sinfo is
pragma Inline (Set_No_Initialization);
pragma Inline (Set_No_Minimize_Eliminate);
pragma Inline (Set_No_Truncation);
+ pragma Inline (Set_Non_Aliased_Prefix);
pragma Inline (Set_Null_Exclusion_Present);
pragma Inline (Set_Null_Exclusion_In_Return_Present);
pragma Inline (Set_Null_Present);