2009-07-22-StructLayout.c 841 Bytes
// RUN: %clang_cc1 %s -triple i686-pc-linux-gnu -emit-llvm -o /dev/null
// PR4590

typedef unsigned char __u8;
typedef unsigned int __le32;
typedef unsigned int __u32;
typedef unsigned short __le16;
typedef unsigned short __u16;

struct usb_cdc_ether_desc {
 __u8 bLength;
 __u8 bDescriptorType;
 __u8 bDescriptorSubType;

 __u8 iMACAddress;
 __le32 bmEthernetStatistics;
 __le16 wMaxSegmentSize;
 __le16 wNumberMCFilters;
 __u8 bNumberPowerFilters;
} __attribute__ ((packed));


static struct usb_cdc_ether_desc ecm_desc __attribute__ ((__section__(".init.data"))) = {
 .bLength = sizeof ecm_desc,
 .bDescriptorType = ((0x01 << 5) | 0x04),
 .bDescriptorSubType = 0x0f,



 .bmEthernetStatistics = (( __le32)(__u32)(0)),
 .wMaxSegmentSize = (( __le16)(__u16)(1514)),
 .wNumberMCFilters = (( __le16)(__u16)(0)),
 .bNumberPowerFilters = 0,
};