From 5b9579845dcc47de74dee2e2f17914ba20b15bec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20Gia=20Phong?= Date: Mon, 8 Apr 2024 12:01:30 +0900 Subject: [PATCH] Document packed struct's backing int declaration --- doc/langref.html.in | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/doc/langref.html.in b/doc/langref.html.in index 1d1468ab95..6f3e9961c3 100644 --- a/doc/langref.html.in +++ b/doc/langref.html.in @@ -3320,6 +3320,16 @@ fn doTheTest() !void { try expect(ordered[1] == 0x12); }, } +} + {#code_end#} +

+ The backing integer is inferred from the fields' total bit width. + Optionally, it can be explicitly provided and enforced at compile time: +

+ {#code_begin|test_err|test_missized_packed_struct|backing integer type 'u32' has bit size 32 but the struct fields have a total bit size of 24#} +test "missized packed struct" { + const S = packed struct(u32) { a: u16, b: u8 }; + _ = S{ .a = 4, .b = 2 }; } {#code_end#}