Eric Christopher | b025734 | 2011-07-26 21:42:32 +0000 | [diff] [blame] | 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 | |||||
29 | unsigned barsize(void) { | ||||
30 | // CHECK: ret i32 18 | ||||
31 | return sizeof(bar); | ||||
32 | } |