From 8d078f1ba255eb2a60a7fdef4d73c35a33d24802 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Sun, 9 Feb 2025 08:48:10 -0500 Subject: [PATCH] cbe: fix incomplete array element types Can't imagine this working, but might as well try until I remember why. Closes #21439 --- src/codegen/c/Type.zig | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/codegen/c/Type.zig b/src/codegen/c/Type.zig index 4c6f37c69d..54f012e8ef 100644 --- a/src/codegen/c/Type.zig +++ b/src/codegen/c/Type.zig @@ -728,6 +728,14 @@ pub const Kind = enum { .global => .global, }; } + + pub fn asComplete(kind: Kind) Kind { + return switch (kind) { + .forward, .complete => .complete, + .forward_parameter, .parameter => .parameter, + .global => .global, + }; + } }; pub const Info = union(enum) { @@ -1887,7 +1895,7 @@ pub const Pool = struct { elem_type, pt, mod, - kind.noParameter(), + kind.noParameter().asComplete(), ); if (elem_ctype.index == .void) return .void; const array_ctype = try pool.getArray(allocator, .{ @@ -1913,7 +1921,7 @@ pub const Pool = struct { elem_type, pt, mod, - kind.noParameter(), + kind.noParameter().asComplete(), ); if (elem_ctype.index == .void) return .void; const vector_ctype = try pool.getVector(allocator, .{