// RUN: %clang_cc1 -malign-double -triple i386-unknown-linux -emit-llvm %s -o - \
// RUN:   | FileCheck --check-prefix=CHECK-ON --check-prefix=CHECK %s

// RUN: %clang_cc1 -triple i386-unknown-linux -emit-llvm %s -o - \
// RUN:   | FileCheck --check-prefix=CHECK-OFF --check-prefix=CHECK %s

/* Structs S1, S2, S3, S4, and union U5 are taken from Intel, "IA-64
   Software Conventions and Runtime Architecture Guide", version of
   August 1999, Section 4.2, Figures 4-1 through 4-5.
   A Union containing a double was also thrown in for good measure. */

struct S1 {
  char c;
};

unsigned S1_align = __alignof(struct S1);
unsigned S1_size = sizeof(struct S1);
// CHECK: @S1_align = global i32 1, align 4
// CHECK: @S1_size = global i32 1, align 4

unsigned S1_c_offset = (unsigned) &((struct S1*) 0)->c;
// CHECK: @S1_c_offset = global i32 0, align 4

struct S2{
  char c;
  char d;
  short s;
  int n;
};

unsigned S2_align = __alignof(struct S2);
unsigned S2_size = sizeof(struct S2);
// CHECK: @S2_align = global i32 4, align 4
// CHECK: @S2_size = global i32 8, align 4

unsigned S2_c_offset = (unsigned) &((struct S2*) 0)->c;
unsigned S2_d_offset = (unsigned) &((struct S2*) 0)->d;
unsigned S2_s_offset = (unsigned) &((struct S2*) 0)->s;
unsigned S2_n_offset = (unsigned) &((struct S2*) 0)->n;
// CHECK: @S2_c_offset = global i32 0, align 4
// CHECK: @S2_d_offset = global i32 1, align 4
// CHECK: @S2_s_offset = global i32 2, align 4
// CHECK: @S2_n_offset = global i32 4, align 4

struct S3 {
  char c;
  short s;
};

unsigned S3_align = __alignof(struct S3);
unsigned S3_size = sizeof(struct S3);
// CHECK: @S3_align = global i32 2, align 4
// CHECK: @S3_size = global i32 4, align 4

unsigned S3_c_offset = (unsigned) &((struct S3*) 0)->c;
unsigned S3_s_offset = (unsigned) &((struct S3*) 0)->s;
// CHECK: @S3_c_offset = global i32 0, align 4
// CHECK: @S3_s_offset = global i32 2, align 4

struct S4 {
  char c;
  double d;
  short s;
};

unsigned S4_align = __alignof(struct S4);
unsigned S4_size = sizeof(struct S4);
// CHECK-ON: @S4_align = global i32 8, align 4
// CHECK-ON: @S4_size = global i32 24, align 4
// CHECK-OFF: @S4_align = global i32 4, align 4
// CHECK-OFF: @S4_size = global i32 16, align 4

unsigned S4_c_offset = (unsigned) &((struct S4*) 0)->c;
unsigned S4_d_offset = (unsigned) &((struct S4*) 0)->d;
unsigned S4_s_offset = (unsigned) &((struct S4*) 0)->s;
// CHECK: @S4_c_offset = global i32 0, align 4
// CHECK-ON: @S4_d_offset = global i32 8, align 4
// CHECK-ON: @S4_s_offset = global i32 16, align 4
// CHECK-OFF: @S4_d_offset = global i32 4, align 4
// CHECK-OFF: @S4_s_offset = global i32 12, align 4

union S5 {
  char c;
  short s;
  int j;
};

unsigned S5_align = __alignof(union S5);
unsigned S5_size = sizeof(union S5);
// CHECK: @S5_align = global i32 4, align 4
// CHECK: @S5_size = global i32 4, align 4

unsigned S5_c_offset = (unsigned) &((union S5*) 0)->c;
unsigned S5_s_offset = (unsigned) &((union S5*) 0)->s;
unsigned S5_j_offset = (unsigned) &((union S5*) 0)->j;
// CHECK: @S5_c_offset = global i32 0, align 4
// CHECK: @S5_s_offset = global i32 0, align 4
// CHECK: @S5_j_offset = global i32 0, align 4

union S6 {
  char c;
  double d;
};

unsigned S6_align = __alignof(union S6);
unsigned S6_size = sizeof(union S6);
// CHECK-ON: @S6_align = global i32 8, align 4
// CHECK-ON: @S6_size = global i32 8, align 4
// CHECK-OFF: @S6_align = global i32 4, align 4
// CHECK-OFF: @S6_size = global i32 8, align 4

unsigned S6_c_offset = (unsigned) &((union S6*) 0)->c;
unsigned S6_d_offset = (unsigned) &((union S6*) 0)->d;
// CHECK: @S6_c_offset = global i32 0, align 4
// CHECK: @S6_d_offset = global i32 0, align 4
