authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-09-21 01:22:50-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-09-21 01:22:50-04:00
log0d1f64b08cf1dc20c733391c6639af0ba88755e9
tree0ba9d98f5576653d80a9fd1e19993c8ae0e2085e
parent33784871ec8d809d513193f5e24865059231b1f3

parse-c: fix undefined array literals


2 files changed, 8 insertions(+), 2 deletions(-)

src/parsec.cpp+2-2
......@@ -2777,7 +2777,7 @@ static void visit_var_decl(Context *c, const VarDecl *var_decl) {
27772777 init_node = trans_create_node_apint(c, ap_value->getInt());
27782778 break;
27792779 case APValue::Uninitialized:
2780 init_node = trans_create_node_symbol_str(c, "undefined");
2780 init_node = trans_create_node(c, NodeTypeUndefinedLiteral);
27812781 break;
27822782 case APValue::Float:
27832783 case APValue::ComplexInt:
......@@ -2794,7 +2794,7 @@ static void visit_var_decl(Context *c, const VarDecl *var_decl) {
27942794 return;
27952795 }
27962796 } else {
2797 init_node = trans_create_node_symbol_str(c, "undefined");
2797 init_node = trans_create_node(c, NodeTypeUndefinedLiteral);
27982798 }
27992799
28002800 AstNode *var_node = trans_create_node_var_decl_global(c, is_const, name, var_type, init_node);
test/parsec.zig+6
......@@ -490,4 +490,10 @@ pub fn addCases(cases: &tests.ParseCContext) {
490490 ,
491491 \\export fn foo() {}
492492 );
493
494 cases.add("undefined array global",
495 \\int array[100];
496 ,
497 \\pub var array: [100]c_int = undefined;
498 );
493499}