| ... | ... | @@ -8894,12 +8894,16 @@ void codegen_translate_c(CodeGen *g, Buf *full_path, FILE *out_file, bool use_us |
| 8894 | 8894 | if (err == ErrorCCompileErrors && errors_len > 0) { |
| 8895 | 8895 | for (size_t i = 0; i < errors_len; i += 1) { |
| 8896 | 8896 | Stage2ErrorMsg *clang_err = &errors_ptr[i]; |
| 8897 | | ErrorMsg *err_msg = err_msg_create_with_offset( |
| 8898 | | clang_err->filename_ptr ? |
| 8899 | | buf_create_from_mem(clang_err->filename_ptr, clang_err->filename_len) : buf_alloc(), |
| 8900 | | clang_err->line, clang_err->column, clang_err->offset, clang_err->source, |
| 8901 | | buf_create_from_mem(clang_err->msg_ptr, clang_err->msg_len)); |
| 8902 | | print_err_msg(err_msg, g->err_color); |
| 8897 | |
| 8898 | // Clang can emit "too many errors, stopping now", in which case `source` and `filename_ptr` are null |
| 8899 | if (clang_err->source && clang_err->filename_ptr) { |
| 8900 | ErrorMsg *err_msg = err_msg_create_with_offset( |
| 8901 | clang_err->filename_ptr ? |
| 8902 | buf_create_from_mem(clang_err->filename_ptr, clang_err->filename_len) : buf_alloc(), |
| 8903 | clang_err->line, clang_err->column, clang_err->offset, clang_err->source, |
| 8904 | buf_create_from_mem(clang_err->msg_ptr, clang_err->msg_len)); |
| 8905 | print_err_msg(err_msg, g->err_color); |
| 8906 | } |
| 8903 | 8907 | } |
| 8904 | 8908 | exit(1); |
| 8905 | 8909 | } |