// RUN: %clang_cc1 -triple arm64_32-apple-ios7.0 -emit-llvm -o - %s | FileCheck %s

struct Foo {
  char a;
  int b : 1;
};

int BitfieldOffset = sizeof(struct Foo);
// CHECK: @BitfieldOffset ={{.*}} global i32 2

int PointerSize = sizeof(void *);
// CHECK: @PointerSize ={{.*}} global i32 4

int PointerAlign = __alignof(void *);
// CHECK: @PointerAlign ={{.*}} global i32 4

int LongSize = sizeof(long);
// CHECK: @LongSize ={{.*}} global i32 4

int LongAlign = __alignof(long);
// CHECK: @LongAlign ={{.*}} global i32 4

// Not expected to change, but it's a difference between AAPCS and DarwinPCS
// that we need to be preserved for compatibility with ARMv7k.
long double LongDoubleVar = 0.0;
// CHECK: @LongDoubleVar ={{.*}} global double

typedef float __attribute__((ext_vector_type(16))) v16f32;
v16f32 func(v16f32 in) { return in; }
// CHECK: define{{.*}} void @func(<16 x float>* noalias sret(<16 x float>) align 16 {{%.*}}, <16 x float> {{%.*}})
