diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2021-04-01 11:58:55 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2021-04-01 11:58:55 -0700 |
| commit | 50bcfb8c906be67a044ff4bef857a8d6d615de71 (patch) | |
| tree | 1ab1bd3d8bba948a44bbcbaf15860803f75c1221 /src/Sema.zig | |
| parent | 59035ae3e9d2de2d95036ff522fb926a3bd27b3c (diff) | |
| download | zig-50bcfb8c906be67a044ff4bef857a8d6d615de71.tar.gz zig-50bcfb8c906be67a044ff4bef857a8d6d615de71.zip | |
stage2: implement struct init syntax with ptr result loc
Diffstat (limited to 'src/Sema.zig')
| -rw-r--r-- | src/Sema.zig | 16 |
1 files changed, 16 insertions, 0 deletions
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(); |
