1 // RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s 2 3 typedef unsigned char uint8_t; 4 typedef unsigned short uint16_t; 5 typedef unsigned int uint32_t; 6 7 #pragma pack(push, 1) 8 typedef struct 9 { 10 uint32_t a; 11 } foo; 12 13 typedef struct { 14 uint8_t major; 15 uint8_t minor; 16 uint16_t build; 17 } VERSION; 18 19 typedef struct { 20 uint8_t a[5]; 21 VERSION version; 22 uint8_t b; 23 foo d; 24 uint32_t guard; 25 } bar; 26 #pragma pack(pop) 27 28 barsize(void)29unsigned barsize(void) { 30 // CHECK: ret i32 18 31 return sizeof(bar); 32 } 33