master
 1const expect = @import("std").testing.expect;
 2
 3var foo: u8 align(4) = 100;
 4
 5test "global variable alignment" {
 6    try expect(@typeInfo(@TypeOf(&foo)).pointer.alignment == 4);
 7    try expect(@TypeOf(&foo) == *align(4) u8);
 8    const as_pointer_to_array: *align(4) [1]u8 = &foo;
 9    const as_slice: []align(4) u8 = as_pointer_to_array;
10    const as_unaligned_slice: []u8 = as_slice;
11    try expect(as_unaligned_slice[0] == 100);
12}
13
14fn derp() align(@sizeOf(usize) * 2) i32 {
15    return 1234;
16}
17fn noop1() align(1) void {}
18fn noop4() align(4) void {}
19
20test "function alignment" {
21    try expect(derp() == 1234);
22    try expect(@TypeOf(derp) == fn () i32);
23    try expect(@TypeOf(&derp) == *align(@sizeOf(usize) * 2) const fn () i32);
24
25    noop1();
26    try expect(@TypeOf(noop1) == fn () void);
27    try expect(@TypeOf(&noop1) == *align(1) const fn () void);
28
29    noop4();
30    try expect(@TypeOf(noop4) == fn () void);
31    try expect(@TypeOf(&noop4) == *align(4) const fn () void);
32}
33
34// test