| author | |
| committer | |
| log | 55709de185d973d9866aa761372817e0c3e8774d |
| tree | 02d6806985ecdc00b8f3d4716ed2b5e5c8bf30aa |
| parent | cea6e8b2d8bd0143010d58c91cfef9992143b2c2 |
2 files changed, 12 insertions(+), 1 deletions(-)
src/stage1/codegen.cpp+1-1| ... | @@ -8193,7 +8193,7 @@ static void generate_error_name_table(CodeGen *g) { | ... | @@ -8193,7 +8193,7 @@ static void generate_error_name_table(CodeGen *g) { |
| 8193 | 8193 | ||
| 8194 | g->largest_err_name_len = max(g->largest_err_name_len, buf_len(name)); | 8194 | g->largest_err_name_len = max(g->largest_err_name_len, buf_len(name)); |
| 8195 | 8195 | ||
| 8196 | LLVMValueRef str_init = LLVMConstString(buf_ptr(name), (unsigned)buf_len(name), true); | 8196 | LLVMValueRef str_init = LLVMConstString(buf_ptr(name), (unsigned)buf_len(name), false); |
| 8197 | LLVMValueRef str_global = LLVMAddGlobal(g->module, LLVMTypeOf(str_init), ""); | 8197 | LLVMValueRef str_global = LLVMAddGlobal(g->module, LLVMTypeOf(str_init), ""); |
| 8198 | LLVMSetInitializer(str_global, str_init); | 8198 | LLVMSetInitializer(str_global, str_init); |
| 8199 | LLVMSetLinkage(str_global, LLVMPrivateLinkage); | 8199 | LLVMSetLinkage(str_global, LLVMPrivateLinkage); |
test/behavior/error_stage1.zig+11| ... | @@ -14,6 +14,17 @@ test "@errorName" { | ... | @@ -14,6 +14,17 @@ test "@errorName" { |
| 14 | try expect(mem.eql(u8, @errorName(gimmeItBroke()), "ItBroke")); | 14 | try expect(mem.eql(u8, @errorName(gimmeItBroke()), "ItBroke")); |
| 15 | } | 15 | } |
| 16 | 16 | ||
| 17 | test "@errorName sentinel length matches slice length" { | ||
| 18 | const name = testBuiltinErrorName(error.FooBar); | ||
| 19 | const length: usize = 6; | ||
| 20 | try expectEqual(length, std.mem.indexOfSentinel(u8, 0, name.ptr)); | ||
| 21 | try expectEqual(length, name.len); | ||
| 22 | } | ||
| 23 | |||
| 24 | pub fn testBuiltinErrorName(err: anyerror) [:0]const u8 { | ||
| 25 | return @errorName(err); | ||
| 26 | } | ||
| 27 | |||
| 17 | test "error union type " { | 28 | test "error union type " { |
| 18 | try testErrorUnionType(); | 29 | try testErrorUnionType(); |
| 19 | comptime try testErrorUnionType(); | 30 | comptime try testErrorUnionType(); |