Commit 034507ef7c

Veikka Tuominen <git@vexu.eu>
2022-11-17 22:28:19
Module: fix compile error for non-comptime-known global initializer
1 parent 98b3734
Changed files (2)
src/Module.zig
@@ -4633,7 +4633,7 @@ fn semaDecl(mod: *Module, decl_index: Decl.Index) !bool {
     const address_space_src: LazySrcLoc = .{ .node_offset_var_decl_addrspace = 0 };
     const ty_src: LazySrcLoc = .{ .node_offset_var_decl_ty = 0 };
     const init_src: LazySrcLoc = .{ .node_offset_var_decl_init = 0 };
-    const decl_tv = try sema.resolveInstValue(&block_scope, init_src, result_ref, undefined);
+    const decl_tv = try sema.resolveInstValue(&block_scope, init_src, result_ref, "global variable initializer must be comptime-known");
 
     // Note this resolves the type of the Decl, not the value; if this Decl
     // is a struct, for example, this resolves `type` (which needs no resolution),
test/cases/compile_errors/global_variable_stored_in_global_const.zig
@@ -0,0 +1,12 @@
+var a: u32 = 2;
+const b = a;
+pub export fn entry() void {
+    _ = b;
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :2:11: error: unable to resolve comptime value
+// :2:11: note: global variable initializer must be comptime-known