2007-09-12-PragmaPack.c
600 Bytes
// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
#pragma pack(push, 1)
typedef struct
{
uint32_t a;
} foo;
typedef struct {
uint8_t major;
uint8_t minor;
uint16_t build;
} VERSION;
typedef struct {
uint8_t a[5];
VERSION version;
uint8_t b;
foo d;
uint32_t guard;
} bar;
#pragma pack(pop)
unsigned barsize(void) {
// CHECK: ret i32 18
return sizeof(bar);
}