diff --git a/src/parsec.cpp b/src/parsec.cpp index 5997564c0..89a133c87 100644 --- a/src/parsec.cpp +++ b/src/parsec.cpp @@ -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); diff --git a/test/parsec.zig b/test/parsec.zig index 4cb77ffe2..58b545eb2 100644 --- a/test/parsec.zig +++ b/test/parsec.zig @@ -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; + ); }