authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-27 22:05:27-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-27 22:05:27-05:00
log8710fdbf39c793027f332bd00efe70edaa86d91c
treebfdb0f4a8f176c0e67e72461e5756de7d88e4297
parentae20574d5efaa7c63d78299b761eee38515b5865
signaturelock-open Commit is signed but in an unrecognized format.

fix line, column numbers of compile errors


1 files changed, 15 insertions(+), 12 deletions(-)

src/ir.cpp+15-12
......@@ -18413,7 +18413,7 @@ static IrInstGen *ir_resolve_result_raw(IrAnalyze *ira, IrInst *suspend_source_i
1841318413
1841418414 IrInstGen *casted_value;
1841518415 if (value != nullptr) {
18416 casted_value = ir_implicit_cast(ira, value, dest_type);
18416 casted_value = ir_implicit_cast2(ira, suspend_source_instr, value, dest_type);
1841718417 if (type_is_invalid(casted_value->value->type))
1841818418 return ira->codegen->invalid_inst_gen;
1841918419 dest_type = casted_value->value->type;
......@@ -18860,7 +18860,8 @@ static IrInstGen *ir_analyze_async_call(IrAnalyze *ira, IrInst* source_instr, Zi
1886018860 if (type_is_invalid(result_loc->value->type) || result_loc->value->type->id == ZigTypeIdUnreachable) {
1886118861 return result_loc;
1886218862 }
18863 result_loc = ir_implicit_cast(ira, result_loc, get_pointer_to_type(ira->codegen, frame_type, false));
18863 result_loc = ir_implicit_cast2(ira, &call_result_loc->source_instruction->base, result_loc,
18864 get_pointer_to_type(ira->codegen, frame_type, false));
1886418865 if (type_is_invalid(result_loc->value->type))
1886518866 return ira->codegen->invalid_inst_gen;
1886618867 return &ir_build_call_gen(ira, source_instr, fn_entry, fn_ref, arg_count,
......@@ -19177,7 +19178,7 @@ static IrInstGen *ir_analyze_store_ptr(IrAnalyze *ira, IrInst* source_instr,
1917719178}
1917819179
1917919180static IrInstGen *analyze_casted_new_stack(IrAnalyze *ira, IrInst* source_instr,
19180 IrInstGen *new_stack, bool is_async_call_builtin, ZigFn *fn_entry)
19181 IrInstGen *new_stack, IrInst *new_stack_src, bool is_async_call_builtin, ZigFn *fn_entry)
1918119182{
1918219183 if (new_stack == nullptr)
1918319184 return nullptr;
......@@ -19202,14 +19203,14 @@ static IrInstGen *analyze_casted_new_stack(IrAnalyze *ira, IrInst* source_instr,
1920219203 false, false, PtrLenUnknown, target_fn_align(ira->codegen->zig_target), 0, 0, false);
1920319204 ZigType *u8_slice = get_slice_type(ira->codegen, u8_ptr);
1920419205 ira->codegen->need_frame_size_prefix_data = true;
19205 return ir_implicit_cast(ira, new_stack, u8_slice);
19206 return ir_implicit_cast2(ira, new_stack_src, new_stack, u8_slice);
1920619207 }
1920719208}
1920819209
1920919210static IrInstGen *ir_analyze_fn_call(IrAnalyze *ira, IrInst* source_instr,
1921019211 ZigFn *fn_entry, ZigType *fn_type, IrInstGen *fn_ref,
1921119212 IrInstGen *first_arg_ptr, CallModifier modifier,
19212 IrInstGen *new_stack, bool is_async_call_builtin,
19213 IrInstGen *new_stack, IrInst *new_stack_src, bool is_async_call_builtin,
1921319214 IrInstGen **args_ptr, size_t args_len, IrInstGen *ret_ptr, ResultLoc *call_result_loc)
1921419215{
1921519216 Error err;
......@@ -19486,8 +19487,8 @@ static IrInstGen *ir_analyze_fn_call(IrAnalyze *ira, IrInst* source_instr,
1948619487 case ReqCompTimeYes:
1948719488 // Throw out our work and call the function as if it were comptime.
1948819489 return ir_analyze_fn_call(ira, source_instr, fn_entry, fn_type, fn_ref, first_arg_ptr,
19489 CallModifierCompileTime, new_stack, is_async_call_builtin, args_ptr, args_len,
19490 ret_ptr, call_result_loc);
19490 CallModifierCompileTime, new_stack, new_stack_src, is_async_call_builtin,
19491 args_ptr, args_len, ret_ptr, call_result_loc);
1949119492 case ReqCompTimeInvalid:
1949219493 return ira->codegen->invalid_inst_gen;
1949319494 case ReqCompTimeNo:
......@@ -19522,7 +19523,7 @@ static IrInstGen *ir_analyze_fn_call(IrAnalyze *ira, IrInst* source_instr,
1952219523 }
1952319524
1952419525 IrInstGen *casted_new_stack = analyze_casted_new_stack(ira, source_instr, new_stack,
19525 is_async_call_builtin, impl_fn);
19526 new_stack_src, is_async_call_builtin, impl_fn);
1952619527 if (casted_new_stack != nullptr && type_is_invalid(casted_new_stack->value->type))
1952719528 return ira->codegen->invalid_inst_gen;
1952819529
......@@ -19647,7 +19648,7 @@ static IrInstGen *ir_analyze_fn_call(IrAnalyze *ira, IrInst* source_instr,
1964719648 return ira->codegen->invalid_inst_gen;
1964819649 }
1964919650
19650 IrInstGen *casted_new_stack = analyze_casted_new_stack(ira, source_instr, new_stack,
19651 IrInstGen *casted_new_stack = analyze_casted_new_stack(ira, source_instr, new_stack, new_stack_src,
1965119652 is_async_call_builtin, fn_entry);
1965219653 if (casted_new_stack != nullptr && type_is_invalid(casted_new_stack->value->type))
1965319654 return ira->codegen->invalid_inst_gen;
......@@ -19706,10 +19707,12 @@ static IrInstGen *ir_analyze_fn_call_src(IrAnalyze *ira, IrInstSrcCall *call_ins
1970619707 IrInstGen *first_arg_ptr, CallModifier modifier)
1970719708{
1970819709 IrInstGen *new_stack = nullptr;
19710 IrInst *new_stack_src = nullptr;
1970919711 if (call_instruction->new_stack) {
1971019712 new_stack = call_instruction->new_stack->child;
1971119713 if (type_is_invalid(new_stack->value->type))
1971219714 return ira->codegen->invalid_inst_gen;
19715 new_stack_src = &call_instruction->new_stack->base;
1971319716 }
1971419717 IrInstGen **args_ptr = allocate<IrInstGen *>(call_instruction->arg_count, "IrInstGen *");
1971519718 for (size_t i = 0; i < call_instruction->arg_count; i += 1) {
......@@ -19724,7 +19727,7 @@ static IrInstGen *ir_analyze_fn_call_src(IrAnalyze *ira, IrInstSrcCall *call_ins
1972419727 return ira->codegen->invalid_inst_gen;
1972519728 }
1972619729 IrInstGen *result = ir_analyze_fn_call(ira, &call_instruction->base.base, fn_entry, fn_type, fn_ref,
19727 first_arg_ptr, modifier, new_stack, call_instruction->is_async_call_builtin,
19730 first_arg_ptr, modifier, new_stack, new_stack_src, call_instruction->is_async_call_builtin,
1972819731 args_ptr, call_instruction->arg_count, ret_ptr, call_instruction->result_loc);
1972919732 deallocate(args_ptr, call_instruction->arg_count, "IrInstGen *");
1973019733 return result;
......@@ -19824,7 +19827,7 @@ static IrInstGen *ir_analyze_call_extra(IrAnalyze *ira, IrInst* source_instr,
1982419827 }
1982519828
1982619829 return ir_analyze_fn_call(ira, source_instr, fn, fn_type, fn_ref, first_arg_ptr,
19827 modifier, stack, false, args_ptr, args_len, nullptr, result_loc);
19830 modifier, stack, &stack->base, false, args_ptr, args_len, nullptr, result_loc);
1982819831}
1982919832
1983019833static IrInstGen *ir_analyze_instruction_call_extra(IrAnalyze *ira, IrInstSrcCallExtra *instruction) {
......@@ -29477,7 +29480,7 @@ static IrInstGen *ir_analyze_instruction_resume(IrAnalyze *ira, IrInstSrcResume
2947729480 }
2947829481
2947929482 ZigType *any_frame_type = get_any_frame_type(ira->codegen, nullptr);
29480 IrInstGen *casted_frame = ir_implicit_cast(ira, frame, any_frame_type);
29483 IrInstGen *casted_frame = ir_implicit_cast2(ira, &instruction->frame->base, frame, any_frame_type);
2948129484 if (type_is_invalid(casted_frame->value->type))
2948229485 return ira->codegen->invalid_inst_gen;
2948329486