// #target: macos-x64
module foo;

int[100] zfe;
struct Bob
{
    Bob[] x;
    char[100] y;
    struct w {
        int z;
    }
}

union Ex
{
    char[8] c;
    int[2] y;
    double z;
}

union Br
{
    int y;
    char x;
}
struct Ar
{
    long z;
    Br[10] br;
}

union Foob
{
    long a;
    char[8] c;
}
Ar izzy;

long x = $alignof(zfe);
short y = Bob.y.alignof;
int z = Bob.w.z.alignof;
int v = $alignof(v);
int x1 = Ex.c.alignof;
int x2 = Ex.y.alignof;
int x3 = char[8].alignof;
int x9 = $alignof(izzy.br[1]);
int x10 = $alignof(izzy.br[1]);
int x11 = $alignof(izzy.br[1]);
int z0 = Foob.c.alignof;



/* #expect: foo.ll

@foo.x = local_unnamed_addr global i64 16, align 8
@foo.y = local_unnamed_addr global i16 8, align 2
@foo.z = local_unnamed_addr global i32 4, align 4
@foo.v = local_unnamed_addr global i32 4, align 4
@foo.x1 = local_unnamed_addr global i32 8, align 4
@foo.x2 = local_unnamed_addr global i32 8, align 4
@foo.x3 = local_unnamed_addr global i32 1, align 4
@foo.x9 = local_unnamed_addr global i32 4, align 4
@foo.x10 = local_unnamed_addr global i32 4, align 4
@foo.x11 = local_unnamed_addr global i32 4, align 4
@foo.z0 = local_unnamed_addr global i32 8, align 4
