Commit fe0c6a3df9
Changed files (2)
src
test
src/errmsg.cpp
@@ -80,9 +80,12 @@ ErrorMsg *err_msg_create_with_line(Buf *path, int line, int column,
int line_start_offset = line_offsets->at(line);
int end_line = line + 1;
int line_end_offset = (end_line >= line_offsets->length) ? buf_len(source) : line_offsets->at(line + 1);
+ int len = line_end_offset - line_start_offset - 1;
+ if (len < 0) {
+ len = 0;
+ }
- buf_init_from_mem(&err_msg->line_buf, buf_ptr(source) + line_start_offset,
- line_end_offset - line_start_offset - 1);
+ buf_init_from_mem(&err_msg->line_buf, buf_ptr(source) + line_start_offset, len);
return err_msg;
}
test/run_tests.cpp
@@ -1680,6 +1680,9 @@ c_import {
)SOURCE", 2, ".tmp_source.zig:2:1: error: C import failed",
".h:1:10: error: 'bogus.h' file not found");
+ add_compile_fail_case("empty file", "",
+ 1, ".tmp_source.zig:1:1: error: missing export declaration and output name not provided");
+
}
static void print_compiler_invocation(TestCase *test_case) {