blob: ea456bc986dd2fafdd74129ebe37a664f0dbf555 [file] [log] [blame]
// Copyright 2019 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 conformance;
union UnionWithBoundString {
string:5 boundFiveStr;
};
struct UnionWithBoundStringStruct {
UnionWithBoundString v;
};
union SingleVariantUnion {
1: uint32 x;
};
struct SingleVariantUnionStruct {
SingleVariantUnion u;
};
union UnionSize8Alignment4 {
1: uint8 unused1;
2: uint8 unused2;
3: uint32 variant;
};
struct SandwichUnionSize8Alignment4 {
uint32 before;
UnionSize8Alignment4 union;
uint32 after;
};
union UnionSize12Alignment4 {
1: uint8 unused1;
2: uint8 unused2;
3: uint8 unused3;
4: array<uint8>:6 variant;
};
struct SandwichUnionSize12Alignment4 {
uint32 before;
UnionSize12Alignment4 union;
uint32 after;
};
struct StructSize16Alignment8 {
uint64 f1;
uint64 f2;
};
union UnionSize24Alignment8 {
1: uint8 unused1;
2: uint8 unused2;
3: uint8 unused3;
4: StructSize16Alignment8 variant;
};
struct SandwichUnionSize24Alignment8 {
uint32 before;
UnionSize24Alignment8 union;
uint32 after;
};
union UnionSize36Alignment4 {
1: uint8 unused1;
2: uint8 unused2;
3: uint8 unused3;
4: array<uint8>:32 variant;
};
struct SandwichUnionSize36Alignment4 {
uint32 before;
UnionSize36Alignment4 union;
uint32 after;
};