authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-02-09 08:48:10-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-02-10 17:21:32-08:00
log8d078f1ba255eb2a60a7fdef4d73c35a33d24802
tree42afc4226eabe9d26f650564eebf2e0e8f2ab780
parent74fbcd22e6ebd12c227e1ba293d71c692f0edb8b

cbe: fix incomplete array element types

Can't imagine this working, but might as well try until I remember why. Closes #21439

1 files changed, 10 insertions(+), 2 deletions(-)

src/codegen/c/Type.zig+10-2
...@@ -728,6 +728,14 @@ pub const Kind = enum {...@@ -728,6 +728,14 @@ pub const Kind = enum {
728 .global => .global,728 .global => .global,
729 };729 };
730 }730 }
731
732 pub fn asComplete(kind: Kind) Kind {
733 return switch (kind) {
734 .forward, .complete => .complete,
735 .forward_parameter, .parameter => .parameter,
736 .global => .global,
737 };
738 }
731};739};
732740
733pub const Info = union(enum) {741pub const Info = union(enum) {
...@@ -1887,7 +1895,7 @@ pub const Pool = struct {...@@ -1887,7 +1895,7 @@ pub const Pool = struct {
1887 elem_type,1895 elem_type,
1888 pt,1896 pt,
1889 mod,1897 mod,
1890 kind.noParameter(),1898 kind.noParameter().asComplete(),
1891 );1899 );
1892 if (elem_ctype.index == .void) return .void;1900 if (elem_ctype.index == .void) return .void;
1893 const array_ctype = try pool.getArray(allocator, .{1901 const array_ctype = try pool.getArray(allocator, .{
...@@ -1913,7 +1921,7 @@ pub const Pool = struct {...@@ -1913,7 +1921,7 @@ pub const Pool = struct {
1913 elem_type,1921 elem_type,
1914 pt,1922 pt,
1915 mod,1923 mod,
1916 kind.noParameter(),1924 kind.noParameter().asComplete(),
1917 );1925 );
1918 if (elem_ctype.index == .void) return .void;1926 if (elem_ctype.index == .void) return .void;
1919 const vector_ctype = try pool.getVector(allocator, .{1927 const vector_ctype = try pool.getVector(allocator, .{