dd1338b0e6
closes #1381 The union was generated as a 3 byte struct when it needed to be 4 bytes so that the packed struct bitcast could work correctly. Now it recognizes this situation and adds padding bytes to become the correct size so that it can fit into an array.
22 lines
337 B
Zig
22 lines
337 B
Zig
const std = @import("std");
|
|
|
|
const B = union(enum) {
|
|
D: u8,
|
|
E: u16,
|
|
};
|
|
|
|
const A = union(enum) {
|
|
B: B,
|
|
C: u8,
|
|
};
|
|
|
|
test "union that needs padding bytes inside an array" {
|
|
var as = []A{
|
|
A{ .B = B{ .D = 1 } },
|
|
A{ .B = B{ .D = 1 } },
|
|
};
|
|
|
|
const a = as[0].B;
|
|
std.debug.assertOrPanic(a.D == 1);
|
|
}
|