aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.cpp
diff options
context:
space:
mode:
authorLemonBoy <thatlemon@gmail.com>2020-01-11 19:59:01 +0100
committerAndrew Kelley <andrew@ziglang.org>2020-01-11 15:48:32 -0500
commit95619ecb8ccf8a5405b901e02cfbb389a8f95aba (patch)
tree46dce328a8b95b3aaac1fe1e3ed02820f2689533 /src/codegen.cpp
parent9cc7fb66bc00d54d8e4ff77cb6a0327488ceb59d (diff)
downloadzig-95619ecb8ccf8a5405b901e02cfbb389a8f95aba.tar.gz
zig-95619ecb8ccf8a5405b901e02cfbb389a8f95aba.zip
Stop dropping errors from clang
* Refactor the error-writing code to be more compact and flexible
Diffstat (limited to 'src/codegen.cpp')
-rw-r--r--src/codegen.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/codegen.cpp b/src/codegen.cpp
index 84f3251c91..fd36e15f82 100644
--- a/src/codegen.cpp
+++ b/src/codegen.cpp
@@ -9242,15 +9242,12 @@ void codegen_translate_c(CodeGen *g, Buf *full_path) {
for (size_t i = 0; i < errors_len; i += 1) {
Stage2ErrorMsg *clang_err = &errors_ptr[i];
- // Clang can emit "too many errors, stopping now", in which case `source` and `filename_ptr` are null
- if (clang_err->source && clang_err->filename_ptr) {
- ErrorMsg *err_msg = err_msg_create_with_offset(
- clang_err->filename_ptr ?
- buf_create_from_mem(clang_err->filename_ptr, clang_err->filename_len) : buf_alloc(),
- clang_err->line, clang_err->column, clang_err->offset, clang_err->source,
- buf_create_from_mem(clang_err->msg_ptr, clang_err->msg_len));
- print_err_msg(err_msg, g->err_color);
- }
+ ErrorMsg *err_msg = err_msg_create_with_offset(
+ clang_err->filename_ptr ?
+ buf_create_from_mem(clang_err->filename_ptr, clang_err->filename_len) : nullptr,
+ clang_err->line, clang_err->column, clang_err->offset, clang_err->source,
+ buf_create_from_mem(clang_err->msg_ptr, clang_err->msg_len));
+ print_err_msg(err_msg, g->err_color);
}
exit(1);
}