authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-05-08 00:15:05-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-05-08 00:15:05-07:00
logaed96e35126eb6bb6c280f6517f59b5f17d7e61e
tree0a82f621df30766217424917829a6cf474cae42f
parent404defd99b76ebf2cfe46ea26248a8813e40136f

fix null literal outside function


2 files changed, 11 insertions(+), 1 deletions(-)

src/analyze.cpp-1
...@@ -3742,7 +3742,6 @@ static TypeTableEntry *analyze_null_literal_expr(CodeGen *g, ImportTableEntry *i...@@ -3742,7 +3742,6 @@ static TypeTableEntry *analyze_null_literal_expr(CodeGen *g, ImportTableEntry *i
37423742
3743 node->data.null_literal.resolved_struct_val_expr.type_entry = expected_type;3743 node->data.null_literal.resolved_struct_val_expr.type_entry = expected_type;
3744 node->data.null_literal.resolved_struct_val_expr.source_node = node;3744 node->data.null_literal.resolved_struct_val_expr.source_node = node;
3745 block_context->fn_entry->struct_val_expr_alloca_list.append(&node->data.null_literal.resolved_struct_val_expr);
37463745
3747 return resolve_expr_const_val_as_null(g, node, expected_type);3746 return resolve_expr_const_val_as_null(g, node, expected_type);
3748}3747}
test/self_hosted.zig+11
...@@ -1612,3 +1612,14 @@ fn exact_division() {...@@ -1612,3 +1612,14 @@ fn exact_division() {
1612fn div_exact(a: u32, b: u32) -> u32 {1612fn div_exact(a: u32, b: u32) -> u32 {
1613 @div_exact(a, b)1613 @div_exact(a, b)
1614}1614}
1615
1616#attribute("test")
1617fn null_literal_outside_function() {
1618 assert(here_is_a_null_literal.context == null);
1619}
1620struct SillyStruct {
1621 context: ?i32,
1622}
1623const here_is_a_null_literal = SillyStruct {
1624 .context = null,
1625};