// #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;
}

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

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


short y = Bob.y.offsetof;
int z = Bob.w.z.offsetof;
int w = Bob.w.offsetof;
int z0 = Foob.c.offsetof;
int z03 = Foob.a.offsetof;

/* #expect: foo.ll
@foo.y = local_unnamed_addr global i16 16, align 2
@foo.z = local_unnamed_addr global i32 116, align 4
@foo.w = local_unnamed_addr global i32 116, align 4
@foo.z0 = local_unnamed_addr global i32 0, align 4
@foo.z03 = local_unnamed_addr global i32 0, align 4
