| library test.padding; |
| |
| type Padding1ByteEnd = struct { |
| a uint16; |
| b uint8; |
| // 1 byte padding |
| }; |
| |
| type Padding2ByteEnd = struct { |
| a uint32; |
| b uint16; |
| // 2 byte padding |
| }; |
| |
| type Padding3ByteEnd = struct { |
| a uint32; |
| b uint8; |
| // 3 byte padding |
| }; |
| |
| type Padding4ByteEnd = struct { |
| a uint64; |
| b uint32; |
| // 4 byte padding |
| }; |
| |
| type Padding5ByteEnd = struct { |
| a uint64; |
| b uint16; |
| c uint8; |
| // 5 byte padding |
| }; |
| |
| type Padding6ByteEnd = struct { |
| a uint64; |
| b uint16; |
| // 6 byte padding |
| }; |
| |
| type Padding7ByteEnd = struct { |
| a uint64; |
| b uint8; |
| // 7 byte padding |
| }; |
| |
| type Padding1ByteMiddle = struct { |
| a uint8; |
| // 1 byte padding |
| b uint16; |
| }; |
| |
| type Padding2ByteMiddle = struct { |
| a uint16; |
| // 2 byte padding |
| b uint32; |
| }; |
| |
| type Padding3ByteMiddle = struct { |
| a uint8; |
| // 3 byte padding |
| b uint32; |
| }; |
| |
| type Padding4ByteMiddle = struct { |
| a uint32; |
| // 4 byte padding |
| b uint64; |
| }; |
| |
| type Padding5ByteMiddle = struct { |
| a uint16; |
| b uint8; |
| // 5 byte padding |
| c uint64; |
| }; |
| |
| type Padding6ByteMiddle = struct { |
| a uint16; |
| // 6 byte padding |
| b uint64; |
| }; |
| |
| type Padding7ByteMiddle = struct { |
| a uint8; |
| // 7 byte padding |
| b uint64; |
| }; |
| |
| // The following structs test generation of padding masks for bindings that use |
| // them. For example, for a 4-byte aligned struct with length 12, two masks |
| // might be generated to cover the length - an 8-byte and 4-byte mask. |
| |
| type Padding4ByteAlignmentLength12 = struct { |
| a uint32; |
| b uint8; |
| // 1 byte padding |
| c uint16; |
| d uint16; |
| // 2 bytes padding |
| }; |
| |
| type Padding2ByteAlignmentLength6 = struct { |
| // 4 byte padding mask starts here. |
| a uint8; |
| // 1 byte padding |
| b uint16; |
| // 2 byte padding mask starts here. |
| c uint8; |
| // 1 byte padding |
| }; |