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) {...@@ -2777,7 +2777,7 @@ static void visit_var_decl(Context *c, const VarDecl *var_decl) {
2777 init_node = trans_create_node_apint(c, ap_value->getInt());2777 init_node = trans_create_node_apint(c, ap_value->getInt());
2778 break;2778 break;
2779 case APValue::Uninitialized:2779 case APValue::Uninitialized:
2780 init_node = trans_create_node_symbol_str(c, "undefined");2780 init_node = trans_create_node(c, NodeTypeUndefinedLiteral);
2781 break;2781 break;
2782 case APValue::Float:2782 case APValue::Float:
2783 case APValue::ComplexInt:2783 case APValue::ComplexInt:
...@@ -2794,7 +2794,7 @@ static void visit_var_decl(Context *c, const VarDecl *var_decl) {...@@ -2794,7 +2794,7 @@ static void visit_var_decl(Context *c, const VarDecl *var_decl) {
2794 return;2794 return;
2795 }2795 }
2796 } else {2796 } else {
2797 init_node = trans_create_node_symbol_str(c, "undefined");2797 init_node = trans_create_node(c, NodeTypeUndefinedLiteral);
2798 }2798 }
27992799
2800 AstNode *var_node = trans_create_node_var_decl_global(c, is_const, name, var_type, init_node);2800 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) {...@@ -490,4 +490,10 @@ pub fn addCases(cases: &tests.ParseCContext) {
490 ,490 ,
491 \\export fn foo() {}491 \\export fn foo() {}
492 );492 );
493
494 cases.add("undefined array global",
495 \\int array[100];
496 ,
497 \\pub var array: [100]c_int = undefined;
498 );
493}499}