authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2020-12-04 16:29:38+01:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2020-12-04 16:29:38+01:00
logb6b7a6401c064582b610b8ca6935a388c3bb3c03
tree90f175d522cadf89bb6a1c42c7fecc1049c12d89
parent58241364cb09debd0effd9f7fb1d1a7eeaaae7c7
parente3db2be89943333362210c1a8eb62b81c47bc1d2
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

Merge pull request #7293 from kubkon/fix-7030

stage1: allow idx 0 err to be put into error_name_table

4 files changed, 22 insertions(+), 6 deletions(-)

src/stage1/codegen.cpp+2-6
......@@ -5178,11 +5178,7 @@ static LLVMValueRef ir_render_ref(CodeGen *g, IrExecutableGen *executable, IrIns
51785178
51795179static LLVMValueRef ir_render_err_name(CodeGen *g, IrExecutableGen *executable, IrInstGenErrName *instruction) {
51805180 assert(g->generate_error_name_table);
5181
5182 if (g->errors_by_index.length == 1) {
5183 LLVMBuildUnreachable(g->builder);
5184 return nullptr;
5185 }
5181 assert(g->errors_by_index.length > 0);
51865182
51875183 LLVMValueRef err_val = ir_llvm_value(g, instruction->value);
51885184 if (ir_want_runtime_safety(g, &instruction->base)) {
......@@ -7890,7 +7886,7 @@ static void render_const_val_global(CodeGen *g, ZigValue *const_val, const char
78907886}
78917887
78927888static void generate_error_name_table(CodeGen *g) {
7893 if (g->err_name_table != nullptr || !g->generate_error_name_table || g->errors_by_index.length == 1) {
7889 if (g->err_name_table != nullptr || !g->generate_error_name_table) {
78947890 return;
78957891 }
78967892
test/standalone.zig+1
......@@ -19,6 +19,7 @@ pub fn addCases(cases: *tests.StandaloneContext) void {
1919 cases.addBuildFile("test/standalone/use_alias/build.zig");
2020 cases.addBuildFile("test/standalone/brace_expansion/build.zig");
2121 cases.addBuildFile("test/standalone/empty_env/build.zig");
22 cases.addBuildFile("test/standalone/issue_7030/build.zig");
2223 if (std.Target.current.os.tag != .wasi) {
2324 cases.addBuildFile("test/standalone/load_dynamic_library/build.zig");
2425 }
test/standalone/issue_7030/build.zig created+14
......@@ -0,0 +1,14 @@
1const Builder = @import("std").build.Builder;
2
3pub fn build(b: *Builder) void {
4 const exe = b.addExecutable("issue_7030", "main.zig");
5 exe.setTarget(.{
6 .cpu_arch = .wasm32,
7 .os_tag = .freestanding,
8 });
9 exe.install();
10 b.default_step.dependOn(&exe.step);
11
12 const test_step = b.step("test", "Test the program");
13 test_step.dependOn(&exe.step);
14}
test/standalone/issue_7030/main.zig created+5
......@@ -0,0 +1,5 @@
1const std = @import("std");
2
3pub fn main() anyerror!void {
4 std.log.info("All your codebase are belong to us.", .{});
5}