summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-07 11:38:06 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-07 11:38:06 +0000
commit02433bf7f097de2d710298811b1626a969f61060 (patch)
treeac0006f43531b02d2b839144ae3cd43264776aeb /gcc/testsuite/gnat.dg
parent664dfc7850f8dd5b7dc17da74821abf2be9091b1 (diff)
downloadgcc-02433bf7f097de2d710298811b1626a969f61060.tar.gz
* exp_pakd.adb (Create_Packed_Array_Type): Always use a modular type
if the size is small enough. Propagate the alignment if there is an alignment clause on the original array type. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype> Deal with under-aligned packed array types. Copy the size onto the justified modular type and don't lay it out again. Likewise for the padding type built for other under-aligned subtypes. * gcc-interface/utils.c (finish_record_type): Do not set a default mode on the type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158056 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gnat.dg')
-rw-r--r--gcc/testsuite/gnat.dg/bit_packed_array1.adb (renamed from gcc/testsuite/gnat.dg/bit_packed_array.adb)4
-rw-r--r--gcc/testsuite/gnat.dg/bit_packed_array1.ads (renamed from gcc/testsuite/gnat.dg/bit_packed_array.ads)7
-rw-r--r--gcc/testsuite/gnat.dg/bit_packed_array4.adb11
-rw-r--r--gcc/testsuite/gnat.dg/bit_packed_array4.ads18
4 files changed, 35 insertions, 5 deletions
diff --git a/gcc/testsuite/gnat.dg/bit_packed_array.adb b/gcc/testsuite/gnat.dg/bit_packed_array1.adb
index fcdd69eb47b..10fd2921f54 100644
--- a/gcc/testsuite/gnat.dg/bit_packed_array.adb
+++ b/gcc/testsuite/gnat.dg/bit_packed_array1.adb
@@ -3,7 +3,7 @@
-- { dg-do compile }
-package body Bit_Packed_Array is
+package body Bit_Packed_Array1 is
procedure Generate_Callforward is
Compiler_Crash : String :=
@@ -13,4 +13,4 @@ package body Bit_Packed_Array is
null;
end Generate_Callforward;
-end Bit_Packed_Array;
+end Bit_Packed_Array1;
diff --git a/gcc/testsuite/gnat.dg/bit_packed_array.ads b/gcc/testsuite/gnat.dg/bit_packed_array1.ads
index 525536ee646..a0d5ab7a8df 100644
--- a/gcc/testsuite/gnat.dg/bit_packed_array.ads
+++ b/gcc/testsuite/gnat.dg/bit_packed_array1.ads
@@ -1,13 +1,14 @@
with Interfaces;
-package Bit_Packed_Array is
+package Bit_Packed_Array1 is
type laser_illuminator_code_group_t is (zero, one);
pragma Convention (C, laser_illuminator_code_group_t);
subtype lic_array_index_t is Interfaces.Unsigned_8 range 0 .. 3;
- type lic_array_t is array (lic_array_index_t) of laser_illuminator_code_group_t;
+ type lic_array_t is array (lic_array_index_t)
+ of laser_illuminator_code_group_t;
pragma Convention (C, lic_array_t);
type Eighty_Bytes_T is array (1 .. 80) of Interfaces.Unsigned_8;
@@ -30,4 +31,4 @@ package Bit_Packed_Array is
procedure Generate_Callforward;
-end Bit_Packed_Array;
+end Bit_Packed_Array1;
diff --git a/gcc/testsuite/gnat.dg/bit_packed_array4.adb b/gcc/testsuite/gnat.dg/bit_packed_array4.adb
new file mode 100644
index 00000000000..35088a7eba4
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/bit_packed_array4.adb
@@ -0,0 +1,11 @@
+-- { dg-do compile }
+
+package body Bit_Packed_Array4 is
+
+ procedure Process (M : Message_Type) is
+ D : Data_Type;
+ begin
+ D := M.Data;
+ end;
+
+end Bit_Packed_Array4;
diff --git a/gcc/testsuite/gnat.dg/bit_packed_array4.ads b/gcc/testsuite/gnat.dg/bit_packed_array4.ads
new file mode 100644
index 00000000000..7713e8f3e5b
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/bit_packed_array4.ads
@@ -0,0 +1,18 @@
+package Bit_Packed_Array4 is
+
+ type Data_Type is array (1 .. 39) of Boolean;
+ pragma Pack (Data_Type);
+ for Data_Type'Alignment use 1;
+
+ type Message_Type is record
+ Valid : Boolean;
+ Data : Data_Type;
+ end record;
+ for Message_Type use record
+ Valid at 0 range 0 .. 0;
+ Data at 0 range 1 .. 39;
+ end record;
+
+ procedure Process (M : Message_Type);
+
+end Bit_Packed_Array4;