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