authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-10-21 13:14:10-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-10-21 13:14:10-04:00
log175893913defb637fd14ea5d2b49bbdf79a3222d
treec139984de1cac470b270266b0a87b0b2ca5049db
parent9b91c76088e784bb622008623059eca5bbcd8700

fix compiler crash regarding type name of undefined

See #547

2 files changed, 7 insertions(+), 0 deletions(-)

src/codegen.cpp+1
......@@ -4554,6 +4554,7 @@ static void define_builtin_types(CodeGen *g) {
45544554 {
45554555 TypeTableEntry *entry = new_type_table_entry(TypeTableEntryIdUndefLit);
45564556 buf_init_from_str(&entry->name, "(undefined)");
4557 entry->zero_bits = true;
45574558 g->builtin_types.entry_undef = entry;
45584559 }
45594560 {
test/cases/undefined.zig+6
......@@ -1,4 +1,5 @@
11const assert = @import("std").debug.assert;
2const mem = @import("std").mem;
23
34fn initStaticArray() -> [10]i32 {
45 var array: [10]i32 = undefined;
......@@ -60,3 +61,8 @@ test "assign undefined to struct with method" {
6061 assert(foo.x == 3);
6162 }
6263}
64
65test "type name of undefined" {
66 const x = undefined;
67 assert(mem.eql(u8, @typeName(@typeOf(x)), "(undefined)"));
68}