diff options
author | Dan Albert <danalbert@google.com> | 2016-02-24 13:48:45 -0800 |
---|---|---|
committer | Dan Albert <danalbert@google.com> | 2016-02-24 13:51:18 -0800 |
commit | b9de1157289455b0ca26daff519d4a0ddcd1fa13 (patch) | |
tree | 4c56cc0a34b91f17033a40a455f26652304f7b8d /gcc-4.8.3/gcc/testsuite/gnat.dg/bit_packed_array3.adb | |
parent | 098157a754787181cfa10e71325832448ddcea98 (diff) | |
download | toolchain_gcc-b9de1157289455b0ca26daff519d4a0ddcd1fa13.tar.gz toolchain_gcc-b9de1157289455b0ca26daff519d4a0ddcd1fa13.tar.bz2 toolchain_gcc-b9de1157289455b0ca26daff519d4a0ddcd1fa13.zip |
Update 4.8.1 to 4.8.3.
My previous drop was the wrong version. The platform mingw is
currently using 4.8.3, not 4.8.1 (not sure how I got that wrong).
From ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.3/gcc-4.8.3.tar.bz2.
Bug: http://b/26523949
Change-Id: Id85f1bdcbbaf78c7d0b5a69e74c798a08f341c35
Diffstat (limited to 'gcc-4.8.3/gcc/testsuite/gnat.dg/bit_packed_array3.adb')
-rw-r--r-- | gcc-4.8.3/gcc/testsuite/gnat.dg/bit_packed_array3.adb | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gcc-4.8.3/gcc/testsuite/gnat.dg/bit_packed_array3.adb b/gcc-4.8.3/gcc/testsuite/gnat.dg/bit_packed_array3.adb new file mode 100644 index 000000000..0b121efdc --- /dev/null +++ b/gcc-4.8.3/gcc/testsuite/gnat.dg/bit_packed_array3.adb @@ -0,0 +1,40 @@ +-- { dg-do run } +-- { dg-options "-O2 -gnatp" } + +procedure Bit_Packed_Array3 is + + type Bitmap_T is array (1 .. 10) of Boolean; + pragma Pack (Bitmap_T); + + type Maps_T is record + M1 : Bitmap_T; + end record; + pragma Pack (Maps_T); + for Maps_T'Size use 10; + pragma Suppress_Initialization (Maps_T); + + Tmap : constant Bitmap_T := (others => True); + Fmap : constant Bitmap_T := (others => False); + Amap : constant Bitmap_T := + (1 => False, 2 => True, 3 => False, 4 => True, 5 => False, + 6 => True, 7 => False, 8 => True, 9 => False, 10 => True); + + function Some_Maps return Maps_T is + Value : Maps_T := (M1 => Amap); + begin + return Value; + end; + pragma Inline (Some_Maps); + + Maps : Maps_T; +begin + Maps := Some_Maps; + + for I in Maps.M1'Range loop + if (I mod 2 = 0 and then not Maps.M1 (I)) + or else (I mod 2 /= 0 and then Maps.M1 (I)) + then + raise Program_Error; + end if; + end loop; +end; |