types.ads (Mechanism_Type): Change range back to -18 ..
authorRobert Dewar <dewar@adacore.com>
Tue, 29 Jul 2014 14:51:48 +0000 (14:51 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 29 Jul 2014 14:51:48 +0000 (16:51 +0200)
* 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

gcc/ada/ChangeLog
gcc/ada/types.ads

index eb1e9f76cb38013d21e19db84b9b2a6861d02644..0a45f087259fcdacf259fc531ebd1cab700e89bf 100644 (file)
@@ -1,3 +1,9 @@
+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.
index bc2801026620fdce1faa27d487489fae454b8223..0070c6c20a9ec64931029bf985ca8167ab274144 100644 (file)
@@ -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 --