Commit 8dd7378013
Changed files (2)
lib
std
os
linux
doc/langref.html.in
@@ -2588,7 +2588,7 @@ test "default struct initialization fields" {
exactly their bit width.
</li>
<li>{#syntax#}bool{#endsyntax#} fields use exactly 1 bit.</li>
- <li>A {#link|packed enum#} field uses exactly the bit width of its integer tag type.</li>
+ <li>An {#link|enum#} field uses exactly the bit width of its integer tag type.</li>
<li>A {#link|packed union#} field uses exactly the bit width of the union field with
the largest bit width.</li>
<li>Non-ABI-aligned fields are packed into the smallest possible
@@ -2983,25 +2983,6 @@ export fn entry(foo: Foo) void { }
{#code_end#}
{#header_close#}
- {#header_open|packed enum#}
- <p>By default, the size of enums is not guaranteed.</p>
- <p>{#syntax#}packed enum{#endsyntax#} causes the size of the enum to be the same as the size of the
- integer tag type of the enum:</p>
- {#code_begin|test#}
-const std = @import("std");
-
-test "packed enum" {
- const Number = packed enum(u8) {
- one,
- two,
- three,
- };
- std.testing.expect(@sizeOf(Number) == @sizeOf(u8));
-}
- {#code_end#}
- <p>This makes the enum eligible to be in a {#link|packed struct#}.</p>
- {#header_close#}
-
{#header_open|Enum Literals#}
<p>
Enum literals allow specifying the name of an enum field without specifying the enum type:
lib/std/os/linux/bpf.zig
@@ -398,10 +398,10 @@ pub const Insn = packed struct {
/// r0 - r9 are general purpose 64-bit registers, r10 points to the stack
/// frame
- pub const Reg = packed enum(u4) { r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10 };
- const Source = packed enum(u1) { reg, imm };
+ pub const Reg = enum(u4) { r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10 };
+ const Source = enum(u1) { reg, imm };
- const Mode = packed enum(u8) {
+ const Mode = enum(u8) {
imm = IMM,
abs = ABS,
ind = IND,
@@ -410,7 +410,7 @@ pub const Insn = packed struct {
msh = MSH,
};
- const AluOp = packed enum(u8) {
+ const AluOp = enum(u8) {
add = ADD,
sub = SUB,
mul = MUL,
@@ -426,14 +426,14 @@ pub const Insn = packed struct {
arsh = ARSH,
};
- pub const Size = packed enum(u8) {
+ pub const Size = enum(u8) {
byte = B,
half_word = H,
word = W,
double_word = DW,
};
- const JmpOp = packed enum(u8) {
+ const JmpOp = enum(u8) {
ja = JA,
jeq = JEQ,
jgt = JGT,