| // Copyright 2022 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library test.conformance; |
| |
| // This file contains tests that cover situations that can be misimplemented |
| // when implementing memcpy optimizations on structs. |
| |
| type OneLayerStructNoPaddingAlign4 = struct { |
| a uint16; |
| b uint8; |
| c uint8; |
| d uint32; |
| }; |
| |
| type OneLayerStructWithPaddingAlign4 = struct { |
| a uint16; |
| b uint8; |
| c uint32; |
| }; |
| |
| type TwoLayerStructNoPaddingAlign4 = struct { |
| s OneLayerStructNoPaddingAlign4; |
| a uint32; |
| }; |
| |
| type TwoLayerStructInnerPaddingAlign4 = struct { |
| s OneLayerStructWithPaddingAlign4; |
| a uint32; |
| }; |
| |
| type OneLayerStructNoPaddingAlign8 = struct { |
| a uint32; |
| b uint16; |
| c uint16; |
| d uint64; |
| }; |
| |
| type OneLayerStructWithPaddingAlign8 = struct { |
| a uint32; |
| b uint16; |
| c uint64; |
| }; |
| |
| type TwoLayerStructNoPaddingAlign8 = struct { |
| s OneLayerStructNoPaddingAlign8; |
| a uint64; |
| }; |
| |
| type TwoLayerStructInnerPaddingAlign8 = struct { |
| s OneLayerStructWithPaddingAlign8; |
| a uint64; |
| }; |
| |
| type OneLayerStructWithBool = struct { |
| a bool; |
| b uint8; |
| c uint16; |
| d uint32; |
| }; |
| |
| type TwoLayerStructInnerBool = struct { |
| s OneLayerStructWithBool; |
| a uint64; |
| }; |
| |
| type ArrayWithInternalPadding = struct { |
| v array<OneLayerStructWithPaddingAlign4, 2>; |
| }; |