1with Unchecked_Conversion;
2
3package Atomic5 is
4
5  type Byte is mod 2 ** 8;
6  for Byte'Size use 8;
7
8  type Unsigned_32 is mod 2 ** 32;
9  for Unsigned_32'Size use 32;
10
11  type R is record
12    A,B,C,D : Byte;
13  end record;
14  for R'Alignment use 4;
15  pragma Atomic (R);
16
17  function Conv is new Unchecked_Conversion (R, Unsigned_32);
18
19  procedure Proc1;
20
21  procedure Proc2;
22
23end Atomic5;
24