// RUN: %clang_cc1 -triple x86_64-apple-macosx10.7.0 -emit-llvm -o - %s | FileCheck %s

// PR4610
#pragma pack(4)
struct ref {
        struct ref *next;
} refs;

// PR13580
struct S
{
  char a[3];
#pragma pack(1)
  struct T
  {
    char b;
    int c;
  } d;
#pragma pack()
  struct T2
  {
    char b;
    int c;
  } d2;
} ss;

struct S3
{
  char a[3];
#pragma pack(push, 2)
  struct T3
  {
    char b;
    int c;
  } d;
#pragma pack(pop)
  struct T32
  {
    char b;
    int c;
  } e;
} s3;

struct S4
{
  char a[3];
#pragma align=packed
  struct T4
  {
    char b;
    int c;
  } d;
  int e;
} s4;

// CHECK: [[struct_ref:%[a-zA-Z0-9_.]+]] = type <{ [[struct_ref]]* }>
// CHECK: [[struct_S:%[a-zA-Z0-9_.]+]] = type { [3 x i8], [[struct_T:%[a-zA-Z0-9_.]+]], [[struct_T2:%[a-zA-Z0-9_.]+]] }
// CHECK: [[struct_T]] = type <{ i8, i32 }>
// CHECK: [[struct_T2]] = type { i8, i32 }

// CHECK: %struct.S3 = type <{ [3 x i8], i8, %struct.T3, [2 x i8], %struct.T32 }>
// CHECK: %struct.T3 = type <{ i8, i8, i32 }>
// CHECK: %struct.T32 = type { i8, i32 }
// CHECK: %struct.S4 = type { [3 x i8], %struct.T4, i32 }
// CHECK: %struct.T4 = type <{ i8, i32 }>

// CHECK: @refs = common global [[struct_ref]]
// CHECK: @ss = common global [[struct_S]]
