aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRobert Dewar <dewar@adacore.com>2014-07-29 14:51:48 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2014-07-29 16:51:48 +0200
commit3c04da40217fd70dea865002a045625bc7a62fd6 (patch)
tree4bce812716969588f178c0f4536f4706f9a8c2fe /gcc
parent32ccbc2ac63bf3eba60391669ad30bcf461b08c0 (diff)
downloadgcc-3c04da40217fd70dea865002a045625bc7a62fd6.zip
gcc-3c04da40217fd70dea865002a045625bc7a62fd6.tar.gz
gcc-3c04da40217fd70dea865002a045625bc7a62fd6.tar.bz2
types.ads (Mechanism_Type): Change range back to -18 ..
* types.ads (Mechanism_Type): Change range back to -18 .. Int'Last with documentation that explains the need for this extended range (use by C_Pass_By_Copy). From-SVN: r213203
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/types.ads10
2 files changed, 14 insertions, 2 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index eb1e9f7..0a45f08 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,11 @@
2014-07-29 Robert Dewar <dewar@adacore.com>
+ * types.ads (Mechanism_Type): Change range back to -18 .. Int'Last with
+ documentation that explains the need for this extended range
+ (use by C_Pass_By_Copy).
+
+2014-07-29 Robert Dewar <dewar@adacore.com>
+
* gnat_rm.texi, sem_prag.adb: Minor reformatting.
2014-07-29 Sergey Rybin <rybin@adacore.com frybin>
diff --git a/gcc/ada/types.ads b/gcc/ada/types.ads
index bc28010..0070c6c 100644
--- a/gcc/ada/types.ads
+++ b/gcc/ada/types.ads
@@ -795,10 +795,16 @@ package Types is
-- mechanism. See specification of Sem_Mech for full details. The following
-- subtype is used to represent values of this type:
- subtype Mechanism_Type is Int range -18 .. 0;
+ subtype Mechanism_Type is Int range -18 .. Int'Last;
-- Type used to represent a mechanism value. This is a subtype rather than
-- a type to avoid some annoying processing problems with certain routines
- -- in Einfo (processing them to create the corresponding C).
+ -- in Einfo (processing them to create the corresponding C). The values in
+ -- the range -18 .. 0 are used to represent mechanism types declared as
+ -- named constants in the spec of Sem_Mech. Positive values are used for
+ -- the case of a pragma C_Pass_By_Copy that sets a threshold value for the
+ -- mechanism to be used. For example if pragma C_Pass_By_Copy (32) is given
+ -- then Default_C_Record_Mechanism is set to 32, and the meaning is to use
+ -- By_Reference if the size is greater than 32, and By_Copy otherwise.
------------------------------
-- Run-Time Exception Codes --