diff --git a/src/parsec.cpp b/src/parsec.cpp index 5997564c0a7a71ca7eb305dc6e40e890ae72f7d5..89a133c872e19592b6da17b676d5422f869f17af 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 4cb77ffe2a29fed43462d61d12f78491556482f5..58b545eb280f7257d177d34d3f72c1acbb4917ca 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; + ); }