parse-c: fix undefined array literals

This commit is contained in:
Andrew Kelley 2017-09-21 01:22:50 -04:00
parent 33784871ec
commit 0d1f64b08c
2 changed files with 8 additions and 2 deletions

View File

@ -2777,7 +2777,7 @@ static void visit_var_decl(Context *c, const VarDecl *var_decl) {
init_node = trans_create_node_apint(c, ap_value->getInt());
break;
case APValue::Uninitialized:
init_node = trans_create_node_symbol_str(c, "undefined");
init_node = trans_create_node(c, NodeTypeUndefinedLiteral);
break;
case APValue::Float:
case APValue::ComplexInt:
@ -2794,7 +2794,7 @@ static void visit_var_decl(Context *c, const VarDecl *var_decl) {
return;
}
} else {
init_node = trans_create_node_symbol_str(c, "undefined");
init_node = trans_create_node(c, NodeTypeUndefinedLiteral);
}
AstNode *var_node = trans_create_node_var_decl_global(c, is_const, name, var_type, init_node);

View File

@ -490,4 +490,10 @@ pub fn addCases(cases: &tests.ParseCContext) {
,
\\export fn foo() {}
);
cases.add("undefined array global",
\\int array[100];
,
\\pub var array: [100]c_int = undefined;
);
}