diff options
Diffstat (limited to 'src/codegen.cpp')
| -rw-r--r-- | src/codegen.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/codegen.cpp b/src/codegen.cpp index 12ba5378ac..82f7084159 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -875,6 +875,9 @@ static LLVMValueRef gen_cast_expr(CodeGen *g, AstNode *node) { return cast_expr->tmp_ptr; } + case CastOpNullToMaybe: + // handled by constant expression evaluator + zig_unreachable(); case CastOpErrorWrap: { assert(wanted_type->id == TypeTableEntryIdErrorUnion); @@ -3806,6 +3809,7 @@ static LLVMValueRef gen_const_val(CodeGen *g, TypeTableEntry *type_entry, ConstE case TypeTableEntryIdNumLitFloat: case TypeTableEntryIdNumLitInt: case TypeTableEntryIdUndefLit: + case TypeTableEntryIdNullLit: case TypeTableEntryIdVoid: case TypeTableEntryIdNamespace: case TypeTableEntryIdGenericFn: @@ -4311,6 +4315,12 @@ static void define_builtin_types(CodeGen *g) { entry->deep_const = true; g->builtin_types.entry_undef = entry; } + { + TypeTableEntry *entry = new_type_table_entry(TypeTableEntryIdNullLit); + buf_init_from_str(&entry->name, "(null)"); + entry->deep_const = true; + g->builtin_types.entry_null = entry; + } for (int int_size_i = 0; int_size_i < array_length(int_sizes_in_bits); int_size_i += 1) { int size_in_bits = int_sizes_in_bits[int_size_i]; |
