OSDN Git Service

2007-04-06 Gary Dismukes <dismukes@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 6 Apr 2007 09:18:27 +0000 (09:18 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 6 Apr 2007 09:18:27 +0000 (09:18 +0000)
* cstand.adb (Create_Standard): When the target's storage unit size is
greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
Standard_String.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123555 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/cstand.adb

index 5f4b203..fecaa2a 100644 (file)
@@ -683,6 +683,15 @@ package body CStand is
       Init_Size_Align    (Standard_String);
       Set_Alignment      (Standard_String, Uint_1);
 
+      --  On targets where a storage unit is larger than a byte (such as AAMP),
+      --  pragma Pack has a real effect on the representation of type String,
+      --  and the type must be marked as having a nonstandard representation.
+
+      if System_Storage_Unit > Uint_8 then
+         Set_Has_Non_Standard_Rep (Standard_String);
+         Set_Has_Pragma_Pack      (Standard_String);
+      end if;
+
       --  Set index type of String
 
       E_Id := First