authorgravatar for sam.tebbs@arm.comSam Tebbs <sam.tebbs@arm.com> 2019-08-07 11:51:12+01:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-08-07 14:11:18-07:00
log8621e3b5bd814005129b58469d93c2499e3d085e
tree6d4856c53ad6ec8fa33357ffb7a2cc3e79c56707
parent2cd5e555818583e77e5601d43d55339e8c4017b0

Don't emit clang error if source or filename pointer is null


1 files changed, 9 insertions(+), 6 deletions(-)

src/ir.cpp+9-6
......@@ -21312,12 +21312,15 @@ static IrInstruction *ir_analyze_instruction_c_import(IrAnalyze *ira, IrInstruct
2131221312 }
2131321313 for (size_t i = 0; i < errors_len; i += 1) {
2131421314 Stage2ErrorMsg *clang_err = &errors_ptr[i];
21315 ErrorMsg *err_msg = err_msg_create_with_offset(
21316 clang_err->filename_ptr ?
21317 buf_create_from_mem(clang_err->filename_ptr, clang_err->filename_len) : buf_alloc(),
21318 clang_err->line, clang_err->column, clang_err->offset, clang_err->source,
21319 buf_create_from_mem(clang_err->msg_ptr, clang_err->msg_len));
21320 err_msg_add_note(parent_err_msg, err_msg);
21315 // Clang can emit "too many errors, stopping now", in which case `source` and `filename_ptr` are null
21316 if (clang_err->source && clang_err->filename_ptr) {
21317 ErrorMsg *err_msg = err_msg_create_with_offset(
21318 clang_err->filename_ptr ?
21319 buf_create_from_mem(clang_err->filename_ptr, clang_err->filename_len) : buf_alloc(),
21320 clang_err->line, clang_err->column, clang_err->offset, clang_err->source,
21321 buf_create_from_mem(clang_err->msg_ptr, clang_err->msg_len));
21322 err_msg_add_note(parent_err_msg, err_msg);
21323 }
2132121324 }
2132221325
2132321326 return ira->codegen->invalid_instruction;