| -- { dg-do run } | |
| -- { dg-options "-gnatp -fstrict-volatile-bitfields" } | |
| procedure Misaligned_Volatile is | |
| type Byte is mod 2**8; | |
| type Block is record | |
| B : Boolean; | |
| V : Byte; | |
| end record; | |
| pragma Volatile (Block); | |
| pragma Pack (Block); | |
| for Block'Alignment use 1; | |
| type Pair is array (1 .. 2) of Block; | |
| P : Pair; | |
| begin | |
| for K in P'Range loop | |
| P(K).V := 237; | |
| end loop; | |
| for K in P'Range loop | |
| if P(K).V /= 237 then | |
| raise Program_error; | |
| end if; | |
| end loop; | |
| end; |