compiler: un-implement #19634

This commit reverts the handling of partially-undefined values in
bitcasting to transform these bits into an arbitrary numeric value,
like happens on `master` today.

As @andrewrk rightly points out, #19634 has unfortunate consequences
for the standard library, and likely requires more thought. To avoid
a major breaking change, it has been decided to revert this design
decision for now, and make a more informed decision further down the
line.
This commit is contained in:
mlugg
2024-04-16 21:49:08 +01:00
parent 66630f6c93
commit 03ad862197
4 changed files with 21 additions and 30 deletions

View File

@@ -214,10 +214,6 @@ pub fn PackedIntArrayEndian(comptime Int: type, comptime endian: Endian, comptim
/// or, more likely, an array literal.
pub fn init(ints: [int_count]Int) Self {
var self: Self = undefined;
if (@inComptime()) {
// TODO: #19634
@memset(&self.bytes, 0xAA);
}
for (ints, 0..) |int, i| self.set(i, int);
return self;
}
@@ -225,10 +221,6 @@ pub fn PackedIntArrayEndian(comptime Int: type, comptime endian: Endian, comptim
/// Initialize all entries of a packed array to the same value.
pub fn initAllTo(int: Int) Self {
var self: Self = undefined;
if (@inComptime()) {
// TODO: #19634
@memset(&self.bytes, 0xAA);
}
self.setAll(int);
return self;
}