mirror of
https://codeberg.org/ziglang/zig.git
synced 2026-03-08 03:04:52 +01:00
34 lines
1 KiB
Zig
34 lines
1 KiB
Zig
const expectEqual = @import("std").testing.expectEqual;
|
|
|
|
var foo: u8 align(4) = 100;
|
|
|
|
test "global variable alignment" {
|
|
try expectEqual(4, @typeInfo(@TypeOf(&foo)).pointer.alignment);
|
|
try expectEqual(*align(4) u8, @TypeOf(&foo));
|
|
const as_pointer_to_array: *align(4) [1]u8 = &foo;
|
|
const as_slice: []align(4) u8 = as_pointer_to_array;
|
|
const as_unaligned_slice: []u8 = as_slice;
|
|
try expectEqual(100, as_unaligned_slice[0]);
|
|
}
|
|
|
|
fn derp() align(@sizeOf(usize) * 2) i32 {
|
|
return 1234;
|
|
}
|
|
fn noop1() align(1) void {}
|
|
fn noop4() align(4) void {}
|
|
|
|
test "function alignment" {
|
|
try expectEqual(1234, derp());
|
|
try expectEqual(fn () i32, @TypeOf(derp));
|
|
try expectEqual(*align(@sizeOf(usize) * 2) const fn () i32, @TypeOf(&derp));
|
|
|
|
noop1();
|
|
try expectEqual(fn () void, @TypeOf(noop1));
|
|
try expectEqual(*align(1) const fn () void, @TypeOf(&noop1));
|
|
|
|
noop4();
|
|
try expectEqual(fn () void, @TypeOf(noop4));
|
|
try expectEqual(*align(4) const fn () void, @TypeOf(&noop4));
|
|
}
|
|
|
|
// test
|