| author | |
| committer | |
| log | eac2bbfec9f99c27a886f4842cb9ca42584607f3 |
| tree | 3a757b77dc676619f3aace7bf1acca538b7c19fe |
| parent | 1872c85ac25146036119387d1f376e2cba3ff7be |
check when an auto-layout struct is attempted to be memory reinterpreted
and written out. it would be writing undefined memory1 files changed, 5 insertions(+), 0 deletions(-)
lib/std/Io/Writer.zig+5| ... | ... | @@ -865,6 +865,11 @@ pub inline fn writeSliceEndian( |
| 865 | 865 | slice: []const Elem, |
| 866 | 866 | endian: std.builtin.Endian, |
| 867 | 867 | ) Error!void { |
| 868 | switch (@typeInfo(Elem)) { | |
| 869 | .@"struct" => |info| comptime assert(info.layout != .auto), | |
| 870 | .int, .@"enum" => {}, | |
| 871 | else => @compileError("ill-defined memory layout"), | |
| 872 | } | |
| 868 | 873 | if (native_endian == endian) { |
| 869 | 874 | return writeAll(w, @ptrCast(slice)); |
| 870 | 875 | } else { |