| // Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| struct NormalStruct1 | |
| { | |
| char a; | |
| }; | |
| /// Should not be packed. | |
| struct StructWithAttr | |
| { | |
| int *a; | |
| int *b; | |
| } __attribute__((annotate("Attr is not __packed__"))); | |
| /// Should be packed with 1. | |
| struct PackedAttr{ | |
| int a; | |
| } __attribute__((__packed__)); | |
| /// Should be packed with 8. | |
| struct PackedAttrAlign8{ | |
| int a; | |
| } __attribute__((__packed__, aligned(8))); | |
| #pragma pack(push, 2) | |
| /// Should be packed with 2. | |
| struct Pack2WithPragma{ | |
| int a; | |
| }; | |
| #pragma pack(4) | |
| /// Should be packed with 4. | |
| struct Pack4WithPragma{ | |
| long long a; | |
| }; | |
| #pragma pack(pop) | |
| struct NormalStruct2 | |
| { | |
| char a; | |
| }; |