Commit ca3aa02206

Devin Bayer <dev@doubly.so>
2021-04-13 14:53:44
Update doc for struct field alignment.
1 parent a5bbc66
Changed files (1)
doc/langref.html.in
@@ -2763,9 +2763,24 @@ test "overaligned pointer to packed struct" {
       cause the test suite to fail, notifying the bug fixer to update these docs.
       </p>
       <p>
-      It's also
-      <a href="https://github.com/ziglang/zig/issues/1512">planned to be able to set alignment of struct fields</a>.
+      It's also possible to set alignment of struct fields:
       </p>
+      {#code_begin|test#}
+const std = @import("std");
+const expectEqual = std.testing.expectEqual;
+
+test "aligned struct fields" {
+    const S = struct {
+        a: u32 align(2),
+        b: u32 align(64),
+    };
+    var foo = S{ .a = 1, .b = 2 };
+
+    expectEqual(64, @alignOf(S));
+    expectEqual(*align(2) u32, @TypeOf(&foo.a));
+    expectEqual(*align(64) u32, @TypeOf(&foo.b));
+}
+      {#code_end#}
       <p>
       Using packed structs with {#link|volatile#} is problematic, and may be a compile error in the future.
       For details on this subscribe to