From 0d1f64b08cf1dc20c733391c6639af0ba88755e9 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 21 Sep 2017 01:22:50 -0400 Subject: [PATCH] parse-c: fix undefined array literals --- src/parsec.cpp | 4 ++-- test/parsec.zig | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) 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; + ); } -- 2.54.0