diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-11-25 18:06:09 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-25 18:06:09 -0500 |
| commit | 30eb2a1753c41f348f7d5dcf2b9059a51afab5ad (patch) | |
| tree | 9c89fa27e516c1575daea0d6c408acab75617f58 /src/codegen | |
| parent | a2403d354fa3f93aa4b916f574393c12dff39e51 (diff) | |
| parent | 9f055e2eb0252d872c9111e60ef7c0802d91bea6 (diff) | |
| download | zig-30eb2a1753c41f348f7d5dcf2b9059a51afab5ad.tar.gz zig-30eb2a1753c41f348f7d5dcf2b9059a51afab5ad.zip | |
Merge pull request #13627 from Vexu/tuple-decls
Implement tuple type declarations
Diffstat (limited to 'src/codegen')
| -rw-r--r-- | src/codegen/c.zig | 2 | ||||
| -rw-r--r-- | src/codegen/llvm.zig | 10 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 9b3ed334c0..91e9b5f939 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -1796,7 +1796,7 @@ pub const DeclGen = struct { }, .Struct, .Union => |tag| if (tag == .Struct and t.containerLayout() == .Packed) try dg.renderType(w, t.castTag(.@"struct").?.data.backing_int_ty, kind) - else if (t.isTupleOrAnonStruct()) { + else if (t.isSimpleTupleOrAnonStruct()) { const ExpectedContents = struct { types: [8]Type, values: [8]Value }; var stack align(@alignOf(ExpectedContents)) = std.heap.stackFallback(@sizeOf(ExpectedContents), dg.gpa); diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index b3ea892566..a78b201a0a 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -1956,7 +1956,7 @@ pub const Object = struct { break :blk fwd_decl; }; - if (ty.isTupleOrAnonStruct()) { + if (ty.isSimpleTupleOrAnonStruct()) { const tuple = ty.tupleFields(); var di_fields: std.ArrayListUnmanaged(*llvm.DIType) = .{}; @@ -2890,7 +2890,7 @@ pub const DeclGen = struct { // reference, we need to copy it here. gop.key_ptr.* = try t.copy(dg.object.type_map_arena.allocator()); - if (t.isTupleOrAnonStruct()) { + if (t.isSimpleTupleOrAnonStruct()) { const tuple = t.tupleFields(); const llvm_struct_ty = dg.context.structCreateNamed(""); gop.value_ptr.* = llvm_struct_ty; // must be done before any recursive calls @@ -3584,7 +3584,7 @@ pub const DeclGen = struct { const field_vals = tv.val.castTag(.aggregate).?.data; const gpa = dg.gpa; - if (tv.ty.isTupleOrAnonStruct()) { + if (tv.ty.isSimpleTupleOrAnonStruct()) { const tuple = tv.ty.tupleFields(); var llvm_fields: std.ArrayListUnmanaged(*llvm.Value) = .{}; defer llvm_fields.deinit(gpa); @@ -10210,7 +10210,7 @@ fn llvmFieldIndex( var offset: u64 = 0; var big_align: u32 = 0; - if (ty.isTupleOrAnonStruct()) { + if (ty.isSimpleTupleOrAnonStruct()) { const tuple = ty.tupleFields(); var llvm_field_index: c_uint = 0; for (tuple.types) |field_ty, i| { @@ -10773,7 +10773,7 @@ fn isByRef(ty: Type) bool { .Struct => { // Packed structs are represented to LLVM as integers. if (ty.containerLayout() == .Packed) return false; - if (ty.isTupleOrAnonStruct()) { + if (ty.isSimpleTupleOrAnonStruct()) { const tuple = ty.tupleFields(); var count: usize = 0; for (tuple.values) |field_val, i| { |
