with Unchecked_Conversion; package Atomic5 is type Byte is mod 2 ** 8; for Byte'Size use 8; type Unsigned_32 is mod 2 ** 32; for Unsigned_32'Size use 32; type R is record A,B,C,D : Byte; end record; for R'Alignment use 4; pragma Atomic (R); function Conv is new Unchecked_Conversion (R, Unsigned_32); procedure Proc1; procedure Proc2; end Atomic5;