diff options
| author | Vexu <git@vexu.eu> | 2020-05-04 14:28:58 +0300 |
|---|---|---|
| committer | Vexu <git@vexu.eu> | 2020-05-04 14:28:58 +0300 |
| commit | adc444ceeb91c06a6ee84dc4e4874294a41dee45 (patch) | |
| tree | d69253d7044ad741b64ee61abed86d8a2cb7a890 /src | |
| parent | e72f45475d05fb446e48d3e34e6c8e367916bd50 (diff) | |
| download | zig-adc444ceeb91c06a6ee84dc4e4874294a41dee45.tar.gz zig-adc444ceeb91c06a6ee84dc4e4874294a41dee45.zip | |
fix missing compile error on call assigned to const
Diffstat (limited to 'src')
| -rw-r--r-- | src/ir.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/ir.cpp b/src/ir.cpp index 4795645544..b636ac6f76 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -20000,6 +20000,11 @@ static IrInstGen *ir_analyze_fn_call(IrAnalyze *ira, IrInst* source_instr, if (type_is_invalid(result_loc->value->type) || result_loc->value->type->id == ZigTypeIdUnreachable) { return result_loc; } + if (result_loc->value->type->data.pointer.is_const) { + ir_add_error(ira, source_instr, buf_sprintf("cannot assign to constant")); + return ira->codegen->invalid_inst_gen; + } + IrInstGen *dummy_value = ir_const(ira, source_instr, impl_fn_type_id->return_type); dummy_value->value->special = ConstValSpecialRuntime; IrInstGen *dummy_result = ir_implicit_cast2(ira, source_instr, @@ -20138,6 +20143,11 @@ static IrInstGen *ir_analyze_fn_call(IrAnalyze *ira, IrInst* source_instr, if (type_is_invalid(result_loc->value->type) || result_loc->value->type->id == ZigTypeIdUnreachable) { return result_loc; } + if (result_loc->value->type->data.pointer.is_const) { + ir_add_error(ira, source_instr, buf_sprintf("cannot assign to constant")); + return ira->codegen->invalid_inst_gen; + } + IrInstGen *dummy_value = ir_const(ira, source_instr, return_type); dummy_value->value->special = ConstValSpecialRuntime; IrInstGen *dummy_result = ir_implicit_cast2(ira, source_instr, |
