authorgravatar for cody+topolarity@tapscott.meCody Tapscott <cody+topolarity@tapscott.me> 2022-01-24 11:30:09-07:00
committergravatar for cody+topolarity@tapscott.meCody Tapscott <cody+topolarity@tapscott.me> 2022-01-24 11:58:43-07:00
log799bd81b080cebd246698f054cb3c243d39ab4f9
treed03f2a3abb4956968978c0e832c40837560ba36f
parenta0732117d07f9dc9b8afb457d935ca84411ec233

Add support for rendering `.elem_ptr`


1 files changed, 12 insertions(+), 0 deletions(-)

src/codegen/c.zig+12
......@@ -408,6 +408,18 @@ pub const DeclGen = struct {
408408 try dg.renderValue(writer, Type.usize, slice.len);
409409 try writer.writeAll("}");
410410 },
411 .elem_ptr => {
412 const elem_ptr = val.castTag(.elem_ptr).?.data;
413 var arena = std.heap.ArenaAllocator.init(dg.module.gpa);
414 defer arena.deinit();
415 const elem_ptr_ty = try ty.elemPtrType(arena.allocator());
416
417 try writer.writeAll("(&((");
418 try dg.renderType(writer, ty);
419 try writer.writeByte(')');
420 try dg.renderValue(writer, elem_ptr_ty, elem_ptr.array_ptr);
421 try writer.print(")[{d}])", .{elem_ptr.index});
422 },
411423 .function => {
412424 const func = val.castTag(.function).?.data;
413425 try dg.renderDeclName(func.owner_decl, writer);