authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2020-03-06 00:04:24+02:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-03-06 00:06:45-05:00
logeaccfffe56655ab11a382685886492e5b9b0865c
tree47f1d393bb1cfbeb6060fb03a486a14cc31f9542
parent6b069f5c8c0f23099287ba340ddf8490c6cdc94d

translate-c: default initialize non-extern variables to undefined


2 files changed, 4 insertions(+), 2 deletions(-)

src-self-hosted/translate_c.zig+2-1
......@@ -609,7 +609,8 @@ fn visitVarDecl(c: *Context, var_decl: *const ZigClangVarDecl) Error!void {
609609 else
610610 try transCreateNodeUndefinedLiteral(c);
611611 } else if (storage_class != .Extern) {
612 return failDecl(c, var_decl_loc, checked_name, "non-extern variable has no initializer", .{});
612 eq_tok = try appendToken(c, .Equal, "=");
613 init_node = try transCreateNodeTypeIdentifier(c, "undefined");
613614 }
614615
615616 const linksection_expr = blk: {
test/translate_c.zig+2-1
......@@ -337,10 +337,11 @@ pub fn addCases(cases: *tests.TranslateCContext) void {
337337 cases.add("variables",
338338 \\extern int extern_var;
339339 \\static const int int_var = 13;
340 \\int foo;
340341 , &[_][]const u8{
341342 \\pub extern var extern_var: c_int;
342 ,
343343 \\pub const int_var: c_int = 13;
344 \\pub export var foo: c_int = undefined;
344345 });
345346
346347 cases.add("const ptr initializer",