• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #define __packed __attribute__((packed))
2 
3 typedef unsigned char   u8;
4 typedef __UINT16_TYPE__ u16;
5 typedef __UINT32_TYPE__ u32;
6 typedef __UINT64_TYPE__ u64;
7 
8 struct a {
9 	u8 a;
10 	u8 b;
11 	u16 c;
12 } __packed;
13 _Static_assert(__alignof(struct a) == 1, "align struct");
14 _Static_assert(   sizeof(struct a) == 4, " size struct");
15 
16 struct b {
17 	u32	a;
18 	u32	b;
19 } __packed;
20 _Static_assert(__alignof(struct b) == 1, "align struct");
21 _Static_assert(   sizeof(struct b) == 8, "size struct");
22 
23 struct c {
24 	u16	a;
25 	u32	b;
26 } __packed;
27 _Static_assert(__alignof(struct c) == 1, "align struct");
28 _Static_assert(   sizeof(struct c) == 6, "size struct");
29 
30 /*
31  * check-name: packed-struct
32  */
33