1 -- Copyright 2019-2024 Free Software Foundation, Inc. 2 -- 3 -- This program is free software; you can redistribute it and/or modify 4 -- it under the terms of the GNU General Public License as published by 5 -- the Free Software Foundation; either version 3 of the License, or 6 -- (at your option) any later version. 7 -- 8 -- This program is distributed in the hope that it will be useful, 9 -- but WITHOUT ANY WARRANTY; without even the implied warranty of 10 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 -- GNU General Public License for more details. 12 -- 13 -- You should have received a copy of the GNU General Public License 14 -- along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16 with Pck; use Pck; 17 with System.Storage_Elements; use System.Storage_Elements; 18 19 procedure Storage is 20 subtype Some_Range is Natural range 0..127; 21 subtype Another_Range is Natural range 0..15; 22 23 type Colors is (Red, Green, Blue); 24 for Colors use (Red => 0, Green => 1, Blue => 2); 25 26 type Rec is record 27 Value : Some_Range; 28 Another_Value : Another_Range; 29 Color : Colors; 30 end record; 31 32 for Rec use record 33 Value at 0 range 0..6; 34 Another_Value at 0 range 7..10; 35 Color at 0 range 11..13; 36 end record; 37 38 type Rec_LE is new Rec; 39 for Rec_LE'Bit_Order use System.Low_Order_First; 40 for Rec_LE'Scalar_Storage_Order use System.Low_Order_First; 41 42 type Rec_BE is new Rec; 43 for Rec_BE'Bit_Order use System.High_Order_First; 44 for Rec_BE'Scalar_Storage_Order use System.High_Order_First; 45 46 V_LE : Rec_LE; 47 V_BE : Rec_BE; 48 49 begin 50 V_LE := (126, 12, Green); 51 V_BE := (126, 12, Green); 52 53 Do_Nothing (V_LE'Address); -- START 54 Do_Nothing (V_BE'Address); 55 end Storage; 56