33 lines
600 B
C
33 lines
600 B
C
|
// 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);
|
||
|
}
|