commit 8d078f1ba255eb2a60a7fdef4d73c35a33d24802 (tree)
parent 74fbcd22e6ebd12c227e1ba293d71c692f0edb8b
Author: Jacob Young <jacobly0@users.noreply.github.com>
Date: Sun, 9 Feb 2025 08:48:10 -0500
cbe: fix incomplete array element types
Can't imagine this working, but might as well try until I remember why.
Closes #21439
Diffstat:
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git 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, .{