aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/exp_attr.adb9
-rw-r--r--gcc/ada/s-ststop.adb13
2 files changed, 9 insertions, 13 deletions
diff --git a/gcc/ada/exp_attr.adb b/gcc/ada/exp_attr.adb
index 1637863..006b8f8 100644
--- a/gcc/ada/exp_attr.adb
+++ b/gcc/ada/exp_attr.adb
@@ -5314,7 +5314,8 @@ package body Exp_Attr is
(Typ : Entity_Id;
Nam : TSS_Name_Type) return Entity_Id
is
- Ent : constant Entity_Id := TSS (Typ, Nam);
+ Base_Typ : constant Entity_Id := Base_Type (Typ);
+ Ent : constant Entity_Id := TSS (Typ, Nam);
begin
if Present (Ent) then
@@ -5340,7 +5341,7 @@ package body Exp_Attr is
-- String as defined in package Ada
- if Typ = Standard_String then
+ if Base_Typ = Standard_String then
if Nam = TSS_Stream_Input then
return RTE (RE_String_Input);
@@ -5356,7 +5357,7 @@ package body Exp_Attr is
-- Wide_String as defined in package Ada
- elsif Typ = Standard_Wide_String then
+ elsif Base_Typ = Standard_Wide_String then
if Nam = TSS_Stream_Input then
return RTE (RE_Wide_String_Input);
@@ -5372,7 +5373,7 @@ package body Exp_Attr is
-- Wide_Wide_String as defined in package Ada
- elsif Typ = Standard_Wide_Wide_String then
+ elsif Base_Typ = Standard_Wide_Wide_String then
if Nam = TSS_Stream_Input then
return RTE (RE_Wide_Wide_String_Input);
diff --git a/gcc/ada/s-ststop.adb b/gcc/ada/s-ststop.adb
index 8d18108..88e29f0 100644
--- a/gcc/ada/s-ststop.adb
+++ b/gcc/ada/s-ststop.adb
@@ -92,17 +92,12 @@ package body System.Strings.Stream_Ops is
subtype String_Block is String_Type (1 .. C_In_Default_Block);
- -- Block IO is used in the following two scenarios:
-
- -- 1) When the size of the character type equals that of the stream
- -- element type, regardless of endianness.
-
- -- 2) When using the standard stream IO routines for elementary
- -- types which guarantees the same endianness over partitions.
+ -- Block IO is used when the low level can support block IO and the size
+ -- of the character type is a multiple of the stream element type.
Use_Block_IO : constant Boolean :=
- C_Size = SE_Size
- or else Stream_Attributes.Block_IO_OK;
+ Stream_Attributes.Block_IO_OK
+ and then C_Size mod SE_Size = 0;
-- Conversions to and from Default_Block