diff --git a/src/codegen.cpp b/src/codegen.cpp index 2ab31f45ad6edfbd3dfeb12a88cab9bf4d5ad0f4..8c5d7622ccf704b20e0ad75ac859bec9913245f2 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -4554,6 +4554,7 @@ static void define_builtin_types(CodeGen *g) { { TypeTableEntry *entry = new_type_table_entry(TypeTableEntryIdUndefLit); buf_init_from_str(&entry->name, "(undefined)"); + entry->zero_bits = true; g->builtin_types.entry_undef = entry; } { diff --git a/test/cases/undefined.zig b/test/cases/undefined.zig index e6ff7dd379e34555f69a2461b79c5cd2523d2189..e2f8515fd7509e77380bb0dae983f8e2027fbc17 100644 --- a/test/cases/undefined.zig +++ b/test/cases/undefined.zig @@ -1,4 +1,5 @@ const assert = @import("std").debug.assert; +const mem = @import("std").mem; fn initStaticArray() -> [10]i32 { var array: [10]i32 = undefined; @@ -60,3 +61,8 @@ test "assign undefined to struct with method" { assert(foo.x == 3); } } + +test "type name of undefined" { + const x = undefined; + assert(mem.eql(u8, @typeName(@typeOf(x)), "(undefined)")); +}