xref: /aosp_15_r20/external/clang/test/CodeGen/2009-07-22-StructLayout.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 %s -triple i686-pc-linux-gnu -emit-llvm -o /dev/null
2*67e74705SXin Li // PR4590
3*67e74705SXin Li 
4*67e74705SXin Li typedef unsigned char __u8;
5*67e74705SXin Li typedef unsigned int __le32;
6*67e74705SXin Li typedef unsigned int __u32;
7*67e74705SXin Li typedef unsigned short __le16;
8*67e74705SXin Li typedef unsigned short __u16;
9*67e74705SXin Li 
10*67e74705SXin Li struct usb_cdc_ether_desc {
11*67e74705SXin Li  __u8 bLength;
12*67e74705SXin Li  __u8 bDescriptorType;
13*67e74705SXin Li  __u8 bDescriptorSubType;
14*67e74705SXin Li 
15*67e74705SXin Li  __u8 iMACAddress;
16*67e74705SXin Li  __le32 bmEthernetStatistics;
17*67e74705SXin Li  __le16 wMaxSegmentSize;
18*67e74705SXin Li  __le16 wNumberMCFilters;
19*67e74705SXin Li  __u8 bNumberPowerFilters;
20*67e74705SXin Li } __attribute__ ((packed));
21*67e74705SXin Li 
22*67e74705SXin Li 
23*67e74705SXin Li static struct usb_cdc_ether_desc ecm_desc __attribute__ ((__section__(".init.data"))) = {
24*67e74705SXin Li  .bLength = sizeof ecm_desc,
25*67e74705SXin Li  .bDescriptorType = ((0x01 << 5) | 0x04),
26*67e74705SXin Li  .bDescriptorSubType = 0x0f,
27*67e74705SXin Li 
28*67e74705SXin Li 
29*67e74705SXin Li 
30*67e74705SXin Li  .bmEthernetStatistics = (( __le32)(__u32)(0)),
31*67e74705SXin Li  .wMaxSegmentSize = (( __le16)(__u16)(1514)),
32*67e74705SXin Li  .wNumberMCFilters = (( __le16)(__u16)(0)),
33*67e74705SXin Li  .bNumberPowerFilters = 0,
34*67e74705SXin Li };
35