stage2: change @bitCast to always be by-value
After a discussion about language specs, this seems like the best way to go, because it's simpler to reason about both for humans and compilers. The `bitcast_result_ptr` ZIR instruction is no longer needed. This commit also implements writing enums, arrays, and vectors to virtual memory at compile-time. This unlocked some more of compiler-rt being able to build, which in turn unlocks saturating arithmetic behavior tests. There was also a memory leak in the comptime closure system which is now fixed.
This commit is contained in:
@@ -317,6 +317,7 @@ pub const WipCaptureScope = struct {
|
||||
assert(!self.finalized);
|
||||
// use a temp to avoid unintentional aliasing due to RLS
|
||||
const tmp = try self.scope.captures.clone(self.perm_arena);
|
||||
self.scope.captures.deinit(self.gpa);
|
||||
self.scope.captures = tmp;
|
||||
self.finalized = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user