[Bug ada/63725] New: Scalar_Storage_Order is required for nested string types, but cannot be added to those types
daniel.merrill at psware dot com
gcc-bugzilla@gcc.gnu.org
Mon Nov 3 16:05:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63725
Bug ID: 63725
Summary: Scalar_Storage_Order is required for nested string
types, but cannot be added to those types
Product: gcc
Version: 4.9.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ada
Assignee: unassigned at gcc dot gnu.org
Reporter: daniel.merrill at psware dot com
Created attachment 33878
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33878&action=edit
demonstrates the problem with nested string types and scalar storage order
Target: i686-pc-linux-gnu
Configured with: ../configure --enable-languages=c,c++,ada --disable-multilib
--
with-gcc --with-gnu-ld --with-gnu-as --target=i686-pc-linux-gnu
--prefix=/c/gcc-
ade -v --with-sysroot=/c/gcc-ade/i686-pc-linux-gnu
--includedir=/c/gcc-ade/i686-
pc-linux-gnu/usr/include
Thread model: posix
gcc version 4.10.0 20140706 (experimental) (GCC)
This is a build of the svn://gcc.gnu.org/svn/gcc/branches/scalar-storage-order
branch.
when the following is defined and compiled with "gnatmake main.adb":
subtype string_type is string (1..15);
type string_array is array (1..2) of string_type;
for string_array'Scalar_Storage_Order use System.High_Order_First;
type BigEndianInt32Array is array (1..10) of int32;
type bigEndianType is record
ThirtyTwoBits : int32;
SixteenBits : int16;
TestStrings : string_array;
end record;
for bigEndianType use record
ThirtyTwoBits at 0 range 0 .. 31;
SixteenBits at 0 range 32 .. 47;
TestStrings at 0 range 48 .. 79;
end record;
for bigEndianType'Bit_Order use System.High_Order_First;
for bigEndianType'Scalar_Storage_Order use System.High_Order_First;
the following compiler error is produced:
main.adb:17:04: nested composite must have explicit scalar storage order
You are unable to fix this because the nested type is a subtype of string and
you cannot define a scalar_storage_order attribute for a subtype.
More information about the Gcc-bugs
mailing list