diff options
| author | Ginger Bill <bill@gingerbill.org> | 2016-10-06 23:30:22 +0100 |
|---|---|---|
| committer | Ginger Bill <bill@gingerbill.org> | 2016-10-06 23:30:22 +0100 |
| commit | f40482aa29f687b4630744457844bad7f45ec614 (patch) | |
| tree | f9d4cdec95d29197ce5a657c370eb3461e2cbbf4 /src/codegen/codegen.cpp | |
| parent | 50301557b2425fc0b4dd213ad03fb635cbd6e454 (diff) | |
Maybe types; value, ok := maybe_value(x)
Diffstat (limited to 'src/codegen/codegen.cpp')
| -rw-r--r-- | src/codegen/codegen.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/codegen/codegen.cpp b/src/codegen/codegen.cpp index bb9b999ee..a843da551 100644 --- a/src/codegen/codegen.cpp +++ b/src/codegen/codegen.cpp @@ -389,6 +389,11 @@ void ssa_gen_tree(ssaGen *s) { ssaValue *gep = get_type_info_ptr(proc, type_info_data, t->Pointer.elem); ssa_emit_store(proc, ssa_emit_struct_gep(proc, tag, v_zero32, t_type_info_ptr_ptr), gep); } break; + case Type_Maybe: { + tag = ssa_add_local_generated(proc, t_type_info_maybe); + ssaValue *gep = get_type_info_ptr(proc, type_info_data, t->Maybe.elem); + ssa_emit_store(proc, ssa_emit_struct_gep(proc, tag, v_zero32, t_type_info_ptr_ptr), gep); + } break; case Type_Array: { tag = ssa_add_local_generated(proc, t_type_info_array); ssaValue *gep = get_type_info_ptr(proc, type_info_data, t->Array.elem); |