From 50bcfb8c906be67a044ff4bef857a8d6d615de71 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 1 Apr 2021 11:58:55 -0700 Subject: stage2: implement struct init syntax with ptr result loc --- src/Sema.zig | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/Sema.zig') diff --git a/src/Sema.zig b/src/Sema.zig index 876016df8c..bb1daf1121 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -326,6 +326,10 @@ pub fn analyzeBody( try sema.zirResolveInferredAlloc(block, inst); continue; }, + .validate_struct_init_ptr => { + try sema.zirValidateStructInitPtr(block, inst); + continue; + }, // Special case instructions to handle comptime control flow. .repeat_inline => { @@ -694,6 +698,18 @@ fn zirResolveInferredAlloc(sema: *Sema, block: *Scope.Block, inst: zir.Inst.Inde ptr.tag = .alloc; } +fn zirValidateStructInitPtr(sema: *Sema, block: *Scope.Block, inst: zir.Inst.Index) InnerError!void { + const tracy = trace(@src()); + defer tracy.end(); + + const inst_data = sema.code.instructions.items(.data)[inst].pl_node; + const src = inst_data.src(); + const extra = sema.code.extraData(zir.Inst.Block, inst_data.payload_index); + const instrs = sema.code.extra[extra.end..][0..extra.data.body_len]; + + return sema.mod.fail(&block.base, src, "TODO implement zirValidateStructInitPtr", .{}); +} + fn zirStoreToBlockPtr(sema: *Sema, block: *Scope.Block, inst: zir.Inst.Index) InnerError!void { const tracy = trace(@src()); defer tracy.end(); -- cgit v1.2.3