| -- { dg-do compile } |
| -- { dg-options "-O" } |
| |
| package Rep_Clause4 is |
| |
| type Uns16 is mod 2**16; |
| |
| type Rec32 is |
| record |
| W1 : Uns16 := 1; |
| W2 : Uns16 := 2; |
| end record; |
| for Rec32 use |
| record |
| W1 at 0 range 0..15; |
| W2 at 2 range 0..15; |
| end record; |
| for Rec32'size use 32; |
| |
| type Rec48 is |
| record |
| W1andW2 : Rec32; |
| W3 : Uns16; |
| end record; |
| for Rec48 use |
| record |
| W1andW2 at 0 range 0..31; |
| W3 at 4 range 0..15; |
| end record; |
| for Rec48'size use 48; |
| |
| type Rec_Type is |
| record |
| Field1 : Rec48; |
| end record; |
| for Rec_Type use |
| record |
| Field1 at 0 range 0 .. 47; |
| end record; |
| for Rec_Type'size use 48; |
| |
| end Rep_Clause4; |