From 3c04da40217fd70dea865002a045625bc7a62fd6 Mon Sep 17 00:00:00 2001 From: Robert Dewar Date: Tue, 29 Jul 2014 14:51:48 +0000 Subject: [PATCH] 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 --- gcc/ada/ChangeLog | 6 ++++++ gcc/ada/types.ads | 10 ++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index eb1e9f76cb3..0a45f087259 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2014-07-29 Robert Dewar + + * 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 * gnat_rm.texi, sem_prag.adb: Minor reformatting. diff --git a/gcc/ada/types.ads b/gcc/ada/types.ads index bc280102662..0070c6c20a9 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 --