aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/c.zig
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2023-05-28 02:41:22 -0400
committerAndrew Kelley <andrew@ziglang.org>2023-06-10 20:47:56 -0700
commit3b6ca1d35b950d67fff5964f0063dadf01f30e2d (patch)
tree953815632535b965c7d32318ca515d8926cf4c4b /src/codegen/c.zig
parentd40b83de45db27c8c3e7a1f2ccf892563df43637 (diff)
downloadzig-3b6ca1d35b950d67fff5964f0063dadf01f30e2d.tar.gz
zig-3b6ca1d35b950d67fff5964f0063dadf01f30e2d.zip
Module: move memoized data to the intern pool
This avoids memory management bugs with the previous implementation.
Diffstat (limited to 'src/codegen/c.zig')
-rw-r--r--src/codegen/c.zig6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig
index a8e2077652..e6ce72f48e 100644
--- a/src/codegen/c.zig
+++ b/src/codegen/c.zig
@@ -1090,6 +1090,7 @@ pub const DeclGen = struct {
};
switch (mod.intern_pool.indexToKey(val.ip_index)) {
+ // types, not values
.int_type,
.ptr_type,
.array_type,
@@ -1106,7 +1107,10 @@ pub const DeclGen = struct {
.func_type,
.error_set_type,
.inferred_error_set_type,
- => unreachable, // types, not values
+ // memoization, not values
+ .memoized_decl,
+ .memoized_call,
+ => unreachable,
.undef, .runtime_value => unreachable, // handled above
.simple_value => |simple_value| switch (simple_value) {