summaryrefslogtreecommitdiff
path: root/gcc/ada/s-stalib.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-08-02 14:39:06 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-08-02 14:39:06 +0000
commit4a473cb984ee38140d0b05541e95a90f6507c95b (patch)
tree3ed100ea6f52f8e75b9c390d9b63d1834d2a0a1c /gcc/ada/s-stalib.ads
parent649455a4336868a1955d0f1d3e38bcbff066b41c (diff)
downloadgcc-4a473cb984ee38140d0b05541e95a90f6507c95b.tar.gz
2011-08-02 Javier Miranda <miranda@adacore.com>
* exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode. 2011-08-02 Robert Dewar <dewar@adacore.com> * s-imenne.ads: Minor reformatting. 2011-08-02 Robert Dewar <dewar@adacore.com> * a-stunau.ads: Add pragma Suppress_Initialization for Big_String * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed * s-stalib.ads: Add pragma Suppress_Initialization for Big_String 2011-08-02 Robert Dewar <dewar@adacore.com> * einfo.ads (Materialize_Entity): Document this is only for renamings * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate required debug information in the case where we transform the object declaration into a renaming declaration. * exp_ch4.adb (Expand_Concatenate): Generate debug info for result object * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of Materialize_Entity. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177162 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/s-stalib.ads')
-rw-r--r--gcc/ada/s-stalib.ads14
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ada/s-stalib.ads b/gcc/ada/s-stalib.ads
index 6b3d8645c63..4f1b90a6ed6 100644
--- a/gcc/ada/s-stalib.ads
+++ b/gcc/ada/s-stalib.ads
@@ -57,9 +57,19 @@ package System.Standard_Library is
pragma Preelaborate_05;
pragma Warnings (On);
- type Big_String_Ptr is access all String (Positive);
+ subtype Big_String is String (1 .. Positive'Last);
+ pragma Suppress_Initialization (Big_String);
+ -- Type used to obtain string access to given address. Initialization is
+ -- suppressed, since we never want to have variables of this type, and
+ -- we never want to attempt initialiazation of virtual variables of this
+ -- type (e.g. when pragma Normalize_Scalars is used).
+
+ type Big_String_Ptr is access all Big_String;
for Big_String_Ptr'Storage_Size use 0;
- -- A non-fat pointer type for null terminated strings
+ -- We use this access type to pass a pointer to an area of storage to be
+ -- accessed as a string. Of course when this pointer is used, it is the
+ -- responsibility of the accessor to ensure proper bounds. The storage
+ -- size clause ensures we do not allocate variables of this type.
function To_Ptr is
new Ada.Unchecked_Conversion (System.Address, Big_String_Ptr);